diff options
76 files changed, 3081 insertions, 444 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 4610f2f8..f1dad78f 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -2,15 +2,17 @@ **Server Setup Information**: +* Did you test in newest Wekan?: +* Wekan version: +* If this is about old version of Wekan, what upgrade problem you have?: * Operating System: -* Deployment Method(snap/sandstorm/mongodb bundle): -* Http frontend (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first): +* Deployment Method(snap/docker/sandstorm/mongodb bundle/source): +* Http frontend if any (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first): * Node Version: * MongoDB Version: * ROOT_URL environment variable http(s)://(subdomain).example.com(/suburl): **Problem description**: -- *be as explicit as you can* -- *describe the problem and its symptoms* -- *explain how to reproduce* -- *attach whatever information that can help understanding the context (screen capture, log files in .zip file)* +- *REQUIRED: Add recorded animated gif about how it works currently, and screenshot mockups how it should work* +- *Explain steps how to reproduce* +- *Attach log files in .zip file)* diff --git a/CHANGELOG.md b/CHANGELOG.md index 49ee9b39..31410bf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,101 @@ +# v1.04 2018-06-12 Wekan release + +This release adds the following new features: + +* [Add Khmer language](https://github.com/wekan/wekan/commit/2156e458690d0dc34a761a48fd7fa3b54af79031); +* [Change label text colour to black for specific label colours for better + visibility](https://github.com/wekan/wekan/pull/1689). + +and fixes the following bugs: + +* [SECURITY FIX: Do not publish all of people collection. This bug has probably been present + since addition of Admin Panel](https://github.com/wekan/wekan/commit/dda49d2f07f9c50d5d57acfd5c7eee6492f93b33); +* [Modify card covers/mini-cards so that: 1) received date is shown unless there is a start date + 2) due date is shown, unless there is an end date](https://github.com/wekan/wekan/pull/1685). + +Thanks to GitHub users rjevnikar and xet7 for their contributions. +Thanks to Adrian Genaid for security fix, he's now added to [Hall of Fame](https://wekan.github.io/hall-of-fame/). +Thanks to translators. + +# v1.03 2018-06-08 Wekan release + +This release adds the following new features: + +* [Update to newest Sandstorm fork of Node.js that includes performance + etc fixes](https://github.com/wekan/wekan/commit/90d55777f7298d243ed0de03c934cea239a31272); +* [Additional label colors. Assigned By and Requested By text fields + on card. Delete board from Recycle Bin](https://github.com/wekan/wekan/pull/1679). + +and possibly fixes the following bugs, please test: + +* [Try to fix: Missing board-view-lists Field after DB updated to + Wekan 1.02](https://github.com/wekan/wekan/issues/1675). + +Thanks to GitHub users JamesLavin, rjevnikar and xet7 for their contributions. + +# v1.02 2018-05-26 Wekan release + +This release fixes the following bugs: + +* [Remove binary version of bcrypt](https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac) + because of [vulnerability](https://nodesecurity.io/advisories/612) that has [issue that is not fixed + yet](https://github.com/kelektiv/node.bcrypt.js/issues/604) + and [not yet merged pull request](https://github.com/kelektiv/node.bcrypt.js/pull/606). + This may cause some slowdown; +* [Snap: Filtering out swap file created at build time, adding stage package](https://github.com/wekan/wekan/pull/1660); +* [Fix Received Date and End Date on Cards](https://github.com/wekan/wekan/issues/1654). + +Thanks to GitHub users kubiko, xadagaras and xet7 for their contributions. + +# v1.01 2018-05-23 Wekan release + +This release possibly fixes the following bugs, please test: + +* [Possible quickfix for all customFields Import errors, please test](https://github.com/wekan/wekan/pull/1653). + +Thanks to GitHub users feuerball11 and xet7 for their contributions. + +# v1.00 2018-05-21 Wekan release + +This release fixes the following bugs: + +* [Typo in English translation: brakets to brackets](https://github.com/wekan/wekan/issues/1647). + +Thanks to GitHub user yarons for contributions. + +# v0.99 2018-05-21 Wekan release + +This release adds the following new features: + +* [Advanced Filter for Custom Fields](https://github.com/wekan/wekan/pull/1646). + +Thanks to GitHub users feuerball11 and xet7 for their contributions. + +# v0.98 2018-05-19 Wekan release + +This release adds the following new features: + +* [Filtering by Custom Field](https://github.com/wekan/wekan/pull/1645); +* Update to NPM 6.0.1 and MongoDB 3.2.20. + +Thanks to GitHub users feuerball11 and xet7 for their contributions. + +# v0.97 2018-05-19 Wekan release + +Updated translations. + +# v0.96 2018-05-19 Wekan release + +This release adds the following new features: + +* [Custom Fields](https://github.com/wekan/wekan/issues/807). Note: Import/Export is not implemented yet. + +and fixes the following bugs: + +* [Fix: checklistItems broken after upgrade](https://github.com/wekan/wekan/issues/1636). + +Thanks to GitHub users feuerball11, franksiler, papoola and xet7 for their contributions. + # v0.95 2018-05-08 Wekan release This release adds the following new features: @@ -6,7 +104,7 @@ This release adds the following new features: * [Add a new API route to create a new label in a given board](https://github.com/wekan/wekan/pull/1630); * [Admin Panel: Option to block username change](https://github.com/wekan/wekan/pull/1627). -and fixed the following bugs: +and fixes the following bugs: * [Error: title is required](https://github.com/wekan/wekan/issues/1576). diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..3ae99519 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,4 @@ +To get started, [please sign the Contributor License Agreement](https://www.clahub.com/agreements/wekan/wekan). + +[Then, please read documentation at wiki](https://github.com/wekan/wekan/wiki). + diff --git a/Contributing.md b/Contributing.md deleted file mode 100644 index 82440260..00000000 --- a/Contributing.md +++ /dev/null @@ -1,5 +0,0 @@ -# Contributing - -Please see wiki for all documentation: - -<https://github.com/wekan/wekan/wiki> @@ -19,7 +19,7 @@ ENV NODE_VERSION ${NODE_VERSION:-v8.11.1} ENV METEOR_RELEASE ${METEOR_RELEASE:-1.6.0.1} ENV USE_EDGE ${USE_EDGE:-false} ENV METEOR_EDGE ${METEOR_EDGE:-1.5-beta.17} -ENV NPM_VERSION ${NPM_VERSION:-5.5.1} +ENV NPM_VERSION ${NPM_VERSION:-latest} ENV FIBERS_VERSION ${FIBERS_VERSION:-2.0.0} ENV ARCHITECTURE ${ARCHITECTURE:-linux-x64} ENV SRC_PATH ${SRC_PATH:-./} @@ -49,7 +49,7 @@ RUN \ # Description at https://releases.wekan.team/node.txt # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d wget https://releases.wekan.team/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \ - echo "c85ed210a360c50d55baaf7b49419236e5241515ed21410d716f4c1f5deedb12 node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \ + echo "509e79f1bfccc849b65bd3f207a56095dfa608f17502997e844fa9c9d01e6c20 node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \ \ # Verify nodejs authenticity grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \ @@ -125,12 +125,15 @@ RUN \ gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \ cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \ chown wekan:wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \ - cd /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt && \ - gosu wekan:wekan rm -rf node_modules/bcrypt && \ - gosu wekan:wekan npm install bcrypt && \ + #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 /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt && \ + #gosu wekan:wekan rm -rf node_modules/bcrypt && \ + #gosu wekan:wekan npm install bcrypt && \ cd /home/wekan/app_build/bundle/programs/server/ && \ gosu wekan:wekan npm install && \ - gosu wekan:wekan npm install bcrypt && \ + #gosu wekan:wekan npm install bcrypt && \ mv /home/wekan/app_build/bundle /build && \ \ # Cleanup @@ -14,6 +14,7 @@ [![Code Climate](https://codeclimate.com/github/wekan/wekan/badges/gpa.svg "Code Climate")](https://codeclimate.com/github/wekan/wekan) [![Project Dependencies](https://david-dm.org/wekan/wekan.svg "Project Dependencies")](https://david-dm.org/wekan/wekan) [![Code analysis at Open Hub](https://img.shields.io/badge/code%20analysis-at%20Open%20Hub-brightgreen.svg "Code analysis at Open Hub")](https://www.openhub.net/p/wekan) +[![Greenkeeper badge](https://badges.greenkeeper.io/wekan/wekan.svg)](https://greenkeeper.io/) Please read [FAQ](https://github.com/wekan/wekan/wiki/FAQ). Please don't feed the trolls and spammers that are mentioned in the FAQ :) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..4e73c281 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,129 @@ +Security is very important to us. If discover any issue regarding security, please disclose +the information responsibly by sending an email to security (at) wekan.team and not by +creating a GitHub issue. We will respond swiftly to fix verifiable security issues. + +We thank you with a place at our hall of fame page, that is +at https://wekan.github.io/hall-of-fame . Others have just posted public GitHub issue, +so they are not at that hall-of-fame page. + +## How should reports be formatted? + +``` +Name: %name +Twitter: %twitter +Bug type: %bugtype +Domain: %domain +Severity: %severity +URL: %url +PoC: %poc +CVSS (optional): %cvss +CWSS (optional): %cwss +``` + +## Who can participate in the program + +Anyone who reports a unique security issue in scope and does not disclose it to +a third party before we have patched and updated may be upon their approval +added to the Wekan Hall of Fame. + +## Which domains are in scope? + +No any public domains, because all those are donated to Wekan Open Source project, +and we don't have any permissions to do security scans on those donated servers. + +Please don't perform research that could impact other users. Secondly, please keep +the reports short and succinct. If we fail to understand the logics of your bug, we will tell you. + +You can [Install Wekan](https://github.com/wekan/wekan/releases) to your own computer +and scan it's vulnerabilities there. + +## About Wekan versions + +There is only 2 versions of Wekan: Standalone Wekan, and Sandstorm Wekan. + +### Standalone Wekan Security + +Standalone Wekan includes all non-Sandstorm platforms. Some Standalone Wekan platforms +like Snap and Docker have their own specific sandboxing etc features. + +Standalone Wekan by default does not load any files from Internet, like fonts, CSS, etc. +This also means all Standalone Wekan functionality works in offline local networks. +Wekan is used by companies that have [thousands of users](https://github.com/wekan/wekan/wiki/AWS) and at healthcare. + +Wekan uses xss package for input fields like cards, as you can see from +[package.json](https://github.com/wekan/wekan/blob/devel/package.json). Other used versions can be seen from +[Meteor versions file](https://github.com/wekan/wekan/blob/devel/.meteor/versions). +Forms can include markdown links, html, image tags etc like you see at https://wekan.github.io . +It's possible to add attachments to cards, and markdown/html links to files. + +Wekan attachments are not accessible without logging in. Import from Trello works by copying +Trello export JSON to Wekan Trello import page, and in Trello JSON file there is direct links to all publicly +accessible Trello attachment files, that Standalone Wekan downloads directly to Wekan MongoDB database in +[CollectionFS](https://github.com/wekan/wekan/pull/875) format. When Wekan board is exported in +Wekan JSON format, all board attachments are included in Wekan JSON file as base64 encoded text. +That Wekan JSON format file can be imported to Sandstorm Wekan with all the attachments, when we get +latest Wekan version working on Sandstorm, only couple of bugs are left before that. In Sandstorm it's not +possible yet to import from Trello with attachments, because Wekan does not implement Sandstorm-compatible +access to outside of Wekan grain. + +Standalone Wekan only has password auth currently, there is work in progress to add +[oauth2](https://github.com/wekan/wekan/pull/1578), [Openid](https://github.com/wekan/wekan/issues/538), +[LDAP](https://github.com/wekan/wekan/issues/119) etc. If you need more login security for Standalone Wekan now, +it's possible add additional [Google Auth proxybouncer](https://github.com/wekan/wekan/wiki/Let's-Encrypt-and-Google-Auth) in front of password auth, and then use Google Authenticator for Google Auth. Standalone Wekan does have [brute force protection with eluck:accounts-lockout and browser-policy clickjacking protection](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md#v080-2018-04-04-wekan-release). You can also optionally use some [WAF](https://en.wikipedia.org/wiki/Web_application_firewall) +like for example [AWS WAF](https://aws.amazon.com/waf/). + +[All Wekan Platforms](https://github.com/wekan/wekan/wiki/Platforms) + +### Sandstorm Wekan Security + +On Sandstorm platform using environment variable Standalone Wekan features like Admin Panel etc are +turned off, because Sandstorm platform provides SSO for all apps running on Sandstorm. + +[Sandstorm](https://sandstorm.io) is separate Open Source platform that has been +[security audited](https://sandstorm.io/news/2017-03-02-security-review) and found bugs fixed. +Sandstorm also has passwordless login, LDAP, SAML, Google etc auth options already. +At Sandstorm code is read-only and signed by app maintainers, only grain content can be modified. +Wekan at Sandstorm runs in sandboxed grain, it does not have access elsewhere without user-visible +PowerBox request or opening randomly-generated API key URL. +Also read [Sandstorm Security Practices](https://docs.sandstorm.io/en/latest/using/security-practices/) and +[Sandstorm Security non-events](https://docs.sandstorm.io/en/latest/using/security-non-events/). +For Sandstorm specific security issues you can contact [kentonv](https://github.com/kentonv) by email. + +## What Wekan bugs are eligible? + +Any typical web security bugs. If any of the previously mentioned is somehow problematic and +a security issue, we'd like to know about it, and also how to fix it: + +- Cross-site Scripting +- Open redirect +- Cross-site request forgery +- File inclusion +- Authentication bypass +- Server-side code execution + +## What Wekan bugs are NOT eligible? + +Typical already known or "no impact" bugs such as: + +- Brute force password guessign. Currently there is + [brute force protection with eluck:accounts-lockout](https://github.com/wekan/wekan/blob/devel/CHANGELOG.md#v080-2018-04-04-wekan-release). +- Security issues related to that Wekan uses Meteor 1.6.0.1 related packages, and upgrading to newer + Meteor 1.6.1 is complicated process that requires lots of changes to many dependency packages. + Upgrading [has been tried many times, spending a lot of time](https://github.com/meteor/meteor/issues/9609) + but there still is issues. Helping with package upgrades is very welcome. +- [Wekan API old tokens not replaced correctly](https://github.com/wekan/wekan/issues/1437) +- Missing Cookie flags on non-session cookies or 3rd party cookies +- Logout CSRF +- Social engineering +- Denial of service +- SSL BEAST/CRIME/etc. Wekan does not have SSL built-in, it uses Caddy/Nginx/Apache etc at front. + Integrated Caddy support is updated often. +- Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server. + +Wekan is Open Source with MIT license, and free to use also for commercial use. +We welcome all fixes to improve security by email to security (at) wekan.team . + +## Bonus Points + +If your Responsible Security Disclosure includes code for fixing security issue, +you get bonus points, as seen on [Hall of Fame](https://wekan.github.io/hall-of-fame). diff --git a/client/components/boards/boardArchive.jade b/client/components/boards/boardArchive.jade index 6576f742..5d291f00 100644 --- a/client/components/boards/boardArchive.jade +++ b/client/components/boards/boardArchive.jade @@ -6,9 +6,17 @@ template(name="archivedBoards") ul.archived-lists each archivedBoards li.archived-lists-item - button.js-restore-board - i.fa.fa-undo - | {{_ 'restore-board'}} - = title + div.board-header-btns + button.board-header-btn.js-delete-board + i.fa.fa-trash-o + | {{_ 'delete-board'}} + button.board-header-btn.js-restore-board + i.fa.fa-undo + | {{_ 'restore-board'}} + = title else li.no-items-message {{_ 'no-archived-boards'}} + +template(name="boardDeletePopup") + p {{_ 'delete-board-confirm-popup'}} + button.js-confirm.negate.full(type="submit") {{_ 'delete'}} diff --git a/client/components/boards/boardArchive.js b/client/components/boards/boardArchive.js index acb53149..dbebdd70 100644 --- a/client/components/boards/boardArchive.js +++ b/client/components/boards/boardArchive.js @@ -29,6 +29,18 @@ BlazeComponent.extendComponent({ board.restore(); Utils.goBoardId(board._id); }, + 'click .js-delete-board': Popup.afterConfirm('boardDelete', function() { + Popup.close(); + const isSandstorm = Meteor.settings && Meteor.settings.public && + Meteor.settings.public.sandstorm; + if (isSandstorm && Session.get('currentBoard')) { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + Boards.remove(currentBoard._id); + } + const board = this.currentData(); + Boards.remove(board._id); + FlowRouter.go('home'); + }), }]; }, }).register('archivedBoards'); diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js index 456bf9b3..dfe7b8d2 100644 --- a/client/components/boards/boardBody.js +++ b/client/components/boards/boardBody.js @@ -88,11 +88,13 @@ BlazeComponent.extendComponent({ isViewSwimlanes() { const currentUser = Meteor.user(); + if (!currentUser) return false; return (currentUser.profile.boardView === 'board-view-swimlanes'); }, isViewLists() { const currentUser = Meteor.user(); + if (!currentUser) return true; return (currentUser.profile.boardView === 'board-view-lists'); }, diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js index e0b19246..b2640474 100644 --- a/client/components/boards/boardHeader.js +++ b/client/components/boards/boardHeader.js @@ -17,6 +17,12 @@ Template.boardMenuPopup.events({ // confirm that the board was successfully archived. FlowRouter.go('home'); }), + 'click .js-delete-board': Popup.afterConfirm('deleteBoard', function() { + const currentBoard = Boards.findOne(Session.get('currentBoard')); + Popup.close(); + Boards.remove(currentBoard._id); + FlowRouter.go('home'); + }), 'click .js-outgoing-webhooks': Popup.open('outgoingWebhooks'), 'click .js-import-board': Popup.open('chooseBoardSource'), }); diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js index f33e8c19..e95c3a23 100644 --- a/client/components/cards/cardDate.js +++ b/client/components/cards/cardDate.js @@ -93,7 +93,7 @@ Template.dateBadge.helpers({ }); // editCardReceivedDatePopup -(class extends EditCardDate { +(class extends DatePicker { onCreated() { super.onCreated(); this.data().receivedAt && this.date.set(moment(this.data().receivedAt)); @@ -156,7 +156,7 @@ Template.dateBadge.helpers({ }).register('editCardDueDatePopup'); // editCardEndDatePopup -(class extends EditCardDate { +(class extends DatePicker { onCreated() { super.onCreated(); this.data().endAt && this.date.set(moment(this.data().endAt)); @@ -279,11 +279,14 @@ class CardDueDate extends CardDate { classes() { let classes = 'due-date' + ' '; - if (this.now.get().diff(this.date.get(), 'days') >= 2) + if ((this.now.get().diff(this.date.get(), 'days') >= 2) && + (this.date.get().isBefore(this.data().endAt))) classes += 'long-overdue'; - else if (this.now.get().diff(this.date.get(), 'minute') >= 0) + else if ((this.now.get().diff(this.date.get(), 'minute') >= 0) && + (this.date.get().isBefore(this.data().endAt))) classes += 'due'; - else if (this.now.get().diff(this.date.get(), 'days') >= -1) + else if ((this.now.get().diff(this.date.get(), 'days') >= -1) && + (this.date.get().isBefore(this.data().endAt))) classes += 'almost-due'; return classes; } @@ -355,4 +358,3 @@ CardEndDate.register('cardEndDate'); return this.date.get().format('l'); } }).register('minicardEndDate'); - diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade index 55ee8d32..aa4829a9 100644 --- a/client/components/cards/cardDetails.jade +++ b/client/components/cards/cardDetails.jade @@ -108,6 +108,39 @@ template(name="cardDetails") +viewer = description + .card-details-items + .card-details-item.card-details-item-name + h3.card-details-item-title {{_ 'requested-by'}} + if canModifyCard + +inlinedForm(classNames="js-card-details-requester") + +editCardRequesterForm + else + a.js-open-inlined-form + if requestedBy + +viewer + = requestedBy + else + | {{_ 'add'}} + else if requestedBy + +viewer + = requestedBy + + .card-details-item.card-details-item-name + h3.card-details-item-title {{_ 'assigned-by'}} + if canModifyCard + +inlinedForm(classNames="js-card-details-assigner") + +editCardAssignerForm + else + a.js-open-inlined-form + if assignedBy + +viewer + = assignedBy + else + | {{_ 'add'}} + else if requestedBy + +viewer + = assignedBy + hr +checklists(cardId = _id) @@ -141,6 +174,18 @@ template(name="editCardTitleForm") button.primary.confirm.js-submit-edit-card-title-form(type="submit") {{_ 'save'}} a.fa.fa-times-thin.js-close-inlined-form +template(name="editCardRequesterForm") + input.js-edit-card-requester(type='text' autofocus value=requestedBy) + .edit-controls.clearfix + button.primary.confirm.js-submit-edit-card-requester-form(type="submit") {{_ 'save'}} + a.fa.fa-times-thin.js-close-inlined-form + +template(name="editCardAssignerForm") + input.js-edit-card-assigner(type='text' autofocus value=assignedBy) + .edit-controls.clearfix + button.primary.confirm.js-submit-edit-card-assigner-form(type="submit") {{_ 'save'}} + a.fa.fa-times-thin.js-close-inlined-form + template(name="cardDetailsActionsPopup") ul.pop-over-list li: a.js-toggle-watch-card {{#if isWatching}}{{_ 'unwatch'}}{{else}}{{_ 'watch'}}{{/if}} @@ -150,8 +195,8 @@ template(name="cardDetailsActionsPopup") li: a.js-members {{_ 'card-edit-members'}} li: a.js-labels {{_ 'card-edit-labels'}} li: a.js-attachments {{_ 'card-edit-attachments'}} - li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}} li: a.js-custom-fields {{_ 'card-edit-custom-fields'}} + li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}} li: a.js-start-date {{_ 'editCardStartDatePopup-title'}} li: a.js-due-date {{_ 'editCardDueDatePopup-title'}} li: a.js-end-date {{_ 'editCardEndDatePopup-title'}} @@ -178,7 +223,6 @@ template(name="copyCardPopup") = title +boardsAndLists - template(name="copyChecklistToManyCardsPopup") label(for='copy-checklist-cards-title') {{_ 'copyChecklistToManyCardsPopup-instructions'}}: textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus) diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js index a2bf2d02..1a8a8bef 100644 --- a/client/components/cards/cardDetails.js +++ b/client/components/cards/cardDetails.js @@ -150,6 +150,20 @@ BlazeComponent.extendComponent({ this.data().setTitle(title); } }, + 'submit .js-card-details-assigner'(evt) { + evt.preventDefault(); + const assigner = this.currentComponent().getValue().trim(); + if (assigner) { + this.data().setAssignedBy(assigner); + } + }, + 'submit .js-card-details-requester'(evt) { + evt.preventDefault(); + const requester = this.currentComponent().getValue().trim(); + if (requester) { + this.data().setRequestedBy(requester); + } + }, 'click .js-member': Popup.open('cardMember'), 'click .js-add-members': Popup.open('cardMembers'), 'click .js-add-labels': Popup.open('cardLabels'), @@ -221,8 +235,8 @@ Template.cardDetailsActionsPopup.events({ 'click .js-members': Popup.open('cardMembers'), 'click .js-labels': Popup.open('cardLabels'), 'click .js-attachments': Popup.open('cardAttachments'), - 'click .js-received-date': Popup.open('editCardReceivedDate'), 'click .js-custom-fields': Popup.open('cardCustomFields'), + 'click .js-received-date': Popup.open('editCardReceivedDate'), 'click .js-start-date': Popup.open('editCardStartDate'), 'click .js-due-date': Popup.open('editCardDueDate'), 'click .js-end-date': Popup.open('editCardEndDate'), @@ -269,6 +283,32 @@ Template.editCardTitleForm.events({ }, }); +Template.editCardRequesterForm.onRendered(function() { + autosize(this.$('.js-edit-card-requester')); +}); + +Template.editCardRequesterForm.events({ + 'keydown .js-edit-card-requester'(evt) { + // If enter key was pressed, submit the data + if (evt.keyCode === 13) { + $('.js-submit-edit-card-requester-form').click(); + } + }, +}); + +Template.editCardAssignerForm.onRendered(function() { + autosize(this.$('.js-edit-card-assigner')); +}); + +Template.editCardAssignerForm.events({ + 'keydown .js-edit-card-assigner'(evt) { + // If enter key was pressed, submit the data + if (evt.keyCode === 13) { + $('.js-submit-edit-card-assigner-form').click(); + } + }, +}); + Template.moveCardPopup.events({ 'click .js-done' () { // XXX We should *not* get the currentCard from the global state, but diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl index 7dbe8732..11660593 100644 --- a/client/components/cards/cardDetails.styl +++ b/client/components/cards/cardDetails.styl @@ -82,7 +82,8 @@ &.card-details-item-start, &.card-details-item-due, &.card-details-item-end, - &.card-details-item-customfield + &.card-details-item-customfield, + &.card-details-item-name max-width: 50% flex-grow: 1 diff --git a/client/components/cards/labels.styl b/client/components/cards/labels.styl index 361a17ae..3b481d93 100644 --- a/client/components/cards/labels.styl +++ b/client/components/cards/labels.styl @@ -3,7 +3,7 @@ // XXX Use .board-widget-labels as a flexbox container .card-label border-radius: 4px - color: white + color: white //Default white text, in select cases, changed to black to improve contrast between label colour and text display: inline-block font-weight: 700 font-size: 13px @@ -48,9 +48,11 @@ .card-label-yellow background-color: #fad900 + color: #000000 //Black text for better visibility .card-label-orange background-color: #ff9f19 + color: #000000 //Black text for better visibility .card-label-red background-color: #eb4646 @@ -63,6 +65,7 @@ .card-label-pink background-color: #ff78cb + color: #000000 //Black text for better visibility .card-label-sky background-color: #00c2e0 @@ -72,6 +75,55 @@ .card-label-lime background-color: #51e898 + color: #000000 //Black text for better visibility + +.card-label-silver + background-color: #c0c0c0 + color: #000000 //Black text for better visibility + +.card-label-peachpuff + background-color: #ffdab9 + color: #000000 //Black text for better visibility + +.card-label-crimson + background-color: #dc143c + +.card-label-plum + background-color: #dda0dd + color: #000000 //Black text for better visibility + +.card-label-darkgreen + background-color: #006400 + +.card-label-slateblue + background-color: #6a5acd + +.card-label-magenta + background-color: #ff00ff + +.card-label-gold + background-color: #ffd700 + color: #000000 //Black text for better visibility + +.card-label-navy + background-color: #000080 + +.card-label-gray + background-color: #808080 + +.card-label-saddlebrown + background-color: #8b4513 + +.card-label-paleturquoise + background-color: #afeeee + color: #000000 //Black text for better visibility + +.card-label-mistyrose + background-color: #ffe4e1 + color: #000000 //Black text for better visibility + +.card-label-indigo + background-color: #4b0082 .edit-label, .create-label diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade index 9fa4dd57..c912ea70 100644 --- a/client/components/cards/minicard.jade +++ b/client/components/cards/minicard.jade @@ -10,20 +10,41 @@ template(name="minicard") +viewer = title .dates + if receivedAt + unless startAt + unless dueAt + unless endAt + .date + +miniCardReceivedDate if startAt .date +minicardStartDate if dueAt + unless endAt + .date + +minicardDueDate + if endAt .date - +minicardDueDate + +minicardEndDate if spentTime .date +cardSpentTime + .minicard-custom-fields + each customFieldsWD + if definition.showOnCard + .minicard-custom-field + .minicard-custom-field-item + = definition.name + .minicard-custom-field-item + +viewer + = trueValue + if members .minicard-members.js-minicard-members each members +userAvatar(userId=this) + .badges if comments.count .badge(title="{{_ 'card-comments-title' comments.count }}") diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl index d59f1f63..38f829d0 100644 --- a/client/components/cards/minicard.styl +++ b/client/components/cards/minicard.styl @@ -77,6 +77,13 @@ height: @width border-radius: 2px margin-left: 3px + .minicard-custom-fields + display:block; + .minicard-custom-field + display:flex; + .minicard-custom-field-item + max-width:50%; + flex-grow:1; .minicard-title p:last-child margin-bottom: 0 diff --git a/client/components/sidebar/sidebarCustomFields.jade b/client/components/sidebar/sidebarCustomFields.jade index def083e9..fd31e5ac 100644 --- a/client/components/sidebar/sidebarCustomFields.jade +++ b/client/components/sidebar/sidebarCustomFields.jade @@ -37,7 +37,7 @@ template(name="createCustomFieldPopup") each dropdownItems.get input.js-dropdown-item(type="text" value=name placeholder="") input.js-dropdown-item.last(type="text" value="" placeholder="{{_ 'custom-field-dropdown-options-placeholder'}}") - a.flex.js-field-show-on-card + a.flex.js-field-show-on-card(class="{{#if showOnCard}}is-checked{{/if}}") .materialCheckBox(class="{{#if showOnCard}}is-checked{{/if}}") span {{_ 'show-field-on-card'}} @@ -49,4 +49,4 @@ template(name="createCustomFieldPopup") template(name="deleteCustomFieldPopup") p {{_ "custom-field-delete-pop"}} - button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
\ No newline at end of file + button.js-confirm.negate.full(type="submit") {{_ 'delete'}} diff --git a/client/components/sidebar/sidebarFilters.jade b/client/components/sidebar/sidebarFilters.jade index 273df8c2..514870b8 100644 --- a/client/components/sidebar/sidebarFilters.jade +++ b/client/components/sidebar/sidebarFilters.jade @@ -40,6 +40,25 @@ template(name="filterSidebar") | (<span class="username">{{ username }}</span>) if Filter.members.isSelected _id i.fa.fa-check + hr + ul.sidebar-list + li(class="{{#if Filter.customFields.isSelected undefined}}active{{/if}}") + a.name.js-toggle-custom-fields-filter + span.sidebar-list-item-description + | {{_ 'filter-no-custom-fields'}} + if Filter.customFields.isSelected undefined + i.fa.fa-check + each currentBoard.customFields + li(class="{{#if Filter.customFields.isSelected _id}}active{{/if}}") + a.name.js-toggle-custom-fields-filter + span.sidebar-list-item-description + {{ name }} + if Filter.customFields.isSelected _id + i.fa.fa-check + hr + span {{_ 'advanced-filter-label'}} + input.js-field-advanced-filter(type="text") + span {{_ 'advanced-filter-description'}} if Filter.isActive hr a.sidebar-btn.js-clear-all diff --git a/client/components/sidebar/sidebarFilters.js b/client/components/sidebar/sidebarFilters.js index f02d3a4a..fd8229e4 100644 --- a/client/components/sidebar/sidebarFilters.js +++ b/client/components/sidebar/sidebarFilters.js @@ -11,6 +11,16 @@ BlazeComponent.extendComponent({ Filter.members.toggle(this.currentData()._id); Filter.resetExceptions(); }, + 'click .js-toggle-custom-fields-filter'(evt) { + evt.preventDefault(); + Filter.customFields.toggle(this.currentData()._id); + Filter.resetExceptions(); + }, + 'change .js-field-advanced-filter'(evt) { + evt.preventDefault(); + Filter.advanced.set(this.find('.js-field-advanced-filter').value.trim()); + Filter.resetExceptions(); + }, 'click .js-clear-all'(evt) { evt.preventDefault(); Filter.reset(); diff --git a/client/lib/filter.js b/client/lib/filter.js index 8129776b..ea1811de 100644 --- a/client/lib/filter.js +++ b/client/lib/filter.js @@ -10,10 +10,13 @@ function showFilterSidebar() { // Use a "set" filter for a field that is a set of documents uniquely // identified. For instance `{ labels: ['labelA', 'labelC', 'labelD'] }`. +// use "subField" for searching inside object Fields. +// For instance '{ 'customFields._id': ['field1','field2']} (subField would be: _id) class SetFilter { - constructor() { + constructor(subField = '') { this._dep = new Tracker.Dependency(); this._selectedElements = []; + this.subField = subField; } isSelected(val) { @@ -76,6 +79,295 @@ class SetFilter { } } + +// Advanced filter forms a MongoSelector from a users String. +// Build by: Ignatz 19.05.2018 (github feuerball11) +class AdvancedFilter { + constructor() { + this._dep = new Tracker.Dependency(); + this._filter = ''; + this._lastValide = {}; + } + + set(str) { + this._filter = str; + this._dep.changed(); + } + + reset() { + this._filter = ''; + this._lastValide = {}; + this._dep.changed(); + } + + _isActive() { + this._dep.depend(); + return this._filter !== ''; + } + + _filterToCommands() { + const commands = []; + let current = ''; + let string = false; + let wasString = false; + let ignore = false; + for (let i = 0; i < this._filter.length; i++) { + const char = this._filter.charAt(i); + if (ignore) { + ignore = false; + continue; + } + if (char === '\'') { + string = !string; + if (string) wasString = true; + continue; + } + if (char === '\\') { + ignore = true; + continue; + } + if (char === ' ' && !string) { + commands.push({ 'cmd': current, 'string': wasString }); + wasString = false; + current = ''; + continue; + } + current += char; + } + if (current !== '') { + commands.push({ 'cmd': current, 'string': wasString }); + } + return commands; + } + + _fieldNameToId(field) { + const found = CustomFields.findOne({ 'name': field }); + return found._id; + } + + _fieldValueToId(field, value) + { + const found = CustomFields.findOne({ 'name': field }); + if (found.settings.dropdownItems && found.settings.dropdownItems.length > 0) + { + for (let i = 0; i < found.settings.dropdownItems.length; i++) + { + if (found.settings.dropdownItems[i].name === value) + { + return found.settings.dropdownItems[i]._id; + } + } + } + return value; + } + + _arrayToSelector(commands) { + try { + //let changed = false; + this._processSubCommands(commands); + } + catch (e) { return this._lastValide; } + this._lastValide = { $or: commands }; + return { $or: commands }; + } + + _processSubCommands(commands) { + const subcommands = []; + let level = 0; + let start = -1; + for (let i = 0; i < commands.length; i++) { + if (commands[i].cmd) { + switch (commands[i].cmd) { + case '(': + { + level++; + if (start === -1) start = i; + continue; + } + case ')': + { + level--; + commands.splice(i, 1); + i--; + continue; + } + default: + { + if (level > 0) { + subcommands.push(commands[i]); + commands.splice(i, 1); + i--; + continue; + } + } + } + } + } + if (start !== -1) { + this._processSubCommands(subcommands); + if (subcommands.length === 1) + commands.splice(start, 0, subcommands[0]); + else + commands.splice(start, 0, subcommands); + } + this._processConditions(commands); + this._processLogicalOperators(commands); + } + + _processConditions(commands) { + for (let i = 0; i < commands.length; i++) { + if (!commands[i].string && commands[i].cmd) { + switch (commands[i].cmd) { + case '=': + case '==': + case '===': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': {$in: [this._fieldValueToId(field, str), parseInt(str, 10)]} }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case '!=': + case '!==': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $not: {$in: [this._fieldValueToId(field, str), parseInt(str, 10)]} } }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case '>': + case 'gt': + case 'Gt': + case 'GT': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $gt: parseInt(str, 10) } }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case '>=': + case '>==': + case 'gte': + case 'Gte': + case 'GTE': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $gte: parseInt(str, 10) } }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case '<': + case 'lt': + case 'Lt': + case 'LT': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $lt: parseInt(str, 10) } }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case '<=': + case '<==': + case 'lte': + case 'Lte': + case 'LTE': + { + const field = commands[i - 1].cmd; + const str = commands[i + 1].cmd; + commands[i] = { 'customFields._id': this._fieldNameToId(field), 'customFields.value': { $lte: parseInt(str, 10) } }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + + } + } + } + } + + _processLogicalOperators(commands) { + for (let i = 0; i < commands.length; i++) { + if (!commands[i].string && commands[i].cmd) { + switch (commands[i].cmd) { + case 'or': + case 'Or': + case 'OR': + case '|': + case '||': + { + const op1 = commands[i - 1]; + const op2 = commands[i + 1]; + commands[i] = { $or: [op1, op2] }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + case 'and': + case 'And': + case 'AND': + case '&': + case '&&': + { + const op1 = commands[i - 1]; + const op2 = commands[i + 1]; + commands[i] = { $and: [op1, op2] }; + commands.splice(i - 1, 1); + commands.splice(i, 1); + //changed = true; + i--; + break; + } + + case 'not': + case 'Not': + case 'NOT': + case '!': + { + const op1 = commands[i + 1]; + commands[i] = { $not: op1 }; + commands.splice(i + 1, 1); + //changed = true; + i--; + break; + } + + } + } + } + } + + _getMongoSelector() { + this._dep.depend(); + const commands = this._filterToCommands(); + return this._arrayToSelector(commands); + } + +} + // The global Filter object. // XXX It would be possible to re-write this object more elegantly, and removing // the need to provide a list of `_fields`. We also should move methods into the @@ -86,8 +378,10 @@ Filter = { // before changing the schema. labelIds: new SetFilter(), members: new SetFilter(), + customFields: new SetFilter('_id'), + advanced: new AdvancedFilter(), - _fields: ['labelIds', 'members'], + _fields: ['labelIds', 'members', 'customFields'], // We don't filter cards that have been added after the last filter change. To // implement this we keep the id of these cards in this `_exceptions` fields @@ -98,7 +392,7 @@ Filter = { isActive() { return _.any(this._fields, (fieldName) => { return this[fieldName]._isActive(); - }); + }) || this.advanced._isActive(); }, _getMongoSelector() { @@ -111,7 +405,12 @@ Filter = { this._fields.forEach((fieldName) => { const filter = this[fieldName]; if (filter._isActive()) { - filterSelector[fieldName] = filter._getMongoSelector(); + if (filter.subField !== '') { + filterSelector[`${fieldName}.${filter.subField}`] = filter._getMongoSelector(); + } + else { + filterSelector[fieldName] = filter._getMongoSelector(); + } emptySelector[fieldName] = filter._getEmptySelector(); if (emptySelector[fieldName] !== null) { includeEmptySelectors = true; @@ -119,13 +418,18 @@ Filter = { } }); - const exceptionsSelector = {_id: {$in: this._exceptions}}; + const exceptionsSelector = { _id: { $in: this._exceptions } }; this._exceptionsDep.depend(); - if (includeEmptySelectors) - return {$or: [filterSelector, exceptionsSelector, emptySelector]}; - else - return {$or: [filterSelector, exceptionsSelector]}; + const selectors = [exceptionsSelector]; + + if (_.any(this._fields, (fieldName) => { + return this[fieldName]._isActive(); + })) selectors.push(filterSelector); + if (includeEmptySelectors) selectors.push(emptySelector); + if (this.advanced._isActive()) selectors.push(this.advanced._getMongoSelector()); + + return { $or: selectors }; }, mongoSelector(additionalSelector) { @@ -133,7 +437,7 @@ Filter = { if (_.isUndefined(additionalSelector)) return filterSelector; else - return {$and: [filterSelector, additionalSelector]}; + return { $and: [filterSelector, additionalSelector] }; }, reset() { @@ -141,6 +445,7 @@ Filter = { const filter = this[fieldName]; filter.reset(); }); + this.advanced.reset(); this.resetExceptions(); }, diff --git a/docker-compose.yml b/docker-compose.yml index 0f03055b..eb82c3aa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,7 +3,7 @@ version: '2' services: wekandb: - image: mongo:3.2.19 + image: mongo:3.2.20 container_name: wekan-db restart: always command: mongod --smallfiles --oplogSize 128 diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index 4e77fa42..cf8f7f49 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "علق على __comment__ : __card__", "act-createBoard": "احدث __board__", "act-createCard": "اضاف __card__ الى __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "اضاف __list__ الى __board__", "act-addBoardMember": "اضاف __member__ الى __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "إرفاق %s ل %s", "activity-created": "أنشأ %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "استبعاد %s عن %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "%s تعليقات لهذه البطاقة", "card-delete-notice": "هذا حذف أبديّ . سوف تفقد كل الإجراءات المنوطة بهذه البطاقة", "card-delete-pop": "سيتم إزالة جميع الإجراءات من تبعات النشاط، وأنك لن تكون قادرا على إعادة فتح البطاقة. لا يوجد التراجع.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "مستحق", "card-due-on": "مستحق في", "card-spent": "Spent Time", "card-edit-attachments": "تعديل المرفقات", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "تعديل العلامات", "card-edit-members": "تعديل الأعضاء", "card-labels-title": "تعديل علامات البطاقة.", @@ -118,6 +121,8 @@ "card-start": "بداية", "card-start-on": "يبدأ في", "cardAttachmentsPopup-title": "إرفاق من", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "حذف البطاقة ?", "cardDetailsActionsPopup-title": "إجراءات على البطاقة", "cardLabelsPopup-title": "علامات", @@ -167,11 +172,25 @@ "createBoardPopup-title": "إنشاء لوحة", "chooseBoardSourcePopup-title": "استيراد لوحة", "createLabelPopup-title": "إنشاء علامة", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "الحالي", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "تاريخ", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "تاريخ", "decline": "Decline", "default-avatar": "صورة شخصية افتراضية", "delete": "حذف", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "حذف العلامة ?", "description": "وصف", "disambiguateMultiLabelPopup-title": "تحديد الإجراء على العلامة", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "تغيير تاريخ البدء", "editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "تعديل العلامة", "editNotificationPopup-title": "تصحيح الإشعار", @@ -222,9 +242,12 @@ "filter-clear": "مسح التصفية", "filter-no-label": "لا يوجد ملصق", "filter-no-member": "ليس هناك أي عضو", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "التصفية تشتغل", "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.", "filter-to-selection": "تصفية بالتحديد", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "الإسم الكامل", "header-logo-title": "الرجوع إلى صفحة اللوحات", "hide-system-messages": "إخفاء رسائل النظام", @@ -366,6 +389,7 @@ "title": "عنوان", "tracking": "تتبع", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "إلغاء تعيين العضو", "unsaved-description": "لديك وصف غير محفوظ", "unwatch": "غير مُشاهد", @@ -430,6 +454,7 @@ "hours": "الساعات", "minutes": "الدقائق", "seconds": "الثواني", + "show-field-on-card": "Show this field on card", "yes": "نعم", "no": "لا", "accounts": "الحسابات", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json index 26fea252..87c914bf 100644 --- a/i18n/bg.i18n.json +++ b/i18n/bg.i18n.json @@ -1,44 +1,46 @@ { "accept": "Accept", "act-activity-notify": "[Wekan] Известия за дейности", - "act-addAttachment": "attached __attachment__ to __card__", - "act-addChecklist": "added checklist __checklist__ to __card__", - "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addAttachment": "прикачи __attachment__ към __card__", + "act-addChecklist": "добави списък със задачи __checklist__ към __card__", + "act-addChecklistItem": "добави __checklistItem__ към списък със задачи __checklist__ в __card__", "act-addComment": "Коментира в __card__: __comment__", - "act-createBoard": "created __board__", - "act-createCard": "added __card__ to __list__", - "act-createList": "added __list__ to __board__", - "act-addBoardMember": "added __member__ to __board__", - "act-archivedBoard": "__board__ moved to Recycle Bin", - "act-archivedCard": "__card__ moved to Recycle Bin", - "act-archivedList": "__list__ moved to Recycle Bin", - "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", - "act-importBoard": "imported __board__", - "act-importCard": "imported __card__", - "act-importList": "imported __list__", - "act-joinMember": "added __member__ to __card__", - "act-moveCard": "moved __card__ from __oldList__ to __list__", - "act-removeBoardMember": "removed __member__ from __board__", - "act-restoredCard": "restored __card__ to __board__", - "act-unjoinMember": "removed __member__ from __card__", + "act-createBoard": "създаде __board__", + "act-createCard": "добави __card__ към __list__", + "act-createCustomField": "създаде собствено поле __customField__", + "act-createList": "добави __list__ към __board__", + "act-addBoardMember": "добави __member__ към __board__", + "act-archivedBoard": "__board__ беше преместен в Кошчето", + "act-archivedCard": "__card__ беше преместена в Кошчето", + "act-archivedList": "__list__ беше преместен в Кошчето", + "act-archivedSwimlane": "__swimlane__ беше преместен в Кошчето", + "act-importBoard": "импортира __board__", + "act-importCard": "импортира __card__", + "act-importList": "импортира __list__", + "act-joinMember": "добави __member__ към __card__", + "act-moveCard": "премести __card__ от __oldList__ в __list__", + "act-removeBoardMember": "премахна __member__ от __board__", + "act-restoredCard": "възстанови __card__ в __board__", + "act-unjoinMember": "премахна __member__ от __card__", "act-withBoardTitle": "[Wekan] __board__", "act-withCardTitle": "[__board__] __card__", "actions": "Actions", "activities": "Действия", "activity": "Дейности", "activity-added": "добави %s към %s", - "activity-archived": "%s moved to Recycle Bin", + "activity-archived": "премести %s в Кошчето", "activity-attached": "прикачи %s към %s", "activity-created": "създаде %s", + "activity-customfield-created": "създаде собствено поле %s", "activity-excluded": "изключи %s от %s", "activity-imported": "импортира %s в/във %s от %s", "activity-imported-board": "импортира %s от %s", - "activity-joined": "joined %s", + "activity-joined": "се присъедини към %s", "activity-moved": "премести %s от %s в/във %s", "activity-on": "на %s", "activity-removed": "премахна %s от %s", "activity-sent": "изпрати %s до %s", - "activity-unjoined": "unjoined %s", + "activity-unjoined": "вече не е част от %s", "activity-checklist-added": "добави списък със задачи към %s", "activity-checklist-item-added": "добави точка към '%s' в/във %s", "add": "Добави", @@ -58,29 +60,29 @@ "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", "admin-announcement": "Съобщение", "admin-announcement-active": "Active System-Wide Announcement", - "admin-announcement-title": "Announcement from Administrator", + "admin-announcement-title": "Съобщение от администратора", "all-boards": "Всички дъски", - "and-n-other-card": "And __count__ other card", - "and-n-other-card_plural": "And __count__ other cards", + "and-n-other-card": "И __count__ друга карта", + "and-n-other-card_plural": "И __count__ други карти", "apply": "Приложи", - "app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.", - "archive": "Move to Recycle Bin", - "archive-all": "Move All to Recycle Bin", - "archive-board": "Move Board to Recycle Bin", - "archive-card": "Move Card to Recycle Bin", - "archive-list": "Move List to Recycle Bin", - "archive-swimlane": "Move Swimlane to Recycle Bin", - "archive-selection": "Move selection to Recycle Bin", - "archiveBoardPopup-title": "Move Board to Recycle Bin?", - "archived-items": "Recycle Bin", - "archived-boards": "Boards in Recycle Bin", - "restore-board": "Restore Board", - "no-archived-boards": "No Boards in Recycle Bin.", - "archives": "Recycle Bin", - "assign-member": "Assign member", + "app-is-offline": "Wekan зарежда, моля изчакайте! Презареждането на страницата може да доведе до загуба на данни. Ако Wekan не се зареди, моля проверете дали сървъра му работи.", + "archive": "Премести в Кошчето", + "archive-all": "Премести всички в Кошчето", + "archive-board": "Премести Дъската в Кошчето", + "archive-card": "Премести Картата в Кошчето", + "archive-list": "Премести Списъка в Кошчето", + "archive-swimlane": "Премести Коридора в Кошчето", + "archive-selection": "Премести избраните в Кошчето", + "archiveBoardPopup-title": "Сигурни ли сте, че искате да преместите Дъската в Кошчето?", + "archived-items": "Кошче", + "archived-boards": "Дъски в Кошчето", + "restore-board": "Възстанови Дъската", + "no-archived-boards": "Няма Дъски в Кошчето.", + "archives": "Кошче", + "assign-member": "Възложи на член от екипа", "attached": "прикачен", "attachment": "Прикаченн файл", - "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachment-delete-pop": "Изтриването на прикачен файл е завинаги. Няма как да бъде възстановен.", "attachmentDeletePopup-title": "Желаете ли да изтриете прикачения файл?", "attachments": "Прикачени файлове", "auto-watch": "Автоматично наблюдаване на дъските, когато са създадени", @@ -88,36 +90,39 @@ "back": "Назад", "board-change-color": "Промени цвета", "board-nb-stars": "%s звезди", - "board-not-found": "Board not found", + "board-not-found": "Дъската не е намерена", "board-private-info": "This board will be <strong>private</strong>.", "board-public-info": "This board will be <strong>public</strong>.", "boardChangeColorPopup-title": "Change Board Background", - "boardChangeTitlePopup-title": "Rename Board", + "boardChangeTitlePopup-title": "Промени името на Дъската", "boardChangeVisibilityPopup-title": "Change Visibility", "boardChangeWatchPopup-title": "Промени наблюдаването", - "boardMenuPopup-title": "Board Menu", + "boardMenuPopup-title": "Меню на Дъската", "boards": "Дъски", "board-view": "Board View", "board-view-swimlanes": "Коридори", "board-view-lists": "Списъци", "bucket-example": "Like “Bucket List” for example", "cancel": "Cancel", - "card-archived": "This card is moved to Recycle Bin.", + "card-archived": "Картата е преместена в Кошчето.", "card-comments-title": "Тази карта има %s коментар.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Готова за", "card-due-on": "Готова за", "card-spent": "Изработено време", "card-edit-attachments": "Промени прикачените файлове", + "card-edit-custom-fields": "Промени собствените полета", "card-edit-labels": "Промени етикетите", "card-edit-members": "Промени членовете", - "card-labels-title": "Променете етикетите за тази карта", - "card-members-title": "Add or remove members of the board from the card.", + "card-labels-title": "Промени етикетите за картата.", + "card-members-title": "Добави или премахни членове на Дъската от тази карта.", "card-start": "Начало", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", + "card-start-on": "Започва на", + "cardAttachmentsPopup-title": "Прикачи от", + "cardCustomField-datePopup-title": "Промени датата", + "cardCustomFieldsPopup-title": "Промени собствените полета", "cardDeletePopup-title": "Желаете да изтриете картата?", "cardDetailsActionsPopup-title": "Опции", "cardLabelsPopup-title": "Етикети", @@ -125,7 +130,7 @@ "cardMorePopup-title": "Още", "cards": "Карти", "cards-count": "Карти", - "change": "Change", + "change": "Промени", "change-avatar": "Промени аватара", "change-password": "Промени паролата", "change-permissions": "Change permissions", @@ -138,26 +143,26 @@ "checklists": "Списъци със задачи", "click-to-star": "Click to star this board.", "click-to-unstar": "Натиснете, за да премахнете тази дъска от любими.", - "clipboard": "Clipboard or drag & drop", - "close": "Close", - "close-board": "Close Board", + "clipboard": "Клипборда или с драг & дроп", + "close": "Затвори", + "close-board": "Затвори Дъската", "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", - "color-black": "black", - "color-blue": "blue", - "color-green": "green", - "color-lime": "lime", - "color-orange": "orange", - "color-pink": "pink", - "color-purple": "purple", - "color-red": "red", - "color-sky": "sky", - "color-yellow": "yellow", + "color-black": "черно", + "color-blue": "синьо", + "color-green": "зелено", + "color-lime": "лайм", + "color-orange": "оранжево", + "color-pink": "розово", + "color-purple": "пурпурно", + "color-red": "червено", + "color-sky": "светло синьо", + "color-yellow": "жълто", "comment": "Коментирай", "comment-placeholder": "Напиши коментар", "comment-only": "Само коментар", "comment-only-desc": "Може да коментира само в карти.", - "computer": "Computer", - "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", + "computer": "Компютър", + "confirm-checklist-delete-dialog": "Сигурни ли сте, че искате да изтриете този чеклист?", "copy-card-link-to-clipboard": "Копирай връзката на картата в клипборда", "copyCardPopup-title": "Копирай картата", "copyChecklistToManyCardsPopup-title": "Копирай шаблона за чеклисти в много карти", @@ -167,31 +172,46 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Чекбокс", + "custom-field-date": "Дата", + "custom-field-dropdown": "Падащо меню", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Номер", + "custom-field-text": "Текст", + "custom-fields": "Собствени полета", "date": "Дата", - "decline": "Decline", + "decline": "Отказ", "default-avatar": "Основен аватар", "delete": "Изтрий", + "deleteCustomFieldPopup-title": "Изтриване на Собственото поле?", "deleteLabelPopup-title": "Желаете да изтриете етикета?", "description": "Описание", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", - "discard": "Discard", - "done": "Done", + "discard": "Отказ", + "done": "Готово", "download": "Сваляне", "edit": "Промени", "edit-avatar": "Промени аватара", "edit-profile": "Промяна на профила", "edit-wip-limit": "Промени WIP лимита", - "soft-wip-limit": "Soft WIP Limit", + "soft-wip-limit": "\"Мек\" WIP лимит", "editCardStartDatePopup-title": "Промени началната дата", "editCardDueDatePopup-title": "Промени датата за готовност", + "editCustomFieldPopup-title": "Промени Полето", "editCardSpentTimePopup-title": "Промени изработеното време", - "editLabelPopup-title": "Change Label", + "editLabelPopup-title": "Промяна на Етикета", "editNotificationPopup-title": "Промени известията", "editProfilePopup-title": "Промяна на профила", "email": "Имейл", - "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-subject": "Ваш профил беше създаден на __siteName__", "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", "email-fail": "Неуспешно изпращане на имейла", "email-fail-text": "Възникна грешка при изпращането на имейла", @@ -204,7 +224,7 @@ "email-sent": "Имейлът е изпратен", "email-verifyEmail-subject": "Verify your email address on __siteName__", "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", - "enable-wip-limit": "Enable WIP Limit", + "enable-wip-limit": "Включи WIP лимита", "error-board-doesNotExist": "This board does not exist", "error-board-notAdmin": "You need to be admin of this board to do that", "error-board-notAMember": "You need to be a member of this board to do that", @@ -220,16 +240,19 @@ "filter": "Филтър", "filter-cards": "Филтрирай картите", "filter-clear": "Премахване на филтрите", - "filter-no-label": "No label", - "filter-no-member": "No member", + "filter-no-label": "без етикет", + "filter-no-member": "без член", + "filter-no-custom-fields": "Няма Собствени полета", "filter-on": "Има приложени филтри", "filter-on-desc": "В момента филтрирате картите в тази дъска. Моля, натиснете тук, за да промените филтъра.", "filter-to-selection": "Филтрирай избраните", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Име", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Скриване на системните съобщения", "headerBarCreateBoardPopup-title": "Create Board", - "home": "Home", + "home": "Начало", "import": "Import", "import-board": "import board", "import-board-c": "Import board", @@ -245,13 +268,13 @@ "import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users", "import-show-user-mapping": "Review members mapping", "import-user-select": "Pick the Wekan user you want to use as this member", - "importMapMembersAddPopup-title": "Select Wekan member", + "importMapMembersAddPopup-title": "Избери Wekan член", "info": "Версия", "initials": "Инициали", "invalid-date": "Невалидна дата", "invalid-time": "Невалиден час", "invalid-user": "Невалиден потребител", - "joined": "joined", + "joined": "присъедини ", "just-invited": "You are just invited to this board", "keyboard-shortcuts": "Keyboard shortcuts", "label-create": "Създай етикет", @@ -264,17 +287,17 @@ "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": "Връзка към тази карта", - "list-archive-cards": "Move all cards in this list to Recycle Bin", + "list-archive-cards": "Премести всички карти от този списък в Кошчето", "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.", "list-move-cards": "Премести всички карти в този списък", "list-select-cards": "Избери всички карти в този списък", "listActionPopup-title": "List Actions", "swimlaneActionPopup-title": "Swimlane Actions", - "listImportCardPopup-title": "Import a Trello card", + "listImportCardPopup-title": "Импорт на карта от Trello", "listMorePopup-title": "Още", "link-list": "Връзка към този списък", "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", - "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.", + "list-delete-suggest-archive": "Можете да преместите списък в Кошчето, за да го премахнете от Дъската и запазите активността.", "lists": "Списъци", "swimlanes": "Коридори", "log-out": "Изход", @@ -294,9 +317,9 @@ "muted-info": "You will never be notified of any changes in this board", "my-boards": "Моите дъски", "name": "Име", - "no-archived-cards": "No cards in Recycle Bin.", - "no-archived-lists": "No lists in Recycle Bin.", - "no-archived-swimlanes": "No swimlanes in Recycle Bin.", + "no-archived-cards": "Няма карти в Кошчето.", + "no-archived-lists": "Няма списъци в Кошчето.", + "no-archived-swimlanes": "Няма коридори в Кошчето.", "no-results": "No results", "normal": "Normal", "normal-desc": "Can view and edit cards. Can't change settings.", @@ -323,12 +346,12 @@ "remove-from-board": "Remove from Board", "remove-label": "Remove Label", "listDeletePopup-title": "Желаете да изтриете списъка?", - "remove-member": "Remove Member", - "remove-member-from-card": "Remove from Card", + "remove-member": "Премахни член", + "remove-member-from-card": "Премахни от картата", "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", "removeMemberPopup-title": "Remove Member?", "rename": "Rename", - "rename-board": "Rename Board", + "rename-board": "Промени името на Дъската", "restore": "Възстанови", "save": "Запази", "search": "Търсене", @@ -336,8 +359,8 @@ "search-example": "Text to search for?", "select-color": "Избери цвят", "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", - "setWipLimitPopup-title": "Set WIP Limit", - "shortcut-assign-self": "Assign yourself to current card", + "setWipLimitPopup-title": "Въведи WIP лимит", + "shortcut-assign-self": "Добави себе си към тази карта", "shortcut-autocomplete-emoji": "Autocomplete emoji", "shortcut-autocomplete-members": "Autocomplete members", "shortcut-clear-filters": "Изчистване на всички филтри", @@ -356,7 +379,7 @@ "subscribe": "Subscribe", "team": "Team", "this-board": "this board", - "this-card": "тази карта", + "this-card": "картата", "spent-time-hours": "Изработено време (часа)", "overtime-hours": "Оувъртайм (часа)", "overtime": "Оувъртайм", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Следене", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Спри наблюдаването", @@ -374,7 +398,7 @@ "uploaded-avatar": "Качихте аватар", "username": "Потребителско име", "view-it": "View it", - "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "warn-list-archived": "внимание: тази карта е в списък, който е в Кошчето", "watch": "Наблюдавай", "watching": "Наблюдава", "watching-info": "You will be notified of any change in this board", @@ -383,9 +407,9 @@ "welcome-list1": "Basics", "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", - "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-title": "Невалиден WIP лимит", "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", - "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "wipLimitErrorPopup-dialog-pt2": "Моля, преместете някои от задачите от този списък или въведете по-висок WIP лимит.", "admin-panel": "Администраторски панел", "settings": "Настройки", "people": "Хора", @@ -430,6 +454,7 @@ "hours": "часа", "minutes": "минути", "seconds": "секунди", + "show-field-on-card": "Покажи това поле в картата", "yes": "Да", "no": "Не", "accounts": "Профили", @@ -438,10 +463,16 @@ "createdAt": "Създаден на", "verified": "Потвърден", "active": "Активен", - "card-received": "Received", - "card-received-on": "Received on", - "card-end": "End", - "card-end-on": "Ends on", - "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "card-received": "Получена", + "card-received-on": "Получена на", + "card-end": "Завършена", + "card-end-on": "Завършена на", + "editCardReceivedDatePopup-title": "Промени датата на получаване", + "editCardEndDatePopup-title": "Промени датата на завършване", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index 817615bf..3d424578 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "%s liammet ouzh %s", "activity-created": "%s krouet", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "%s enporzhiet eus %s da %s", "activity-imported-board": "%s enporzhiet da %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Diverkañ ar gartenn ?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Diverkañ", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 02e07af8..249056aa 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "comentat a __card__: __comment__", "act-createBoard": "creat __board__", "act-createCard": "afegit/da __card__ a __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "afegit/da __list__ a __board__", "act-addBoardMember": "afegit/da __member__ a __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "ha adjuntat %s a %s", "activity-created": "ha creat %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "ha exclòs %s de %s", "activity-imported": "importat %s dins %s des de %s", "activity-imported-board": "importat %s des de %s", @@ -106,11 +108,12 @@ "card-comments-title": "Aquesta fitxa té %s comentaris.", "card-delete-notice": "L'esborrat és permanent. Perdreu totes les accions associades a aquesta fitxa.", "card-delete-pop": "Totes les accions s'eliminaran de l'activitat i no podreu tornar a obrir la fitxa. No es pot desfer.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Finalitza", "card-due-on": "Finalitza a", "card-spent": "Temps Dedicat", "card-edit-attachments": "Edita arxius adjunts", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edita etiquetes", "card-edit-members": "Edita membres", "card-labels-title": "Canvia les etiquetes de la fitxa", @@ -118,6 +121,8 @@ "card-start": "Comença", "card-start-on": "Comença a", "cardAttachmentsPopup-title": "Adjunta des de", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Esborrar fitxa?", "cardDetailsActionsPopup-title": "Accions de fitxes", "cardLabelsPopup-title": "Etiquetes", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Crea tauler", "chooseBoardSourcePopup-title": "Importa Tauler", "createLabelPopup-title": "Crea etiqueta", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "Actual", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Data", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Data", "decline": "Declina", "default-avatar": "Avatar per defecte", "delete": "Esborra", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Esborra etiqueta", "description": "Descripció", "disambiguateMultiLabelPopup-title": "Desfe l'ambigüitat en les etiquetes", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Canvia data d'inici", "editCardDueDatePopup-title": "Canvia data de finalització", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Canvia temps dedicat", "editLabelPopup-title": "Canvia etiqueta", "editNotificationPopup-title": "Edita la notificació", @@ -222,9 +242,12 @@ "filter-clear": "Elimina filtre", "filter-no-label": "Sense etiqueta", "filter-no-member": "Sense membres", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filtra per", "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.", "filter-to-selection": "Filtra selecció", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Nom complet", "header-logo-title": "Torna a la teva pàgina de taulers", "hide-system-messages": "Oculta missatges del sistema", @@ -366,6 +389,7 @@ "title": "Títol", "tracking": "En seguiment", "tracking-info": "Seràs notificat per cada canvi a aquelles fitxes de les que n'eres creador o membre", + "type": "Type", "unassign-member": "Desassignar membre", "unsaved-description": "Tens una descripció sense desar.", "unwatch": "Suprimeix observació", @@ -430,6 +454,7 @@ "hours": "hores", "minutes": "minuts", "seconds": "segons", + "show-field-on-card": "Show this field on card", "yes": "Si", "no": "No", "accounts": "Comptes", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index 09c6f4e6..97e02e06 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "komentář k __card__: __comment__", "act-createBoard": "přidání __board__", "act-createCard": "přidání __card__ do __list__", + "act-createCustomField": "vytvořeno vlastní pole __customField__", "act-createList": "přidání __list__ do __board__", "act-addBoardMember": "přidání __member__ do __board__", "act-archivedBoard": "__board__ bylo přesunuto do koše", @@ -30,6 +31,7 @@ "activity-archived": "%s bylo přesunuto do koše", "activity-attached": "přiloženo %s k %s", "activity-created": "%s vytvořeno", + "activity-customfield-created": "vytvořeno vlastní pole %s", "activity-excluded": "%s vyjmuto z %s", "activity-imported": "importován %s do %s z %s", "activity-imported-board": "importován %s z %s", @@ -111,6 +113,7 @@ "card-due-on": "Do", "card-spent": "Strávený čas", "card-edit-attachments": "Upravit přílohy", + "card-edit-custom-fields": "Upravit vlastní pole", "card-edit-labels": "Upravit štítky", "card-edit-members": "Upravit členy", "card-labels-title": "Změnit štítky karty.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Začít dne", "cardAttachmentsPopup-title": "Přiložit formulář", + "cardCustomField-datePopup-title": "Změnit datum", + "cardCustomFieldsPopup-title": "Upravit vlastní pole", "cardDeletePopup-title": "Smazat kartu?", "cardDetailsActionsPopup-title": "Akce karty", "cardLabelsPopup-title": "Štítky", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Vytvořit tablo", "chooseBoardSourcePopup-title": "Importovat tablo", "createLabelPopup-title": "Vytvořit štítek", + "createCustomField": "Vytvořit pole", + "createCustomFieldPopup-title": "Vytvořit pole", "current": "Aktuální", + "custom-field-delete-pop": "Nelze vrátit zpět. Toto odebere toto vlastní pole ze všech karet a zničí jeho historii.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Datum", + "custom-field-dropdown": "Rozbalovací seznam", + "custom-field-dropdown-none": "(prázdné)", + "custom-field-dropdown-options": "Seznam možností", + "custom-field-dropdown-options-placeholder": "Stiskněte enter pro přidání více možností", + "custom-field-dropdown-unknown": "(neznámé)", + "custom-field-number": "Číslo", + "custom-field-text": "Text", + "custom-fields": "Vlastní pole", "date": "Datum", "decline": "Zamítnout", "default-avatar": "Výchozí avatar", "delete": "Smazat", + "deleteCustomFieldPopup-title": "Smazat vlastní pole", "deleteLabelPopup-title": "Smazat štítek?", "description": "Popis", "disambiguateMultiLabelPopup-title": "Dvojznačný štítek akce", @@ -186,6 +205,7 @@ "soft-wip-limit": "Mírný WIP limit", "editCardStartDatePopup-title": "Změnit datum startu úkolu", "editCardDueDatePopup-title": "Změnit datum dokončení úkolu", + "editCustomFieldPopup-title": "Upravit pole", "editCardSpentTimePopup-title": "Změnit strávený čas", "editLabelPopup-title": "Změnit štítek", "editNotificationPopup-title": "Změnit notifikace", @@ -222,9 +242,12 @@ "filter-clear": "Vyčistit filtr", "filter-no-label": "Žádný štítek", "filter-no-member": "Žádný člen", + "filter-no-custom-fields": "Žádné vlastní pole", "filter-on": "Filtr je zapnut", "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.", "filter-to-selection": "Filtrovat výběr", + "advanced-filter-label": "Pokročilý filtr", + "advanced-filter-description": "Pokročilý filtr dovoluje zapsat řetězec následujících operátorů: == != <= >= && || () Operátory jsou odděleny mezerou. Můžete filtrovat všechny vlastní pole zadáním jejich názvů nebo hodnot. Například: Pole1 == Hodnota1. Poznámka: Pokud pole nebo hodnoty obsahují mezery, je potřeba je obalit v jednoduchých uvozovkách. Například: 'Pole 1' == 'Hodnota 1'. Můžete také kombinovat více podmínek. Například P1 == H1 || P1 == H2. Obvykle jsou operátory interpretovány zleva doprava. Jejich pořadí můžete měnit pomocí závorek. Například: P1 == H1 && (P2 == H2 || P2 == H3 )", "fullname": "Celé jméno", "header-logo-title": "Jit zpět na stránku s tably.", "hide-system-messages": "Skrýt systémové zprávy", @@ -366,6 +389,7 @@ "title": "Název", "tracking": "Pozorující", "tracking-info": "Budete informováni o všech změnách v kartách, u kterých jste tvůrce nebo člen.", + "type": "Typ", "unassign-member": "Vyřadit člena", "unsaved-description": "Popis neni uložen.", "unwatch": "Přestat sledovat", @@ -430,6 +454,7 @@ "hours": "hodin", "minutes": "minut", "seconds": "sekund", + "show-field-on-card": "Ukázat toto pole na kartě", "yes": "Ano", "no": "Ne", "accounts": "Účty", @@ -443,5 +468,11 @@ "card-end": "Konec", "card-end-on": "Končí v", "editCardReceivedDatePopup-title": "Změnit datum přijetí", - "editCardEndDatePopup-title": "Změnit datum konce" + "editCardEndDatePopup-title": "Změnit datum konce", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Smazat tablo?", + "delete-board": "Smazat tablo" }
\ No newline at end of file diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index ee508a2c..fffcd205 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -2,11 +2,12 @@ "accept": "Akzeptieren", "act-activity-notify": "[Wekan] Aktivitätsbenachrichtigung", "act-addAttachment": "hat __attachment__ an __card__ angehängt", - "act-addChecklist": "hat die Checklist __checklist__ zu __card__ hinzugefügt", + "act-addChecklist": "hat die Checkliste __checklist__ zu __card__ hinzugefügt", "act-addChecklistItem": "hat __checklistItem__ zur Checkliste __checklist__ in __card__ hinzugefügt", "act-addComment": "hat __card__ kommentiert: __comment__", "act-createBoard": "hat __board__ erstellt", "act-createCard": "hat __card__ zu __list__ hinzugefügt", + "act-createCustomField": "benutzerdefiniertes Feld __customField__ angelegt", "act-createList": "hat __list__ zu __board__ hinzugefügt", "act-addBoardMember": "hat __member__ zu __board__ hinzugefügt", "act-archivedBoard": "__board__ in den Papierkorb verschoben", @@ -27,9 +28,10 @@ "activities": "Aktivitäten", "activity": "Aktivität", "activity-added": "hat %s zu %s hinzugefügt", - "activity-archived": "%s in den Papierkorb verschoben", + "activity-archived": "hat %s in den Papierkorb verschoben", "activity-attached": "hat %s an %s angehängt", "activity-created": "hat %s erstellt", + "activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt", "activity-excluded": "hat %s von %s ausgeschlossen", "activity-imported": "hat %s in %s von %s importiert", "activity-imported-board": "hat %s von %s importiert", @@ -40,14 +42,14 @@ "activity-sent": "hat %s an %s gesendet", "activity-unjoined": "hat %s verlassen", "activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt", - "activity-checklist-item-added": "hat einen Punkt zur Checkliste '%s' in %s hinzugefügt", + "activity-checklist-item-added": "hat eine Checklistenposition zu '%s' in %s hinzugefügt", "add": "Hinzufügen", "add-attachment": "Datei anhängen", "add-board": "neues Board", "add-card": "Karte hinzufügen", "add-swimlane": "Swimlane hinzufügen", "add-checklist": "Checkliste hinzufügen", - "add-checklist-item": "Punkt zu einer Checkliste hinzufügen", + "add-checklist-item": "Position zu einer Checkliste hinzufügen", "add-cover": "Cover hinzufügen", "add-label": "Label hinzufügen", "add-list": "Liste hinzufügen", @@ -111,6 +113,7 @@ "card-due-on": "Fällig am", "card-spent": "Aufgewendete Zeit", "card-edit-attachments": "Anhänge ändern", + "card-edit-custom-fields": "Benutzerdefinierte Felder editieren", "card-edit-labels": "Labels ändern", "card-edit-members": "Mitglieder ändern", "card-labels-title": "Labels für diese Karte ändern.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Start am", "cardAttachmentsPopup-title": "Anhängen von", + "cardCustomField-datePopup-title": "Datum ändern", + "cardCustomFieldsPopup-title": "Benutzerdefinierte Felder editieren", "cardDeletePopup-title": "Karte löschen?", "cardDetailsActionsPopup-title": "Kartenaktionen", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Board erstellen", "chooseBoardSourcePopup-title": "Board importieren", "createLabelPopup-title": "Label erstellen", + "createCustomField": "Feld erstellen", + "createCustomFieldPopup-title": "Feld erstellen", "current": "aktuell", + "custom-field-delete-pop": "Dies wird das Feld aus allen Karten entfernen und den dazugehörigen Verlauf löschen. Die Aktion kann nicht rückgängig gemacht werden.", + "custom-field-checkbox": "Kontrollkästchen", + "custom-field-date": "Datum", + "custom-field-dropdown": "Dropdownliste", + "custom-field-dropdown-none": "(keiner)", + "custom-field-dropdown-options": "Listenoptionen", + "custom-field-dropdown-options-placeholder": "Drücken Sie die Eingabetaste, um weitere Optionen hinzuzufügen", + "custom-field-dropdown-unknown": "(unbekannt)", + "custom-field-number": "Zahl", + "custom-field-text": "Text", + "custom-fields": "Benutzerdefinierte Felder", "date": "Datum", "decline": "Ablehnen", "default-avatar": "Standard Profilbild", "delete": "Löschen", + "deleteCustomFieldPopup-title": "Benutzerdefiniertes Feld löschen?", "deleteLabelPopup-title": "Label löschen?", "description": "Beschreibung", "disambiguateMultiLabelPopup-title": "Labels vereinheitlichen", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP-Limit", "editCardStartDatePopup-title": "Startdatum ändern", "editCardDueDatePopup-title": "Fälligkeitsdatum ändern", + "editCustomFieldPopup-title": "Feld bearbeiten", "editCardSpentTimePopup-title": "Aufgewendete Zeit ändern", "editLabelPopup-title": "Label ändern", "editNotificationPopup-title": "Benachrichtigung ändern", @@ -222,9 +242,12 @@ "filter-clear": "Filter entfernen", "filter-no-label": "Kein Label", "filter-no-member": "Kein Mitglied", + "filter-no-custom-fields": "Keine benutzerdefinierten Felder", "filter-on": "Filter ist aktiv", "filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken Sie, um den Filter zu bearbeiten.", "filter-to-selection": "Ergebnisse auswählen", + "advanced-filter-label": "Erweiterter Filter", + "advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Beachten Sie: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 )", "fullname": "Vollständiger Name", "header-logo-title": "Zurück zur Board Seite.", "hide-system-messages": "Systemmeldungen ausblenden", @@ -355,7 +378,7 @@ "starred-boards-description": "Markierte Boards erscheinen oben in ihrer Boardliste.", "subscribe": "Abonnieren", "team": "Team", - "this-board": "dieses Board", + "this-board": "diesem Board", "this-card": "diese Karte", "spent-time-hours": "Aufgewendete Zeit (Stunden)", "overtime-hours": "Mehrarbeit (Stunden)", @@ -366,6 +389,7 @@ "title": "Titel", "tracking": "Folgen", "tracking-info": "Sie werden über alle Änderungen an Karten benachrichtigt, an denen Sie als Ersteller oder Mitglied beteiligt sind.", + "type": "Typ", "unassign-member": "Mitglied entfernen", "unsaved-description": "Sie haben eine nicht gespeicherte Änderung.", "unwatch": "Beobachtung entfernen", @@ -430,6 +454,7 @@ "hours": "Stunden", "minutes": "Minuten", "seconds": "Sekunden", + "show-field-on-card": "Zeige dieses Feld auf der Karte", "yes": "Ja", "no": "Nein", "accounts": "Konten", @@ -443,5 +468,11 @@ "card-end": "Ende", "card-end-on": "Endet am", "editCardReceivedDatePopup-title": "Empfangsdatum ändern", - "editCardEndDatePopup-title": "Enddatum ändern" + "editCardEndDatePopup-title": "Enddatum ändern", + "assigned-by": "Zugewiesen von", + "requested-by": "Angefordert von", + "board-delete-notice": "Löschen kann nicht rückgängig gemacht werden. Sie werden alle Listen, Karten und Aktionen, die mit diesem Board verbunden sind, verlieren.", + "delete-board-confirm-popup": "Alle Listen, Karten, Labels und Akivitäten werden gelöscht und Sie können die Inhalte des Boards nicht wiederherstellen! Die Aktion kann nicht rückgängig gemacht werden.", + "boardDeletePopup-title": "Board löschen?", + "delete-board": "Board löschen" }
\ No newline at end of file diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json index 0befbe1f..f863b23a 100644 --- a/i18n/el.i18n.json +++ b/i18n/el.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Έως", "card-due-on": "Έως τις", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Διαγραφή Κάρτας;", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Ετικέτες", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Ημερομηνία", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Ημερομηνία", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Διαγραφή", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "Κανένα μέλος", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Πλήρες Όνομα", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Τίτλος", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "ώρες", "minutes": "λεπτά", "seconds": "δευτερόλεπτα", + "show-field-on-card": "Show this field on card", "yes": "Ναι", "no": "Όχι", "accounts": "Λογαριασμοί", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json index d9b4c0f9..44140081 100644 --- a/i18n/en-GB.i18n.json +++ b/i18n/en-GB.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card to the Recycle Bin to remove it from the board and preserve its activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 6006a078..cd74b6ac 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -108,7 +108,7 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", @@ -242,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -465,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" } diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json index 5b783648..df268772 100644 --- a/i18n/eo.i18n.json +++ b/i18n/eo.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "Kreiis __board__", "act-createCard": "Aldonis __card__ al __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "Aldonis __card__ al __board__", "act-addBoardMember": "Aldonis __member__ al __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "Kreiis %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Redakti etikedojn", "card-edit-members": "Redakti membrojn", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Komenco", "card-start-on": "Komencas je la", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Etikedoj", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Krei tavolon", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Dato", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Dato", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Redakti komencdaton", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Ŝanĝi etikedon", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "Nenia etikedo", "filter-no-member": "Nenia membro", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Titolo", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json index d450d000..5262568f 100644 --- a/i18n/es-AR.i18n.json +++ b/i18n/es-AR.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "comentado en __card__: __comment__", "act-createBoard": "__board__ creado", "act-createCard": "agregada __card__ a __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "agregada __list__ a __board__", "act-addBoardMember": "agregado __member__ a __board__", "act-archivedBoard": "__board__ movido a Papelera de Reciclaje", @@ -30,6 +31,7 @@ "activity-archived": "%s movido a Papelera de Reciclaje", "activity-attached": "adjuntadas %s a %s", "activity-created": "creadas %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluidas %s de %s", "activity-imported": "importadas %s en %s de %s", "activity-imported-board": "importadas %s de %s", @@ -111,6 +113,7 @@ "card-due-on": "Vence en", "card-spent": "Tiempo Empleado", "card-edit-attachments": "Editar adjuntos", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Editar etiquetas", "card-edit-members": "Editar miembros", "card-labels-title": "Cambiar las etiquetas de la tarjeta.", @@ -118,6 +121,8 @@ "card-start": "Empieza", "card-start-on": "Empieza el", "cardAttachmentsPopup-title": "Adjuntar De", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "¿Borrar Tarjeta?", "cardDetailsActionsPopup-title": "Acciones de la Tarjeta", "cardLabelsPopup-title": "Etiquetas", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Crear Tablero", "chooseBoardSourcePopup-title": "Importar tablero", "createLabelPopup-title": "Crear Etiqueta", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "actual", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Fecha", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Fecha", "decline": "Rechazar", "default-avatar": "Avatar por defecto", "delete": "Borrar", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "¿Borrar Etiqueta?", "description": "Descripción", "disambiguateMultiLabelPopup-title": "Desambiguación de Acción de Etiqueta", @@ -186,6 +205,7 @@ "soft-wip-limit": "Límite TEP suave", "editCardStartDatePopup-title": "Cambiar fecha de inicio", "editCardDueDatePopup-title": "Cambiar fecha de vencimiento", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Cambiar tiempo empleado", "editLabelPopup-title": "Cambiar Etiqueta", "editNotificationPopup-title": "Editar Notificación", @@ -222,9 +242,12 @@ "filter-clear": "Sacar filtro", "filter-no-label": "Sin etiqueta", "filter-no-member": "No es miembro", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "El filtro está activado", "filter-on-desc": "Estás filtrando cartas en este tablero. Clickeá acá para editar el filtro.", "filter-to-selection": "Filtrar en la selección", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Nombre Completo", "header-logo-title": "Retroceder a tu página de tableros.", "hide-system-messages": "Esconder mensajes del sistema", @@ -366,6 +389,7 @@ "title": "Título", "tracking": "Seguimiento", "tracking-info": "Serás notificado de cualquier cambio a aquellas tarjetas en las que seas creador o miembro.", + "type": "Type", "unassign-member": "Desasignar miembro", "unsaved-description": "Tienes una descripción sin guardar.", "unwatch": "Dejar de seguir", @@ -430,6 +454,7 @@ "hours": "horas", "minutes": "minutos", "seconds": "segundos", + "show-field-on-card": "Show this field on card", "yes": "Si", "no": "No", "accounts": "Cuentas", @@ -443,5 +468,11 @@ "card-end": "Termino", "card-end-on": "Termina en", "editCardReceivedDatePopup-title": "Cambiar fecha de recepción", - "editCardEndDatePopup-title": "Cambiar fecha de término" + "editCardEndDatePopup-title": "Cambiar fecha de término", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 532c7df4..755094bb 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "ha comentado en __card__: __comment__", "act-createBoard": "ha creado __board__", "act-createCard": "ha añadido __card__ a __list__", + "act-createCustomField": "creado el campo personalizado __customField__", "act-createList": "ha añadido __list__ a __board__", "act-addBoardMember": "ha añadido a __member__ a __board__", "act-archivedBoard": "__board__ se ha enviado a la papelera de reciclaje", @@ -30,6 +31,7 @@ "activity-archived": "%s se ha enviado a la papelera de reciclaje", "activity-attached": "ha adjuntado %s a %s", "activity-created": "ha creado %s", + "activity-customfield-created": "creado el campo personalizado %s", "activity-excluded": "ha excluido %s de %s", "activity-imported": "ha importado %s a %s desde %s", "activity-imported-board": "ha importado %s desde %s", @@ -111,6 +113,7 @@ "card-due-on": "Vence el", "card-spent": "Tiempo consumido", "card-edit-attachments": "Editar los adjuntos", + "card-edit-custom-fields": "Editar los campos personalizados", "card-edit-labels": "Editar las etiquetas", "card-edit-members": "Editar los miembros", "card-labels-title": "Cambia las etiquetas de la tarjeta", @@ -118,6 +121,8 @@ "card-start": "Comienza", "card-start-on": "Comienza el", "cardAttachmentsPopup-title": "Adjuntar desde", + "cardCustomField-datePopup-title": "Cambiar la fecha", + "cardCustomFieldsPopup-title": "Editar los campos personalizados", "cardDeletePopup-title": "¿Eliminar la tarjeta?", "cardDetailsActionsPopup-title": "Acciones de la tarjeta", "cardLabelsPopup-title": "Etiquetas", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Crear tablero", "chooseBoardSourcePopup-title": "Importar un tablero", "createLabelPopup-title": "Crear etiqueta", + "createCustomField": "Crear un campo", + "createCustomFieldPopup-title": "Crear un campo", "current": "actual", + "custom-field-delete-pop": "Se eliminará este campo personalizado de todas las tarjetas y se destruirá su historial. Esta acción no puede deshacerse.", + "custom-field-checkbox": "Casilla de verificación", + "custom-field-date": "Fecha", + "custom-field-dropdown": "Lista desplegable", + "custom-field-dropdown-none": "(nada)", + "custom-field-dropdown-options": "Opciones de la lista", + "custom-field-dropdown-options-placeholder": "Pulsa Intro para añadir más opciones", + "custom-field-dropdown-unknown": "(desconocido)", + "custom-field-number": "Número", + "custom-field-text": "Texto", + "custom-fields": "Campos personalizados", "date": "Fecha", "decline": "Declinar", "default-avatar": "Avatar por defecto", "delete": "Eliminar", + "deleteCustomFieldPopup-title": "¿Borrar el campo personalizado?", "deleteLabelPopup-title": "¿Eliminar la etiqueta?", "description": "Descripción", "disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta", @@ -186,6 +205,7 @@ "soft-wip-limit": "Límite del trabajo en proceso flexible", "editCardStartDatePopup-title": "Cambiar la fecha de comienzo", "editCardDueDatePopup-title": "Cambiar la fecha de vencimiento", + "editCustomFieldPopup-title": "Editar el campo", "editCardSpentTimePopup-title": "Cambiar el tiempo consumido", "editLabelPopup-title": "Cambiar la etiqueta", "editNotificationPopup-title": "Editar las notificaciones", @@ -222,9 +242,12 @@ "filter-clear": "Limpiar el filtro", "filter-no-label": "Sin etiqueta", "filter-no-member": "Sin miembro", - "filter-on": "Filtro activado", + "filter-no-custom-fields": "Sin campos personalizados", + "filter-on": "Filtrado activado", "filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.", "filter-to-selection": "Filtrar la selección", + "advanced-filter-label": "Filtrado avanzado", + "advanced-filter-description": "El filtrado avanzado permite escribir una cadena que contiene los siguientes operadores: == != <= >= && || ( ) Se utiliza un espacio como separador entre los operadores. Se pueden filtrar todos los campos personalizados escribiendo sus nombres y valores. Por ejemplo: Campo1 == Valor1. Nota: Si los campos o valores contienen espacios, debe encapsularlos entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. También puedes combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 = V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Puede cambiar el orden colocando corchetes. Por ejemplo: C1 == V1 y ( C2 == V2 || C2 == V3 )", "fullname": "Nombre completo", "header-logo-title": "Volver a tu página de tableros", "hide-system-messages": "Ocultar las notificaciones de actividad", @@ -256,7 +279,7 @@ "keyboard-shortcuts": "Atajos de teclado", "label-create": "Crear una etiqueta", "label-default": "etiqueta %s (por defecto)", - "label-delete-pop": "Esto eliminará esta etiqueta de todas las tarjetas y destruirá su historial. Esta acción no puede deshacerse.", + "label-delete-pop": "Se eliminará esta etiqueta de todas las tarjetas y se destruirá su historial. Esta acción no puede deshacerse.", "labels": "Etiquetas", "language": "Cambiar el idioma", "last-admin-desc": "No puedes cambiar roles porque debe haber al menos un administrador.", @@ -366,6 +389,7 @@ "title": "Título", "tracking": "Siguiendo", "tracking-info": "Serás notificado de cualquier cambio en las tarjetas en las que participas como creador o miembro.", + "type": "Tipo", "unassign-member": "Desvincular al miembro", "unsaved-description": "Tienes una descripción por añadir.", "unwatch": "Dejar de vigilar", @@ -430,6 +454,7 @@ "hours": "horas", "minutes": "minutos", "seconds": "segundos", + "show-field-on-card": "Mostrar este campo en la tarjeta", "yes": "Sí", "no": "No", "accounts": "Cuentas", @@ -443,5 +468,11 @@ "card-end": "Finalizado", "card-end-on": "Finalizado el", "editCardReceivedDatePopup-title": "Cambiar la fecha de recepción", - "editCardEndDatePopup-title": "Cambiar la fecha de finalización" + "editCardEndDatePopup-title": "Cambiar la fecha de finalización", + "assigned-by": "Asignado por", + "requested-by": "Solicitado por", + "board-delete-notice": "Se eliminarán todas las listas, tarjetas y acciones asociadas a este tablero. Esta acción no puede deshacerse.", + "delete-board-confirm-popup": "Se eliminarán todas las listas, tarjetas, etiquetas y actividades, y no podrás recuperar los contenidos del tablero. Esta acción no puede deshacerse.", + "boardDeletePopup-title": "¿Borrar el tablero?", + "delete-board": "Borrar el tablero" }
\ No newline at end of file diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json index 025fddfb..51de292b 100644 --- a/i18n/eu.i18n.json +++ b/i18n/eu.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "__card__ txartelean iruzkina: __comment__", "act-createBoard": "__board__ sortuta", "act-createCard": "__card__ __list__ zerrrendara gehituta", + "act-createCustomField": "created custom field __customField__", "act-createList": "__list__ __board__ arbelera gehituta", "act-addBoardMember": "__member__ __board__ arbelera gehituta", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "%s %s(e)ra erantsita", "activity-created": "%s sortuta", + "activity-customfield-created": "created custom field %s", "activity-excluded": "%s %s(e)tik kanpo utzita", "activity-imported": "%s inportatuta %s(e)ra %s(e)tik", "activity-imported-board": "%s inportatuta %s(e)tik", @@ -106,11 +108,12 @@ "card-comments-title": "Txartel honek iruzkin %s dauka.", "card-delete-notice": "Ezabaketa behin betiko da. Txartel honi lotutako ekintza guztiak galduko dituzu.", "card-delete-pop": "Ekintza guztiak ekintza jariotik kenduko dira eta ezin izango duzu txartela berrireki. Ez dago desegiterik.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Epemuga", "card-due-on": "Epemuga", "card-spent": "Erabilitako denbora", "card-edit-attachments": "Editatu eranskinak", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Editatu etiketak", "card-edit-members": "Editatu kideak", "card-labels-title": "Aldatu txartelaren etiketak", @@ -118,6 +121,8 @@ "card-start": "Hasiera", "card-start-on": "Hasiera", "cardAttachmentsPopup-title": "Erantsi hemendik", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Ezabatu txartela?", "cardDetailsActionsPopup-title": "Txartel-ekintzak", "cardLabelsPopup-title": "Etiketak", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Sortu arbela", "chooseBoardSourcePopup-title": "Inportatu arbela", "createLabelPopup-title": "Sortu etiketa", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "unekoa", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Data", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Data", "decline": "Ukatu", "default-avatar": "Lehenetsitako avatarra", "delete": "Ezabatu", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Ezabatu etiketa?", "description": "Deskripzioa", "disambiguateMultiLabelPopup-title": "Argitu etiketaren ekintza", @@ -186,6 +205,7 @@ "soft-wip-limit": "WIP muga malgua", "editCardStartDatePopup-title": "Aldatu hasiera data", "editCardDueDatePopup-title": "Aldatu epemuga data", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Aldatu erabilitako denbora", "editLabelPopup-title": "Aldatu etiketa", "editNotificationPopup-title": "Editatu jakinarazpena", @@ -222,9 +242,12 @@ "filter-clear": "Garbitu iragazkia", "filter-no-label": "Etiketarik ez", "filter-no-member": "Kiderik ez", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Iragazkia gaituta dago", "filter-on-desc": "Arbel honetako txartela iragazten ari zara. Egin klik hemen iragazkia editatzeko.", "filter-to-selection": "Iragazketa aukerara", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Izen abizenak", "header-logo-title": "Itzuli zure arbelen orrira.", "hide-system-messages": "Ezkutatu sistemako mezuak", @@ -366,6 +389,7 @@ "title": "Izenburua", "tracking": "Jarraitzen", "tracking-info": "Sortzaile edo kide gisa parte-hartzen duzun txartelei egindako aldaketak jakinaraziko zaizkizu.", + "type": "Type", "unassign-member": "Kendu kidea", "unsaved-description": "Gorde gabeko deskripzio bat duzu", "unwatch": "Utzi ikuskatzeari", @@ -430,6 +454,7 @@ "hours": "ordu", "minutes": "minutu", "seconds": "segundo", + "show-field-on-card": "Show this field on card", "yes": "Bai", "no": "Ez", "accounts": "Kontuak", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index cf9e062f..69cb80d2 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -7,12 +7,13 @@ "act-addComment": "درج نظر برای __card__: __comment__", "act-createBoard": "__board__ ایجاد شد", "act-createCard": "__card__ به __list__ اضافه شد", + "act-createCustomField": "فیلد __customField__ ایجاد شد", "act-createList": "__list__ به __board__ اضافه شد", "act-addBoardMember": "__member__ به __board__ اضافه شد", - "act-archivedBoard": "__board__ moved to Recycle Bin", - "act-archivedCard": "__card__ moved to Recycle Bin", - "act-archivedList": "__list__ moved to Recycle Bin", - "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", + "act-archivedBoard": "__board__ به سطل زباله ریخته شد", + "act-archivedCard": "__card__ به سطل زباله منتقل شد", + "act-archivedList": "__list__ به سطل زباله منتقل شد", + "act-archivedSwimlane": "__swimlane__ به سطل زباله منتقل شد", "act-importBoard": "__board__ وارد شده", "act-importCard": "__card__ وارد شده", "act-importList": "__list__ وارد شده", @@ -27,9 +28,10 @@ "activities": "فعالیت ها", "activity": "فعالیت", "activity-added": "%s به %s اضافه شد", - "activity-archived": "%s moved to Recycle Bin", + "activity-archived": "%s به سطل زباله منتقل شد", "activity-attached": "%s به %s پیوست شد", "activity-created": "%s ایجاد شد", + "activity-customfield-created": "%s فیلدشخصی ایجاد شد", "activity-excluded": "%s از %s مستثنی گردید", "activity-imported": "%s از %s وارد %s شد", "activity-imported-board": "%s از %s وارد شد", @@ -64,19 +66,19 @@ "and-n-other-card_plural": "و __count__ کارت دیگر", "apply": "اعمال", "app-is-offline": "Wekan در حال بارگذاری است. لطفا صبر کنید. نوسازی صفحه، منجر به از دست رفتن دادهها میشود. اگر Wekan بارگذاری نشد، لطفا بررسی کنید که سرور Wekan متوقف نشده باشد.", - "archive": "Move to Recycle Bin", - "archive-all": "Move All to Recycle Bin", - "archive-board": "Move Board to Recycle Bin", - "archive-card": "Move Card to Recycle Bin", - "archive-list": "Move List to Recycle Bin", - "archive-swimlane": "Move Swimlane to Recycle Bin", - "archive-selection": "Move selection to Recycle Bin", - "archiveBoardPopup-title": "Move Board to Recycle Bin?", - "archived-items": "Recycle Bin", - "archived-boards": "Boards in Recycle Bin", + "archive": "ریختن به سطل زباله", + "archive-all": "ریختن همه به سطل زباله", + "archive-board": "ریختن تخته به سطل زباله", + "archive-card": "ریختن کارت به سطل زباله", + "archive-list": "ریختن لیست به سطل زباله", + "archive-swimlane": "ریختن مسیرشنا به سطل زباله", + "archive-selection": "انتخاب شده ها را به سطل زباله بریز", + "archiveBoardPopup-title": "آیا تخته به سطل زباله ریخته شود؟", + "archived-items": "سطل زباله", + "archived-boards": "تخته هایی که به زباله ریخته شده است", "restore-board": "بازیابی تخته", - "no-archived-boards": "No Boards in Recycle Bin.", - "archives": "Recycle Bin", + "no-archived-boards": "هیچ تخته ای در سطل زباله وجود ندارد", + "archives": "سطل زباله", "assign-member": "تعیین عضو", "attached": "ضمیمه شده", "attachment": "ضمیمه", @@ -102,15 +104,16 @@ "board-view-lists": "فهرستها", "bucket-example": "برای مثال چیزی شبیه \"لیست سبدها\"", "cancel": "انصراف", - "card-archived": "This card is moved to Recycle Bin.", + "card-archived": "این کارت به سطل زباله ریخته شده است", "card-comments-title": "این کارت دارای %s نظر است.", "card-delete-notice": "حذف دائمی. تمامی موارد مرتبط با این کارت از بین خواهند رفت.", "card-delete-pop": "همه اقدامات از این پردازه (خوراک) حذف خواهد شد و امکان بازگرداندن کارت وجود نخواهد داشت.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "ناشی از", "card-due-on": "مقتضی بر", "card-spent": "زمان صرف شده", "card-edit-attachments": "ویرایش ضمائم", + "card-edit-custom-fields": "ویرایش فیلدهای شخصی", "card-edit-labels": "ویرایش برچسب", "card-edit-members": "ویرایش اعضا", "card-labels-title": "تغییر برچسب کارت", @@ -118,6 +121,8 @@ "card-start": "شروع", "card-start-on": "شروع از", "cardAttachmentsPopup-title": "ضمیمه از", + "cardCustomField-datePopup-title": "تغییر تاریخ", + "cardCustomFieldsPopup-title": "ویرایش فیلدهای شخصی", "cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟", "cardDetailsActionsPopup-title": "اعمال کارت", "cardLabelsPopup-title": "برچسب ها", @@ -141,7 +146,7 @@ "clipboard": "ذخیره در حافظه ویا بردار-رهاکن", "close": "بستن", "close-board": "بستن برد", - "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", + "close-board-pop": "شما با کلیک روی دکمه \"سطل زباله\" در قسمت خانه می توانید تخته را بازیابی کنید.", "color-black": "مشکی", "color-blue": "آبی", "color-green": "سبز", @@ -167,11 +172,25 @@ "createBoardPopup-title": "ایجاد تخته", "chooseBoardSourcePopup-title": "بارگذاری تخته", "createLabelPopup-title": "ایجاد برچسب", + "createCustomField": "ایجاد فیلد", + "createCustomFieldPopup-title": "ایجاد فیلد", "current": "جاری", + "custom-field-delete-pop": "این اقدام فیلدشخصی را بهمراه تمامی تاریخچه آن از کارت ها پاک می کند و برگشت پذیر نمی باشد", + "custom-field-checkbox": "جعبه انتخابی", + "custom-field-date": "تاریخ", + "custom-field-dropdown": "لیست افتادنی", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "لیست امکانات", + "custom-field-dropdown-options-placeholder": "کلید Enter را جهت افزودن امکانات بیشتر فشار دهید", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "عدد", + "custom-field-text": "متن", + "custom-fields": "فیلدهای شخصی", "date": "تاریخ", "decline": "رد", "default-avatar": "تصویر پیش فرض", "delete": "حذف", + "deleteCustomFieldPopup-title": "آیا فیلدشخصی پاک شود؟", "deleteLabelPopup-title": "آیا می خواهید برچسب را حذف کنید؟", "description": "توضیحات", "disambiguateMultiLabelPopup-title": "عمل ابهام زدایی از برچسب", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "تغییر تاریخ آغاز", "editCardDueDatePopup-title": "تغییر تاریخ بدلیل", + "editCustomFieldPopup-title": "ویرایش فیلد", "editCardSpentTimePopup-title": "تغییر زمان صرف شده", "editLabelPopup-title": "تغیر برچسب", "editNotificationPopup-title": "اصلاح اعلان", @@ -222,9 +242,12 @@ "filter-clear": "حذف صافی ـFilterـ", "filter-no-label": "بدون برچسب", "filter-no-member": "بدون عضو", + "filter-no-custom-fields": "هیچ فیلدشخصی ای وجود ندارد", "filter-on": "صافی ـFilterـ فعال است", "filter-on-desc": "شما صافی ـFilterـ برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.", "filter-to-selection": "صافی ـFilterـ برای موارد انتخابی", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "نام و نام خانوادگی", "header-logo-title": "بازگشت به صفحه تخته.", "hide-system-messages": "عدم نمایش پیامهای سیستمی", @@ -366,6 +389,7 @@ "title": "عنوان", "tracking": "پیگردی", "tracking-info": "شما از هرگونه تغییر در کارتهایی که بعنوان ایجاد کننده ویا عضو آن هستید، آگاه خواهید شد", + "type": "Type", "unassign-member": "عدم انتصاب کاربر", "unsaved-description": "شما توضیحات ذخیره نشده دارید.", "unwatch": "عدم دیده بانی", @@ -430,6 +454,7 @@ "hours": "ساعت", "minutes": "دقیقه", "seconds": "ثانیه", + "show-field-on-card": "Show this field on card", "yes": "بله", "no": "خیر", "accounts": "حسابها", @@ -443,5 +468,11 @@ "card-end": "پایان", "card-end-on": "پایان در", "editCardReceivedDatePopup-title": "تغییر تاریخ رسید", - "editCardEndDatePopup-title": "تغییر تاریخ پایان" + "editCardEndDatePopup-title": "تغییر تاریخ پایان", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index a68831dc..d8db9f14 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "kommentoitu __card__: __comment__", "act-createBoard": "luotu __board__", "act-createCard": "lisätty __card__ listalle __list__", + "act-createCustomField": "luotu mukautettu kenttä __customField__", "act-createList": "lisätty __list__ taululle __board__", "act-addBoardMember": "lisätty __member__ taululle __board__", "act-archivedBoard": "__board__ siirretty roskakoriin", @@ -30,6 +31,7 @@ "activity-archived": "%s siirretty roskakoriin", "activity-attached": "liitetty %s kohteeseen %s", "activity-created": "luotu %s", + "activity-customfield-created": "luotu mukautettu kenttä %s", "activity-excluded": "poistettu %s kohteesta %s", "activity-imported": "tuotu %s kohteeseen %s lähteestä %s", "activity-imported-board": "tuotu %s lähteestä %s", @@ -111,6 +113,7 @@ "card-due-on": "Erääntyy", "card-spent": "Käytetty aika", "card-edit-attachments": "Muokkaa liitetiedostoja", + "card-edit-custom-fields": "Muokkaa mukautettuja kenttiä", "card-edit-labels": "Muokkaa tunnisteita", "card-edit-members": "Muokkaa jäseniä", "card-labels-title": "Muokkaa kortin tunnisteita.", @@ -118,6 +121,8 @@ "card-start": "Alkaa", "card-start-on": "Alkaa", "cardAttachmentsPopup-title": "Liitä mistä", + "cardCustomField-datePopup-title": "Muokkaa päivää", + "cardCustomFieldsPopup-title": "Muokkaa mukautettuja kenttiä", "cardDeletePopup-title": "Poista kortti?", "cardDetailsActionsPopup-title": "Kortti toimet", "cardLabelsPopup-title": "Tunnisteet", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Luo taulu", "chooseBoardSourcePopup-title": "Tuo taulu", "createLabelPopup-title": "Luo tunniste", + "createCustomField": "Luo kenttä", + "createCustomFieldPopup-title": "Luo kenttä", "current": "nykyinen", + "custom-field-delete-pop": "Tätä ei voi peruuttaa. Tämä poistaa tämän mukautetun kentän kaikista korteista ja poistaa sen historian.", + "custom-field-checkbox": "Valintaruutu", + "custom-field-date": "Päivämäärä", + "custom-field-dropdown": "Pudotusvalikko", + "custom-field-dropdown-none": "(ei mitään)", + "custom-field-dropdown-options": "Luettelon vaihtoehdot", + "custom-field-dropdown-options-placeholder": "Paina Enter lisätäksesi lisää vaihtoehtoja", + "custom-field-dropdown-unknown": "(tuntematon)", + "custom-field-number": "Numero", + "custom-field-text": "Teksti", + "custom-fields": "Mukautetut kentät", "date": "Päivämäärä", "decline": "Kieltäydy", "default-avatar": "Oletus profiilikuva", "delete": "Poista", + "deleteCustomFieldPopup-title": "Poista mukautettu kenttä?", "deleteLabelPopup-title": "Poista tunniste?", "description": "Kuvaus", "disambiguateMultiLabelPopup-title": "Yksikäsitteistä tunniste toiminta", @@ -186,6 +205,7 @@ "soft-wip-limit": "Pehmeä WIP raja", "editCardStartDatePopup-title": "Muokkaa aloituspäivää", "editCardDueDatePopup-title": "Muokkaa eräpäivää", + "editCustomFieldPopup-title": "Muokkaa kenttää", "editCardSpentTimePopup-title": "Muuta käytettyä aikaa", "editLabelPopup-title": "Muokkaa tunnistetta", "editNotificationPopup-title": "Muokkaa ilmoituksia", @@ -222,9 +242,12 @@ "filter-clear": "Poista suodatin", "filter-no-label": "Ei tunnistetta", "filter-no-member": "Ei jäseniä", + "filter-no-custom-fields": "Ei mukautettuja kenttiä", "filter-on": "Suodatus on päällä", "filter-on-desc": "Suodatat kortteja tällä taululla. Klikkaa tästä muokataksesi suodatinta.", "filter-to-selection": "Suodata valintaan", + "advanced-filter-label": "Edistynyt suodatin", + "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: ==! = <=> = && || () Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huomaa: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 = V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 ja (F2 == V2 || F2 == V3)", "fullname": "Koko nimi", "header-logo-title": "Palaa taulut sivullesi.", "hide-system-messages": "Piilota järjestelmäviestit", @@ -366,6 +389,7 @@ "title": "Otsikko", "tracking": "Ilmoitukset", "tracking-info": "Sinulle ilmoitetaan muutoksista korteissa joihin olet osallistunut luojana tai jäsenenä.", + "type": "Tyyppi", "unassign-member": "Peru jäsenvalinta", "unsaved-description": "Sinulla on tallentamaton kuvaus.", "unwatch": "Lopeta seuraaminen", @@ -430,6 +454,7 @@ "hours": "tuntia", "minutes": "minuuttia", "seconds": "sekuntia", + "show-field-on-card": "Näytä tämä kenttä kortilla", "yes": "Kyllä", "no": "Ei", "accounts": "Tilit", @@ -443,5 +468,11 @@ "card-end": "Loppuu", "card-end-on": "Loppuu", "editCardReceivedDatePopup-title": "Vaihda vastaanottamispäivää", - "editCardEndDatePopup-title": "Vaihda loppumispäivää" + "editCardEndDatePopup-title": "Vaihda loppumispäivää", + "assigned-by": "Tehtävänantaja", + "requested-by": "Pyytäjä", + "board-delete-notice": "Poistaminen on lopullista. Menetät kaikki listat, kortit ja toimet tällä taululla.", + "delete-board-confirm-popup": "Kaikki listat, kortit, tunnisteet ja toimet poistetaan ja et pysty palauttamaan taulun sisältöä. Tätä ei voi peruuttaa.", + "boardDeletePopup-title": "Poista taulu?", + "delete-board": "Poista taulu" }
\ No newline at end of file diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index 23a11142..258eeed4 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "a commenté __card__ : __comment__", "act-createBoard": "a créé __board__", "act-createCard": "a ajouté __card__ à __list__", + "act-createCustomField": "a créé le champ personnalisé __customField__", "act-createList": "a ajouté __list__ à __board__", "act-addBoardMember": "a ajouté __member__ à __board__", "act-archivedBoard": "__board__ a été déplacé vers la corbeille", @@ -30,6 +31,7 @@ "activity-archived": "%s a été déplacé vers la corbeille", "activity-attached": "a attaché %s à %s", "activity-created": "a créé %s", + "activity-customfield-created": "a créé le champ personnalisé %s", "activity-excluded": "a exclu %s de %s", "activity-imported": "a importé %s vers %s depuis %s", "activity-imported-board": "a importé %s depuis %s", @@ -111,6 +113,7 @@ "card-due-on": "Échéance le", "card-spent": "Temps passé", "card-edit-attachments": "Modifier les pièces jointes", + "card-edit-custom-fields": "Éditer les champs personnalisés", "card-edit-labels": "Modifier les étiquettes", "card-edit-members": "Modifier les membres", "card-labels-title": "Modifier les étiquettes de la carte.", @@ -118,6 +121,8 @@ "card-start": "Début", "card-start-on": "Commence le", "cardAttachmentsPopup-title": "Joindre depuis", + "cardCustomField-datePopup-title": "Changer la date", + "cardCustomFieldsPopup-title": "Éditer les champs personnalisés", "cardDeletePopup-title": "Supprimer la carte ?", "cardDetailsActionsPopup-title": "Actions sur la carte", "cardLabelsPopup-title": "Étiquettes", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Créer un tableau", "chooseBoardSourcePopup-title": "Importer un tableau", "createLabelPopup-title": "Créer une étiquette", + "createCustomField": "Créer un champ personnalisé", + "createCustomFieldPopup-title": "Créer un champ personnalisé", "current": "actuel", + "custom-field-delete-pop": "Cette action n'est pas réversible. Elle supprimera ce champ personnalisé de toutes les cartes et détruira son historique.", + "custom-field-checkbox": "Case à cocher", + "custom-field-date": "Date", + "custom-field-dropdown": "Liste de choix", + "custom-field-dropdown-none": "(aucun)", + "custom-field-dropdown-options": "Options de liste", + "custom-field-dropdown-options-placeholder": "Appuyez sur Entrée pour ajouter d'autres options", + "custom-field-dropdown-unknown": "(inconnu)", + "custom-field-number": "Nombre", + "custom-field-text": "Texte", + "custom-fields": "Champs personnalisés", "date": "Date", "decline": "Refuser", "default-avatar": "Avatar par défaut", "delete": "Supprimer", + "deleteCustomFieldPopup-title": "Supprimer le champ personnalisé ?", "deleteLabelPopup-title": "Supprimer l'étiquette ?", "description": "Description", "disambiguateMultiLabelPopup-title": "Préciser l'action sur l'étiquette", @@ -186,6 +205,7 @@ "soft-wip-limit": "Limite WIP douce", "editCardStartDatePopup-title": "Modifier la date de début", "editCardDueDatePopup-title": "Modifier la date d'échéance", + "editCustomFieldPopup-title": "Éditer le champ personnalisé", "editCardSpentTimePopup-title": "Changer le temps passé", "editLabelPopup-title": "Modifier l'étiquette", "editNotificationPopup-title": "Modifier la notification", @@ -222,9 +242,12 @@ "filter-clear": "Supprimer les filtres", "filter-no-label": "Aucune étiquette", "filter-no-member": "Aucun membre", + "filter-no-custom-fields": "Pas de champs personnalisés", "filter-on": "Le filtre est actif", "filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour modifier les filtres.", "filter-to-selection": "Filtre vers la sélection", + "advanced-filter-label": "Filtre avancé", + "advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Note : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' = 'valeur 1'. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : f1 == v1 and (f2 == v2 || f2 == v3).", "fullname": "Nom complet", "header-logo-title": "Retourner à la page des tableaux", "hide-system-messages": "Masquer les messages système", @@ -366,6 +389,7 @@ "title": "Titre", "tracking": "Suivi", "tracking-info": "Vous serez notifié de toute modification concernant les cartes pour lesquelles vous êtes impliqué en tant que créateur ou membre.", + "type": "Type", "unassign-member": "Retirer le membre", "unsaved-description": "Vous avez une description non sauvegardée", "unwatch": "Arrêter de suivre", @@ -430,6 +454,7 @@ "hours": "heures", "minutes": "minutes", "seconds": "secondes", + "show-field-on-card": "Afficher ce champ sur la carte", "yes": "Oui", "no": "Non", "accounts": "Comptes", @@ -443,5 +468,11 @@ "card-end": "Fin", "card-end-on": "Se termine le", "editCardReceivedDatePopup-title": "Changer la date de réception", - "editCardEndDatePopup-title": "Changer la date de fin" + "editCardEndDatePopup-title": "Changer la date de fin", + "assigned-by": "Assigné par", + "requested-by": "Demandé par", + "board-delete-notice": "La suppression est définitive. Vous perdrez toutes vos listes, cartes et actions associées à ce tableau.", + "delete-board-confirm-popup": "Toutes les listes, cartes, étiquettes et activités seront supprimées et vous ne pourrez pas retrouver le contenu du tableau. Il n'y a pas d'annulation possible.", + "boardDeletePopup-title": "Supprimer le tableau ?", + "delete-board": "Supprimer le tableau" }
\ No newline at end of file diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json index faab1d9b..702e9e0c 100644 --- a/i18n/gl.i18n.json +++ b/i18n/gl.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Editar anexos", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Editar etiquetas", "card-edit-members": "Editar membros", "card-labels-title": "Cambiar as etiquetas da tarxeta.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Etiquetas", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Crear taboleiro", "chooseBoardSourcePopup-title": "Importar taboleiro", "createLabelPopup-title": "Crear etiqueta", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "actual", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Data", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Data", "decline": "Rexeitar", "default-avatar": "Avatar predeterminado", "delete": "Eliminar", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Eliminar a etiqueta?", "description": "Descrición", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Cambiar a data de inicio", "editCardDueDatePopup-title": "Cambiar a data límite", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Cambiar a etiqueta", "editNotificationPopup-title": "Editar a notificación", @@ -222,9 +242,12 @@ "filter-clear": "Limpar filtro", "filter-no-label": "Non hai etiquetas", "filter-no-member": "Non hai membros", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "O filtro está activado", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Nome completo", "header-logo-title": "Retornar á páxina dos seus taboleiros.", "hide-system-messages": "Agochar as mensaxes do sistema", @@ -366,6 +389,7 @@ "title": "Título", "tracking": "Seguimento", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index b3c91549..f1b30f73 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "התקבלה תגובה על הכרטיס __card__: __comment__", "act-createBoard": "הלוח __board__ נוצר", "act-createCard": "הכרטיס __card__ התווסף לרשימה __list__", + "act-createCustomField": "נוצר שדה בהתאמה אישית __customField__", "act-createList": "הרשימה __list__ התווספה ללוח __board__", "act-addBoardMember": "המשתמש __member__ נוסף ללוח __board__", "act-archivedBoard": "__board__ הועבר לסל המחזור", @@ -30,6 +31,7 @@ "activity-archived": "%s הועבר לסל המחזור", "activity-attached": "%s צורף ל%s", "activity-created": "%s נוצר", + "activity-customfield-created": "נוצר שדה בהתאמה אישית %s", "activity-excluded": "%s לא נכלל ב%s", "activity-imported": "%s ייובא מ%s אל %s", "activity-imported-board": "%s ייובא מ%s", @@ -111,6 +113,7 @@ "card-due-on": "תאריך יעד", "card-spent": "זמן שהושקע", "card-edit-attachments": "עריכת קבצים מצורפים", + "card-edit-custom-fields": "עריכת שדות בהתאמה אישית", "card-edit-labels": "עריכת תוויות", "card-edit-members": "עריכת חברים", "card-labels-title": "שינוי תוויות לכרטיס.", @@ -118,6 +121,8 @@ "card-start": "התחלה", "card-start-on": "מתחיל ב־", "cardAttachmentsPopup-title": "לצרף מ־", + "cardCustomField-datePopup-title": "החלפת תאריך", + "cardCustomFieldsPopup-title": "עריכת שדות בהתאמה אישית", "cardDeletePopup-title": "למחוק כרטיס?", "cardDetailsActionsPopup-title": "פעולות על הכרטיס", "cardLabelsPopup-title": "תוויות", @@ -167,11 +172,25 @@ "createBoardPopup-title": "יצירת לוח", "chooseBoardSourcePopup-title": "ייבוא לוח", "createLabelPopup-title": "יצירת תווית", + "createCustomField": "יצירת שדה", + "createCustomFieldPopup-title": "יצירת שדה", "current": "נוכחי", + "custom-field-delete-pop": "אין אפשרות לבטל את הפעולה. הפעולה תסיר את השדה שהותאם אישית מכל הכרטיסים ותשמיד את ההיסטוריה שלו.", + "custom-field-checkbox": "תיבת סימון", + "custom-field-date": "תאריך", + "custom-field-dropdown": "רשימה נגללת", + "custom-field-dropdown-none": "(ללא)", + "custom-field-dropdown-options": "אפשרויות רשימה", + "custom-field-dropdown-options-placeholder": "יש ללחוץ על enter כדי להוסיף עוד אפשרויות", + "custom-field-dropdown-unknown": "(לא ידוע)", + "custom-field-number": "מספר", + "custom-field-text": "טקסט", + "custom-fields": "שדות מותאמים אישית", "date": "תאריך", "decline": "סירוב", "default-avatar": "תמונת משתמש כבררת מחדל", "delete": "מחיקה", + "deleteCustomFieldPopup-title": "למחוק שדה מותאם אישית?", "deleteLabelPopup-title": "למחוק תווית?", "description": "תיאור", "disambiguateMultiLabelPopup-title": "הבהרת פעולת תווית", @@ -186,6 +205,7 @@ "soft-wip-limit": "מגבלת „בעבודה” רכה", "editCardStartDatePopup-title": "שינוי מועד התחלה", "editCardDueDatePopup-title": "שינוי מועד סיום", + "editCustomFieldPopup-title": "עריכת שדה", "editCardSpentTimePopup-title": "שינוי הזמן שהושקע", "editLabelPopup-title": "שינוי תווית", "editNotificationPopup-title": "שינוי דיווח", @@ -222,9 +242,12 @@ "filter-clear": "ניקוי המסנן", "filter-no-label": "אין תווית", "filter-no-member": "אין חבר כזה", + "filter-no-custom-fields": "אין שדות מותאמים אישית", "filter-on": "המסנן פועל", "filter-on-desc": "מסנן כרטיסים פעיל בלוח זה. יש ללחוץ כאן לעריכת המסנן.", "filter-to-selection": "סינון לבחירה", + "advanced-filter-label": "מסנן מתקדם", + "advanced-filter-description": "המסנן המתקדם מאפשר לך לכתוב מחרוזת שמכילה את הפעולות הבאות: == != <= >= && || ( ) רווח מכהן כמפריד בין הפעולות. ניתן לסנן את כל השדות המותאמים אישית על ידי הקלדת שמם והערך שלהם. למשל: שדה1 == ערך1. לתשומת לבך: אם שדות או ערכים מכילים רווח, יש לעטוף אותם במירכא מכל צד. למשל: 'שדה 1' == 'ערך 1'. ניתן גם לשלב מגוון תנאים. למשל: F1 == V1 || F1 = V2. על פי רוב כל הפעולות מפוענחות משמאל לימין. ניתן לשנות את הסדר על ידי הצבת סוגריים. למשל: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "שם מלא", "header-logo-title": "חזרה לדף הלוחות שלך.", "hide-system-messages": "הסתרת הודעות מערכת", @@ -366,6 +389,7 @@ "title": "כותרת", "tracking": "מעקב", "tracking-info": "על כל שינוי בכרטיסים בהם הייתה לך מעורבות ברמת היצירה או כחברות תגיע אליך הודעה.", + "type": "סוג", "unassign-member": "ביטול הקצאת חבר", "unsaved-description": "יש לך תיאור לא שמור.", "unwatch": "ביטול מעקב", @@ -430,6 +454,7 @@ "hours": "שעות", "minutes": "דקות", "seconds": "שניות", + "show-field-on-card": "הצגת שדה זה בכרטיס", "yes": "כן", "no": "לא", "accounts": "חשבונות", @@ -443,5 +468,11 @@ "card-end": "סיום", "card-end-on": "מועד הסיום", "editCardReceivedDatePopup-title": "החלפת מועד הקבלה", - "editCardEndDatePopup-title": "החלפת מועד הסיום" + "editCardEndDatePopup-title": "החלפת מועד הסיום", + "assigned-by": "הוקצה על ידי", + "requested-by": "התבקש על ידי", + "board-delete-notice": "מחיקה היא לצמיתות. כל הרשימות, הכרטיבים והפעולות שקשורים בלוח הזה ילכו לאיבוד.", + "delete-board-confirm-popup": "כל הרשימות, הכרטיסים, התווית והפעולות יימחקו ולא תהיה לך דרך לשחזר את תכני הלוח. אין אפשרות לבטל.", + "boardDeletePopup-title": "למחוק את הלוח?", + "delete-board": "מחיקת לוח" }
\ No newline at end of file diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json index 94af52d1..0dfb11f0 100644 --- a/i18n/hu.i18n.json +++ b/i18n/hu.i18n.json @@ -7,11 +7,12 @@ "act-addComment": "hozzászólt a(z) __card__ kártyán: __comment__", "act-createBoard": "létrehozta a táblát: __board__", "act-createCard": "__card__ kártyát adott hozzá a listához: __list__", + "act-createCustomField": "létrehozta a(z) __customField__ egyéni listát", "act-createList": "__list__ listát adott hozzá a táblához: __board__", "act-addBoardMember": "__member__ tagot hozzáadta a táblához: __board__", - "act-archivedBoard": "A __board__ tábla a lomtárba került.", - "act-archivedCard": "A __card__ kártya a lomtárba került.", - "act-archivedList": "A __list__ lista a lomtárba került.", + "act-archivedBoard": "A(z) __board__ tábla áthelyezve a lomtárba", + "act-archivedCard": "A(z) __card__ kártya áthelyezve a lomtárba", + "act-archivedList": "A(z) __list__ lista áthelyezve a lomtárba", "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", "act-importBoard": "importálta a táblát: __board__", "act-importCard": "importálta a kártyát: __card__", @@ -27,9 +28,10 @@ "activities": "Tevékenységek", "activity": "Tevékenység", "activity-added": "%s hozzáadva ehhez: %s", - "activity-archived": "%s lomtárba helyezve", + "activity-archived": "%s áthelyezve a lomtárba", "activity-attached": "%s mellékletet csatolt a kártyához: %s", "activity-created": "%s létrehozva", + "activity-customfield-created": "létrehozta a(z) %s egyéni mezőt", "activity-excluded": "%s kizárva innen: %s", "activity-imported": "%s importálva ebbe: %s, innen: %s", "activity-imported-board": "%s importálva innen: %s", @@ -97,7 +99,7 @@ "boardChangeWatchPopup-title": "Megfigyelés megváltoztatása", "boardMenuPopup-title": "Tábla menü", "boards": "Táblák", - "board-view": "Board View", + "board-view": "Tábla nézet", "board-view-swimlanes": "Swimlanes", "board-view-lists": "Listák", "bucket-example": "Mint például „Bakancslista”", @@ -106,11 +108,12 @@ "card-comments-title": "Ez a kártya %s hozzászólást tartalmaz.", "card-delete-notice": "A törlés végleges. Az összes műveletet elveszíti, amely ehhez a kártyához tartozik.", "card-delete-pop": "Az összes művelet el lesz távolítva a tevékenységlistából, és nem lesz képes többé újra megnyitni a kártyát. Nincs visszaállítási lehetőség.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Esedékes", "card-due-on": "Esedékes ekkor", "card-spent": "Eltöltött idő", "card-edit-attachments": "Mellékletek szerkesztése", + "card-edit-custom-fields": "Egyéni mezők szerkesztése", "card-edit-labels": "Címkék szerkesztése", "card-edit-members": "Tagok szerkesztése", "card-labels-title": "A kártya címkéinek megváltoztatása.", @@ -118,6 +121,8 @@ "card-start": "Kezdés", "card-start-on": "Kezdés ekkor", "cardAttachmentsPopup-title": "Innen csatolva", + "cardCustomField-datePopup-title": "Dátum megváltoztatása", + "cardCustomFieldsPopup-title": "Egyéni mezők szerkesztése", "cardDeletePopup-title": "Törli a kártyát?", "cardDetailsActionsPopup-title": "Kártyaműveletek", "cardLabelsPopup-title": "Címkék", @@ -160,18 +165,32 @@ "confirm-checklist-delete-dialog": "Biztosan törölni szeretné az ellenőrzőlistát?", "copy-card-link-to-clipboard": "Kártya hivatkozásának másolása a vágólapra", "copyCardPopup-title": "Kártya másolása", - "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", - "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", - "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\"} ]", + "copyChecklistToManyCardsPopup-title": "Ellenőrzőlista sablon másolása több kártyára", + "copyChecklistToManyCardsPopup-instructions": "A célkártyák címe és a leírások ebben a JSON formátumban", + "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Első kártya címe\", \"description\":\"Első kártya leírása\"}, {\"title\":\"Második kártya címe\",\"description\":\"Második kártya leírása\"},{\"title\":\"Utolsó kártya címe\",\"description\":\"Utolsó kártya leírása\"} ]", "create": "Létrehozás", "createBoardPopup-title": "Tábla létrehozása", "chooseBoardSourcePopup-title": "Tábla importálása", "createLabelPopup-title": "Címke létrehozása", + "createCustomField": "Mező létrehozása", + "createCustomFieldPopup-title": "Mező létrehozása", "current": "jelenlegi", + "custom-field-delete-pop": "Nincs visszavonás. Ez el fogja távolítani az egyéni mezőt az összes kártyáról, és megsemmisíti az előzményeit.", + "custom-field-checkbox": "Jelölőnégyzet", + "custom-field-date": "Dátum", + "custom-field-dropdown": "Legördülő lista", + "custom-field-dropdown-none": "(nincs)", + "custom-field-dropdown-options": "Lista lehetőségei", + "custom-field-dropdown-options-placeholder": "Nyomja meg az Enter billentyűt több lehetőség hozzáadásához", + "custom-field-dropdown-unknown": "(ismeretlen)", + "custom-field-number": "Szám", + "custom-field-text": "Szöveg", + "custom-fields": "Egyéni mezők", "date": "Dátum", "decline": "Elutasítás", "default-avatar": "Alapértelmezett avatár", "delete": "Törlés", + "deleteCustomFieldPopup-title": "Törli az egyéni mezőt?", "deleteLabelPopup-title": "Törli a címkét?", "description": "Leírás", "disambiguateMultiLabelPopup-title": "Címkeművelet egyértelműsítése", @@ -186,6 +205,7 @@ "soft-wip-limit": "Gyenge WIP korlát", "editCardStartDatePopup-title": "Kezdődátum megváltoztatása", "editCardDueDatePopup-title": "Esedékesség dátumának megváltoztatása", + "editCustomFieldPopup-title": "Mező szerkesztése", "editCardSpentTimePopup-title": "Eltöltött idő megváltoztatása", "editLabelPopup-title": "Címke megváltoztatása", "editNotificationPopup-title": "Értesítés szerkesztése", @@ -222,9 +242,12 @@ "filter-clear": "Szűrő törlése", "filter-no-label": "Nincs címke", "filter-no-member": "Nincs tag", + "filter-no-custom-fields": "Nincsenek egyéni mezők", "filter-on": "Szűrő bekapcsolva", "filter-on-desc": "A kártyaszűrés be van kapcsolva ezen a táblán. Kattintson ide a szűrő szerkesztéséhez.", "filter-to-selection": "Szűrés a kijelöléshez", + "advanced-filter-label": "Speciális szűrő", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Teljes név", "header-logo-title": "Vissza a táblák oldalára.", "hide-system-messages": "Rendszerüzenetek elrejtése", @@ -366,6 +389,7 @@ "title": "Cím", "tracking": "Követés", "tracking-info": "Értesítve lesz az összes olyan kártya változásáról, amelyen létrehozóként vagy tagként vesz részt.", + "type": "Típus", "unassign-member": "Tag hozzárendelésének megszüntetése", "unsaved-description": "Van egy mentetlen leírása.", "unwatch": "Megfigyelés megszüntetése", @@ -374,12 +398,12 @@ "uploaded-avatar": "Egy avatár feltöltve", "username": "Felhasználónév", "view-it": "Megtekintés", - "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "warn-list-archived": "figyelem: ez a kártya egy lomtárban lévő listán van", "watch": "Megfigyelés", "watching": "Megfigyelés", "watching-info": "Értesítve lesz a táblán lévő összes változásról", "welcome-board": "Üdvözlő tábla", - "welcome-swimlane": "Milestone 1", + "welcome-swimlane": "1. mérföldkő", "welcome-list1": "Alapok", "welcome-list2": "Speciális", "what-to-do": "Mit szeretne tenni?", @@ -430,18 +454,25 @@ "hours": "óra", "minutes": "perc", "seconds": "másodperc", + "show-field-on-card": "A mező megjelenítése a kártyán", "yes": "Igen", "no": "Nem", "accounts": "Fiókok", "accounts-allowEmailChange": "E-mail megváltoztatásának engedélyezése", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Felhasználónév megváltoztatásának engedélyezése", "createdAt": "Létrehozva", "verified": "Ellenőrizve", "active": "Aktív", - "card-received": "Received", - "card-received-on": "Received on", - "card-end": "End", - "card-end-on": "Ends on", - "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "card-received": "Érkezett", + "card-received-on": "Ekkor érkezett", + "card-end": "Befejezés", + "card-end-on": "Befejeződik ekkor", + "editCardReceivedDatePopup-title": "Érkezési dátum megváltoztatása", + "editCardEndDatePopup-title": "Befejezési dátum megváltoztatása", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json index 8c06d36d..03cb71da 100644 --- a/i18n/hy.i18n.json +++ b/i18n/hy.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "մեկնաբանել է __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json index 2bc60852..95da897f 100644 --- a/i18n/id.i18n.json +++ b/i18n/id.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "Dikomentari di__kartu__:__comment__", "act-createBoard": "Panel__dibuat__", "act-createCard": "Kartu__dilampirkan__ke__Daftar", + "act-createCustomField": "created custom field __customField__", "act-createList": "Daftar__ditambahkan__ke__Panel", "act-addBoardMember": "Partisipan__ditambahkan__ke__Kartu", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "dilampirkan %s ke %s", "activity-created": "dibuat %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "tidak termasuk %s dari %s", "activity-imported": "diimpor %s kedalam %s dari %s", "activity-imported-board": "diimpor %s dari %s", @@ -106,11 +108,12 @@ "card-comments-title": "Kartu ini punya %s komentar", "card-delete-notice": "Menghapus sama dengan permanen. Anda akan kehilangan semua aksi yang terhubung ke kartu ini", "card-delete-pop": "Semua aksi akan dihapus dari aktivitas dan anda tidak bisa lagi buka kartu ini", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Jatuh Tempo", "card-due-on": "Jatuh Tempo pada", "card-spent": "Spent Time", "card-edit-attachments": "Sunting lampiran", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Sunting label", "card-edit-members": "Sunting anggota", "card-labels-title": "Ubah label kartu", @@ -118,6 +121,8 @@ "card-start": "Mulai", "card-start-on": "Mulai pada", "cardAttachmentsPopup-title": "Lampirkan dari", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Hapus kartu", "cardDetailsActionsPopup-title": "Aksi Kartu", "cardLabelsPopup-title": "Daftar Label", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Buat Panel", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Buat Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "sekarang", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Tanggal", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Tanggal", "decline": "Tolak", "default-avatar": "Avatar standar", "delete": "Hapus", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Hapus label?", "description": "Deskripsi", "disambiguateMultiLabelPopup-title": "Abaikan label Aksi", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Ubah tanggal mulai", "editCardDueDatePopup-title": "Ubah tanggal selesai", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Ubah Label", "editNotificationPopup-title": "Sunting Pemberitahuan", @@ -222,9 +242,12 @@ "filter-clear": "Bersihkan penyaringan", "filter-no-label": "Tidak ada label", "filter-no-member": "Tidak ada anggota", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Penyaring aktif", "filter-on-desc": "Anda memfilter kartu di panel ini. Klik di sini untuk menyunting filter", "filter-to-selection": "Saring berdasarkan yang dipilih", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Nama Lengkap", "header-logo-title": "Kembali ke laman panel anda", "hide-system-messages": "Sembunyikan pesan-pesan sistem", @@ -366,6 +389,7 @@ "title": "Judul", "tracking": "Pelacakan", "tracking-info": "Anda akan dinotifikasi semua perubahan di kartu tersebut diaman anda terlibat sebagai creator atau partisipan", + "type": "Type", "unassign-member": "Tidak sertakan partisipan", "unsaved-description": "Anda memiliki deskripsi yang belum disimpan.", "unwatch": "Tidak mengamati", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json index f7746d5c..9569f9e1 100644 --- a/i18n/ig.i18n.json +++ b/i18n/ig.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Bido", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Aha", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "elekere", "minutes": "nkeji", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Ee", "no": "Mba", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index 36879924..f6ede789 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -3,10 +3,11 @@ "act-activity-notify": "[Wekan] Notifiche attività", "act-addAttachment": "ha allegato __attachment__ a __card__", "act-addChecklist": "aggiunta checklist __checklist__ a __card__", - "act-addChecklistItem": "aggiunto __checklistItem__ alla checklist __checklist__ su __card__", + "act-addChecklistItem": "aggiunto __checklistItem__ alla checklist __checklist__ di __card__", "act-addComment": "ha commentato su __card__: __comment__", "act-createBoard": "ha creato __board__", "act-createCard": "ha aggiunto __card__ a __list__", + "act-createCustomField": "campo personalizzato __customField__ creato", "act-createList": "ha aggiunto __list__ a __board__", "act-addBoardMember": "ha aggiunto __member__ a __board__", "act-archivedBoard": "__board__ spostata nel cestino", @@ -18,7 +19,7 @@ "act-importList": "ha importato __list__", "act-joinMember": "ha aggiunto __member__ a __card__", "act-moveCard": "ha spostato __card__ da __oldList__ a __list__", - "act-removeBoardMember": "ha rimosso __member__ da __board__", + "act-removeBoardMember": "ha rimosso __member__ a __board__", "act-restoredCard": "ha ripristinato __card__ su __board__", "act-unjoinMember": "ha rimosso __member__ da __card__", "act-withBoardTitle": "[Wekan] __board__", @@ -30,6 +31,7 @@ "activity-archived": "%s spostato nel cestino", "activity-attached": "allegato %s a %s", "activity-created": "creato %s", + "activity-customfield-created": "Campo personalizzato creato", "activity-excluded": "escluso %s da %s", "activity-imported": "importato %s in %s da %s", "activity-imported-board": "importato %s da %s", @@ -111,6 +113,7 @@ "card-due-on": "Scade", "card-spent": "Tempo trascorso", "card-edit-attachments": "Modifica allegati", + "card-edit-custom-fields": "Modifica campo personalizzato", "card-edit-labels": "Modifica etichette", "card-edit-members": "Modifica membri", "card-labels-title": "Cambia le etichette per questa scheda.", @@ -118,6 +121,8 @@ "card-start": "Inizio", "card-start-on": "Inizia", "cardAttachmentsPopup-title": "Allega da", + "cardCustomField-datePopup-title": "Cambia data", + "cardCustomFieldsPopup-title": "Modifica campo personalizzato", "cardDeletePopup-title": "Elimina scheda?", "cardDetailsActionsPopup-title": "Azioni scheda", "cardLabelsPopup-title": "Etichette", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Crea bacheca", "chooseBoardSourcePopup-title": "Importa bacheca", "createLabelPopup-title": "Crea etichetta", + "createCustomField": "Crea campo", + "createCustomFieldPopup-title": "Crea campo", "current": "corrente", + "custom-field-delete-pop": "Non potrai tornare indietro. Questa azione rimuoverà questo campo personalizzato da tutte le schede ed eliminerà ogni sua traccia.", + "custom-field-checkbox": "Casella di scelta", + "custom-field-date": "Data", + "custom-field-dropdown": "Lista a discesa", + "custom-field-dropdown-none": "(nessun)", + "custom-field-dropdown-options": "Lista opzioni", + "custom-field-dropdown-options-placeholder": "Premi invio per aggiungere altre opzioni", + "custom-field-dropdown-unknown": "(sconosciuto)", + "custom-field-number": "Numero", + "custom-field-text": "Testo", + "custom-fields": "Campi personalizzati", "date": "Data", "decline": "Declina", "default-avatar": "Avatar predefinito", "delete": "Elimina", + "deleteCustomFieldPopup-title": "Elimina il campo personalizzato?", "deleteLabelPopup-title": "Eliminare etichetta?", "description": "Descrizione", "disambiguateMultiLabelPopup-title": "Disambiguare l'azione Etichetta", @@ -186,6 +205,7 @@ "soft-wip-limit": "Limite Work in progress soft", "editCardStartDatePopup-title": "Cambia data di inizio", "editCardDueDatePopup-title": "Cambia data di scadenza", + "editCustomFieldPopup-title": "Modifica campo", "editCardSpentTimePopup-title": "Cambia tempo trascorso", "editLabelPopup-title": "Cambia etichetta", "editNotificationPopup-title": "Modifica notifiche", @@ -222,9 +242,12 @@ "filter-clear": "Pulisci filtri", "filter-no-label": "Nessuna etichetta", "filter-no-member": "Nessun membro", + "filter-no-custom-fields": "Nessun campo personalizzato", "filter-on": "Il filtro è attivo", "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,", "filter-to-selection": "Seleziona", + "advanced-filter-label": "Filtro avanzato", + "advanced-filter-description": "Il filtro avanzato consente di scrivere una stringa contenente i seguenti operatori: == != <= >= && || ( ). Lo spazio è usato come separatore tra gli operatori. E' possibile filtrare per tutti i campi personalizzati, digitando i loro nomi e valori. Ad esempio: Campo1 == Valore1. Nota: Se i campi o i valori contengono spazi, devi racchiuderli dentro le virgolette singole. Ad esempio: 'Campo 1' == 'Valore 1'. E' possibile combinare condizioni multiple. Ad esempio: F1 == V1 || F1 = V2. Normalmente tutti gli operatori sono interpretati da sinistra a destra. Puoi modificare l'ordine utilizzando le parentesi. Ad Esempio: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Nome completo", "header-logo-title": "Torna alla tua bacheca.", "hide-system-messages": "Nascondi i messaggi di sistema", @@ -366,6 +389,7 @@ "title": "Titolo", "tracking": "Monitoraggio", "tracking-info": "Sarai notificato per tutte le modifiche alle schede delle quali sei creatore o membro.", + "type": "Tipo", "unassign-member": "Rimuovi membro", "unsaved-description": "Hai una descrizione non salvata", "unwatch": "Non seguire", @@ -393,7 +417,7 @@ "disable-self-registration": "Disabilita Auto-registrazione", "invite": "Invita", "invite-people": "Invita persone", - "to-boards": "torna alle bacheche(a)", + "to-boards": "Alla(e) bacheche(a)", "email-addresses": "Indirizzi email", "smtp-host-description": "L'indirizzo del server SMTP che gestisce le tue email.", "smtp-port-description": "La porta che il tuo server SMTP utilizza per le email in uscita.", @@ -430,11 +454,12 @@ "hours": "ore", "minutes": "minuti", "seconds": "secondi", + "show-field-on-card": "Visualizza questo campo sulla scheda", "yes": "Sì", "no": "No", "accounts": "Profili", "accounts-allowEmailChange": "Permetti modifica dell'email", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Consenti la modifica del nome utente", "createdAt": "creato alle", "verified": "Verificato", "active": "Attivo", @@ -443,5 +468,11 @@ "card-end": "Fine", "card-end-on": "Termina il", "editCardReceivedDatePopup-title": "Cambia data ricezione", - "editCardEndDatePopup-title": "Cambia data finale" + "editCardEndDatePopup-title": "Cambia data finale", + "assigned-by": "Assegnato da", + "requested-by": "Richiesto da", + "board-delete-notice": "L'eliminazione è permanente. Tutte le azioni, liste e schede associate a questa bacheca andranno perse.", + "delete-board-confirm-popup": "Tutte le liste, schede, etichette e azioni saranno rimosse e non sarai più in grado di recuperare il contenuto della bacheca. L'azione non è annullabile.", + "boardDeletePopup-title": "Eliminare la bacheca?", + "delete-board": "Elimina bacheca" }
\ No newline at end of file diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index c55be771..7f9a3c40 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "__card__: __comment__ をコメントしました", "act-createBoard": "__board__ を作成しました", "act-createCard": "__list__ に __card__ を追加しました", + "act-createCustomField": "created custom field __customField__", "act-createList": "__board__ に __list__ を追加しました", "act-addBoardMember": "__board__ に __member__ を追加しました", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "%s を %s に添付しました", "activity-created": "%s を作成しました", + "activity-customfield-created": "created custom field %s", "activity-excluded": "%s を %s から除外しました", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "%s 件のコメントがあります。", "card-delete-notice": "削除は取り消しできません。このカードに関係するすべてのアクションがなくなります。", "card-delete-pop": "すべての内容がアクティビティから削除されます。この削除は元に戻すことができません。", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "期限", "card-due-on": "期限日", "card-spent": "Spent Time", "card-edit-attachments": "添付ファイルの編集", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "ラベルの編集", "card-edit-members": "メンバーの編集", "card-labels-title": "カードのラベルを変更する", @@ -118,6 +121,8 @@ "card-start": "開始", "card-start-on": "開始日", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "カードを削除しますか?", "cardDetailsActionsPopup-title": "カード操作", "cardLabelsPopup-title": "ラベル", @@ -167,11 +172,25 @@ "createBoardPopup-title": "ボードの作成", "chooseBoardSourcePopup-title": "ボードをインポート", "createLabelPopup-title": "ラベルの作成", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "現在", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "日付", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "日付", "decline": "拒否", "default-avatar": "デフォルトのアバター", "delete": "削除", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "ラベルを削除しますか?", "description": "詳細", "disambiguateMultiLabelPopup-title": "不正なラベル操作", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "開始日の変更", "editCardDueDatePopup-title": "期限の変更", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "ラベルの変更", "editNotificationPopup-title": "通知の変更", @@ -222,9 +242,12 @@ "filter-clear": "フィルターの解除", "filter-no-label": "ラベルなし", "filter-no-member": "メンバーなし", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "フィルター有効", "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。", "filter-to-selection": "フィルターした項目を全選択", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "フルネーム", "header-logo-title": "自分のボードページに戻る。", "hide-system-messages": "システムメッセージを隠す", @@ -366,6 +389,7 @@ "title": "タイトル", "tracking": "トラッキング", "tracking-info": "これらのカードへの変更が通知されるようになります。", + "type": "Type", "unassign-member": "未登録のメンバー", "unsaved-description": "未保存の変更があります。", "unwatch": "アンウォッチ", @@ -430,6 +454,7 @@ "hours": "時", "minutes": "分", "seconds": "秒", + "show-field-on-card": "Show this field on card", "yes": "はい", "no": "いいえ", "accounts": "アカウント", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json new file mode 100644 index 00000000..b9550ff6 --- /dev/null +++ b/i18n/km.i18n.json @@ -0,0 +1,478 @@ +{ + "accept": "យល់ព្រម", + "act-activity-notify": "[Wekan] សកម្មភាពជូនដំណឹង", + "act-addAttachment": "attached __attachment__ to __card__", + "act-addChecklist": "added checklist __checklist__ to __card__", + "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addComment": "commented on __card__: __comment__", + "act-createBoard": "created __board__", + "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", + "act-createList": "added __list__ to __board__", + "act-addBoardMember": "added __member__ to __board__", + "act-archivedBoard": "__board__ moved to Recycle Bin", + "act-archivedCard": "__card__ moved to Recycle Bin", + "act-archivedList": "__list__ moved to Recycle Bin", + "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", + "act-importBoard": "imported __board__", + "act-importCard": "imported __card__", + "act-importList": "imported __list__", + "act-joinMember": "added __member__ to __card__", + "act-moveCard": "moved __card__ from __oldList__ to __list__", + "act-removeBoardMember": "removed __member__ from __board__", + "act-restoredCard": "restored __card__ to __board__", + "act-unjoinMember": "removed __member__ from __card__", + "act-withBoardTitle": "[Wekan] __board__", + "act-withCardTitle": "[__board__] __card__", + "actions": "Actions", + "activities": "Activities", + "activity": "Activity", + "activity-added": "added %s to %s", + "activity-archived": "%s moved to Recycle Bin", + "activity-attached": "attached %s to %s", + "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", + "activity-excluded": "excluded %s from %s", + "activity-imported": "imported %s into %s from %s", + "activity-imported-board": "imported %s from %s", + "activity-joined": "joined %s", + "activity-moved": "moved %s from %s to %s", + "activity-on": "on %s", + "activity-removed": "removed %s from %s", + "activity-sent": "sent %s to %s", + "activity-unjoined": "unjoined %s", + "activity-checklist-added": "added checklist to %s", + "activity-checklist-item-added": "added checklist item to '%s' in %s", + "add": "Add", + "add-attachment": "Add Attachment", + "add-board": "Add Board", + "add-card": "Add Card", + "add-swimlane": "Add Swimlane", + "add-checklist": "Add Checklist", + "add-checklist-item": "Add an item to checklist", + "add-cover": "Add Cover", + "add-label": "Add Label", + "add-list": "Add List", + "add-members": "Add Members", + "added": "Added", + "addMemberPopup-title": "Members", + "admin": "Admin", + "admin-desc": "Can view and edit cards, remove members, and change settings for the board.", + "admin-announcement": "Announcement", + "admin-announcement-active": "Active System-Wide Announcement", + "admin-announcement-title": "Announcement from Administrator", + "all-boards": "All boards", + "and-n-other-card": "And __count__ other card", + "and-n-other-card_plural": "And __count__ other cards", + "apply": "Apply", + "app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.", + "archive": "Move to Recycle Bin", + "archive-all": "Move All to Recycle Bin", + "archive-board": "Move Board to Recycle Bin", + "archive-card": "Move Card to Recycle Bin", + "archive-list": "Move List to Recycle Bin", + "archive-swimlane": "Move Swimlane to Recycle Bin", + "archive-selection": "Move selection to Recycle Bin", + "archiveBoardPopup-title": "Move Board to Recycle Bin?", + "archived-items": "Recycle Bin", + "archived-boards": "Boards in Recycle Bin", + "restore-board": "Restore Board", + "no-archived-boards": "No Boards in Recycle Bin.", + "archives": "Recycle Bin", + "assign-member": "Assign member", + "attached": "attached", + "attachment": "Attachment", + "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.", + "attachmentDeletePopup-title": "Delete Attachment?", + "attachments": "Attachments", + "auto-watch": "Automatically watch boards when they are created", + "avatar-too-big": "The avatar is too large (70KB max)", + "back": "Back", + "board-change-color": "Change color", + "board-nb-stars": "%s stars", + "board-not-found": "Board not found", + "board-private-info": "This board will be <strong>private</strong>.", + "board-public-info": "This board will be <strong>public</strong>.", + "boardChangeColorPopup-title": "Change Board Background", + "boardChangeTitlePopup-title": "Rename Board", + "boardChangeVisibilityPopup-title": "Change Visibility", + "boardChangeWatchPopup-title": "Change Watch", + "boardMenuPopup-title": "Board Menu", + "boards": "Boards", + "board-view": "Board View", + "board-view-swimlanes": "Swimlanes", + "board-view-lists": "Lists", + "bucket-example": "Like “Bucket List” for example", + "cancel": "Cancel", + "card-archived": "This card is moved to Recycle Bin.", + "card-comments-title": "This card has %s comment.", + "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", + "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", + "card-due": "Due", + "card-due-on": "Due on", + "card-spent": "Spent Time", + "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", + "card-edit-labels": "Edit labels", + "card-edit-members": "Edit members", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Start", + "card-start-on": "Starts on", + "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", + "cardDeletePopup-title": "Delete Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Labels", + "cardMembersPopup-title": "Members", + "cardMorePopup-title": "More", + "cards": "Cards", + "cards-count": "Cards", + "change": "Change", + "change-avatar": "Change Avatar", + "change-password": "Change Password", + "change-permissions": "Change permissions", + "change-settings": "Change Settings", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Change Language", + "changePasswordPopup-title": "Change Password", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Change Settings", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "clipboard": "Clipboard or drag & drop", + "close": "Close", + "close-board": "Close Board", + "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", + "color-black": "black", + "color-blue": "blue", + "color-green": "green", + "color-lime": "lime", + "color-orange": "orange", + "color-pink": "pink", + "color-purple": "purple", + "color-red": "red", + "color-sky": "sky", + "color-yellow": "yellow", + "comment": "Comment", + "comment-placeholder": "Write Comment", + "comment-only": "Comment only", + "comment-only-desc": "Can comment on cards only.", + "computer": "Computer", + "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist", + "copy-card-link-to-clipboard": "Copy card link to clipboard", + "copyCardPopup-title": "Copy Card", + "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", + "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "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": "Create", + "createBoardPopup-title": "Create Board", + "chooseBoardSourcePopup-title": "Import board", + "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", + "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", + "date": "Date", + "decline": "Decline", + "default-avatar": "Default avatar", + "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", + "deleteLabelPopup-title": "Delete Label?", + "description": "Description", + "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", + "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", + "discard": "Discard", + "done": "Done", + "download": "Download", + "edit": "Edit", + "edit-avatar": "Change Avatar", + "edit-profile": "Edit Profile", + "edit-wip-limit": "Edit WIP Limit", + "soft-wip-limit": "Soft WIP Limit", + "editCardStartDatePopup-title": "Change start date", + "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", + "editCardSpentTimePopup-title": "Change spent time", + "editLabelPopup-title": "Change Label", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Edit Profile", + "email": "Email", + "email-enrollAccount-subject": "An account created for you on __siteName__", + "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.", + "email-fail": "Sending email failed", + "email-fail-text": "Error trying to send email", + "email-invalid": "Invalid email", + "email-invite": "Invite via Email", + "email-invite-subject": "__inviter__ sent you an invitation", + "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.", + "email-resetPassword-subject": "Reset your password on __siteName__", + "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.", + "email-sent": "Email sent", + "email-verifyEmail-subject": "Verify your email address on __siteName__", + "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.", + "enable-wip-limit": "Enable WIP Limit", + "error-board-doesNotExist": "This board does not exist", + "error-board-notAdmin": "You need to be admin of this board to do that", + "error-board-notAMember": "You need to be a member of this board to do that", + "error-json-malformed": "Your text is not valid JSON", + "error-json-schema": "Your JSON data does not include the proper information in the correct format", + "error-list-doesNotExist": "This list does not exist", + "error-user-doesNotExist": "This user does not exist", + "error-user-notAllowSelf": "You can not invite yourself", + "error-user-notCreated": "This user is not created", + "error-username-taken": "This username is already taken", + "error-email-taken": "Email has already been taken", + "export-board": "Export board", + "filter": "Filter", + "filter-cards": "Filter Cards", + "filter-clear": "Clear filter", + "filter-no-label": "No label", + "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", + "filter-on": "Filter is on", + "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", + "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", + "fullname": "Full Name", + "header-logo-title": "Go back to your boards page.", + "hide-system-messages": "Hide system messages", + "headerBarCreateBoardPopup-title": "Create Board", + "home": "Home", + "import": "Import", + "import-board": "import board", + "import-board-c": "Import board", + "import-board-title-trello": "Import board from Trello", + "import-board-title-wekan": "Import board from Wekan", + "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.", + "from-trello": "From Trello", + "from-wekan": "From Wekan", + "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.", + "import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.", + "import-json-placeholder": "Paste your valid JSON data here", + "import-map-members": "Map members", + "import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users", + "import-show-user-mapping": "Review members mapping", + "import-user-select": "Pick the Wekan user you want to use as this member", + "importMapMembersAddPopup-title": "Select Wekan member", + "info": "Version", + "initials": "Initials", + "invalid-date": "Invalid date", + "invalid-time": "Invalid time", + "invalid-user": "Invalid user", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Create Label", + "label-default": "%s label (default)", + "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.", + "labels": "Labels", + "language": "Language", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.", + "leaveBoardPopup-title": "Leave Board ?", + "link-card": "Link to this card", + "list-archive-cards": "Move all cards in this list to Recycle Bin", + "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.", + "list-move-cards": "Move all cards in this list", + "list-select-cards": "Select all cards in this list", + "listActionPopup-title": "List Actions", + "swimlaneActionPopup-title": "Swimlane Actions", + "listImportCardPopup-title": "Import a Trello card", + "listMorePopup-title": "More", + "link-list": "Link to this list", + "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.", + "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.", + "lists": "Lists", + "swimlanes": "Swimlanes", + "log-out": "Log Out", + "log-in": "Log In", + "loginPopup-title": "Log In", + "memberMenuPopup-title": "Member Settings", + "members": "Members", + "menu": "Menu", + "move-selection": "Move selection", + "moveCardPopup-title": "Move Card", + "moveCardToBottom-title": "Move to Bottom", + "moveCardToTop-title": "Move to Top", + "moveSelectionPopup-title": "Move selection", + "multi-selection": "Multi-Selection", + "multi-selection-on": "Multi-Selection is on", + "muted": "Muted", + "muted-info": "You will never be notified of any changes in this board", + "my-boards": "My Boards", + "name": "Name", + "no-archived-cards": "No cards in Recycle Bin.", + "no-archived-lists": "No lists in Recycle Bin.", + "no-archived-swimlanes": "No swimlanes in Recycle Bin.", + "no-results": "No results", + "normal": "Normal", + "normal-desc": "Can view and edit cards. Can't change settings.", + "not-accepted-yet": "Invitation not accepted yet", + "notify-participate": "Receive updates to any cards you participate as creater or member", + "notify-watch": "Receive updates to any boards, lists, or cards you’re watching", + "optional": "optional", + "or": "or", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Page not found.", + "password": "Password", + "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)", + "participating": "Participating", + "preview": "Preview", + "previewAttachedImagePopup-title": "Preview", + "previewClipboardImagePopup-title": "Preview", + "private": "Private", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profile", + "public": "Public", + "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.", + "quick-access-description": "Star a board to add a shortcut in this bar.", + "remove-cover": "Remove Cover", + "remove-from-board": "Remove from Board", + "remove-label": "Remove Label", + "listDeletePopup-title": "Delete List ?", + "remove-member": "Remove Member", + "remove-member-from-card": "Remove from Card", + "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.", + "removeMemberPopup-title": "Remove Member?", + "rename": "Rename", + "rename-board": "Rename Board", + "restore": "Restore", + "save": "Save", + "search": "Search", + "search-cards": "Search from card titles and descriptions on this board", + "search-example": "Text to search for?", + "select-color": "Select Color", + "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list", + "setWipLimitPopup-title": "Set WIP Limit", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "បិទផ្ទាំង", + "shortcut-filter-my-cards": "តម្រងកាតរបស់ខ្ញុំ", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "បង្កើតគណនីមួយ", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Team", + "this-board": "this board", + "this-card": "កាតនេះ", + "spent-time-hours": "ចំណាយពេល (ម៉ោង)", + "overtime-hours": "លើសពេល (ម៉ោង)", + "overtime": "លើសពេល", + "has-overtime-cards": "មានកាតលើសពេល", + "has-spenttime-cards": "មានកាតដែលបានចំណាយពេល", + "time": "Time", + "title": "Title", + "tracking": "Tracking", + "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", + "unassign-member": "Unassign member", + "unsaved-description": "You have an unsaved description.", + "unwatch": "Unwatch", + "upload": "Upload", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "username": "Username", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "watch": "Watch", + "watching": "Watching", + "watching-info": "You will be notified of any change in this board", + "welcome-board": "Welcome Board", + "welcome-swimlane": "Milestone 1", + "welcome-list1": "Basics", + "welcome-list2": "Advanced", + "what-to-do": "What do you want to do?", + "wipLimitErrorPopup-title": "Invalid WIP Limit", + "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.", + "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-tls-description": "Enable TLS support for SMTP server", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "smtp-tls": "TLS support", + "send-from": "From", + "send-smtp-test": "Send a test email to yourself", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "email-smtp-test-subject": "SMTP Test Email From Wekan", + "email-smtp-test-text": "You have successfully sent an email", + "error-invitation-code-not-exist": "Invitation code doesn't exist", + "error-notAuthorized": "You are not authorized to view this page.", + "outgoing-webhooks": "Outgoing Webhooks", + "outgoingWebhooksPopup-title": "Outgoing Webhooks", + "new-outgoing-webhook": "New Outgoing Webhook", + "no-name": "(Unknown)", + "Wekan_version": "Wekan version", + "Node_version": "Node version", + "OS_Arch": "OS Arch", + "OS_Cpus": "OS CPU Count", + "OS_Freemem": "OS Free Memory", + "OS_Loadavg": "OS Load Average", + "OS_Platform": "OS Platform", + "OS_Release": "OS Release", + "OS_Totalmem": "OS Total Memory", + "OS_Type": "OS Type", + "OS_Uptime": "OS Uptime", + "hours": "hours", + "minutes": "minutes", + "seconds": "seconds", + "show-field-on-card": "Show this field on card", + "yes": "Yes", + "no": "No", + "accounts": "Accounts", + "accounts-allowEmailChange": "Allow Email Change", + "accounts-allowUserNameChange": "Allow Username Change", + "createdAt": "Created at", + "verified": "Verified", + "active": "Active", + "card-received": "Received", + "card-received-on": "Received on", + "card-end": "End", + "card-end-on": "Ends on", + "editCardReceivedDatePopup-title": "Change received date", + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" +}
\ No newline at end of file diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 35d2b447..edf978a7 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "__card__에 내용 추가 : __comment__", "act-createBoard": "__board__ 생성", "act-createCard": "__list__에 __card__ 추가", + "act-createCustomField": "created custom field __customField__", "act-createList": "__board__에 __list__ 추가", "act-addBoardMember": "__board__에 __member__ 추가", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "%s를 %s에 첨부함", "activity-created": "%s 생성됨", + "activity-customfield-created": "created custom field %s", "activity-excluded": "%s를 %s에서 제외함", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "이 카드에 %s 코멘트가 있습니다.", "card-delete-notice": "영구 삭제입니다. 이 카드와 관련된 모든 작업들을 잃게됩니다.", "card-delete-pop": "모든 작업이 활동 내역에서 제거되며 카드를 다시 열 수 없습니다. 복구가 안되니 주의하시기 바랍니다.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "종료일", "card-due-on": "종료일", "card-spent": "Spent Time", "card-edit-attachments": "첨부 파일 수정", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "라벨 수정", "card-edit-members": "멤버 수정", "card-labels-title": "카드의 라벨 변경.", @@ -118,6 +121,8 @@ "card-start": "시작일", "card-start-on": "시작일", "cardAttachmentsPopup-title": "첨부 파일", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "카드를 삭제합니까?", "cardDetailsActionsPopup-title": "카드 액션", "cardLabelsPopup-title": "라벨", @@ -167,11 +172,25 @@ "createBoardPopup-title": "보드 생성", "chooseBoardSourcePopup-title": "보드 가져오기", "createLabelPopup-title": "라벨 생성", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "경향", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "날짜", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "날짜", "decline": "쇠퇴", "default-avatar": "기본 아바타", "delete": "삭제", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "라벨을 삭제합니까?", "description": "설명", "disambiguateMultiLabelPopup-title": "라벨 액션의 모호성 제거", @@ -186,6 +205,7 @@ "soft-wip-limit": "원만한 WIP 제한", "editCardStartDatePopup-title": "시작일 변경", "editCardDueDatePopup-title": "종료일 변경", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "라벨 변경", "editNotificationPopup-title": "알림 수정", @@ -222,9 +242,12 @@ "filter-clear": "필터 초기화", "filter-no-label": "라벨 없음", "filter-no-member": "멤버 없음", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "필터 사용", "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.", "filter-to-selection": "선택 항목으로 필터링", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "실명", "header-logo-title": "보드 페이지로 돌아가기.", "hide-system-messages": "시스템 메시지 숨기기", @@ -366,6 +389,7 @@ "title": "제목", "tracking": "추적", "tracking-info": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음", + "type": "Type", "unassign-member": "멤버 할당 해제", "unsaved-description": "저장되지 않은 설명이 있습니다.", "unwatch": "감시 해제", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json index 82bfa1cc..128e847a 100644 --- a/i18n/lv.i18n.json +++ b/i18n/lv.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "komentēja __card__: __comment__", "act-createBoard": "izveidoja __board__", "act-createCard": "pievienoja __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "pievienoja __list__ to __board__", "act-addBoardMember": "pievienoja __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "pievienoja %s pie %s", "activity-created": "izveidoja%s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "izslēdza%s no%s", "activity-imported": "importēja %s iekšā%s no%s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json index 13e96ed6..794f9ce8 100644 --- a/i18n/mn.i18n.json +++ b/i18n/mn.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Самбар үүсгэх", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Шошго үүсгэх", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Мэдэгдэл тохируулах", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json index 3b30ada9..205db808 100644 --- a/i18n/nb.i18n.json +++ b/i18n/nb.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "kommenterte til __card__: __comment__", "act-createBoard": "opprettet __board__", "act-createCard": "la __card__ til __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "la __list__ til __board__", "act-addBoardMember": "la __member__ til __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "la %s til %s", "activity-created": "opprettet %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "ekskluderte %s fra %s", "activity-imported": "importerte %s til %s fra %s", "activity-imported-board": "importerte %s fra %s", @@ -106,11 +108,12 @@ "card-comments-title": "Dette kortet har %s kommentar.", "card-delete-notice": "Sletting er permanent. Du vil miste alle hendelser knyttet til dette kortet.", "card-delete-pop": "Alle handlinger vil fjernes fra feeden for aktiviteter og du vil ikke kunne åpne kortet på nytt. Det er ingen mulighet å angre.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Frist", "card-due-on": "Frist til", "card-spent": "Spent Time", "card-edit-attachments": "Rediger vedlegg", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Rediger etiketter", "card-edit-members": "Endre medlemmer", "card-labels-title": "Endre etiketter for kortet.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starter på", "cardAttachmentsPopup-title": "Legg ved fra", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Slett kort?", "cardDetailsActionsPopup-title": "Kort-handlinger", "cardLabelsPopup-title": "Etiketter", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json index 0696409d..4515d1c2 100644 --- a/i18n/nl.i18n.json +++ b/i18n/nl.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "gereageerd op __card__:__comment__", "act-createBoard": "aangemaakte __bord__", "act-createCard": "toegevoegd __kaart__ aan __lijst__", + "act-createCustomField": "created custom field __customField__", "act-createList": "toegevoegd __lijst__ aan __bord__", "act-addBoardMember": "__member__ aan __board__ toegevoegd", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "%s bijgevoegd aan %s", "activity-created": "%s aangemaakt", + "activity-customfield-created": "created custom field %s", "activity-excluded": "%s uitgesloten van %s", "activity-imported": "%s geimporteerd in %s van %s", "activity-imported-board": "%s geimporteerd van %s", @@ -106,11 +108,12 @@ "card-comments-title": "Deze kaart heeft %s reactie.", "card-delete-notice": "Verwijdering is permanent. Als je dit doet, verlies je alle informatie die op deze kaart is opgeslagen.", "card-delete-pop": "Alle acties worden verwijderd van de activiteiten feed, en er zal geen mogelijkheid zijn om de kaart opnieuw te openen. Deze actie kan je niet ongedaan maken.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Deadline: ", "card-due-on": "Deadline: ", "card-spent": "gespendeerde tijd", "card-edit-attachments": "Wijzig bijlagen", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Wijzig labels", "card-edit-members": "Wijzig leden", "card-labels-title": "Wijzig de labels vam de kaart.", @@ -118,6 +121,8 @@ "card-start": "Begin", "card-start-on": "Begint op", "cardAttachmentsPopup-title": "Voeg bestand toe vanuit", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Kaart verwijderen?", "cardDetailsActionsPopup-title": "Kaart actie ondernemen", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Bord aanmaken", "chooseBoardSourcePopup-title": "Importeer bord", "createLabelPopup-title": "Label aanmaken", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "Huidige", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Datum", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Datum", "decline": "Weigeren", "default-avatar": "Standaard avatar", "delete": "Verwijderen", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Verwijder label?", "description": "Beschrijving", "disambiguateMultiLabelPopup-title": "Disambigueer Label Actie", @@ -186,6 +205,7 @@ "soft-wip-limit": "Zachte WIP limiet", "editCardStartDatePopup-title": "Wijzig start datum", "editCardDueDatePopup-title": "Wijzig deadline", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Verander gespendeerde tijd", "editLabelPopup-title": "Wijzig label", "editNotificationPopup-title": "Wijzig notificatie", @@ -222,9 +242,12 @@ "filter-clear": "Reset filter", "filter-no-label": "Geen label", "filter-no-member": "Geen lid", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter staat aan", "filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.", "filter-to-selection": "Filter zoals selectie", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Volledige naam", "header-logo-title": "Ga terug naar jouw borden pagina.", "hide-system-messages": "Verberg systeemberichten", @@ -366,6 +389,7 @@ "title": "Titel", "tracking": "Volgen", "tracking-info": "Je wordt op de hoogte gesteld als er veranderingen zijn aan de kaarten waar je lid of maker van bent.", + "type": "Type", "unassign-member": "Lid ontkennen", "unsaved-description": "Je hebt een niet opgeslagen beschrijving.", "unwatch": "Niet bekijken", @@ -430,6 +454,7 @@ "hours": "uren", "minutes": "minuten", "seconds": "seconden", + "show-field-on-card": "Show this field on card", "yes": "Ja", "no": "Nee", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 99c7ae3c..5ac7e2f9 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s przeniesiono do Kosza", "activity-attached": "załączono %s z %s", "activity-created": "utworzono %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "wyłączono %s z %s", "activity-imported": "zaimportowano %s to %s z %s", "activity-imported-board": "zaimportowano %s z %s", @@ -106,11 +108,12 @@ "card-comments-title": "Ta karta ma %s komentarzy.", "card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.", "card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edytuj załączniki", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edytuj etykiety", "card-edit-members": "Edytuj członków", "card-labels-title": "Zmień etykiety karty", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Załącz z", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Usunąć kartę?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Etykiety", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Utwórz tablicę", "chooseBoardSourcePopup-title": "Import tablicy", "createLabelPopup-title": "Utwórz etykietę", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "obecny", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Data", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Data", "decline": "Odrzuć", "default-avatar": "Domyślny avatar", "delete": "Usuń", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Usunąć etykietę?", "description": "Opis", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Zmień etykietę", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Usuń filter", "filter-no-label": "Brak etykiety", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filtr jest włączony", "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.", "filter-to-selection": "Odfiltruj zaznaczenie", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Wróć do swojej strony z tablicami.", "hide-system-messages": "Ukryj wiadomości systemowe", @@ -366,6 +389,7 @@ "title": "Tytuł", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Nieprzypisany członek", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "godzin", "minutes": "minut", "seconds": "sekund", + "show-field-on-card": "Show this field on card", "yes": "Tak", "no": "Nie", "accounts": "Konto", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 613ae44b..86fd65e0 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -3,16 +3,17 @@ "act-activity-notify": "[Wekan] Notificação de Atividade", "act-addAttachment": "anexo __attachment__ de __card__", "act-addChecklist": "added checklist __checklist__ no __card__", - "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__", + "act-addChecklistItem": "adicionado __checklistitem__ para a lista de checagem __checklist__ em __card__", "act-addComment": "comentou em __card__: __comment__", "act-createBoard": "criou __board__", "act-createCard": "__card__ adicionado à __list__", + "act-createCustomField": "criado campo customizado __customField__", "act-createList": "__list__ adicionada à __board__", "act-addBoardMember": "__member__ adicionado à __board__", - "act-archivedBoard": "__board__ moved to Recycle Bin", - "act-archivedCard": "__card__ moved to Recycle Bin", - "act-archivedList": "__list__ moved to Recycle Bin", - "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin", + "act-archivedBoard": "__board__ movido para a lixeira", + "act-archivedCard": "__card__ movido para a lixeira", + "act-archivedList": "__list__ movido para a lixeira", + "act-archivedSwimlane": "__swimlane__ movido para a lixeira", "act-importBoard": "__board__ importado", "act-importCard": "__card__ importado", "act-importList": "__list__ importada", @@ -27,9 +28,10 @@ "activities": "Atividades", "activity": "Atividade", "activity-added": "adicionou %s a %s", - "activity-archived": "%s moved to Recycle Bin", + "activity-archived": "%s movido para a lixeira", "activity-attached": "anexou %s a %s", "activity-created": "criou %s", + "activity-customfield-created": "criado campo customizado %s", "activity-excluded": "excluiu %s de %s", "activity-imported": "importado %s em %s de %s", "activity-imported-board": "importado %s de %s", @@ -45,7 +47,7 @@ "add-attachment": "Adicionar Anexos", "add-board": "Adicionar Quadro", "add-card": "Adicionar Cartão", - "add-swimlane": "Add Swimlane", + "add-swimlane": "Adicionar Swimlane", "add-checklist": "Adicionar Checklist", "add-checklist-item": "Adicionar um item à lista de verificação", "add-cover": "Adicionar Capa", @@ -64,19 +66,19 @@ "and-n-other-card_plural": "E __count__ outros cartões", "apply": "Aplicar", "app-is-offline": "O Wekan está carregando, por favor espere. Recarregar a página irá causar perda de dado. Se o Wekan não carregar por favor verifique se o servidor Wekan não está parado.", - "archive": "Move to Recycle Bin", - "archive-all": "Move All to Recycle Bin", - "archive-board": "Move Board to Recycle Bin", - "archive-card": "Move Card to Recycle Bin", - "archive-list": "Move List to Recycle Bin", - "archive-swimlane": "Move Swimlane to Recycle Bin", - "archive-selection": "Move selection to Recycle Bin", - "archiveBoardPopup-title": "Move Board to Recycle Bin?", - "archived-items": "Recycle Bin", - "archived-boards": "Boards in Recycle Bin", + "archive": "Mover para a lixeira", + "archive-all": "Mover tudo para a lixeira", + "archive-board": "Mover quadro para a lixeira", + "archive-card": "Mover cartão para a lixeira", + "archive-list": "Mover lista para a lixeira", + "archive-swimlane": "Mover Swimlane para a lixeira", + "archive-selection": "Mover seleção para a lixeira", + "archiveBoardPopup-title": "Mover o quadro para a lixeira?", + "archived-items": "Lixeira", + "archived-boards": "Quadros na lixeira", "restore-board": "Restaurar Quadro", - "no-archived-boards": "No Boards in Recycle Bin.", - "archives": "Recycle Bin", + "no-archived-boards": "Não há quadros na lixeira", + "archives": "Lixeira", "assign-member": "Atribuir Membro", "attached": "anexado", "attachment": "Anexo", @@ -102,15 +104,16 @@ "board-view-lists": "Listas", "bucket-example": "\"Bucket List\", por exemplo", "cancel": "Cancelar", - "card-archived": "This card is moved to Recycle Bin.", + "card-archived": "Este cartão foi movido para a lixeira", "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 removidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "Você pode mover um cartão para fora da lixeira e movê-lo para o quadro e preservar a atividade.", "card-due": "Data fim", "card-due-on": "Finaliza em", "card-spent": "Tempo Gasto", "card-edit-attachments": "Editar anexos", + "card-edit-custom-fields": "Editar campos customizados", "card-edit-labels": "Editar etiquetas", "card-edit-members": "Editar membros", "card-labels-title": "Alterar etiquetas do cartão.", @@ -118,6 +121,8 @@ "card-start": "Data início", "card-start-on": "Começa em", "cardAttachmentsPopup-title": "Anexar a partir de", + "cardCustomField-datePopup-title": "Mudar data", + "cardCustomFieldsPopup-title": "Editar campos customizados", "cardDeletePopup-title": "Excluir Cartão?", "cardDetailsActionsPopup-title": "Ações do cartão", "cardLabelsPopup-title": "Etiquetas", @@ -141,7 +146,7 @@ "clipboard": "Área de Transferência ou arraste e solte", "close": "Fechar", "close-board": "Fechar Quadro", - "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.", + "close-board-pop": "Você poderá restaurar o quadro clicando no botão lixeira no cabeçalho da página inicial", "color-black": "preto", "color-blue": "azul", "color-green": "verde", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Criar Quadro", "chooseBoardSourcePopup-title": "Importar quadro", "createLabelPopup-title": "Criar Etiqueta", + "createCustomField": "Criar campo", + "createCustomFieldPopup-title": "Criar campo", "current": "atual", + "custom-field-delete-pop": "Não existe desfazer. Isso irá remover o campo customizado de todos os cartões e destruir seu histórico", + "custom-field-checkbox": "Caixa de seleção", + "custom-field-date": "Data", + "custom-field-dropdown": "Lista suspensa", + "custom-field-dropdown-none": "(nada)", + "custom-field-dropdown-options": "Lista de opções", + "custom-field-dropdown-options-placeholder": "Pressione enter para adicionar mais opções", + "custom-field-dropdown-unknown": "(desconhecido)", + "custom-field-number": "Número", + "custom-field-text": "Texto", + "custom-fields": "Campos customizados", "date": "Data", "decline": "Rejeitar", "default-avatar": "Avatar padrão", "delete": "Excluir", + "deleteCustomFieldPopup-title": "Deletar campo customizado?", "deleteLabelPopup-title": "Excluir Etiqueta?", "description": "Descrição", "disambiguateMultiLabelPopup-title": "Desambiguar ações de etiquetas", @@ -186,6 +205,7 @@ "soft-wip-limit": "Limite de WIP", "editCardStartDatePopup-title": "Altera data de início", "editCardDueDatePopup-title": "Altera data fim", + "editCustomFieldPopup-title": "Editar campo", "editCardSpentTimePopup-title": "Editar tempo gasto", "editLabelPopup-title": "Alterar Etiqueta", "editNotificationPopup-title": "Editar Notificações", @@ -222,9 +242,12 @@ "filter-clear": "Limpar filtro", "filter-no-label": "Sem labels", "filter-no-member": "Sem membros", + "filter-no-custom-fields": "Não há campos customizados", "filter-on": "Filtro está ativo", "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.", "filter-to-selection": "Filtrar esta seleção", + "advanced-filter-label": "Filtro avançado", + "advanced-filter-description": "Um Filtro Avançado permite escrever uma string contendo os seguintes operadores: == != <= >= && || () Um espaço é utilizado como separador entre os operadores. Você pode filtrar todos os campos customizados digitando seus nomes e valores. Por exemplo: campo1 == valor1. Nota: se campos ou valores contém espaços, você precisa encapsular eles em aspas simples. Por exemplo: 'campo 1' == 'valor 1'. Você também pode combinar múltiplas condições. Por exemplo: F1 == V1 || F1 == V2. Normalmente todos os operadores são interpretados da esquerda para a direita. Você pode mudar a ordem ao incluir parênteses. Por exemplo: F1 == V1 e (F2 == V2 || F2 == V3)", "fullname": "Nome Completo", "header-logo-title": "Voltar para a lista de quadros.", "hide-system-messages": "Esconde mensagens de sistema", @@ -264,17 +287,17 @@ "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 all cards in this list to Recycle Bin", - "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.", + "list-archive-cards": "Mover todos os cartões nesta lista para a lixeira", + "list-archive-cards-pop": "Isso irá remover todos os cartões nesta lista do quadro. Para visualizar cartões na lixeira e trazê-los de volta ao quadro, clique em \"Menu\" > \"Lixeira\".", "list-move-cards": "Mover todos os cartões desta lista", "list-select-cards": "Selecionar todos os cartões nesta lista", "listActionPopup-title": "Listar Ações", - "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneActionPopup-title": "Ações de Swimlane", "listImportCardPopup-title": "Importe um cartão do Trello", "listMorePopup-title": "Mais", "link-list": "Vincular a esta lista", "list-delete-pop": "Todas as ações serão removidas da lista de atividades e você não poderá recuperar a lista. Não há como desfazer.", - "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.", + "list-delete-suggest-archive": "Você pode mover a lista para a lixeira para removê-la do quadro e preservar a atividade.", "lists": "Listas", "swimlanes": "Swimlanes", "log-out": "Sair", @@ -294,9 +317,9 @@ "muted-info": "Você nunca receberá qualquer notificação desse board", "my-boards": "Meus Quadros", "name": "Nome", - "no-archived-cards": "No cards in Recycle Bin.", - "no-archived-lists": "No lists in Recycle Bin.", - "no-archived-swimlanes": "No swimlanes in Recycle Bin.", + "no-archived-cards": "Não há cartões na lixeira", + "no-archived-lists": "Não há listas na lixeira", + "no-archived-swimlanes": "Não há swimlanes na lixeira", "no-results": "Nenhum resultado.", "normal": "Normal", "normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.", @@ -361,11 +384,12 @@ "overtime-hours": "Tempo extras (Horas)", "overtime": "Tempo extras", "has-overtime-cards": "Tem cartões de horas extras", - "has-spenttime-cards": "Has spent time cards", + "has-spenttime-cards": "Gastou cartões de tempo", "time": "Tempo", "title": "Título", "tracking": "Tracking", "tracking-info": "Você será notificado se houver qualquer alteração em cards em que você é o criador ou membro", + "type": "Tipo", "unassign-member": "Membro não associado", "unsaved-description": "Você possui uma descrição não salva", "unwatch": "Deixar de observar", @@ -374,12 +398,12 @@ "uploaded-avatar": "Avatar carregado", "username": "Nome de usuário", "view-it": "Visualizar", - "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "warn-list-archived": "Aviso: este cartão está em uma lista na lixeira", "watch": "Observar", "watching": "Observando", "watching-info": "Você será notificado em qualquer alteração desse board", "welcome-board": "Board de Boas Vindas", - "welcome-swimlane": "Milestone 1", + "welcome-swimlane": "Marco 1", "welcome-list1": "Básico", "welcome-list2": "Avançado", "what-to-do": "O que você gostaria de fazer?", @@ -430,18 +454,25 @@ "hours": "horas", "minutes": "minutos", "seconds": "segundos", + "show-field-on-card": "Mostrar este campo no cartão", "yes": "Sim", "no": "Não", "accounts": "Contas", "accounts-allowEmailChange": "Permitir Mudança de Email", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Permitir alteração de nome de usuário", "createdAt": "Criado em", "verified": "Verificado", "active": "Ativo", - "card-received": "Received", - "card-received-on": "Received on", - "card-end": "End", - "card-end-on": "Ends on", - "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "card-received": "Recebido", + "card-received-on": "Recebido em", + "card-end": "Fim", + "card-end-on": "Termina em", + "editCardReceivedDatePopup-title": "Modificar data de recebimento", + "editCardEndDatePopup-title": "Mudar data de fim", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json index b78bbca8..06b5ba2d 100644 --- a/i18n/pt.i18n.json +++ b/i18n/pt.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "Criado %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Etiquetas", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "Não", "accounts": "Contas", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 014ad3d4..dd4d2b58 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Titlu", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 447e8f0d..ca9d3673 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "прокомментировал __card__: __comment__", "act-createBoard": "создал __board__", "act-createCard": "добавил __card__ в __list__", + "act-createCustomField": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание. Если поля или значения содержат пробелы, вам необходимо инкапсулировать их в одинарные кавычки. Например: «Поле 1» == «Значение 1». Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 = V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 и (F2 == V2 || F2 == V3)", "act-createList": "добавил __list__ для __board__", "act-addBoardMember": "добавил __member__ в __board__", "act-archivedBoard": "Доска __board__ перемещена в Корзину", @@ -30,6 +31,7 @@ "activity-archived": "%s перемещено в Корзину", "activity-attached": "прикрепил %s к %s", "activity-created": "создал %s", + "activity-customfield-created": "создать настраиваемое поле", "activity-excluded": "исключил %s из %s", "activity-imported": "импортировал %s в %s из %s", "activity-imported-board": "импортировал %s из %s", @@ -111,6 +113,7 @@ "card-due-on": "Выполнить до", "card-spent": "Затраченное время", "card-edit-attachments": "Изменить вложения", + "card-edit-custom-fields": "Редактировать настраиваемые поля", "card-edit-labels": "Изменить метку", "card-edit-members": "Изменить участников", "card-labels-title": "Изменить метки для этой карточки.", @@ -118,6 +121,8 @@ "card-start": "Дата начала", "card-start-on": "Начнётся с", "cardAttachmentsPopup-title": "Прикрепить из", + "cardCustomField-datePopup-title": "Изменить дату", + "cardCustomFieldsPopup-title": "редактировать настраиваемые поля", "cardDeletePopup-title": "Удалить карточку?", "cardDetailsActionsPopup-title": "Действия в карточке", "cardLabelsPopup-title": "Метки", @@ -161,17 +166,31 @@ "copy-card-link-to-clipboard": "Копировать ссылку на карточку в буфер обмена", "copyCardPopup-title": "Копировать карточку", "copyChecklistToManyCardsPopup-title": "Копировать шаблон контрольного списка в несколько карточек", - "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "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": "Импортировать доску", "createLabelPopup-title": "Создать метку", + "createCustomField": "Создать поле", + "createCustomFieldPopup-title": "Создать поле", "current": "текущий", + "custom-field-delete-pop": "Отменить нельзя. Это удалит настраиваемое поле со всех карт и уничтожит его историю.", + "custom-field-checkbox": "Галочка", + "custom-field-date": "Дата", + "custom-field-dropdown": "Выпадающий список", + "custom-field-dropdown-none": "(нет)", + "custom-field-dropdown-options": "Параметры списка", + "custom-field-dropdown-options-placeholder": "Нажмите «Ввод», чтобы добавить дополнительные параметры.", + "custom-field-dropdown-unknown": "(неизвестно)", + "custom-field-number": "Номер", + "custom-field-text": "Текст", + "custom-fields": "Настраиваемые поля", "date": "Дата", "decline": "Отклонить", "default-avatar": "Аватар по умолчанию", "delete": "Удалить", + "deleteCustomFieldPopup-title": "Удалить настраиваемые поля?", "deleteLabelPopup-title": "Удалить метку?", "description": "Описание", "disambiguateMultiLabelPopup-title": "Разрешить конфликт меток", @@ -186,6 +205,7 @@ "soft-wip-limit": "Мягкий лимит на кол-во задач", "editCardStartDatePopup-title": "Изменить дату начала", "editCardDueDatePopup-title": "Изменить дату выполнения", + "editCustomFieldPopup-title": "Редактировать поле", "editCardSpentTimePopup-title": "Изменить затраченное время", "editLabelPopup-title": "Изменить метки", "editNotificationPopup-title": "Редактировать уведомления", @@ -222,9 +242,12 @@ "filter-clear": "Очистить фильтр", "filter-no-label": "Нет метки", "filter-no-member": "Нет участников", + "filter-no-custom-fields": "Нет настраиваемых полей", "filter-on": "Включен фильтр", "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Расширенный фильтр", + "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание: Если поля или значения содержат пробелы, вам необходимо 'брать' их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 = V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 и (F2 == V2 || F2 == V3)", "fullname": "Полное имя", "header-logo-title": "Вернуться к доскам.", "hide-system-messages": "Скрыть системные сообщения", @@ -366,6 +389,7 @@ "title": "Название", "tracking": "Отслеживание", "tracking-info": "Вы будете уведомлены о любых изменениях в тех карточках, в которых вы являетесь создателем или участником.", + "type": "Тип", "unassign-member": "Отменить назначение участника", "unsaved-description": "У вас есть несохраненное описание.", "unwatch": "Перестать следить", @@ -430,11 +454,12 @@ "hours": "часы", "minutes": "минуты", "seconds": "секунды", + "show-field-on-card": "Показать это поле на карте", "yes": "Да", "no": "Нет", "accounts": "Учетные записи", "accounts-allowEmailChange": "Разрешить изменение электронной почты", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Разрешить изменение имени пользователя", "createdAt": "Создано на", "verified": "Проверено", "active": "Действующий", @@ -443,5 +468,11 @@ "card-end": "Дата окончания", "card-end-on": "Завершится до", "editCardReceivedDatePopup-title": "Изменить дату получения", - "editCardEndDatePopup-title": "Изменить дату завершения" + "editCardEndDatePopup-title": "Изменить дату завершения", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index 14475751..fa939432 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "prikačio %s u %s", "activity-created": "kreirao %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "izuzmi %s iz %s", "activity-imported": "uvezao %s u %s iz %s", "activity-imported-board": "uvezao %s iz %s", @@ -106,11 +108,12 @@ "card-comments-title": "Ova kartica ima %s komentar.", "card-delete-notice": "Brisanje je trajno. Izgubićeš sve akcije povezane sa ovom karticom.", "card-delete-pop": "Sve akcije će biti uklonjene sa liste aktivnosti i kartica neće moći biti ponovo otvorena. Nema vraćanja unazad.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Krajnji datum", "card-due-on": "Završava se", "card-spent": "Spent Time", "card-edit-attachments": "Uredi priloge", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Uredi natpise", "card-edit-members": "Uredi članove", "card-labels-title": "Promeni natpis na kartici.", @@ -118,6 +121,8 @@ "card-start": "Početak", "card-start-on": "Počinje", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Datum", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Datum", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Izmeni početni datum", "editCardDueDatePopup-title": "Izmeni krajnji datum", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Izmeni notifikaciju", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "Nema oznake", "filter-no-member": "Nema člana", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Sakrij sistemske poruke", @@ -366,6 +389,7 @@ "title": "Naslov", "tracking": "Praćenje", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "Imaš nesnimljen opis.", "unwatch": "Ne posmatraj", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json index 4cc2d987..99a39773 100644 --- a/i18n/sv.i18n.json +++ b/i18n/sv.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "kommenterade __card__: __comment__", "act-createBoard": "skapade __board__", "act-createCard": "lade till __card__ to __list__", + "act-createCustomField": "skapa anpassat fält __customField__", "act-createList": "lade till __list__ to __board__", "act-addBoardMember": "lade till __member__ to __board__", "act-archivedBoard": "__board__ flyttad till papperskorgen", @@ -30,6 +31,7 @@ "activity-archived": "%s flyttad till papperskorgen", "activity-attached": "bifogade %s to %s", "activity-created": "skapade %s", + "activity-customfield-created": "skapa anpassat fält %s", "activity-excluded": "exkluderade %s från %s", "activity-imported": "importerade %s till %s från %s", "activity-imported-board": "importerade %s från %s", @@ -45,7 +47,7 @@ "add-attachment": "Lägg till bilaga", "add-board": "Lägg till anslagstavla", "add-card": "Lägg till kort", - "add-swimlane": "Add Swimlane", + "add-swimlane": "Lägg till simbana", "add-checklist": "Lägg till checklista", "add-checklist-item": "Lägg till ett objekt till kontrollista", "add-cover": "Lägg till omslag", @@ -66,16 +68,16 @@ "app-is-offline": "Wekan laddar, vänta. Uppdatering av sidan kommer att leda till förlust av data. Om Wekan inte laddas, kontrollera att Wekan-servern inte har stoppats.", "archive": "Flytta till papperskorgen", "archive-all": "Flytta alla till papperskorgen", - "archive-board": "Move Board to Recycle Bin", - "archive-card": "Move Card to Recycle Bin", - "archive-list": "Move List to Recycle Bin", - "archive-swimlane": "Move Swimlane to Recycle Bin", - "archive-selection": "Move selection to Recycle Bin", - "archiveBoardPopup-title": "Move Board to Recycle Bin?", + "archive-board": "Flytta anslagstavla till papperskorgen", + "archive-card": "Flytta kort till papperskorgen", + "archive-list": "Flytta lista till papperskorgen", + "archive-swimlane": "Flytta simbana till papperskorgen", + "archive-selection": "Flytta val till papperskorgen", + "archiveBoardPopup-title": "Flytta anslagstavla till papperskorgen?", "archived-items": "Papperskorgen", - "archived-boards": "Boards in Recycle Bin", + "archived-boards": "Anslagstavlor i papperskorgen", "restore-board": "Återställ anslagstavla", - "no-archived-boards": "No Boards in Recycle Bin.", + "no-archived-boards": "Inga anslagstavlor i papperskorgen", "archives": "Papperskorgen", "assign-member": "Tilldela medlem", "attached": "bifogad", @@ -98,7 +100,7 @@ "boardMenuPopup-title": "Anslagstavla meny", "boards": "Anslagstavlor", "board-view": "Board View", - "board-view-swimlanes": "Swimlanes", + "board-view-swimlanes": "Simbanor", "board-view-lists": "Listor", "bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel", "cancel": "Avbryt", @@ -106,11 +108,12 @@ "card-comments-title": "Detta kort har %s kommentar.", "card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.", "card-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsflöde och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Förfaller", "card-due-on": "Förfaller på", "card-spent": "Spenderad tid", "card-edit-attachments": "Redigera bilaga", + "card-edit-custom-fields": "Redigera anpassade fält", "card-edit-labels": "Redigera etiketter", "card-edit-members": "Redigera medlemmar", "card-labels-title": "Ändra etiketter för kortet.", @@ -118,6 +121,8 @@ "card-start": "Börja", "card-start-on": "Börja med", "cardAttachmentsPopup-title": "Bifoga från", + "cardCustomField-datePopup-title": "Ändra datum", + "cardCustomFieldsPopup-title": "Redigera anpassade fält", "cardDeletePopup-title": "Ta bort kort?", "cardDetailsActionsPopup-title": "Kortåtgärder", "cardLabelsPopup-title": "Etiketter", @@ -161,17 +166,31 @@ "copy-card-link-to-clipboard": "Kopiera kortlänk till urklipp", "copyCardPopup-title": "Kopiera kort", "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards", - "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format", + "copyChecklistToManyCardsPopup-instructions": "Destinationskorttitlar och beskrivningar i detta JSON-format", "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": "Skapa", "createBoardPopup-title": "Skapa anslagstavla", "chooseBoardSourcePopup-title": "Importera anslagstavla", "createLabelPopup-title": "Skapa etikett", + "createCustomField": "Skapa fält", + "createCustomFieldPopup-title": "Skapa fält", "current": "aktuell", + "custom-field-delete-pop": "Det går inte att ångra. Detta tar bort det här anpassade fältet från alla kort och förstör dess historia.", + "custom-field-checkbox": "Kryssruta", + "custom-field-date": "Datum", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(inga)", + "custom-field-dropdown-options": "Listalternativ", + "custom-field-dropdown-options-placeholder": "Tryck på enter för att lägga till fler alternativ", + "custom-field-dropdown-unknown": "(okänd)", + "custom-field-number": "Nummer", + "custom-field-text": "Text", + "custom-fields": "Anpassade fält", "date": "Datum", "decline": "Nedgång", "default-avatar": "Standard avatar", "delete": "Ta bort", + "deleteCustomFieldPopup-title": "Ta bort anpassade fält?", "deleteLabelPopup-title": "Ta bort etikett?", "description": "Beskrivning", "disambiguateMultiLabelPopup-title": "Otvetydig etikettåtgärd", @@ -186,6 +205,7 @@ "soft-wip-limit": "Mjuk WIP-gräns", "editCardStartDatePopup-title": "Ändra startdatum", "editCardDueDatePopup-title": "Ändra förfallodatum", + "editCustomFieldPopup-title": "Redigera fält", "editCardSpentTimePopup-title": "Ändra spenderad tid", "editLabelPopup-title": "Ändra etikett", "editNotificationPopup-title": "Redigera avisering", @@ -222,9 +242,12 @@ "filter-clear": "Rensa filter", "filter-no-label": "Ingen etikett", "filter-no-member": "Ingen medlem", + "filter-no-custom-fields": "Inga anpassade fält", "filter-on": "Filter är på", "filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.", "filter-to-selection": "Filter till val", + "advanced-filter-label": "Avancerat filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Namn", "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.", "hide-system-messages": "Göm systemmeddelanden", @@ -269,14 +292,14 @@ "list-move-cards": "Flytta alla kort i denna lista", "list-select-cards": "Välj alla kort i denna lista", "listActionPopup-title": "Liståtgärder", - "swimlaneActionPopup-title": "Swimlane Actions", + "swimlaneActionPopup-title": "Simbana-åtgärder", "listImportCardPopup-title": "Importera ett Trello kort", "listMorePopup-title": "Mera", "link-list": "Länk till den här listan", "list-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsmatningen och du kommer inte att kunna återställa listan. Det går inte att ångra.", - "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.", + "list-delete-suggest-archive": "Du kan flytta en lista till papperskorgen för att ta bort den från brädet och bevara aktiviteten.", "lists": "Listor", - "swimlanes": "Swimlanes", + "swimlanes": "Simbanor ", "log-out": "Logga ut", "log-in": "Logga in", "loginPopup-title": "Logga in", @@ -296,7 +319,7 @@ "name": "Namn", "no-archived-cards": "Inga kort i papperskorgen.", "no-archived-lists": "Inga listor i papperskorgen.", - "no-archived-swimlanes": "No swimlanes in Recycle Bin.", + "no-archived-swimlanes": "Inga simbanor i papperskorgen.", "no-results": "Inga reslutat", "normal": "Normal", "normal-desc": "Kan se och redigera kort. Kan inte ändra inställningar.", @@ -332,7 +355,7 @@ "restore": "Återställ", "save": "Spara", "search": "Sök", - "search-cards": "Search from card titles and descriptions on this board", + "search-cards": "Sök från korttitlar och beskrivningar på det här brädet", "search-example": "Text att söka efter?", "select-color": "Välj färg", "set-wip-limit-value": "Ange en gräns för det maximala antalet uppgifter i den här listan", @@ -361,11 +384,12 @@ "overtime-hours": "Övertid (timmar)", "overtime": "Övertid", "has-overtime-cards": "Har övertidskort", - "has-spenttime-cards": "Has spent time cards", + "has-spenttime-cards": "Har spenderat tidkort", "time": "Tid", "title": "Titel", "tracking": "Spårning", "tracking-info": "Du kommer att meddelas om eventuella ändringar av dessa kort du deltar i som skapare eller medlem.", + "type": "Skriv", "unassign-member": "Ta bort tilldelad medlem", "unsaved-description": "Du har en osparad beskrivning.", "unwatch": "Avbevaka", @@ -374,7 +398,7 @@ "uploaded-avatar": "Laddade upp en avatar", "username": "Änvandarnamn", "view-it": "Visa det", - "warn-list-archived": "warning: this card is in an list at Recycle Bin", + "warn-list-archived": "varning: det här kortet finns i en lista i papperskorgen", "watch": "Bevaka", "watching": "Bevakar", "watching-info": "Du kommer att meddelas om alla ändringar på denna anslagstavla", @@ -430,18 +454,25 @@ "hours": "timmar", "minutes": "minuter", "seconds": "sekunder", + "show-field-on-card": "Visa detta fält på kort", "yes": "Ja", "no": "Nej", "accounts": "Konton", "accounts-allowEmailChange": "Tillåt e-poständring", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Tillåt användarnamnändring", "createdAt": "Skapad vid", "verified": "Verifierad", "active": "Aktiv", "card-received": "Mottagen", - "card-received-on": "Received on", + "card-received-on": "Mottagen den", "card-end": "Slut", - "card-end-on": "Ends on", + "card-end-on": "Slutar den", "editCardReceivedDatePopup-title": "Ändra mottagningsdatum", - "editCardEndDatePopup-title": "Ändra slutdatum" + "editCardEndDatePopup-title": "Ändra slutdatum", + "assigned-by": "Tilldelad av", + "requested-by": "Efterfrågad av", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Ta bort anslagstavla?", + "delete-board": "Ta bort anslagstavla" }
\ No newline at end of file diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json index d4cf4d88..317f2e3b 100644 --- a/i18n/ta.i18n.json +++ b/i18n/ta.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "commented on __card__: __comment__", "act-createBoard": "created __board__", "act-createCard": "added __card__ to __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 7cae51e4..e383b3d8 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "ออกความเห็นที่ __card__: __comment__", "act-createBoard": "สร้าง __board__", "act-createCard": "เพิ่ม __card__ ไปยัง __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "เพิ่ม __list__ ไปยัง __board__", "act-addBoardMember": "เพิ่ม __member__ ไปยัง __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "แนบ %s ไปยัง %s", "activity-created": "สร้าง %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "ยกเว้น %s จาก %s", "activity-imported": "ถูกนำเข้า %s ไปยัง %s จาก %s", "activity-imported-board": "นำเข้า %s จาก %s", @@ -106,11 +108,12 @@ "card-comments-title": "การ์ดนี้มี %s ความเห็น.", "card-delete-notice": "เป็นการลบถาวร คุณจะสูญเสียข้อมูลที่เกี่ยวข้องกับการ์ดนี้ทั้งหมด", "card-delete-pop": "การดำเนินการทั้งหมดจะถูกลบจาก feed กิจกรรมและคุณไม่สามารถเปิดได้อีกครั้งหรือยกเลิกการทำ", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "ครบกำหนด", "card-due-on": "ครบกำหนดเมื่อ", "card-spent": "Spent Time", "card-edit-attachments": "แก้ไขสิ่งที่แนบมา", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "แก้ไขป้ายกำกับ", "card-edit-members": "แก้ไขสมาชิก", "card-labels-title": "เปลี่ยนป้ายกำกับของการ์ด", @@ -118,6 +121,8 @@ "card-start": "เริ่ม", "card-start-on": "เริ่มเมื่อ", "cardAttachmentsPopup-title": "แนบจาก", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "ลบการ์ดนี้หรือไม่", "cardDetailsActionsPopup-title": "การดำเนินการการ์ด", "cardLabelsPopup-title": "ป้ายกำกับ", @@ -167,11 +172,25 @@ "createBoardPopup-title": "สร้างบอร์ด", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "สร้างป้ายกำกับ", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "ปัจจุบัน", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "วันที่", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "วันที่", "decline": "ปฎิเสธ", "default-avatar": "ภาพเริ่มต้น", "delete": "ลบ", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "ลบป้ายกำกับนี้หรือไม่", "description": "คำอธิบาย", "disambiguateMultiLabelPopup-title": "การดำเนินการกำกับป้ายชัดเจน", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น", "editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "เปลี่ยนป้ายกำกับ", "editNotificationPopup-title": "แก้ไขการแจ้งเตือน", @@ -222,9 +242,12 @@ "filter-clear": "ล้างตัวกรอง", "filter-no-label": "ไม่มีฉลาก", "filter-no-member": "ไม่มีสมาชิก", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "กรองบน", "filter-on-desc": "คุณกำลังกรองการ์ดในบอร์ดนี้ คลิกที่นี่เพื่อแก้ไขตัวกรอง", "filter-to-selection": "กรองตัวเลือก", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "ชื่อ นามสกุล", "header-logo-title": "ย้อนกลับไปที่หน้าบอร์ดของคุณ", "hide-system-messages": "ซ่อนข้อความของระบบ", @@ -366,6 +389,7 @@ "title": "หัวข้อ", "tracking": "ติดตาม", "tracking-info": "คุณจะได้รับแจ้งการเปลี่ยนแปลงใด ๆ กับการ์ดที่คุณมีส่วนร่วมในฐานะผู้สร้างหรือสมาชิก", + "type": "Type", "unassign-member": "ยกเลิกสมาชิก", "unsaved-description": "คุณมีคำอธิบายที่ไม่ได้บันทึก", "unwatch": "เลิกเฝ้าดู", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 7f9cfd3d..29d8006d 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "__card__ kartına bir yorum bıraktı: __comment__", "act-createBoard": "__board__ panosunu oluşturdu", "act-createCard": "__card__ kartını ___list__ listesine ekledi", + "act-createCustomField": "__customField__ adlı özel alan yaratıldı", "act-createList": "__list__ listesini __board__ panosuna ekledi", "act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi", "act-archivedBoard": "__board__ Geri Dönüşüm Kutusu'na taşındı", @@ -30,6 +31,7 @@ "activity-archived": "%s Geri Dönüşüm Kutusu'na taşındı", "activity-attached": "%s içine %s ekledi", "activity-created": "%s öğesini oluşturdu", + "activity-customfield-created": "%s adlı özel alan yaratıldı", "activity-excluded": "%s içinden %s çıkarttı", "activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı ", "activity-imported-board": "%s i %s içinden aktardı", @@ -111,6 +113,7 @@ "card-due-on": "Bitiş tarihi:", "card-spent": "Harcanan Zaman", "card-edit-attachments": "Ek dosyasını düzenle", + "card-edit-custom-fields": "Özel alanları düzenle", "card-edit-labels": "Etiketleri düzenle", "card-edit-members": "Üyeleri düzenle", "card-labels-title": "Bu kart için etiketleri düzenle", @@ -118,6 +121,8 @@ "card-start": "Başlama", "card-start-on": "Başlama tarihi:", "cardAttachmentsPopup-title": "Eklenme", + "cardCustomField-datePopup-title": "Tarihi değiştir", + "cardCustomFieldsPopup-title": "Özel alanları düzenle", "cardDeletePopup-title": "Kart Silinsin mi?", "cardDetailsActionsPopup-title": "Kart işlemleri", "cardLabelsPopup-title": "Etiketler", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Pano Oluşturma", "chooseBoardSourcePopup-title": "Panoyu içe aktar", "createLabelPopup-title": "Etiket Oluşturma", + "createCustomField": "Alanı yarat", + "createCustomFieldPopup-title": "Alanı yarat", "current": "mevcut", + "custom-field-delete-pop": "Bunun geri dönüşü yoktur. Bu özel alan tüm kartlardan kaldırılıp tarihçesi yokedilecektir.", + "custom-field-checkbox": "İşaret kutusu", + "custom-field-date": "Tarih", + "custom-field-dropdown": "Açılır liste", + "custom-field-dropdown-none": "(hiçbiri)", + "custom-field-dropdown-options": "Liste seçenekleri", + "custom-field-dropdown-options-placeholder": "Başka seçenekler eklemek için giriş tuşuna basınız", + "custom-field-dropdown-unknown": "(bilinmeyen)", + "custom-field-number": "Sayı", + "custom-field-text": "Metin", + "custom-fields": "Özel alanlar", "date": "Tarih", "decline": "Reddet", "default-avatar": "Varsayılan avatar", "delete": "Sil", + "deleteCustomFieldPopup-title": "Özel alan silinsin mi?", "deleteLabelPopup-title": "Etiket Silinsin mi?", "description": "Açıklama", "disambiguateMultiLabelPopup-title": "Etiket işlemini izah et", @@ -186,6 +205,7 @@ "soft-wip-limit": "Zayıf Devam Eden İş Sınırı", "editCardStartDatePopup-title": "Başlangıç tarihini değiştir", "editCardDueDatePopup-title": "Bitiş tarihini değiştir", + "editCustomFieldPopup-title": "Alanı düzenle", "editCardSpentTimePopup-title": "Harcanan zamanı değiştir", "editLabelPopup-title": "Etiket Değiştir", "editNotificationPopup-title": "Bildirimi değiştir", @@ -222,9 +242,12 @@ "filter-clear": "Filtreyi temizle", "filter-no-label": "Etiket yok", "filter-no-member": "Üye yok", + "filter-no-custom-fields": "Hiç özel alan yok", "filter-on": "Filtre aktif", "filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.", "filter-to-selection": "Seçime göre filtreleme yap", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Ad Soyad", "header-logo-title": "Panolar sayfanıza geri dön.", "hide-system-messages": "Sistem mesajlarını gizle", @@ -366,6 +389,7 @@ "title": "Başlık", "tracking": "Takip", "tracking-info": "Oluşturduğunuz veya üyesi olduğunuz tüm kartlardaki değişiklikler size bildirim olarak gelecek.", + "type": "Tür", "unassign-member": "Üyeye atamayı kaldır", "unsaved-description": "Kaydedilmemiş bir açıklama metnin bulunmakta", "unwatch": "Takibi bırak", @@ -430,11 +454,12 @@ "hours": "saat", "minutes": "dakika", "seconds": "saniye", + "show-field-on-card": "Bu alanı kartta göster", "yes": "Evet", "no": "Hayır", "accounts": "Hesaplar", "accounts-allowEmailChange": "E-posta Değiştirmeye İzin Ver", - "accounts-allowUserNameChange": "Allow Username Change", + "accounts-allowUserNameChange": "Kullanıcı adı değiştirmeye izin ver", "createdAt": "Oluşturulma tarihi", "verified": "Doğrulanmış", "active": "Aktif", @@ -443,5 +468,11 @@ "card-end": "Bitiş", "card-end-on": "Bitiş zamanı", "editCardReceivedDatePopup-title": "Giriş tarihini değiştir", - "editCardEndDatePopup-title": "Bitiş tarihini değiştir" + "editCardEndDatePopup-title": "Bitiş tarihini değiştir", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json index 599ebf91..b0c88c4a 100644 --- a/i18n/uk.i18n.json +++ b/i18n/uk.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "комментар в __card__: __comment__", "act-createBoard": "__board__ створенна", "act-createCard": "__card__ карта додана до __list__ листа", + "act-createCustomField": "created custom field __customField__", "act-createList": "added __list__ to __board__", "act-addBoardMember": "added __member__ to __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "attached %s to %s", "activity-created": "created %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "excluded %s from %s", "activity-imported": "imported %s into %s from %s", "activity-imported-board": "imported %s from %s", @@ -106,11 +108,12 @@ "card-comments-title": "This card has %s comment.", "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json index 73fc1bcb..ba609c92 100644 --- a/i18n/vi.i18n.json +++ b/i18n/vi.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "đã bình luận trong __card__: __comment__", "act-createBoard": "đã tạo __board__", "act-createCard": "đã thêm __card__ vào __list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "đã thêm __list__ vào __board__", "act-addBoardMember": "đã thêm __member__ vào __board__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "đã đính kèm %s vào %s", "activity-created": "đã tạo %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "đã loại bỏ %s khỏi %s", "activity-imported": "đã nạp %s vào %s từ %s", "activity-imported-board": "đã nạp %s từ %s", @@ -106,11 +108,12 @@ "card-comments-title": "Thẻ này có %s bình luận.", "card-delete-notice": "Hành động xóa là không thể khôi phục. Bạn sẽ mất hết các hoạt động liên quan đến thẻ này.", "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "Due", "card-due-on": "Due on", "card-spent": "Spent Time", "card-edit-attachments": "Edit attachments", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "Edit labels", "card-edit-members": "Edit members", "card-labels-title": "Change the labels for the card.", @@ -118,6 +121,8 @@ "card-start": "Start", "card-start-on": "Starts on", "cardAttachmentsPopup-title": "Attach From", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "Delete Card?", "cardDetailsActionsPopup-title": "Card Actions", "cardLabelsPopup-title": "Labels", @@ -167,11 +172,25 @@ "createBoardPopup-title": "Create Board", "chooseBoardSourcePopup-title": "Import board", "createLabelPopup-title": "Create Label", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "current", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "Date", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "Date", "decline": "Decline", "default-avatar": "Default avatar", "delete": "Delete", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "Delete Label?", "description": "Description", "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "Change Label", "editNotificationPopup-title": "Edit Notification", @@ -222,9 +242,12 @@ "filter-clear": "Clear filter", "filter-no-label": "No label", "filter-no-member": "No member", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "Filter is on", "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.", "filter-to-selection": "Filter to selection", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", @@ -366,6 +389,7 @@ "title": "Title", "tracking": "Tracking", "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.", + "type": "Type", "unassign-member": "Unassign member", "unsaved-description": "You have an unsaved description.", "unwatch": "Unwatch", @@ -430,6 +454,7 @@ "hours": "hours", "minutes": "minutes", "seconds": "seconds", + "show-field-on-card": "Show this field on card", "yes": "Yes", "no": "No", "accounts": "Accounts", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index 3b476dac..ad821bef 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "在 __card__ 发布评论: __comment__", "act-createBoard": "创建看板 __board__", "act-createCard": "添加卡片 __card__ 至列表 __list__", + "act-createCustomField": "创建了自定义字段 __customField__", "act-createList": "添加列表 __list__ 至看板 __board__", "act-addBoardMember": "添加成员 __member__ 至看板 __board__", "act-archivedBoard": "__board__ 已被移入回收站 ", @@ -30,6 +31,7 @@ "activity-archived": "%s 已被移入回收站", "activity-attached": "添加附件 %s 至 %s", "activity-created": "创建 %s", + "activity-customfield-created": "创建了自定义字段 %s", "activity-excluded": "排除 %s 从 %s", "activity-imported": "导入 %s 至 %s 从 %s 中", "activity-imported-board": "已导入 %s 从 %s 中", @@ -111,6 +113,7 @@ "card-due-on": "期限", "card-spent": "耗时", "card-edit-attachments": "编辑附件", + "card-edit-custom-fields": "编辑自定义字段", "card-edit-labels": "编辑标签", "card-edit-members": "编辑成员", "card-labels-title": "更改该卡片上的标签", @@ -118,6 +121,8 @@ "card-start": "开始", "card-start-on": "始于", "cardAttachmentsPopup-title": "附件来源", + "cardCustomField-datePopup-title": "修改日期", + "cardCustomFieldsPopup-title": "编辑自定义字段", "cardDeletePopup-title": "彻底删除卡片?", "cardDetailsActionsPopup-title": "卡片操作", "cardLabelsPopup-title": "标签", @@ -167,11 +172,25 @@ "createBoardPopup-title": "创建看板", "chooseBoardSourcePopup-title": "导入看板", "createLabelPopup-title": "创建标签", + "createCustomField": "创建字段", + "createCustomFieldPopup-title": "创建字段", "current": "当前", + "custom-field-delete-pop": "没有撤销,此动作将从所有卡片中移除自定义字段并销毁历史。", + "custom-field-checkbox": "选择框", + "custom-field-date": "日期", + "custom-field-dropdown": "下拉列表", + "custom-field-dropdown-none": "(无)", + "custom-field-dropdown-options": "列表选项", + "custom-field-dropdown-options-placeholder": "回车可以加入更多选项", + "custom-field-dropdown-unknown": "(未知)", + "custom-field-number": "数字", + "custom-field-text": "文本", + "custom-fields": "自定义字段", "date": "日期", "decline": "拒绝", "default-avatar": "默认头像", "delete": "删除", + "deleteCustomFieldPopup-title": "删除自定义字段?", "deleteLabelPopup-title": "删除标签?", "description": "描述", "disambiguateMultiLabelPopup-title": "标签消歧 [?]", @@ -186,6 +205,7 @@ "soft-wip-limit": "软在制品限制", "editCardStartDatePopup-title": "修改起始日期", "editCardDueDatePopup-title": "修改截止日期", + "editCustomFieldPopup-title": "编辑字段", "editCardSpentTimePopup-title": "修改耗时", "editLabelPopup-title": "更改标签", "editNotificationPopup-title": "编辑通知", @@ -222,9 +242,12 @@ "filter-clear": "清空过滤器", "filter-no-label": "无标签", "filter-no-member": "无成员", + "filter-no-custom-fields": "无自定义字段", "filter-on": "过滤器启用", "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。", "filter-to-selection": "要选择的过滤器", + "advanced-filter-label": "高级过滤器", + "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1. 注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。支持组合使用多个条件,例如: F1 == V1 || F1 = V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "全称", "header-logo-title": "返回您的看板页", "hide-system-messages": "隐藏系统消息", @@ -366,6 +389,7 @@ "title": "标题", "tracking": "跟踪", "tracking-info": "当任何包含您(作为创建者或成员)的卡片发生变更时,您将得到通知。", + "type": "类型", "unassign-member": "取消分配成员", "unsaved-description": "存在未保存的描述", "unwatch": "取消关注", @@ -430,6 +454,7 @@ "hours": "小时", "minutes": "分钟", "seconds": "秒", + "show-field-on-card": "在卡片上显示此字段", "yes": "是", "no": "否", "accounts": "账号", @@ -443,5 +468,11 @@ "card-end": "终止", "card-end-on": "终止于", "editCardReceivedDatePopup-title": "修改接收日期", - "editCardEndDatePopup-title": "修改终止日期" + "editCardEndDatePopup-title": "修改终止日期", + "assigned-by": "分配人", + "requested-by": "需求人", + "board-delete-notice": "删除时永久操作,将会丢失此看板上的所有列表、卡片和动作。", + "delete-board-confirm-popup": "所有列表、卡片、标签和活动都回被删除,将无法恢复看板内容。不支持撤销。", + "boardDeletePopup-title": "删除看板?", + "delete-board": "删除看板" }
\ No newline at end of file diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 082668dd..8d28bc5f 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -7,6 +7,7 @@ "act-addComment": "評論__card__: __comment__", "act-createBoard": "完成新增 __board__", "act-createCard": "將__card__加入__list__", + "act-createCustomField": "created custom field __customField__", "act-createList": "新增__list__至__board__", "act-addBoardMember": "在__board__中新增成員__member__", "act-archivedBoard": "__board__ moved to Recycle Bin", @@ -30,6 +31,7 @@ "activity-archived": "%s moved to Recycle Bin", "activity-attached": "新增附件 %s 至 %s", "activity-created": "建立 %s", + "activity-customfield-created": "created custom field %s", "activity-excluded": "排除 %s 從 %s", "activity-imported": "匯入 %s 至 %s 從 %s 中", "activity-imported-board": "已匯入 %s 從 %s 中", @@ -106,11 +108,12 @@ "card-comments-title": "該卡片有 %s 則評論", "card-delete-notice": "徹底刪除的操作不可復原,你將會遺失該卡片相關的所有操作記錄。", "card-delete-pop": "所有的動作將從活動動態中被移除且您將無法重新打開該卡片。此操作無法復原。", - "card-delete-suggest-archive": "You can move a card Recycle Bin to remove it from the board and preserve the activity.", + "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.", "card-due": "到期", "card-due-on": "到期", "card-spent": "Spent Time", "card-edit-attachments": "編輯附件", + "card-edit-custom-fields": "Edit custom fields", "card-edit-labels": "編輯標籤", "card-edit-members": "編輯成員", "card-labels-title": "更改該卡片上的標籤", @@ -118,6 +121,8 @@ "card-start": "開始", "card-start-on": "開始", "cardAttachmentsPopup-title": "附件來源", + "cardCustomField-datePopup-title": "Change date", + "cardCustomFieldsPopup-title": "Edit custom fields", "cardDeletePopup-title": "徹底刪除卡片?", "cardDetailsActionsPopup-title": "卡片動作", "cardLabelsPopup-title": "標籤", @@ -167,11 +172,25 @@ "createBoardPopup-title": "建立看板", "chooseBoardSourcePopup-title": "匯入看板", "createLabelPopup-title": "建立標籤", + "createCustomField": "Create Field", + "createCustomFieldPopup-title": "Create Field", "current": "目前", + "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.", + "custom-field-checkbox": "Checkbox", + "custom-field-date": "日期", + "custom-field-dropdown": "Dropdown List", + "custom-field-dropdown-none": "(none)", + "custom-field-dropdown-options": "List Options", + "custom-field-dropdown-options-placeholder": "Press enter to add more options", + "custom-field-dropdown-unknown": "(unknown)", + "custom-field-number": "Number", + "custom-field-text": "Text", + "custom-fields": "Custom Fields", "date": "日期", "decline": "拒絕", "default-avatar": "預設大頭貼", "delete": "刪除", + "deleteCustomFieldPopup-title": "Delete Custom Field?", "deleteLabelPopup-title": "刪除標籤?", "description": "描述", "disambiguateMultiLabelPopup-title": "清除標籤動作歧義", @@ -186,6 +205,7 @@ "soft-wip-limit": "Soft WIP Limit", "editCardStartDatePopup-title": "更改開始日期", "editCardDueDatePopup-title": "更改到期日期", + "editCustomFieldPopup-title": "Edit Field", "editCardSpentTimePopup-title": "Change spent time", "editLabelPopup-title": "更改標籤", "editNotificationPopup-title": "更改通知", @@ -222,9 +242,12 @@ "filter-clear": "清空過濾條件", "filter-no-label": "沒有標籤", "filter-no-member": "沒有成員", + "filter-no-custom-fields": "No Custom Fields", "filter-on": "過濾條件啟用", "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。", "filter-to-selection": "要選擇的過濾條件", + "advanced-filter-label": "Advanced Filter", + "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )", "fullname": "全稱", "header-logo-title": "返回您的看板頁面", "hide-system-messages": "隱藏系統訊息", @@ -366,6 +389,7 @@ "title": "標題", "tracking": "追蹤", "tracking-info": "你將會收到與你有關的卡片的所有變更通知", + "type": "Type", "unassign-member": "取消分配成員", "unsaved-description": "未儲存的描述", "unwatch": "取消觀察", @@ -430,6 +454,7 @@ "hours": "小時", "minutes": "分鐘", "seconds": "秒", + "show-field-on-card": "Show this field on card", "yes": "是", "no": "否", "accounts": "帳號", @@ -443,5 +468,11 @@ "card-end": "End", "card-end-on": "Ends on", "editCardReceivedDatePopup-title": "Change received date", - "editCardEndDatePopup-title": "Change end date" + "editCardEndDatePopup-title": "Change end date", + "assigned-by": "Assigned By", + "requested-by": "Requested By", + "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.", + "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.", + "boardDeletePopup-title": "Delete Board?", + "delete-board": "Delete Board" }
\ No newline at end of file diff --git a/models/attachments.js b/models/attachments.js index 5e5c4926..91dd0dbc 100644 --- a/models/attachments.js +++ b/models/attachments.js @@ -1,90 +1,90 @@ - Attachments = new FS.Collection('attachments', { - stores: [ +Attachments = new FS.Collection('attachments', { + stores: [ - // XXX Add a new store for cover thumbnails so we don't load big images in - // the general board view - new FS.Store.GridFS('attachments', { - // If the uploaded document is not an image we need to enforce browser - // download instead of execution. This is particularly important for HTML - // files that the browser will just execute if we don't serve them with the - // appropriate `application/octet-stream` MIME header which can lead to user - // data leaks. I imagine other formats (like PDF) can also be attack vectors. - // See https://github.com/wekan/wekan/issues/99 - // XXX Should we use `beforeWrite` option of CollectionFS instead of - // collection-hooks? - // We should use `beforeWrite`. - beforeWrite: (fileObj) => { - if (!fileObj.isImage()) { - return { - type: 'application/octet-stream', - }; - } - return {}; - }, - }), - ], - }); - - - if (Meteor.isServer) { - Attachments.allow({ - insert(userId, doc) { - return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); - }, - update(userId, doc) { - return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); - }, - remove(userId, doc) { - return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); - }, - // We authorize the attachment download either: - // - if the board is public, everyone (even unconnected) can download it - // - if the board is private, only board members can download it - download(userId, doc) { - const board = Boards.findOne(doc.boardId); - if (board.isPublic()) { - return true; - } else { - return board.hasMember(userId); + // XXX Add a new store for cover thumbnails so we don't load big images in + // the general board view + new FS.Store.GridFS('attachments', { + // If the uploaded document is not an image we need to enforce browser + // download instead of execution. This is particularly important for HTML + // files that the browser will just execute if we don't serve them with the + // appropriate `application/octet-stream` MIME header which can lead to user + // data leaks. I imagine other formats (like PDF) can also be attack vectors. + // See https://github.com/wekan/wekan/issues/99 + // XXX Should we use `beforeWrite` option of CollectionFS instead of + // collection-hooks? + // We should use `beforeWrite`. + beforeWrite: (fileObj) => { + if (!fileObj.isImage()) { + return { + type: 'application/octet-stream', + }; } + return {}; }, + }), + ], +}); - fetch: ['boardId'], - }); - } - - // XXX Enforce a schema for the Attachments CollectionFS - if (Meteor.isServer) { - Attachments.files.after.insert((userId, doc) => { - // If the attachment doesn't have a source field - // or its source is different than import - if (!doc.source || doc.source !== 'import') { - // Add activity about adding the attachment - Activities.insert({ - userId, - type: 'card', - activityType: 'addAttachment', - attachmentId: doc._id, - boardId: doc.boardId, - cardId: doc.cardId, - }); +if (Meteor.isServer) { + Attachments.allow({ + insert(userId, doc) { + return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); + }, + update(userId, doc) { + return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); + }, + remove(userId, doc) { + return allowIsBoardMember(userId, Boards.findOne(doc.boardId)); + }, + // We authorize the attachment download either: + // - if the board is public, everyone (even unconnected) can download it + // - if the board is private, only board members can download it + download(userId, doc) { + const board = Boards.findOne(doc.boardId); + if (board.isPublic()) { + return true; } else { - // Don't add activity about adding the attachment as the activity - // be imported and delete source field - Attachments.update({ - _id: doc._id, - }, { - $unset: { - source: '', - }, - }); + return board.hasMember(userId); } - }); + }, + + fetch: ['boardId'], + }); +} - Attachments.files.after.remove((userId, doc) => { - Activities.remove({ +// XXX Enforce a schema for the Attachments CollectionFS + +if (Meteor.isServer) { + Attachments.files.after.insert((userId, doc) => { + // If the attachment doesn't have a source field + // or its source is different than import + if (!doc.source || doc.source !== 'import') { + // Add activity about adding the attachment + Activities.insert({ + userId, + type: 'card', + activityType: 'addAttachment', attachmentId: doc._id, + boardId: doc.boardId, + cardId: doc.cardId, }); + } else { + // Don't add activity about adding the attachment as the activity + // be imported and delete source field + Attachments.update({ + _id: doc._id, + }, { + $unset: { + source: '', + }, + }); + } + }); + + Attachments.files.after.remove((userId, doc) => { + Activities.remove({ + attachmentId: doc._id, }); - } + }); +} diff --git a/models/boards.js b/models/boards.js index 44ce0b62..911d82a1 100644 --- a/models/boards.js +++ b/models/boards.js @@ -94,6 +94,9 @@ Boards.attachSchema(new SimpleSchema({ allowedValues: [ 'green', 'yellow', 'orange', 'red', 'purple', 'blue', 'sky', 'lime', 'pink', 'black', + 'silver', 'peachpuff', 'crimson', 'plum', 'darkgreen', + 'slateblue', 'magenta', 'gold', 'navy', 'gray', + 'saddlebrown', 'paleturquoise', 'mistyrose', 'indigo', ], }, // XXX We might want to maintain more informations under the member sub- diff --git a/models/cards.js b/models/cards.js index c77cd682..00ec14c2 100644 --- a/models/cards.js +++ b/models/cards.js @@ -66,6 +66,14 @@ Cards.attachSchema(new SimpleSchema({ type: String, optional: true, }, + requestedBy: { + type: String, + optional: true, + }, + assignedBy: { + type: String, + optional: true, + }, labelIds: { type: [String], optional: true, @@ -220,13 +228,28 @@ Cards.helpers({ }).fetch(); // match right definition to each field + if (!this.customFields) return []; return this.customFields.map((customField) => { + const definition = definitions.find((definition) => { + return definition._id === customField._id; + }); + //search for "True Value" which is for DropDowns other then the Value (which is the id) + let trueValue = customField.value; + if (definition.settings.dropdownItems && definition.settings.dropdownItems.length > 0) + { + for (let i = 0; i < definition.settings.dropdownItems.length; i++) + { + if (definition.settings.dropdownItems[i]._id === customField.value) + { + trueValue = definition.settings.dropdownItems[i].name; + } + } + } return { _id: customField._id, value: customField.value, - definition: definitions.find((definition) => { - return definition._id === customField._id; - }), + trueValue, + definition, }; }); @@ -267,6 +290,14 @@ Cards.mutations({ return {$set: {description}}; }, + setRequestedBy(requestedBy) { + return {$set: {requestedBy}}; + }, + + setAssignedBy(assignedBy) { + return {$set: {assignedBy}}; + }, + move(swimlaneId, listId, sortIndex) { const list = Lists.findOne(listId); const mutatedFields = { diff --git a/package.json b/package.json index 1d62fdb6..1e1db802 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "0.95.0", + "version": "1.04.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { @@ -20,11 +20,10 @@ }, "homepage": "https://wekan.github.io", "devDependencies": { - "eslint": "^2.0.0" + "eslint": "^4.19.1" }, "dependencies": { "babel-runtime": "^6.26.0", - "bcrypt": "^2.0.1", "bson-ext": "^2.0.0", "es6-promise": "^4.2.4", "meteor-node-stubs": "^0.4.1", diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index bd5994e9..7953f0f9 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 80, + appVersion = 89, # Increment this for every release. - appMarketingVersion = (defaultText = "0.95.0~2018-05-08"), + appMarketingVersion = (defaultText = "1.04.0~2018-06-12"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, diff --git a/sandstorm.js b/sandstorm.js index 3ea85fef..d34bc015 100644 --- a/sandstorm.js +++ b/sandstorm.js @@ -75,7 +75,7 @@ if (isSandstorm && Meteor.isServer) { session.claimRequest(token).then((response) => { const identity = response.cap.castAs(Identity.Identity); const promises = [api.getIdentityId(identity), identity.getProfile(), - httpBridge.saveIdentity(identity)]; + httpBridge.saveIdentity(identity)]; return Promise.all(promises).then((responses) => { const identityId = responses[0].id.toString('hex').slice(0, 32); const profile = responses[1].profile; @@ -115,9 +115,9 @@ if (isSandstorm && Meteor.isServer) { const identity = response.identity; return identity.getProfile().then(() => { return { identity, - mentioned: !!user.mentioned, - subscribed: !!user.subscribed, - }; + mentioned: !!user.mentioned, + subscribed: !!user.subscribed, + }; }); }).catch(() => { // Ignore identities that fail to restore. Either they were added before we set @@ -132,7 +132,7 @@ if (isSandstorm && Meteor.isServer) { return session.activity(event); }).then(() => done(), - (e) => done(e)); + (e) => done(e)); })(); } diff --git a/server/migrations.js b/server/migrations.js index e304a592..640eae69 100644 --- a/server/migrations.js +++ b/server/migrations.js @@ -167,9 +167,9 @@ Migrations.add('add-swimlanes', () => { Cards.find({ boardId: board._id }).forEach((card) => { if (!card.hasOwnProperty('swimlaneId')) { Cards.direct.update( - { _id: card._id }, - { $set: { swimlaneId } }, - noValidate + { _id: card._id }, + { $set: { swimlaneId } }, + noValidate ); } }); @@ -180,9 +180,9 @@ Migrations.add('add-views', () => { Boards.find().forEach((board) => { if (!board.hasOwnProperty('view')) { Boards.direct.update( - { _id: board._id }, - { $set: { view: 'board-view-swimlanes' } }, - noValidate + { _id: board._id }, + { $set: { view: 'board-view-swimlanes' } }, + noValidate ); } }); @@ -193,7 +193,7 @@ Migrations.add('add-checklist-items', () => { // Create new items _.sortBy(checklist.items, 'sort').forEach((item, index) => { ChecklistItems.direct.insert({ - title: checklist.title, + title: item.title, sort: index, isFinished: item.isFinished, checklistId: checklist._id, @@ -211,12 +211,14 @@ Migrations.add('add-checklist-items', () => { Migrations.add('add-profile-view', () => { Users.find().forEach((user) => { - // Set default view - Users.direct.update( - { _id: user._id }, - { $set: { 'profile.boardView': 'board-view-lists' } }, - noValidate - ); + if (!user.hasOwnProperty('profile.boardView')) { + // Set default view + Users.direct.update( + { _id: user._id }, + { $set: { 'profile.boardView': 'board-view-lists' } }, + noValidate + ); + } }); }); @@ -231,3 +233,28 @@ Migrations.add('add-custom-fields-to-cards', () => { }, }, noValidateMulti); }); + +Migrations.add('add-requester-field', () => { + Cards.update({ + requestedBy: { + $exists: false, + }, + }, { + $set: { + requestedBy:'', + }, + }, noValidateMulti); +}); + +Migrations.add('add-assigner-field', () => { + Cards.update({ + assignedBy: { + $exists: false, + }, + }, { + $set: { + assignedBy:'', + }, + }, noValidateMulti); +}); + diff --git a/server/publications/people.js b/server/publications/people.js index f3c2bdfe..7c13bdcc 100644 --- a/server/publications/people.js +++ b/server/publications/people.js @@ -1,7 +1,25 @@ -Meteor.publish('people', (limit) => { +Meteor.publish('people', function(limit) { check(limit, Number); - return Users.find({}, { - limit, - sort: {createdAt: -1}, - }); + + if (!Match.test(this.userId, String)) { + return []; + } + + const user = Users.findOne(this.userId); + if (user && user.isAdmin) { + return Users.find({}, { + limit, + sort: {createdAt: -1}, + fields: { + 'username': 1, + 'profile.fullname': 1, + 'isAdmin': 1, + 'emails': 1, + 'createdAt': 1, + 'loginDisabled': 1, + }, + }); + } else { + return []; + } }); diff --git a/snapcraft.yaml b/snapcraft.yaml index 088e1524..d1b89a67 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -65,7 +65,7 @@ apps: parts: mongodb: - source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.19.tgz + source: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.2.20.tgz plugin: dump stage-packages: [libssl1.0.0] filesets: @@ -83,7 +83,7 @@ parts: plugin: nodejs node-engine: 8.11.1 node-packages: - - npm@5.5.1 + - npm - node-gyp - node-pre-gyp - fibers@2.0.0 @@ -96,6 +96,8 @@ parts: - npm - curl - execstack + stage-packages: + - libfontconfig1 override-build: | echo "Cleaning environment first" rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules @@ -109,7 +111,7 @@ parts: # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm # Description at https://releases.wekan.team/node.txt # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d - echo "18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d node" >> node-SHASUMS256.txt.asc + echo "5f2703af5f7bd48e85fc8ed32d61de7c7cf81c53d0dcd73f6c218ed87e950fae 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:" @@ -138,13 +140,18 @@ parts: meteor npm install --allow-superuser meteor build .build --directory --allow-superuser cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js - cd .build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt - rm -rf node_modules/bcrypt - meteor npm install --save bcrypt + #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 ../../../../ + cd .build/bundle/programs/server npm install - meteor npm install --save bcrypt + #meteor npm install --save bcrypt # Change back to Wekan source directory cd ../../../.. cp -r .build/bundle/* $SNAPCRAFT_PART_INSTALL/ @@ -153,6 +160,8 @@ parts: execstack --clear-execstack $SNAPCRAFT_PART_INSTALL/programs/server/npm/node_modules/meteor/rajit_bootstrap3-datepicker/lib/bootstrap-datepicker/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs organize: README: README.wekan + prime: + - -lib/node_modules/node-pre-gyp/node_modules/tar/lib/.unpack.js.swp helpers: source: snap-src |