summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgnatzHome <ignatz@maschath.de>2018-06-14 19:42:09 +0200
committerIgnatzHome <ignatz@maschath.de>2018-06-14 19:42:09 +0200
commita433f7d9fe310e1aa5f5c831b2bfacb5b86c941e (patch)
tree6e30c7ebc0106518ec5ea76bcb57d294cc9f48f1
parent991e74bfc287d840951b7c707b7ff2a2f26e5001 (diff)
parentfcf262cc9807c1e87e638ce6b0c6151ae2114f60 (diff)
downloadwekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.tar.gz
wekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.tar.bz2
wekan-a433f7d9fe310e1aa5f5c831b2bfacb5b86c941e.zip
Merge branch 'feature-custom-fields' of https://github.com/feuerball11/wekan into feature-custom-fields
-rw-r--r--.github/ISSUE_TEMPLATE.md14
-rw-r--r--CHANGELOG.md100
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--Contributing.md5
-rw-r--r--Dockerfile15
-rw-r--r--README.md1
-rw-r--r--SECURITY.md129
-rw-r--r--client/components/boards/boardArchive.jade16
-rw-r--r--client/components/boards/boardArchive.js12
-rw-r--r--client/components/boards/boardBody.js2
-rw-r--r--client/components/boards/boardHeader.js6
-rw-r--r--client/components/cards/cardDate.js14
-rw-r--r--client/components/cards/cardDetails.jade48
-rw-r--r--client/components/cards/cardDetails.js42
-rw-r--r--client/components/cards/cardDetails.styl3
-rw-r--r--client/components/cards/labels.styl54
-rw-r--r--client/components/cards/minicard.jade23
-rw-r--r--client/components/cards/minicard.styl7
-rw-r--r--client/components/sidebar/sidebarCustomFields.jade4
-rw-r--r--client/components/sidebar/sidebarFilters.jade19
-rw-r--r--client/components/sidebar/sidebarFilters.js10
-rw-r--r--client/lib/filter.js325
-rw-r--r--docker-compose.yml2
-rw-r--r--i18n/ar.i18n.json35
-rw-r--r--i18n/bg.i18n.json229
-rw-r--r--i18n/br.i18n.json35
-rw-r--r--i18n/ca.i18n.json35
-rw-r--r--i18n/cs.i18n.json33
-rw-r--r--i18n/de.i18n.json43
-rw-r--r--i18n/el.i18n.json35
-rw-r--r--i18n/en-GB.i18n.json35
-rw-r--r--i18n/en.i18n.json13
-rw-r--r--i18n/eo.i18n.json35
-rw-r--r--i18n/es-AR.i18n.json33
-rw-r--r--i18n/es.i18n.json37
-rw-r--r--i18n/eu.i18n.json35
-rw-r--r--i18n/fa.i18n.json73
-rw-r--r--i18n/fi.i18n.json33
-rw-r--r--i18n/fr.i18n.json33
-rw-r--r--i18n/gl.i18n.json35
-rw-r--r--i18n/he.i18n.json33
-rw-r--r--i18n/hu.i18n.json67
-rw-r--r--i18n/hy.i18n.json35
-rw-r--r--i18n/id.i18n.json35
-rw-r--r--i18n/ig.i18n.json35
-rw-r--r--i18n/it.i18n.json41
-rw-r--r--i18n/ja.i18n.json35
-rw-r--r--i18n/km.i18n.json478
-rw-r--r--i18n/ko.i18n.json35
-rw-r--r--i18n/lv.i18n.json35
-rw-r--r--i18n/mn.i18n.json35
-rw-r--r--i18n/nb.i18n.json35
-rw-r--r--i18n/nl.i18n.json35
-rw-r--r--i18n/pl.i18n.json35
-rw-r--r--i18n/pt-BR.i18n.json109
-rw-r--r--i18n/pt.i18n.json35
-rw-r--r--i18n/ro.i18n.json35
-rw-r--r--i18n/ru.i18n.json37
-rw-r--r--i18n/sr.i18n.json35
-rw-r--r--i18n/sv.i18n.json77
-rw-r--r--i18n/ta.i18n.json35
-rw-r--r--i18n/th.i18n.json35
-rw-r--r--i18n/tr.i18n.json35
-rw-r--r--i18n/uk.i18n.json35
-rw-r--r--i18n/vi.i18n.json35
-rw-r--r--i18n/zh-CN.i18n.json33
-rw-r--r--i18n/zh-TW.i18n.json35
-rw-r--r--models/attachments.js158
-rw-r--r--models/boards.js3
-rw-r--r--models/cards.js37
-rw-r--r--package.json5
-rw-r--r--sandstorm-pkgdef.capnp4
-rw-r--r--sandstorm.js10
-rw-r--r--server/migrations.js53
-rw-r--r--server/publications/people.js28
-rw-r--r--snapcraft.yaml25
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>
diff --git a/Dockerfile b/Dockerfile
index c794f6dc..19612429 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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
diff --git a/README.md b/README.md
index ba9a3a10..8255e352 100644
--- a/README.md
+++ b/README.md
@@ -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