summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.meteor/versions4
-rw-r--r--.tx/config2
-rw-r--r--CHANGELOG.md27
-rw-r--r--client/components/boards/boardsList.js3
-rw-r--r--client/components/cards/cardDate.js27
-rw-r--r--client/components/cards/cardDetails.jade81
-rw-r--r--client/components/cards/cardDetails.js120
-rw-r--r--client/components/cards/cardDetails.styl10
-rw-r--r--client/components/cards/minicard.jade2
-rw-r--r--client/components/import/csvMembersMapper.js37
-rw-r--r--client/components/import/import.jade2
-rw-r--r--client/components/import/import.js52
-rw-r--r--client/components/lists/listBody.js9
-rw-r--r--client/components/lists/listHeader.js31
-rwxr-xr-xclient/components/main/editor.js2
-rw-r--r--client/components/sidebar/sidebar.jade19
-rw-r--r--client/components/sidebar/sidebar.js58
-rw-r--r--client/components/users/userAvatar.styl2
-rw-r--r--i18n/ar.i18n.json34
-rw-r--r--i18n/bg.i18n.json32
-rw-r--r--i18n/br.i18n.json32
-rw-r--r--i18n/ca.i18n.json32
-rw-r--r--i18n/cs.i18n.json32
-rw-r--r--i18n/da.i18n.json32
-rw-r--r--i18n/de.i18n.json32
-rw-r--r--i18n/el.i18n.json32
-rw-r--r--i18n/en-GB.i18n.json32
-rw-r--r--i18n/en.i18n.json33
-rw-r--r--i18n/eo.i18n.json32
-rw-r--r--i18n/es-AR.i18n.json32
-rw-r--r--i18n/es-CL.i18n.json810
-rw-r--r--i18n/es.i18n.json42
-rw-r--r--i18n/eu.i18n.json32
-rw-r--r--i18n/fa.i18n.json74
-rw-r--r--i18n/fi.i18n.json32
-rw-r--r--i18n/fr.i18n.json32
-rw-r--r--i18n/gl.i18n.json32
-rw-r--r--i18n/he.i18n.json32
-rw-r--r--i18n/hi.i18n.json32
-rw-r--r--i18n/hu.i18n.json32
-rw-r--r--i18n/hy.i18n.json32
-rw-r--r--i18n/id.i18n.json32
-rw-r--r--i18n/ig.i18n.json32
-rw-r--r--i18n/it.i18n.json32
-rw-r--r--i18n/ja.i18n.json34
-rw-r--r--i18n/ka.i18n.json32
-rw-r--r--i18n/km.i18n.json32
-rw-r--r--i18n/ko.i18n.json32
-rw-r--r--i18n/lv.i18n.json32
-rw-r--r--i18n/mk.i18n.json32
-rw-r--r--i18n/mn.i18n.json32
-rw-r--r--i18n/nb.i18n.json32
-rw-r--r--i18n/nl.i18n.json32
-rw-r--r--i18n/oc.i18n.json32
-rw-r--r--i18n/pl.i18n.json32
-rw-r--r--i18n/pt-BR.i18n.json32
-rw-r--r--i18n/pt.i18n.json32
-rw-r--r--i18n/ro.i18n.json32
-rw-r--r--i18n/ru.i18n.json32
-rw-r--r--i18n/sl.i18n.json32
-rw-r--r--i18n/sr.i18n.json32
-rw-r--r--i18n/sv.i18n.json92
-rw-r--r--i18n/sw.i18n.json32
-rw-r--r--i18n/ta.i18n.json32
-rw-r--r--i18n/th.i18n.json32
-rw-r--r--i18n/tr.i18n.json32
-rw-r--r--i18n/uk.i18n.json32
-rw-r--r--i18n/vi.i18n.json32
-rw-r--r--i18n/zh-CN.i18n.json32
-rw-r--r--i18n/zh-HK.i18n.json32
-rw-r--r--i18n/zh-TW.i18n.json32
-rw-r--r--models/cards.js87
-rw-r--r--models/csvCreator.js313
-rw-r--r--models/exporter.js344
-rw-r--r--models/import.js10
-rw-r--r--models/users.js41
-rw-r--r--package-lock.json209
-rw-r--r--package.json13
-rwxr-xr-xrebuild-wekan.sh44
-rwxr-xr-xreleases/translations/pull-translations.sh3
-rw-r--r--sandstorm.js2
81 files changed, 3687 insertions, 458 deletions
diff --git a/.meteor/versions b/.meteor/versions
index 23aa4804..1cd90d4b 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -109,7 +109,7 @@ mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.15.0
modules-runtime@0.12.0
-momentjs:moment@2.24.0
+momentjs:moment@2.25.2
mongo@1.10.0
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
@@ -127,7 +127,7 @@ mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
msavin:usercache@1.8.0
npm-bcrypt@0.9.3
-npm-mongo@3.7.0
+npm-mongo@3.7.1
oauth@1.3.0
oauth2@1.3.0
observe-sequence@1.0.16
diff --git a/.tx/config b/.tx/config
index 57b3ba40..5d498aba 100644
--- a/.tx/config
+++ b/.tx/config
@@ -39,7 +39,7 @@ host = https://www.transifex.com
# tap:i18n requires us to use `-` separator in the language identifiers whereas
# Transifex uses a `_` separator, without an option to customize it on one side
# or the other, so we need to do a Manual mapping.
-lang_map = bg_BG:bg, en_GB:en-GB, es_AR:es-AR, el_GR:el, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
+lang_map = bg_BG:bg, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, el_GR:el, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
[wekan.application]
file_filter = i18n/<lang>.i18n.json
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3772e347..c90ff173 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,17 +8,42 @@ This release adds the following server platforms:
and adds the following features:
- [Install Wekan to mobile homescreen icon and use fullscreen
- PWA](https://github.com/commit/8d5adc04645e3e71423f16869f39b8d79969bccd).
+ PWA](https://github.com/wekan/wekan/commit/8d5adc04645e3e71423f16869f39b8d79969bccd).
[Docs for iOS and Android at wiki PWA page](https://github.com/wekan/wekan/wiki/PWA).
Thanks to xet7.
+- [Add options to rebuild-wekan.sh to run Meteor in development mode where after
+ file change it rebuilds](https://github.com/wekan/wekan/commit/5f915ef966170ea7baca7ddeb11319bc08a26fef).
+ Thanks to xet7.
+
+and adds the following updates:
+
+- [Update dependencies](https://github.com/wekan/wekan/commit/75bdd33fda58ea0233f5b38c466bcb1a9b0406ab).
+ Thanks to xet7.
+
+and adds the following translations:
+
+- [Add Spanish (Chile)](https://github.com/wekan/wekan/commit/96507e6777ed77a324eaec9799c5b46b0d25ad26).
+ Thanks to isos, Transifex user.
and fixes the following bugs:
+- [Fix Deleting linked card makes board not load](https://github.com/wekan/wekan/issues/2785).
+ Thanks to marc1006 and xet7.
- [Fix getStartDayOfWeek once again](https://github.com/wekan/wekan/pull/3061).
Thanks to marc1006.
- [Fix shortcuts list and support card shortcuts when hovering
a card](https://github.com/wekan/wekan/pull/3066).
Thanks to marc1006.
+- [Add white-space:normal to copy-to-clipboard button in card
+ details](https://github.com/wekan/wekan/pull/3075).
+ Thanks to helioguardabaxo.
+- [Fix avatar-image class](https://github.com/wekan/wekan/pull/3083).
+ Thanks to krupupakku.
+- [Fix Swimlanes ID missing in new boards](https://github.com/wekan/wekan/pull/3088).
+ Thanks to krupupakku.
+- [Fix REST API so Create card does now allow an empty member
+ list](https://github.com/wekan/wekan/pull/3084).
+ Thanks to wackazong.
Thanks to above GitHub users for their contributions and translators for their translations.
diff --git a/client/components/boards/boardsList.js b/client/components/boards/boardsList.js
index 9208fdb2..b99c0c31 100644
--- a/client/components/boards/boardsList.js
+++ b/client/components/boards/boardsList.js
@@ -25,7 +25,6 @@ BlazeComponent.extendComponent({
},
onRendered() {
- const self = this;
function userIsAllowedToMove() {
return Meteor.user();
}
@@ -78,7 +77,7 @@ BlazeComponent.extendComponent({
},
boards() {
- let query = {
+ const query = {
archived: false,
type: 'board',
};
diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js
index c4b5c6d8..9b2268e9 100644
--- a/client/components/cards/cardDate.js
+++ b/client/components/cards/cardDate.js
@@ -386,3 +386,30 @@ CardEndDate.register('cardEndDate');
return this.date.get().format('l');
}
}.register('minicardEndDate'));
+
+class VoteEndDate extends CardDate {
+ onCreated() {
+ super.onCreated();
+ const self = this;
+ self.autorun(() => {
+ self.date.set(moment(self.data().getVoteEnd()));
+ });
+ }
+ classes() {
+ const classes = 'end-date' + ' ';
+ return classes;
+ }
+ showDate() {
+ return this.date.get().format('l LT');
+ }
+ showTitle() {
+ return `${TAPi18n.__('card-end-on')} ${this.date.get().format('LLLL')}`;
+ }
+
+ events() {
+ return super.events().concat({
+ 'click .js-edit-date': Popup.open('editVoteEndDate'),
+ });
+ }
+}
+VoteEndDate.register('voteEndDate');
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index ae97e0e9..2aa77627 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -202,9 +202,12 @@ template(name="cardDetails")
if getVoteQuestion
hr
.vote-title
- h3
- i.fa.fa-thumbs-up
- card-details-item-title {{_ 'vote-question'}}
+ div.flex
+ h3
+ i.fa.fa-thumbs-up
+ | {{_ 'vote-question'}}
+ if getVoteEnd
+ +voteEndDate
.vote-result
if votePublic
a.card-label.card-label-green.js-show-positive-votes {{ voteCountPositive }}
@@ -212,10 +215,13 @@ template(name="cardDetails")
else
.card-label.card-label-green {{ voteCountPositive }}
.card-label.card-label-red {{ voteCountNegative }}
+ unless ($and currentBoard.isPublic voteAllowNonBoardMembers )
+ .card-label.card-label-gray {{ voteCount }} {{_ 'r-of' }} {{ currentBoard.activeMembers.length }}
+viewer
= getVoteQuestion
- button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}") {{_ 'vote-for-it'}}
- button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}") {{_ 'vote-against'}}
+ if showVotingButtons
+ button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}") {{_ 'vote-for-it'}}
+ button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}") {{_ 'vote-against'}}
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
@@ -333,16 +339,10 @@ template(name="cardDetailsActionsPopup")
//li: a.js-members {{_ 'card-edit-members'}}
//li: a.js-labels {{_ 'card-edit-labels'}}
//li: a.js-attachments {{_ 'card-edit-attachments'}}
- if getVoteQuestion
- li
- a.js-cancel-voting
- i.fa.fa-thumbs-up
- | {{_ 'card-cancel-voting'}}
- else
- li
- a.js-start-voting
- i.fa.fa-thumbs-up
- | {{_ 'card-start-voting'}}
+ li
+ a.js-start-voting
+ i.fa.fa-thumbs-up
+ | {{_ 'card-edit-voting'}}
li
a.js-custom-fields
i.fa.fa-list-alt
@@ -465,14 +465,14 @@ template(name="cardAssigneesPopup")
i.fa.fa-check
if currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
- li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
- a.name.js-select-assignee(href="#")
- +userAvatar(userId=currentUser._id)
- span.full-name
- = currentUser.profile.fullname
- | (<span class="username">{{ currentUser.username }}</span>)
- if currentUser.isCardAssignee
- i.fa.fa-check
+ li.item(class="{{#if currentUser.isCardAssignee}}active{{/if}}")
+ a.name.js-select-assignee(href="#")
+ +userAvatar(userId=currentUser._id)
+ span.full-name
+ = currentUser.profile.fullname
+ | (<span class="username">{{ currentUser.username }}</span>)
+ if currentUser.isCardAssignee
+ i.fa.fa-check
template(name="userAvatarAssignee")
a.assignee.js-assignee(title="{{userData.profile.fullname}} ({{userData.username}})")
@@ -519,7 +519,7 @@ template(name="cardMorePopup")
= ' '
i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
input.inline-input(type="text" id="cardURL" readonly value="{{ absoluteUrl }}" autofocus="autofocus")
- button.js-copy-card-link-to-clipboard(class="btn") {{_ 'copy-card-link-to-clipboard'}}
+ button.js-copy-card-link-to-clipboard(class="btn" id="clipboard") {{_ 'copy-card-link-to-clipboard'}}
span.clearfix
br
h2 {{_ 'change-card-parent'}}
@@ -564,20 +564,39 @@ template(name="setCardColorPopup")
template(name="cardDeletePopup")
p {{_ "card-delete-pop"}}
unless archived
- p {{_ "card-delete-suggest-archive"}}
+ p {{_ "card-delete-suggest-archive"}}
+ button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
+
+template(name="deleteVotePopup")
+ p {{_ "vote-delete-pop"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="cardStartVotingPopup")
form.edit-vote-question
.fields
label(for="vote") {{_ 'vote-question'}}
- input.js-vote-field#vote(type="text" name="vote" value="{{card.getVoteQuestion}}" autofocus)
- label(for="vote-public") {{_ 'vote-public'}}
- a.js-toggle-vote-public
- .materialCheckBox#vote-public(name="vote-public")
+ input.js-vote-field#vote(type="text" name="vote" value="{{getVoteQuestion}}" autofocus disabled="{{#if getVoteQuestion}}disabled{{/if}}")
+ .check-div
+ a.flex(class="{{#if getVoteQuestion}}is-disabled{{else}}js-toggle-vote-allow-non-members{{/if}}")
+ .materialCheckBox#vote-allow-non-members(name="vote-allow-non-members" class="{{#if voteAllowNonBoardMembers}}is-checked{{/if}}")
+ span {{_ 'allowNonBoardMembers'}}
+ .check-div
+ a.flex(class="{{#if getVoteQuestion}}is-disabled{{else}}js-toggle-vote-public{{/if}}")
+ .materialCheckBox#vote-public(name="vote-public" class="{{#if votePublic}}is-checked{{/if}}")
+ span {{_ 'vote-public'}}
+ .check-div.flex
+ i.fa.fa-hourglass-end
+ a.js-end-date
+ span
+ | {{_ 'card-end'}}
+ unless getVoteEnd
+ i.fa.fa-plus
+ if getVoteEnd
+ +voteEndDate
- button.primary.confirm.js-submit {{_ 'save'}}
- //- button.js-remove-color.negate.wide.right {{_ 'delete'}}
+ button.primary.js-submit {{_ 'save'}}
+ if getVoteQuestion
+ button.js-remove-vote.negate.wide.right {{_ 'delete'}}
template(name="positiveVoteMembersPopup")
ul.pop-over-list.js-card-member-list
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index 271fbe2f..441068b0 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -54,21 +54,6 @@ BlazeComponent.extendComponent({
}
return null;
},
- votePublic() {
- const card = this.currentData();
- if (card.vote) return card.vote.public;
- return null;
- },
- voteCountPositive() {
- const card = this.currentData();
- if (card.vote && card.vote.positive) return card.vote.positive.length;
- return null;
- },
- voteCountNegative() {
- const card = this.currentData();
- if (card.vote && card.vote.negative) return card.vote.negative.length;
- return null;
- },
isWatching() {
const card = this.currentData();
return card.findWatcher(Meteor.userId());
@@ -148,6 +133,15 @@ BlazeComponent.extendComponent({
return result;
},
+ showVotingButtons() {
+ const card = this.currentData();
+ return (
+ (currentUser.isBoardMember() ||
+ (currentUser && card.voteAllowNonBoardMembers())) &&
+ !card.expiredVote()
+ );
+ },
+
onRendered() {
if (Meteor.settings.public.CARD_OPENED_WEBHOOK_ENABLED) {
// Send Webhook but not create Activities records ---
@@ -611,11 +605,6 @@ Template.cardDetailsActionsPopup.events({
'click .js-copy-card': Popup.open('copyCard'),
'click .js-copy-checklist-cards': Popup.open('copyChecklistToManyCards'),
'click .js-set-card-color': Popup.open('setCardColor'),
- 'click .js-cancel-voting'(event) {
- event.preventDefault();
- this.unsetVote();
- Popup.close();
- },
'click .js-move-card-to-top'(event) {
event.preventDefault();
const minOrder = _.min(
@@ -967,7 +956,23 @@ BlazeComponent.extendComponent({
},
'click .js-delete': Popup.afterConfirm('cardDelete', function() {
Popup.close();
- Cards.remove(this._id);
+ // verify that there are no linked cards
+ if (Cards.find({ linkedId: this._id }).count() === 0) {
+ Cards.remove(this._id);
+ } else {
+ // TODO: Maybe later we can list where the linked cards are.
+ // Now here is popup with a hint that the card cannot be deleted
+ // as there are linked cards.
+ // Related:
+ // client/components/lists/listHeader.js about line 248
+ // https://github.com/wekan/wekan/issues/2785
+ const message = `${TAPi18n.__(
+ 'delete-linked-card-before-this-card',
+ )} linkedId: ${
+ this._id
+ } at client/components/cards/cardDetails.js and https://github.com/wekan/wekan/issues/2785`;
+ alert(message);
+ }
Utils.goBoardId(this.boardId);
}),
'change .js-field-parent-board'(event) {
@@ -1000,22 +1005,93 @@ BlazeComponent.extendComponent({
events() {
return [
{
+ 'click .js-end-date': Popup.open('editVoteEndDate'),
'submit .edit-vote-question'(evt) {
evt.preventDefault();
const voteQuestion = evt.target.vote.value;
const publicVote = $('#vote-public').hasClass('is-checked');
- this.currentCard.setVoteQuestion(voteQuestion, publicVote);
+ const allowNonBoardMembers = $('#vote-allow-non-members').hasClass(
+ 'is-checked',
+ );
+ const endString = this.currentCard.getVoteEnd();
+
+ this.currentCard.setVoteQuestion(
+ voteQuestion,
+ publicVote,
+ allowNonBoardMembers,
+ );
+ if (endString) {
+ this.currentCard.setVoteEnd(endString);
+ }
Popup.close();
},
+ 'click .js-remove-vote': Popup.afterConfirm('deleteVote', () => {
+ event.preventDefault();
+ this.currentCard.unsetVote();
+ Popup.close();
+ }),
'click a.js-toggle-vote-public'(event) {
event.preventDefault();
$('#vote-public').toggleClass('is-checked');
},
+ 'click a.js-toggle-vote-allow-non-members'(event) {
+ event.preventDefault();
+ $('#vote-allow-non-members').toggleClass('is-checked');
+ },
},
];
},
}).register('cardStartVotingPopup');
+// editVoteEndDatePopup
+(class extends DatePicker {
+ onCreated() {
+ super.onCreated(moment().format('YYYY-MM-DD HH:mm'));
+ this.data().getVoteEnd() && this.date.set(moment(this.data().getVoteEnd()));
+ }
+ events() {
+ return [
+ {
+ 'submit .edit-date'(evt) {
+ evt.preventDefault();
+
+ // if no time was given, init with 12:00
+ const time =
+ evt.target.time.value ||
+ moment(new Date().setHours(12, 0, 0)).format('LT');
+
+ const dateString = `${evt.target.date.value} ${time}`;
+ const newDate = moment(dateString, 'L LT', true);
+ if (newDate.isValid()) {
+ // if active vote - store it
+ if (this.currentData().getVoteQuestion()) {
+ this._storeDate(newDate.toDate());
+ Popup.close();
+ } else {
+ this.currentData().vote = { end: newDate.toDate() }; // set vote end temp
+ Popup.back();
+ }
+ } else {
+ this.error.set('invalid-date');
+ evt.target.date.focus();
+ }
+ },
+ 'click .js-delete-date'(evt) {
+ evt.preventDefault();
+ this._deleteDate();
+ Popup.close();
+ },
+ },
+ ];
+ }
+ _storeDate(newDate) {
+ this.card.setVoteEnd(newDate);
+ }
+ _deleteDate() {
+ this.card.unsetVoteEnd();
+ }
+}.register('editVoteEndDatePopup'));
+
// Close the card details pane by pressing escape
EscapeActions.register(
'detailsPane',
diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl
index 3e2beadd..12d0dda9 100644
--- a/client/components/cards/cardDetails.styl
+++ b/client/components/cards/cardDetails.styl
@@ -10,6 +10,9 @@ avatar-radius = 50%
left: -2000px
top: 0px
+#clipboard
+ white-space: normal
+
.assignee
border-radius: 3px
display: block
@@ -37,6 +40,8 @@ avatar-radius = 50%
position: absolute
&.avatar-image
+ object-fit: cover;
+ object-position: center;
height: 100%
width: @height
@@ -337,6 +342,11 @@ card-details-color(background, color...)
.vote-title
display: flex
justify-content: space-between
+
+ .js-edit-date
+ align-self: baseline
+ margin-left: 5px
+
.vote-result
display: flex
.js-show-positive-votes
diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade
index e8efc6ac..e9de2fea 100644
--- a/client/components/cards/minicard.jade
+++ b/client/components/cards/minicard.jade
@@ -103,7 +103,9 @@ template(name="minicard")
if getVoteQuestion
.badge.badge-state-image-only(title=getVoteQuestion)
span.badge-icon.fa.fa-thumbs-up
+ span.badge-text {{ voteCountPositive }}
span.badge-icon.fa.fa-thumbs-down
+ span.badge-text {{ voteCountNegative }}
if attachments.count
.badge
span.badge-icon.fa.fa-paperclip
diff --git a/client/components/import/csvMembersMapper.js b/client/components/import/csvMembersMapper.js
new file mode 100644
index 00000000..cf8d5837
--- /dev/null
+++ b/client/components/import/csvMembersMapper.js
@@ -0,0 +1,37 @@
+export function getMembersToMap(data) {
+ // we will work on the list itself (an ordered array of objects) when a
+ // mapping is done, we add a 'wekan' field to the object representing the
+ // imported member
+
+ const membersToMap = [];
+ const importedMembers = [];
+ let membersIndex;
+
+ for (let i = 0; i < data[0].length; i++) {
+ if (data[0][i].toLowerCase() === 'members') {
+ membersIndex = i;
+ }
+ }
+
+ for (let i = 1; i < data.length; i++) {
+ if (data[i][membersIndex]) {
+ for (const importedMember of data[i][membersIndex].split(' ')) {
+ if (importedMember && importedMembers.indexOf(importedMember) === -1) {
+ importedMembers.push(importedMember);
+ }
+ }
+ }
+ }
+
+ for (let importedMember of importedMembers) {
+ importedMember = {
+ username: importedMember,
+ id: importedMember,
+ };
+ const wekanUser = Users.findOne({ username: importedMember.username });
+ if (wekanUser) importedMember.wekanId = wekanUser._id;
+ membersToMap.push(importedMember);
+ }
+
+ return membersToMap;
+}
diff --git a/client/components/import/import.jade b/client/components/import/import.jade
index 1551a7dd..2bea24ae 100644
--- a/client/components/import/import.jade
+++ b/client/components/import/import.jade
@@ -13,7 +13,7 @@ template(name="import")
template(name="importTextarea")
form
p: label(for='import-textarea') {{_ instruction}} {{_ 'import-board-instruction-about-errors'}}
- textarea.js-import-json(placeholder="{{_ 'import-json-placeholder'}}" autofocus)
+ textarea.js-import-json(placeholder="{{_ importPlaceHolder}}" autofocus)
| {{jsonText}}
input.primary.wide(type="submit" value="{{_ 'import'}}")
diff --git a/client/components/import/import.js b/client/components/import/import.js
index 6368885b..673900fd 100644
--- a/client/components/import/import.js
+++ b/client/components/import/import.js
@@ -1,5 +1,8 @@
import trelloMembersMapper from './trelloMembersMapper';
import wekanMembersMapper from './wekanMembersMapper';
+import csvMembersMapper from './csvMembersMapper';
+
+const Papa = require('papaparse');
BlazeComponent.extendComponent({
title() {
@@ -30,20 +33,30 @@ BlazeComponent.extendComponent({
}
},
- importData(evt) {
+ importData(evt, dataSource) {
evt.preventDefault();
- const dataJson = this.find('.js-import-json').value;
- try {
- const dataObject = JSON.parse(dataJson);
- this.setError('');
- this.importedData.set(dataObject);
- const membersToMap = this._prepareAdditionalData(dataObject);
- // store members data and mapping in Session
- // (we go deep and 2-way, so storing in data context is not a viable option)
+ const input = this.find('.js-import-json').value;
+ if (dataSource === 'csv') {
+ const csv = input.indexOf('\t') > 0 ? input.replace(/(\t)/g, ',') : input;
+ const ret = Papa.parse(csv);
+ if (ret && ret.data && ret.data.length) this.importedData.set(ret.data);
+ else throw new Meteor.Error('error-csv-schema');
+ const membersToMap = this._prepareAdditionalData(ret.data);
this.membersToMap.set(membersToMap);
this.nextStep();
- } catch (e) {
- this.setError('error-json-malformed');
+ } else {
+ try {
+ const dataObject = JSON.parse(input);
+ this.setError('');
+ this.importedData.set(dataObject);
+ const membersToMap = this._prepareAdditionalData(dataObject);
+ // store members data and mapping in Session
+ // (we go deep and 2-way, so storing in data context is not a viable option)
+ this.membersToMap.set(membersToMap);
+ this.nextStep();
+ } catch (e) {
+ this.setError('error-json-malformed');
+ }
}
},
@@ -91,6 +104,9 @@ BlazeComponent.extendComponent({
case 'wekan':
membersToMap = wekanMembersMapper.getMembersToMap(dataObject);
break;
+ case 'csv':
+ membersToMap = csvMembersMapper.getMembersToMap(dataObject);
+ break;
}
return membersToMap;
},
@@ -109,11 +125,23 @@ BlazeComponent.extendComponent({
return `import-board-instruction-${Session.get('importSource')}`;
},
+ importPlaceHolder() {
+ const importSource = Session.get('importSource');
+ if (importSource === 'csv') {
+ return 'import-csv-placeholder';
+ } else {
+ return 'import-json-placeholder';
+ }
+ },
+
events() {
return [
{
submit(evt) {
- return this.parentComponent().importData(evt);
+ return this.parentComponent().importData(
+ evt,
+ Session.get('importSource'),
+ );
},
},
];
diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js
index 88f88db0..2d913aa9 100644
--- a/client/components/lists/listBody.js
+++ b/client/components/lists/listBody.js
@@ -77,7 +77,7 @@ BlazeComponent.extendComponent({
else if (
Utils.boardView() === 'board-view-lists' ||
Utils.boardView() === 'board-view-cal' ||
- !Utils.boardView
+ !Utils.boardView()
)
swimlaneId = board.getDefaultSwimline()._id;
@@ -658,10 +658,7 @@ BlazeComponent.extendComponent({
_id = element.copy(this.boardId, this.swimlaneId, this.listId);
// 1.B Linked card
} else {
- delete element._id;
- element.type = 'cardType-linkedCard';
- element.linkedId = element.linkedId || element._id;
- _id = Cards.insert(element);
+ _id = element.link(this.boardId, this.swimlaneId, this.listId);
}
Filter.addException(_id);
// List insertion
@@ -675,7 +672,7 @@ BlazeComponent.extendComponent({
element.sort = Boards.findOne(this.boardId)
.swimlanes()
.count();
- element.type = 'swimlalne';
+ element.type = 'swimlane';
_id = element.copy(this.boardId);
} else if (this.isBoardTemplateSearch) {
board = Boards.findOne(element.linkedId);
diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js
index 46dbd748..7cd4309f 100644
--- a/client/components/lists/listHeader.js
+++ b/client/components/lists/listHeader.js
@@ -223,8 +223,35 @@ BlazeComponent.extendComponent({
Template.listMorePopup.events({
'click .js-delete': Popup.afterConfirm('listDelete', function() {
Popup.close();
- this.allCards().map(card => Cards.remove(card._id));
- Lists.remove(this._id);
+ // TODO how can we avoid the fetch call?
+ const allCards = this.allCards().fetch();
+ const allCardIds = _.pluck(allCards, '_id');
+ // it's okay if the linked cards are on the same list
+ if (
+ Cards.find({
+ $and: [
+ { listId: { $ne: this._id } },
+ { linkedId: { $in: allCardIds } },
+ ],
+ }).count() === 0
+ ) {
+ allCardIds.map(_id => Cards.remove(_id));
+ Lists.remove(this._id);
+ } else {
+ // TODO: Figure out more informative message.
+ // Popup with a hint that the list cannot be deleted as there are
+ // linked cards. We can adapt the query above so we can list the linked
+ // cards.
+ // Related:
+ // client/components/cards/cardDetails.js about line 969
+ // https://github.com/wekan/wekan/issues/2785
+ const message = `${TAPi18n.__(
+ 'delete-linked-cards-before-this-list',
+ )} linkedId: ${
+ this._id
+ } at client/components/lists/listHeader.js and https://github.com/wekan/wekan/issues/2785`;
+ alert(message);
+ }
Utils.goBoardId(this.boardId);
}),
});
diff --git a/client/components/main/editor.js b/client/components/main/editor.js
index de598da8..abe4160f 100755
--- a/client/components/main/editor.js
+++ b/client/components/main/editor.js
@@ -328,7 +328,7 @@ Template.viewer.events({
// the corresponding text). Clicking a link shouldn't fire these actions, stop
// we stop these event at the viewer component level.
'click a'(event, templateInstance) {
- let prevent = true;
+ const prevent = true;
const userId = event.currentTarget.dataset.userid;
if (userId) {
Popup.open('member').call({ userId }, event, templateInstance);
diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade
index 6bfedc9c..280eaeaf 100644
--- a/client/components/sidebar/sidebar.jade
+++ b/client/components/sidebar/sidebar.jade
@@ -230,6 +230,8 @@ template(name="chooseBoardSource")
a(href="{{pathFor '/import/trello'}}") {{_ 'from-trello'}}
li
a(href="{{pathFor '/import/wekan'}}") {{_ 'from-wekan'}}
+ li
+ a(href="{{pathFor '/import/csv'}}") {{_ 'from-csv'}}
template(name="archiveBoardPopup")
p {{_ 'close-board-pop'}}
@@ -300,7 +302,7 @@ template(name="boardMenuPopup")
ul.pop-over-list
if withApi
li
- a(href="{{exportUrl}}", download="{{exportFilename}}")
+ a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
li
@@ -360,6 +362,21 @@ template(name="boardMenuPopup")
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
+template(name="exportBoard")
+ ul.pop-over-list
+ li
+ a(href="{{exportUrl}}", download="{{exportJsonFilename}}")
+ i.fa.fa-share-alt
+ | {{_ 'export-board-json'}}
+ li
+ a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
+ i.fa.fa-share-alt
+ | {{_ 'export-board-csv'}}
+ li
+ a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
+ i.fa.fa-share-alt
+ | {{_ 'export-board-tsv'}}
+
template(name="labelsWidget")
.board-widget.board-widget-labels
h3
diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js
index cbe00797..2c1cfd75 100644
--- a/client/components/sidebar/sidebar.js
+++ b/client/components/sidebar/sidebar.js
@@ -213,6 +213,7 @@ Template.boardMenuPopup.events({
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-subtask-settings': Popup.open('boardSubtaskSettings'),
'click .js-card-settings': Popup.open('boardCardSettings'),
+ 'click .js-export-board': Popup.open('exportBoard'),
});
Template.boardMenuPopup.onCreated(function() {
@@ -405,6 +406,63 @@ BlazeComponent.extendComponent({
},
}).register('chooseBoardSourcePopup');
+BlazeComponent.extendComponent({
+ template() {
+ return 'exportBoard';
+ },
+ withApi() {
+ return Template.instance().apiEnabled.get();
+ },
+ exportUrl() {
+ const params = {
+ boardId: Session.get('currentBoard'),
+ };
+ const queryParams = {
+ authToken: Accounts._storedLoginToken(),
+ };
+ return FlowRouter.path('/api/boards/:boardId/export', params, queryParams);
+ },
+ exportCsvUrl() {
+ const params = {
+ boardId: Session.get('currentBoard'),
+ };
+ const queryParams = {
+ authToken: Accounts._storedLoginToken(),
+ };
+ return FlowRouter.path(
+ '/api/boards/:boardId/export/csv',
+ params,
+ queryParams,
+ );
+ },
+ exportTsvUrl() {
+ const params = {
+ boardId: Session.get('currentBoard'),
+ };
+ const queryParams = {
+ authToken: Accounts._storedLoginToken(),
+ delimiter: '\t',
+ };
+ return FlowRouter.path(
+ '/api/boards/:boardId/export/csv',
+ params,
+ queryParams,
+ );
+ },
+ exportJsonFilename() {
+ const boardId = Session.get('currentBoard');
+ return `wekan-export-board-${boardId}.json`;
+ },
+ exportCsvFilename() {
+ const boardId = Session.get('currentBoard');
+ return `wekan-export-board-${boardId}.csv`;
+ },
+ exportTsvFilename() {
+ const boardId = Session.get('currentBoard');
+ return `wekan-export-board-${boardId}.tsv`;
+ },
+}).register('exportBoardPopup');
+
Template.labelsWidget.events({
'click .js-label': Popup.open('editLabel'),
'click .js-add-label': Popup.open('createLabel'),
diff --git a/client/components/users/userAvatar.styl b/client/components/users/userAvatar.styl
index b962b01c..8209f4a1 100644
--- a/client/components/users/userAvatar.styl
+++ b/client/components/users/userAvatar.styl
@@ -29,6 +29,8 @@ avatar-radius = 50%
position: absolute
&.avatar-image
+ object-fit: cover;
+ object-position: center;
height: 100%
width: @height
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 09e44620..b6c6b005 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -1,6 +1,6 @@
{
"accept": "قبول",
- "act-activity-notify": "اشعارات النشاط",
+ "act-activity-notify": "اشعار النشاط",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
@@ -152,8 +152,6 @@
"card-spent": "امضى وقتا",
"card-edit-attachments": "تعديل المرفقات",
"card-edit-custom-fields": "تعديل الحقل المعدل",
- "card-start-voting": "ابدأ التصويت",
- "card-cancel-voting": "حذف التصويت وجميع الأصوات",
"card-edit-labels": "تعديل العلامات",
"card-edit-members": "تعديل الأعضاء",
"card-labels-title": "تعديل علامات البطاقة.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "ابدأ تصويت",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "مع",
"vote-against": "ضد",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "حذف البطاقة ?",
"cardDetailsActionsPopup-title": "إجراءات على البطاقة",
"cardLabelsPopup-title": "علامات",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
@@ -314,6 +317,11 @@
"error-username-taken": "إسم المستخدم مأخوذ مسبقا",
"error-email-taken": "البريد الإلكتروني مأخوذ بالفعل",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "استيراد لوحة",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "من تريلو",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "رسم خريطة الأعضاء",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index ac8d80b9..ef9f3db2 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Изработено време",
"card-edit-attachments": "Промени прикачените файлове",
"card-edit-custom-fields": "Промени собствените полета",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Промени етикетите",
"card-edit-members": "Промени членовете",
"card-labels-title": "Промени етикетите за картата.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Желаете да изтриете картата?",
"cardDetailsActionsPopup-title": "Опции",
"cardLabelsPopup-title": "Етикети",
@@ -307,6 +309,7 @@
"error-board-notAMember": "За да направите това трябва да сте член на това табло",
"error-json-malformed": "Текстът Ви не е валиден JSON",
"error-json-schema": "JSON информацията Ви не съдържа информация във валиден формат",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Този списък не съществува",
"error-user-doesNotExist": "Този потребител не съществува",
"error-user-notAllowSelf": "Не можете да поканите себе си",
@@ -314,6 +317,11 @@
"error-username-taken": "Това потребителско име е вече заето",
"error-email-taken": "Имейлът е вече зает",
"export-board": "Експортиране на Табло",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Експортиране на Табло",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Импортирай Табло",
"import-board-title-trello": "Импорт на табло от Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "От Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Копирайте валидната Ви JSON информация тук",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Импорт на карта от Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Когато карта",
"r-is": "е",
"r-is-moved": "преместена",
- "r-added-to": "добавена в",
+ "r-added-to": "Added to",
"r-removed-from": "премахната от",
"r-the-board": "таблото",
"r-list": "списък",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 409a7a7d..3bedebec 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Diverkañ ar gartenn ?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Muioc’h",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 8d549cc2..847ebfe2 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Temps Dedicat",
"card-edit-attachments": "Edita arxius adjunts",
"card-edit-custom-fields": "Editar camps personalitzats",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edita etiquetes",
"card-edit-members": "Edita membres",
"card-labels-title": "Canvia les etiquetes de la fitxa",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Esborrar fitxa?",
"cardDetailsActionsPopup-title": "Accions de fitxes",
"cardLabelsPopup-title": "Etiquetes",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Necessites ser membre d'aquest tauler per dur a terme aquesta acció",
"error-json-malformed": "El text no és JSON vàlid",
"error-json-schema": "La dades JSON no contenen la informació en el format correcte",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "La llista no existeix",
"error-user-doesNotExist": "L'usuari no existeix",
"error-user-notAllowSelf": "No et pots convidar a tu mateix",
@@ -314,6 +317,11 @@
"error-username-taken": "Aquest usuari ja existeix",
"error-email-taken": "L'adreça de correu electrònic ja és en ús",
"export-board": "Exporta tauler",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exporta tauler",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Importa tauler",
"import-board-title-trello": "Importa tauler des de Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Des de Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "En el teu tauler Trello, ves a 'Menú', 'Més'.' Imprimir i Exportar', 'Exportar JSON', i copia el text resultant.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Aferra codi JSON vàlid aquí",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapeja el membres",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Revisa l'assignació de membres",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Accions de Carril de Natació",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "importa una fitxa de Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Més",
"link-list": "Enllaça a aquesta llista",
"list-delete-pop": "Totes les accions seran esborrades de la llista d'activitats i no serà possible recuperar la llista",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index cb432bef..8a8e96ae 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Strávený čas",
"card-edit-attachments": "Upravit přílohy",
"card-edit-custom-fields": "Upravit vlastní pole",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Upravit štítky",
"card-edit-members": "Upravit členy",
"card-labels-title": "Změnit štítky karty.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Smazat kartu?",
"cardDetailsActionsPopup-title": "Akce karty",
"cardLabelsPopup-title": "Štítky",
@@ -307,6 +309,7 @@
"error-board-notAMember": "K provedení změny musíš být členem tohoto tabla",
"error-json-malformed": "Tvůj text není validní JSON",
"error-json-schema": "Tato JSON data neobsahují správné informace v platném formátu",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Tento sloupec ;neexistuje",
"error-user-doesNotExist": "Tento uživatel neexistuje",
"error-user-notAllowSelf": "Nemůžeš pozvat sám sebe",
@@ -314,6 +317,11 @@
"error-username-taken": "Toto uživatelské jméno již existuje",
"error-email-taken": "Tento email byl již použit",
"export-board": "Exportovat tablo",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportovat tablo",
"sort": "řadit",
"sort-desc": "Click to Sort List",
"list-sort-by": "řadit seznam podle",
@@ -349,12 +357,16 @@
"import-board-c": "Importovat tablo",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Importovat tablo z předchozího exportu",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Z Trella",
"from-wekan": "Z předchozího exportu",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Na svém Trello tablu, otevři 'Menu', pak 'More', 'Print and Export', 'Export JSON', a zkopíruj výsledný text",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Ve vašem tablu jděte do 'Menu', klikněte na 'Exportovat tablo' a zkopírujte text ze staženého souboru.",
"import-board-instruction-about-errors": "Někdy import funguje i přestože dostáváte chyby při importování tabla, které se zobrazí na stránce Všechna tabla.",
"import-json-placeholder": "Sem vlož validní JSON data",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapovat členy",
"import-members-map": "Toto importované tablo obsahuje několik osob. Prosím namapujte osoby z importu na místní uživatelské účty.",
"import-show-user-mapping": "Zkontrolovat namapování členů",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Akce swimlane",
"swimlaneAddPopup-title": "Přidat swimlane dolů",
"listImportCardPopup-title": "Importovat Trello kartu",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Více",
"link-list": "Odkaz na tento sloupec",
"list-delete-pop": "Všechny akce budou odstraněny z kanálu aktivity a nebude možné sloupec obnovit. Toto nelze vrátit zpět.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Pokud karta",
"r-is": "je",
"r-is-moved": "je přesunuto",
- "r-added-to": "přidáno do",
+ "r-added-to": "Added to",
"r-removed-from": "Odstraněno z",
"r-the-board": "tablo",
"r-list": "sloupce",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json
index d66d01aa..09ed4d07 100644
--- a/i18n/da.i18n.json
+++ b/i18n/da.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Anvendt tid",
"card-edit-attachments": "Redigér vedhæftninger",
"card-edit-custom-fields": "Redigér brugerdefinerede felter",
- "card-start-voting": "Start stemmegivning",
- "card-cancel-voting": "Slet stemmegivning og alle stemmer",
"card-edit-labels": "Redigér etiketter",
"card-edit-members": "Redigér medlemmer",
"card-labels-title": "Ændr etiketter for kortet.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start en stemmeafgivning",
"positiveVoteMembersPopup-title": "Tilhængere",
"negativeVoteMembersPopup-title": "Modstandere",
- "allowNonBoardMembers": "Tillad anonym stemmeafgivning på offentlige tavler",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Spørgsmål til afstemning",
"vote-public": "Vis hvem som stemte hvad",
"vote-for-it": "går ind for",
"vote-against": "går imod",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Slet kort?",
"cardDetailsActionsPopup-title": "Handlinger for kort",
"cardLabelsPopup-title": "Etiketter",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Du skal være medlem af denne tavle for at gøre dette",
"error-json-malformed": "Din tekst er ikke gyldig JSON",
"error-json-schema": "Dine JSON-data indeholder ikke den rette information i det rette format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Listen findes ikke",
"error-user-doesNotExist": "Brugeren findes ikke",
"error-user-notAllowSelf": "Du kan ikke invitere dig selv",
@@ -314,6 +317,11 @@
"error-username-taken": "Brugernavnet er optaget",
"error-email-taken": "E-mailadressen er allerede optaget",
"export-board": "Eksportér tavle",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Eksportér tavle",
"sort": "Sortér",
"sort-desc": "Klik for at sortere listen",
"list-sort-by": "Sortér listen efter:",
@@ -349,12 +357,16 @@
"import-board-c": "Importér tavle",
"import-board-title-trello": "Importér tavle fra Trello",
"import-board-title-wekan": "Importér tavler fra tidligere eksport",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Fra Trello",
"from-wekan": "Fra forrige eksport",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "I din Trello-tavle, gå til 'Menu', dernæst 'More', 'Print and Export', 'Export JSON', og kopiér den tekst som vises.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "På din tavle, gå til 'Menu', dernæst 'Eksportér tavle', og kopiér teksten i den hentede fil.",
"import-board-instruction-about-errors": "Hvis du får fejl når der importeres en tavle, så vil importen undertiden stadig fungere, og tavlen vil være under side Alle tavler.",
"import-json-placeholder": "Indsæt dine gyldige JSON-data her",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Kortlæg medlemmer",
"import-members-map": "Dine importerede tavler rummer medlemmer. Kortlæg venligst de medlemmer du ønsker at importere til dine brugere.",
"import-show-user-mapping": "Gennemse kortlægning af medlemmer",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Handlinger for svømmebane",
"swimlaneAddPopup-title": "Tilføj en svømmebane nedenfor",
"listImportCardPopup-title": "Importér et Trello-kort",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mere",
"link-list": "Link til denne liste",
"list-delete-pop": "Alle handlinger vil blive fjernet fra aktivitetsfeedet og du vil ikke have mulighed for at genskabe listen. Der er ingen måder at fortryde. ",
@@ -626,7 +639,7 @@
"r-when-a-card": "Når et kort",
"r-is": "er",
"r-is-moved": "flyttes",
- "r-added-to": "tilføjes til",
+ "r-added-to": "Added to",
"r-removed-from": "Fjernes fra",
"r-the-board": "tavlen",
"r-list": "liste",
@@ -784,5 +797,14 @@
"thursday": "Torsdag",
"friday": "Fredag",
"saturday": "Lørdag",
- "sunday": "Søndag"
+ "sunday": "Søndag",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index e2e14e76..8dce8a96 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Aufgewendete Zeit",
"card-edit-attachments": "Anhänge ändern",
"card-edit-custom-fields": "Benutzerdefinierte Felder editieren",
- "card-start-voting": "Abstimmung starten",
- "card-cancel-voting": "Abstimmung mit allen Stimmen löschen ",
"card-edit-labels": "Labels ändern",
"card-edit-members": "Mitglieder ändern",
"card-labels-title": "Labels für diese Karte ändern.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Abstimmung starten",
"positiveVoteMembersPopup-title": "Befürworter",
"negativeVoteMembersPopup-title": "Gegner",
- "allowNonBoardMembers": "Anonyme Abstimmung im öffentlichen Board zulassen",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Abstimmen über",
"vote-public": "Zeigen, wer was gewählt hat",
"vote-for-it": "Dafür",
"vote-against": "Dagegen",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Karte löschen?",
"cardDetailsActionsPopup-title": "Kartenaktionen",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Um das zu tun, müssen Sie Mitglied dieses Boards sein",
"error-json-malformed": "Ihre Eingabe ist kein gültiges JSON",
"error-json-schema": "Ihre JSON-Daten enthalten nicht die gewünschten Informationen im richtigen Format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Diese Liste existiert nicht",
"error-user-doesNotExist": "Dieser Nutzer existiert nicht",
"error-user-notAllowSelf": "Sie können sich nicht selbst einladen.",
@@ -314,6 +317,11 @@
"error-username-taken": "Dieser Benutzername ist bereits vergeben",
"error-email-taken": "E-Mail wird schon verwendet",
"export-board": "Board exportieren",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Board exportieren",
"sort": "Sortieren",
"sort-desc": "Zum Sortieren der Liste klicken",
"list-sort-by": "Sortieren der Liste nach:",
@@ -349,12 +357,16 @@
"import-board-c": "Board importieren",
"import-board-title-trello": "Board von Trello importieren",
"import-board-title-wekan": "Board aus vorherigem Export importieren",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Von Trello",
"from-wekan": "Aus vorherigem Export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Gehen Sie in ihrem Trello-Board auf 'Menü', dann 'Mehr', 'Drucken und Exportieren', 'JSON-Export' und kopieren Sie den dort angezeigten Text",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Gehen Sie in Ihrem Board auf 'Menü', danach auf 'Board exportieren' und kopieren Sie den Text aus der heruntergeladenen Datei.",
"import-board-instruction-about-errors": "Treten beim importieren eines Board Fehler auf, so kann der Import dennoch erfolgreich abgeschlossen sein und das Board ist auf der Seite \"Alle Boards\" zusehen.",
"import-json-placeholder": "Fügen Sie die korrekten JSON-Daten hier ein",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mitglieder zuordnen",
"import-members-map": "Das importierte Board hat einige Mitglieder. Bitte ordnen sie die Mitglieder, die Sie importieren wollen, Ihren Benutzern zu.",
"import-show-user-mapping": "Mitgliederzuordnung überprüfen",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlaneaktionen",
"swimlaneAddPopup-title": "Swimlane unterhalb einfügen",
"listImportCardPopup-title": "Eine Trello-Karte importieren",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mehr",
"link-list": "Link zu dieser Liste",
"list-delete-pop": "Alle Aktionen werden aus dem Verlauf gelöscht und die Liste kann nicht wiederhergestellt werden.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Wenn Karte",
"r-is": "wird",
"r-is-moved": "verschoben wird",
- "r-added-to": "hinzugefügt zu",
+ "r-added-to": "Added to",
"r-removed-from": "entfernt von",
"r-the-board": "das Board",
"r-list": "Liste",
@@ -784,5 +797,14 @@
"thursday": "Donnerstag",
"friday": "Freitag",
"saturday": "Samstag",
- "sunday": "Sonntag"
+ "sunday": "Sonntag",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json
index 823e109b..ccd18ef9 100644
--- a/i18n/el.i18n.json
+++ b/i18n/el.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Διαγραφή Κάρτας;",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Ετικέτες",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Το κείμενο δεν είναι έγκυρο JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Η λίστα δεν υπάρχει",
"error-user-doesNotExist": "Ο χρήστης δεν υπάρχει",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Εξαγωγή πίνακα",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Εξαγωγή πίνακα",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Εισαγωγή πίνακα",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Από το Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Εισαγωγή μιας κάρτας Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Περισσότερα",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Όταν μία κάρτα",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index e0540cb5..9049f7bf 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index 11e7e2dd..991ea7c1 100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -642,7 +655,6 @@
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
- "r-is": "is",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
@@ -656,7 +668,6 @@
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
- "r-list": "list",
"r-archive": "Move to Archive",
"r-unarchive": "Restore from Archive",
"r-card": "card",
@@ -712,7 +723,6 @@
"r-swimlane-name": "swimlane name",
"r-board-note": "Note: leave a field empty to match every possible value. ",
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
- "r-added-to": "added to",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-set": "Set",
"r-update": "Update",
@@ -787,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index 749c0a87..dd5104a2 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Redakti etikedojn",
"card-edit-members": "Redakti membrojn",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etikedoj",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Via teksto estas nevalida JSON",
"error-json-schema": "Via JSON ne enhavas la ĝustajn informojn en ĝusta formato",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Tio listo ne ekzistas",
"error-user-doesNotExist": "Tio uzanto ne ekzistas",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "Uzantnomo jam prenita",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Pli",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "listo",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index 94fabf76..836d57cb 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Tiempo Empleado",
"card-edit-attachments": "Editar adjuntos",
"card-edit-custom-fields": "Editar campos personalizados",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar miembros",
"card-labels-title": "Cambiar las etiquetas de la tarjeta.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "¿Borrar Tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la Tarjeta",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Necesitás ser miembro de este tablero para hacer eso",
"error-json-malformed": "Tu texto no es JSON válido",
"error-json-schema": "Tus datos JSON no incluyen la información correcta en el formato adecuado",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Esta lista no existe",
"error-user-doesNotExist": "Este usuario no existe",
"error-user-notAllowSelf": "No podés invitarte a vos mismo",
@@ -314,6 +317,11 @@
"error-username-taken": "El nombre de usuario ya existe",
"error-email-taken": "El email ya existe",
"export-board": "Exportar tablero",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar tablero",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Importar tablero",
"import-board-title-trello": "Importar tablero de Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "De Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego a 'Más', 'Imprimir y Exportar', 'Exportar JSON', y copia el texto resultante.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Pegá tus datos JSON válidos acá",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapear Miembros",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Revisar mapeo de miembros",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Acciones de la Calle",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Importar una tarjeta Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mas",
"link-list": "Enlace a esta lista",
"list-delete-pop": "Todas las acciones van a ser eliminadas del agregador de actividad y no podás recuperar la lista. No se puede deshacer.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/es-CL.i18n.json b/i18n/es-CL.i18n.json
new file mode 100644
index 00000000..2df918fe
--- /dev/null
+++ b/i18n/es-CL.i18n.json
@@ -0,0 +1,810 @@
+{
+ "accept": "Aceptar",
+ "act-activity-notify": "Notificación de actividad",
+ "act-addAttachment": "añadido el adjunto __attachment__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-deleteAttachment": "eliminado el adjunto __attachment__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addSubtask": "añadida la subtarea __subtask__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addedLabel": "añadida la etiqueta __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-removeLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-removedLabel": "eliminada la etiqueta __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addChecklist": "añadida la lista de verificación __checklist__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addChecklistItem": "añadido el elemento __checklistItem__ a la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-removeChecklist": "eliminada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-removeChecklistItem": "eliminado el elemento __checklistItem__ de la lista de verificación __checkList__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-checkedItem": "marcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-uncheckedItem": "desmarcado el elemento __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-completeChecklist": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-uncompleteChecklist": "no completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-editComment": "comentario editado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-deleteComment": "comentario eliminado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-createBoard": "creó el tablero __board__",
+ "act-createSwimlane": "creó el carril de flujo __swimlane__ en el tablero __board__",
+ "act-createCard": "creada la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-createCustomField": "creado el campo personalizado __customField__ en el tablero __board__",
+ "act-deleteCustomField": "eliminado el campo personalizado __customField__ del tablero __board__",
+ "act-setCustomField": "editado el campo personalizado __customField__: __customFieldValue__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-createList": "añadida la lista __list__ al tablero __board__",
+ "act-addBoardMember": "añadido el mimbro __member__ al tablero __board__",
+ "act-archivedBoard": "El tablero __board__ se ha archivado",
+ "act-archivedCard": "La tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__ se ha archivado",
+ "act-archivedList": "La lista __list__ del carril __swimlane__ del tablero __board__ se ha archivado",
+ "act-archivedSwimlane": "El carril __swimlane__ del tablero __board__ se ha archivado",
+ "act-importBoard": "importado el tablero __board__",
+ "act-importCard": "importada la tarjeta __card__ a la lista __list__ del carrril __swimlane__ del tablero __board__",
+ "act-importList": "importada la lista __list__ al carril __swimlane__ del tablero __board__",
+ "act-joinMember": "añadido el miembro __member__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-moveCard": "movida la tarjeta __card__ del tablero __board__ de la lista __oldList__ del carril __oldSwimlane__ a la lista __list__ del carril __swimlane__",
+ "act-moveCardToOtherBoard": "movida la tarjeta __card__ de la lista __oldList__ del carril __oldSwimlane__ del tablero __oldBoard__ a la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-removeBoardMember": "eliminado el miembro __member__ del tablero __board__",
+ "act-restoredCard": "restaurada la tarjeta __card__ a la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-unjoinMember": "eliminado el miembro __member__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "act-withBoardTitle": "__board__",
+ "act-withCardTitle": "[__board__] __card__",
+ "actions": "Acciones",
+ "activities": "Actividades",
+ "activity": "Actividad",
+ "activity-added": "ha añadido %s a %s",
+ "activity-archived": "%s se ha archivado",
+ "activity-attached": "ha adjuntado %s a %s",
+ "activity-created": "ha creado %s",
+ "activity-customfield-created": "creó el campo personalizado %s",
+ "activity-excluded": "ha excluido %s de %s",
+ "activity-imported": "ha importado %s a %s desde %s",
+ "activity-imported-board": "ha importado %s desde %s",
+ "activity-joined": "se ha unido a %s",
+ "activity-moved": "ha movido %s de %s a %s",
+ "activity-on": "en %s",
+ "activity-removed": "ha eliminado %s de %s",
+ "activity-sent": "ha enviado %s a %s",
+ "activity-unjoined": "se ha desvinculado de %s",
+ "activity-subtask-added": "ha añadido la subtarea a %s",
+ "activity-checked-item": "marcado %s en la lista de verificación %s de %s",
+ "activity-unchecked-item": "desmarcado %s en lista %s de %s",
+ "activity-checklist-added": "ha añadido una lista de verificación a %s",
+ "activity-checklist-removed": "eliminada una lista de verificación desde %s",
+ "activity-checklist-completed": "lista de verificación completada %s de %s",
+ "activity-checklist-uncompleted": "no completado la lista %s de %s",
+ "activity-checklist-item-added": "ha añadido el elemento de la lista de verificación a '%s' en %s",
+ "activity-checklist-item-removed": "eliminado un elemento de la lista de verificación desde '%s' en %s",
+ "add": "Añadir",
+ "activity-checked-item-card": "marcado %s en la lista de verificación %s",
+ "activity-unchecked-item-card": "desmarcado %s en la lista de verificación %s",
+ "activity-checklist-completed-card": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
+ "activity-checklist-uncompleted-card": "no completó la lista de verificación %s",
+ "activity-editComment": "comentario editado",
+ "activity-deleteComment": "comentario eliminado",
+ "add-attachment": "Añadir adjunto",
+ "add-board": "Añadir tablero",
+ "add-card": "Añadir una tarjeta",
+ "add-swimlane": "Añadir un carril de flujo",
+ "add-subtask": "Añadir subtarea",
+ "add-checklist": "Añadir una lista de verificación",
+ "add-checklist-item": "Añadir un elemento a la lista de verificación",
+ "add-cover": "Añadir portada",
+ "add-label": "Añadir una etiqueta",
+ "add-list": "Añadir una lista",
+ "add-members": "Añadir miembros",
+ "added": "Añadida el",
+ "addMemberPopup-title": "Miembros",
+ "admin": "Administrador",
+ "admin-desc": "Puedes ver y editar tarjetas, eliminar miembros, y cambiar las preferencias del tablero",
+ "admin-announcement": "Aviso",
+ "admin-announcement-active": "Activar el aviso para todo el sistema",
+ "admin-announcement-title": "Aviso del administrador",
+ "all-boards": "Tableros",
+ "and-n-other-card": "y __count__ tarjeta más",
+ "and-n-other-card_plural": "y otras __count__ tarjetas",
+ "apply": "Aplicar",
+ "app-is-offline": "Cargando, espera por favor. Refrescar esta página causará pérdida de datos. Si la carga no funciona, por favor comprueba que el servidor no se ha parado.",
+ "archive": "Archivar",
+ "archive-all": "Archivar todo",
+ "archive-board": "Archivar este tablero",
+ "archive-card": "Archivar esta tarjeta",
+ "archive-list": "Archivar esta lista",
+ "archive-swimlane": "Archivar este carril",
+ "archive-selection": "Archivar esta selección",
+ "archiveBoardPopup-title": "¿Archivar este tablero?",
+ "archived-items": "Archivo",
+ "archived-boards": "Tableros en el Archivo",
+ "restore-board": "Restaurar el tablero",
+ "no-archived-boards": "No hay Tableros en el Archivo",
+ "archives": "Archivo",
+ "template": "Plantilla",
+ "templates": "Plantillas",
+ "assign-member": "Asignar miembros",
+ "attached": "adjuntado",
+ "attachment": "Adjunto",
+ "attachment-delete-pop": "La eliminación de un fichero adjunto es permanente. Esta acción no puede deshacerse.",
+ "attachmentDeletePopup-title": "¿Eliminar el adjunto?",
+ "attachments": "Adjuntos",
+ "auto-watch": "Suscribirse automáticamente a los tableros cuando son creados",
+ "avatar-too-big": "El avatar es muy grande (70KB máx.)",
+ "back": "Atrás",
+ "board-change-color": "Cambiar el color",
+ "board-nb-stars": "%s destacados",
+ "board-not-found": "Tablero no encontrado",
+ "board-private-info": "Este tablero será <strong>privado</strong>.",
+ "board-public-info": "Este tablero será <strong>público</strong>.",
+ "boardChangeColorPopup-title": "Cambiar el fondo del tablero",
+ "boardChangeTitlePopup-title": "Renombrar el tablero",
+ "boardChangeVisibilityPopup-title": "Cambiar visibilidad",
+ "boardChangeWatchPopup-title": "Cambiar vigilancia",
+ "boardMenuPopup-title": "Preferencias del tablero",
+ "boardChangeViewPopup-title": "Vista del tablero",
+ "boards": "Tableros",
+ "board-view": "Vista del tablero",
+ "board-view-cal": "Calendario",
+ "board-view-swimlanes": "Carriles",
+ "board-view-collapse": "Contraer",
+ "board-view-lists": "Listas",
+ "bucket-example": "Como “Cosas por hacer” por ejemplo",
+ "cancel": "Cancelar",
+ "card-archived": "Se archivó esta tarjeta",
+ "board-archived": "Se archivó este tablero",
+ "card-comments-title": "Esta tarjeta tiene %s comentarios.",
+ "card-delete-notice": "la eliminación es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
+ "card-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la tarjeta. Esta acción no puede deshacerse.",
+ "card-delete-suggest-archive": "Puedes mover una tarjeta al Archivo para quitarla del tablero y preservar la actividad.",
+ "card-due": "Vence",
+ "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",
+ "card-members-title": "Añadir o eliminar miembros del tablero desde la tarjeta.",
+ "card-start": "Comienza",
+ "card-start-on": "Comienza el",
+ "cardAttachmentsPopup-title": "Adjuntar desde",
+ "cardCustomField-datePopup-title": "Cambiar la fecha",
+ "cardCustomFieldsPopup-title": "Editar los campos personalizados",
+ "cardStartVotingPopup-title": "Comience a votar",
+ "positiveVoteMembersPopup-title": "Favorables",
+ "negativeVoteMembersPopup-title": "Contrarios",
+ "card-edit-voting": "Editar votación",
+ "editVoteEndDatePopup-title": "Cambie fecha de termino del voto",
+ "allowNonBoardMembers": "Permitir todos los usuarios autentificados",
+ "vote-question": "Pregunta de votación",
+ "vote-public": "Mostrar quien voto que",
+ "vote-for-it": "por esto",
+ "vote-against": "contrarios",
+ "deleteVotePopup-title": "¿Borrar voto?",
+ "vote-delete-pop": "El Borrado es permanente. Perderá todas las acciones asociadas con este voto.",
+ "cardDeletePopup-title": "¿Eliminar la tarjeta?",
+ "cardDetailsActionsPopup-title": "Acciones de la tarjeta",
+ "cardLabelsPopup-title": "Etiquetas",
+ "cardMembersPopup-title": "Miembros",
+ "cardMorePopup-title": "Más",
+ "cardTemplatePopup-title": "Crear plantilla",
+ "cards": "Tarjetas",
+ "cards-count": "Tarjetas",
+ "casSignIn": "Iniciar sesión con CAS",
+ "cardType-card": "Tarjeta",
+ "cardType-linkedCard": "Tarjeta enlazada",
+ "cardType-linkedBoard": "Tablero enlazado",
+ "change": "Cambiar",
+ "change-avatar": "Cambiar el avatar",
+ "change-password": "Cambiar la contraseña",
+ "change-permissions": "Cambiar los permisos",
+ "change-settings": "Cambiar las preferencias",
+ "changeAvatarPopup-title": "Cambiar el avatar",
+ "changeLanguagePopup-title": "Cambiar el idioma",
+ "changePasswordPopup-title": "Cambiar la contraseña",
+ "changePermissionsPopup-title": "Cambiar los permisos",
+ "changeSettingsPopup-title": "Cambiar las preferencias",
+ "subtasks": "Subtareas",
+ "checklists": "Lista de verificación",
+ "click-to-star": "Haz clic para destacar este tablero.",
+ "click-to-unstar": "Haz clic para dejar de destacar este tablero.",
+ "clipboard": "el portapapeles o con arrastrar y soltar",
+ "close": "Cerrar",
+ "close-board": "Cerrar el tablero",
+ "close-board-pop": "Podrás restaurar el tablero haciendo clic en el botón \"Archivo\" del encabezado de la pantalla inicial.",
+ "color-black": "negra",
+ "color-blue": "azul",
+ "color-crimson": "carmesí",
+ "color-darkgreen": "verde oscuro",
+ "color-gold": "oro",
+ "color-gray": "gris",
+ "color-green": "verde",
+ "color-indigo": "añil",
+ "color-lime": "lima",
+ "color-magenta": "magenta",
+ "color-mistyrose": "rosa claro",
+ "color-navy": "azul marino",
+ "color-orange": "naranja",
+ "color-paleturquoise": "turquesa",
+ "color-peachpuff": "melocotón",
+ "color-pink": "rosa",
+ "color-plum": "púrpura",
+ "color-purple": "violeta",
+ "color-red": "roja",
+ "color-saddlebrown": "marrón",
+ "color-silver": "plata",
+ "color-sky": "celeste",
+ "color-slateblue": "azul",
+ "color-white": "blanco",
+ "color-yellow": "amarilla",
+ "unset-color": "Desmarcar",
+ "comment": "Comentar",
+ "comment-placeholder": "Escribir comentario",
+ "comment-only": "Sólo comentarios",
+ "comment-only-desc": "Solo puedes comentar en las tarjetas.",
+ "no-comments": "No hay comentarios",
+ "no-comments-desc": "No se pueden mostrar comentarios ni actividades.",
+ "worker": "Trabajador",
+ "worker-desc": "Solo puede mover tarjetas, asignarse a la tarjeta y comentar.",
+ "computer": "el ordenador",
+ "confirm-subtask-delete-dialog": "¿Seguro que quieres eliminar la subtarea?",
+ "confirm-checklist-delete-dialog": "¿Seguro que quieres eliminar la lista de verificación?",
+ "copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles",
+ "linkCardPopup-title": "Enlazar tarjeta",
+ "searchElementPopup-title": "Buscar",
+ "copyCardPopup-title": "Copiar la tarjeta",
+ "copyChecklistToManyCardsPopup-title": "Copiar la plantilla de la lista de verificación en varias tarjetas",
+ "copyChecklistToManyCardsPopup-instructions": "Títulos y descripciones de las tarjetas de destino en formato JSON",
+ "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Título de la primera tarjeta\", \"description\":\"Descripción de la primera tarjeta\"}, {\"title\":\"Título de la segunda tarjeta\",\"description\":\"Descripción de la segunda tarjeta\"},{\"title\":\"Título de la última tarjeta\",\"description\":\"Descripción de la última tarjeta\"} ]",
+ "create": "Crear",
+ "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": "¿Eliminar el campo personalizado?",
+ "deleteLabelPopup-title": "¿Eliminar la etiqueta?",
+ "description": "Descripción",
+ "disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta",
+ "disambiguateMultiMemberPopup-title": "Desambiguar la acción de miembro",
+ "discard": "Descartarla",
+ "done": "Hecho",
+ "download": "Descargar",
+ "edit": "Editar",
+ "edit-avatar": "Cambiar el avatar",
+ "edit-profile": "Editar el perfil",
+ "edit-wip-limit": "Cambiar el límite del trabajo en proceso",
+ "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",
+ "editProfilePopup-title": "Editar el perfil",
+ "email": "Correo electrónico",
+ "email-enrollAccount-subject": "Cuenta creada en __siteName__",
+ "email-enrollAccount-text": "Hola __user__,\n\nPara empezar a utilizar el servicio, simplemente haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
+ "email-fail": "Error al enviar el correo",
+ "email-fail-text": "Error al intentar enviar el correo",
+ "email-invalid": "Correo no válido",
+ "email-invite": "Invitar vía correo electrónico",
+ "email-invite-subject": "__inviter__ ha enviado una invitación",
+ "email-invite-text": "Estimado __user__,\n\n__inviter__ te invita a unirte al tablero '__board__' para colaborar.\n\nPor favor, haz clic en el siguiente enlace:\n\n__url__\n\nGracias.",
+ "email-resetPassword-subject": "Restablecer tu contraseña en __siteName__",
+ "email-resetPassword-text": "Hola __user__,\n\nPara restablecer tu contraseña, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
+ "email-sent": "Correo enviado",
+ "email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__",
+ "email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
+ "enable-wip-limit": "Habilitar el límite del trabajo en proceso",
+ "error-board-doesNotExist": "El tablero no existe",
+ "error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso",
+ "error-board-notAMember": "Es necesario ser miembro de este tablero para hacer eso",
+ "error-json-malformed": "El texto no es un JSON válido",
+ "error-json-schema": "Sus datos JSON no incluyen la información apropiada en el formato correcto",
+ "error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
+ "error-list-doesNotExist": "La lista no existe",
+ "error-user-doesNotExist": "El usuario no existe",
+ "error-user-notAllowSelf": "No puedes invitarte a ti mismo",
+ "error-user-notCreated": "El usuario no ha sido creado",
+ "error-username-taken": "Este nombre de usuario ya está en uso",
+ "error-email-taken": "Esta dirección de correo ya está en uso",
+ "export-board": "Exportar el tablero",
+ "export-board-json": "Exportar tablero a JSON",
+ "export-board-csv": "Exportar tablero a CSV",
+ "export-board-tsv": "Exportar tablero a TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar el tablero",
+ "sort": "Ordenar",
+ "sort-desc": "Click para ordenar la lista",
+ "list-sort-by": "Ordenar la lista por:",
+ "list-label-modifiedAt": "Hora de último acceso",
+ "list-label-title": "Nombre de la lista",
+ "list-label-sort": "Tu orden manual",
+ "list-label-short-modifiedAt": "(L)",
+ "list-label-short-title": "(N)",
+ "list-label-short-sort": "(M)",
+ "filter": "Filtrar",
+ "filter-cards": "Filtrar tarjetas o listas",
+ "list-filter-label": "Filtrar listas por título",
+ "filter-clear": "Limpiar el filtro",
+ "filter-no-label": "Sin etiqueta",
+ "filter-no-member": "Sin miembro",
+ "filter-no-assignee": "No asignado",
+ "filter-no-custom-fields": "Sin campos personalizados",
+ "filter-show-archive": "Mostrar las listas archivadas",
+ "filter-hide-empty": "Ocultar las listas vacías",
+ "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, deben encapsularse entre comillas simples. Por ejemplo: 'Campo 1' == 'Valor 1'. Para omitir los caracteres de control único (' \\/), se usa \\. Por ejemplo: Campo1 = I\\'m. También se pueden combinar múltiples condiciones. Por ejemplo: C1 == V1 || C1 == V2. Normalmente todos los operadores se interpretan de izquierda a derecha. Se puede cambiar el orden colocando paréntesis. Por ejemplo: C1 == V1 && ( C2 == V2 || C2 == V3 ). También se puede buscar en campos de texto usando expresiones regulares: C1 == /Tes.*/i",
+ "fullname": "Nombre completo",
+ "header-logo-title": "Volver a tu página de tableros",
+ "hide-system-messages": "Ocultar las notificaciones de actividad",
+ "headerBarCreateBoardPopup-title": "Crear tablero",
+ "home": "Inicio",
+ "import": "Importar",
+ "link": "Enlace",
+ "import-board": "importar un tablero",
+ "import-board-c": "Importar un tablero",
+ "import-board-title-trello": "Importar un tablero desde Trello",
+ "import-board-title-wekan": "Importar tablero desde una exportación previa",
+ "import-board-title-csv": "Importar tablero desde CSV/TSV",
+ "from-trello": "Desde Trello",
+ "from-wekan": "Desde exportación previa",
+ "from-csv": "Desde CSV/TSV",
+ "import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más' > 'Imprimir y exportar' > 'Exportar JSON', y copia el texto resultante.",
+ "import-board-instruction-csv": "Pegue en sus Valores separados por coma(CSV)/Valores separados por tab(TSV).",
+ "import-board-instruction-wekan": "En tu tablero, vete a 'Menú', luego 'Exportar tablero', y copia el texto en el archivo descargado.",
+ "import-board-instruction-about-errors": "Aunque obtengas errores cuando importes el tablero, a veces la importación funciona igualmente, y el tablero se encontrará en la página de tableros.",
+ "import-json-placeholder": "Pega tus datos JSON válidos aquí",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
+ "import-map-members": "Mapa de miembros",
+ "import-members-map": "Tu tablero importado tiene algunos miembros. Por favor, mapea los miembros que quieres importar con tus usuarios.",
+ "import-show-user-mapping": "Revisión de la asignación de miembros",
+ "import-user-select": "Selecciona el miembro existe que quieres usar como este miembro.",
+ "importMapMembersAddPopup-title": "Seleccionar miembro",
+ "info": "Versión",
+ "initials": "Iniciales",
+ "invalid-date": "Fecha no válida",
+ "invalid-time": "Tiempo no válido",
+ "invalid-user": "Usuario no válido",
+ "joined": "se ha unido",
+ "just-invited": "Has sido invitado a este tablero",
+ "keyboard-shortcuts": "Atajos de teclado",
+ "label-create": "Crear una etiqueta",
+ "label-default": "etiqueta %s (por defecto)",
+ "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.",
+ "leave-board": "Abandonar el tablero",
+ "leave-board-pop": "¿Seguro que quieres abandonar __boardTitle__? Serás desvinculado de todas las tarjetas en este tablero.",
+ "leaveBoardPopup-title": "¿Abandonar el tablero?",
+ "link-card": "Enlazar a esta tarjeta",
+ "list-archive-cards": "Archivar todas las tarjetas de esta lista",
+ "list-archive-cards-pop": "Esto eliminará del tablero todas las tarjetas en esta lista. Para ver las tarjetas en el Archivo y recuperarlas al tablero haga click en \"Menu\" > \"Archivo\"",
+ "list-move-cards": "Mover todas las tarjetas de esta lista",
+ "list-select-cards": "Seleccionar todas las tarjetas de esta lista",
+ "set-color-list": "Cambiar el color",
+ "listActionPopup-title": "Acciones de la lista",
+ "swimlaneActionPopup-title": "Acciones del carril de flujo",
+ "swimlaneAddPopup-title": "Añadir un carril de flujo debajo",
+ "listImportCardPopup-title": "Importar una tarjeta de Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
+ "listMorePopup-title": "Más",
+ "link-list": "Enlazar a esta lista",
+ "list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.",
+ "list-delete-suggest-archive": "Puedes mover una lista al Archivo para quitarla del tablero y preservar la actividad.",
+ "lists": "Listas",
+ "swimlanes": "Carriles",
+ "log-out": "Finalizar la sesión",
+ "log-in": "Iniciar sesión",
+ "loginPopup-title": "Iniciar sesión",
+ "memberMenuPopup-title": "Preferencias de miembro",
+ "members": "Miembros",
+ "menu": "Menú",
+ "move-selection": "Mover la selección",
+ "moveCardPopup-title": "Mover la tarjeta",
+ "moveCardToBottom-title": "Mover al final",
+ "moveCardToTop-title": "Mover al principio",
+ "moveSelectionPopup-title": "Mover la selección",
+ "multi-selection": "Selección múltiple",
+ "multi-selection-on": "Selección múltiple activada",
+ "muted": "Silenciado",
+ "muted-info": "No serás notificado de ningún cambio en este tablero",
+ "my-boards": "Mis tableros",
+ "name": "Nombre",
+ "no-archived-cards": "No hay tarjetas archivadas.",
+ "no-archived-lists": "No hay listas archivadas.",
+ "no-archived-swimlanes": "No hay carriles archivados.",
+ "no-results": "Sin resultados",
+ "normal": "Normal",
+ "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
+ "not-accepted-yet": "La invitación no ha sido aceptada aún",
+ "notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participas como creador o miembro",
+ "notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando",
+ "optional": "opcional",
+ "or": "o",
+ "page-maybe-private": "Esta página puede ser privada. Es posible que puedas verla al <a href='%s'>iniciar sesión</a>.",
+ "page-not-found": "Página no encontrada.",
+ "password": "Contraseña",
+ "paste-or-dragdrop": "pegar o arrastrar y soltar un fichero de imagen (sólo imagen)",
+ "participating": "Participando",
+ "preview": "Previsualizar",
+ "previewAttachedImagePopup-title": "Previsualizar",
+ "previewClipboardImagePopup-title": "Previsualizar",
+ "private": "Privado",
+ "private-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.",
+ "profile": "Perfil",
+ "public": "Público",
+ "public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.",
+ "quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.",
+ "remove-cover": "Eliminar portada",
+ "remove-from-board": "Desvincular del tablero",
+ "remove-label": "Eliminar la etiqueta",
+ "listDeletePopup-title": "¿Eliminar la lista?",
+ "remove-member": "Eliminar miembro",
+ "remove-member-from-card": "Eliminar de la tarjeta",
+ "remove-member-pop": "¿Eliminar __name__ (__username__) de __boardTitle__? El miembro será eliminado de todas las tarjetas de este tablero. En ellas se mostrará una notificación.",
+ "removeMemberPopup-title": "¿Eliminar miembro?",
+ "rename": "Renombrar",
+ "rename-board": "Renombrar el tablero",
+ "restore": "Restaurar",
+ "save": "Añadir",
+ "search": "Buscar",
+ "rules": "Reglas",
+ "search-cards": "Buscar entre los títulos, las descripciones de las tarjetas/listas y los campos personalizados en este tablero.",
+ "search-example": "¿Texto a buscar?",
+ "select-color": "Seleccionar el color",
+ "set-wip-limit-value": "Cambiar el límite para el número máximo de tareas en esta lista.",
+ "setWipLimitPopup-title": "Cambiar el límite del trabajo en proceso",
+ "shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual",
+ "shortcut-autocomplete-emoji": "Autocompletar emoji",
+ "shortcut-autocomplete-members": "Autocompletar miembros",
+ "shortcut-clear-filters": "Limpiar todos los filtros",
+ "shortcut-close-dialog": "Cerrar el cuadro de diálogo",
+ "shortcut-filter-my-cards": "Filtrar mis tarjetas",
+ "shortcut-show-shortcuts": "Mostrar esta lista de atajos",
+ "shortcut-toggle-filterbar": "Conmutar la barra lateral del filtro",
+ "shortcut-toggle-sidebar": "Conmutar la barra lateral del tablero",
+ "show-cards-minimum-count": "Mostrar recuento de tarjetas si la lista contiene más de",
+ "sidebar-open": "Abrir la barra lateral",
+ "sidebar-close": "Cerrar la barra lateral",
+ "signupPopup-title": "Crear una cuenta",
+ "star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
+ "starred-boards": "Tableros destacados",
+ "starred-boards-description": "Los tableros destacados se mostrarán en la parte superior de tu lista de tableros.",
+ "subscribe": "Suscribirse",
+ "team": "Equipo",
+ "this-board": "este tablero",
+ "this-card": "esta tarjeta",
+ "spent-time-hours": "Tiempo consumido (horas)",
+ "overtime-hours": "Tiempo excesivo (horas)",
+ "overtime": "Tiempo excesivo",
+ "has-overtime-cards": "Hay tarjetas con el tiempo excedido",
+ "has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas",
+ "time": "Hora",
+ "title": "Título",
+ "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",
+ "upload": "Cargar",
+ "upload-avatar": "Cargar un avatar",
+ "uploaded-avatar": "Avatar cargado",
+ "username": "Nombre de usuario",
+ "view-it": "Verla",
+ "warn-list-archived": "advertencia: esta tarjeta está en una lista en el Archivo",
+ "watch": "Vigilar",
+ "watching": "Vigilando",
+ "watching-info": "Serás notificado de cualquier cambio en este tablero",
+ "welcome-board": "Tablero de bienvenida",
+ "welcome-swimlane": "Hito 1",
+ "welcome-list1": "Básicos",
+ "welcome-list2": "Avanzados",
+ "card-templates-swimlane": "Plantilla de tarjeta",
+ "list-templates-swimlane": "Listar plantillas",
+ "board-templates-swimlane": "Plantilla de tablero",
+ "what-to-do": "¿Qué quieres hacer?",
+ "wipLimitErrorPopup-title": "El límite del trabajo en proceso no es válido.",
+ "wipLimitErrorPopup-dialog-pt1": "El número de tareas en esta lista es mayor que el límite del trabajo en proceso que has definido.",
+ "wipLimitErrorPopup-dialog-pt2": "Por favor, mueve algunas tareas fuera de esta lista, o fija un límite del trabajo en proceso más alto.",
+ "admin-panel": "Panel del administrador",
+ "settings": "Preferencias",
+ "people": "Personas",
+ "registration": "Registro",
+ "disable-self-registration": "Deshabilitar autoregistro",
+ "invite": "Invitar",
+ "invite-people": "Invitar a personas",
+ "to-boards": "A el(los) tablero(s)",
+ "email-addresses": "Direcciones de correo electrónico",
+ "smtp-host-description": "Dirección del servidor SMTP para gestionar tus correos",
+ "smtp-port-description": "Puerto usado por el servidor SMTP para mandar correos",
+ "smtp-tls-description": "Habilitar el soporte TLS para el servidor SMTP",
+ "smtp-host": "Servidor SMTP",
+ "smtp-port": "Puerto SMTP",
+ "smtp-username": "Nombre de usuario",
+ "smtp-password": "Contraseña",
+ "smtp-tls": "Soporte TLS",
+ "send-from": "Desde",
+ "send-smtp-test": "Enviarte un correo de prueba a ti mismo",
+ "invitation-code": "Código de Invitación",
+ "email-invite-register-subject": "__inviter__ te ha enviado una invitación",
+ "email-invite-register-text": "Querido __user__,\n__inviter__ le invita al tablero kanban para colaborar.\n\nPor favor, siga el siguiente enlace:\n__url__\n\nY tu código de invitación es: __icode__\n\nGracias.",
+ "email-smtp-test-subject": "Prueba de email SMTP",
+ "email-smtp-test-text": "El correo se ha enviado correctamente",
+ "error-invitation-code-not-exist": "El código de invitación no existe",
+ "error-notAuthorized": "No estás autorizado a ver esta página.",
+ "webhook-title": "Nombre del Webhook",
+ "webhook-token": "Token (opcional para la autenticación)",
+ "outgoing-webhooks": "Webhooks salientes",
+ "bidirectional-webhooks": "Webhooks de doble sentido",
+ "outgoingWebhooksPopup-title": "Webhooks salientes",
+ "boardCardTitlePopup-title": "Filtro de títulos de tarjeta",
+ "disable-webhook": "Deshabilitar este Webhook",
+ "global-webhook": "Webhooks globales",
+ "new-outgoing-webhook": "Nuevo webhook saliente",
+ "no-name": "(Desconocido)",
+ "Node_version": "Versión de Node",
+ "Meteor_version": "Versión de Meteor",
+ "MongoDB_version": "Versión de MongoDB",
+ "MongoDB_storage_engine": "Motor de almacenamiento de MongoDB",
+ "MongoDB_Oplog_enabled": "Oplog de MongoDB habilitado",
+ "OS_Arch": "Arquitectura del sistema",
+ "OS_Cpus": "Número de CPUs del sistema",
+ "OS_Freemem": "Memoria libre del sistema",
+ "OS_Loadavg": "Carga media del sistema",
+ "OS_Platform": "Plataforma del sistema",
+ "OS_Release": "Publicación del sistema",
+ "OS_Totalmem": "Memoria total del sistema",
+ "OS_Type": "Tipo de sistema",
+ "OS_Uptime": "Tiempo activo del sistema",
+ "days": "días",
+ "hours": "horas",
+ "minutes": "minutos",
+ "seconds": "segundos",
+ "show-field-on-card": "Mostrar este campo en la tarjeta",
+ "automatically-field-on-card": "Crear campos automáticamente para todas las tarjetas.",
+ "showLabel-field-on-card": "Mostrar etiquetas de campos en la minitarjeta.",
+ "yes": "Sí",
+ "no": "No",
+ "accounts": "Cuentas",
+ "accounts-allowEmailChange": "Permitir cambiar el correo electrónico",
+ "accounts-allowUserNameChange": "Permitir cambiar el nombre de usuario",
+ "createdAt": "Fecha de alta",
+ "verified": "Verificado",
+ "active": "Activo",
+ "card-received": "Recibido",
+ "card-received-on": "Recibido el",
+ "card-end": "Finalizado",
+ "card-end-on": "Finalizado el",
+ "editCardReceivedDatePopup-title": "Cambiar la fecha de recepción",
+ "editCardEndDatePopup-title": "Cambiar la fecha de finalización",
+ "setCardColorPopup-title": "Cambiar el color",
+ "setCardActionsColorPopup-title": "Elegir un color",
+ "setSwimlaneColorPopup-title": "Elegir un color",
+ "setListColorPopup-title": "Elegir un color",
+ "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": "¿Eliminar el tablero?",
+ "delete-board": "Eliminar el tablero",
+ "default-subtasks-board": "Subtareas para el tablero __board__",
+ "default": "Por defecto",
+ "queue": "Cola",
+ "subtask-settings": "Preferencias de las subtareas",
+ "card-settings": "Preferencias de la tarjeta",
+ "boardSubtaskSettingsPopup-title": "Preferencias de las subtareas del tablero",
+ "boardCardSettingsPopup-title": "Preferencias de la tarjeta",
+ "deposit-subtasks-board": "Depositar subtareas en este tablero:",
+ "deposit-subtasks-list": "Lista de destino para subtareas depositadas aquí:",
+ "show-parent-in-minicard": "Mostrar el padre en una minitarjeta:",
+ "prefix-with-full-path": "Prefijo con ruta completa",
+ "prefix-with-parent": "Prefijo con el padre",
+ "subtext-with-full-path": "Subtexto con ruta completa",
+ "subtext-with-parent": "Subtexto con el padre",
+ "change-card-parent": "Cambiar la tarjeta padre",
+ "parent-card": "Tarjeta padre",
+ "source-board": "Tablero de origen",
+ "no-parent": "No mostrar la tarjeta padre",
+ "activity-added-label": "añadida etiqueta %s a %s",
+ "activity-removed-label": "eliminada etiqueta '%s' desde %s",
+ "activity-delete-attach": "eliminado un adjunto desde %s",
+ "activity-added-label-card": "añadida etiqueta '%s'",
+ "activity-removed-label-card": "eliminada etiqueta '%s'",
+ "activity-delete-attach-card": "eliminado un adjunto",
+ "activity-set-customfield": "Cambiar el campo personalizado '%s' a '%s' en %s",
+ "activity-unset-customfield": "Desmarcar el campo personalizado '%s' en %s",
+ "r-rule": "Regla",
+ "r-add-trigger": "Añadir disparador",
+ "r-add-action": "Añadir acción",
+ "r-board-rules": "Reglas del tablero",
+ "r-add-rule": "Añadir regla",
+ "r-view-rule": "Ver regla",
+ "r-delete-rule": "Eliminar regla",
+ "r-new-rule-name": "Nueva título de regla",
+ "r-no-rules": "No hay reglas",
+ "r-when-a-card": "Cuando una tarjeta",
+ "r-is": "es",
+ "r-is-moved": "es movida",
+ "r-added-to": "Added to",
+ "r-removed-from": "eliminado de",
+ "r-the-board": "el tablero",
+ "r-list": "la lista",
+ "set-filter": "Filtrar",
+ "r-moved-to": "Movido a",
+ "r-moved-from": "Movido desde",
+ "r-archived": "Se archivó",
+ "r-unarchived": "Restaurado del archivo",
+ "r-a-card": "una tarjeta",
+ "r-when-a-label-is": "Cuando una etiqueta es",
+ "r-when-the-label": "Cuando la etiqueta es",
+ "r-list-name": "Nombre de lista",
+ "r-when-a-member": "Cuando un miembro es",
+ "r-when-the-member": "Cuando el miembro",
+ "r-name": "nombre",
+ "r-when-a-attach": "Cuando un adjunto",
+ "r-when-a-checklist": "Cuando una lista de verificación es",
+ "r-when-the-checklist": "Cuando la lista de verificación",
+ "r-completed": "Completada",
+ "r-made-incomplete": "Hecha incompleta",
+ "r-when-a-item": "Cuando un elemento de la lista de verificación es",
+ "r-when-the-item": "Cuando el elemento de la lista de verificación es",
+ "r-checked": "Marcado",
+ "r-unchecked": "Desmarcado",
+ "r-move-card-to": "Mover la tarjeta",
+ "r-top-of": "Arriba de",
+ "r-bottom-of": "Abajo de",
+ "r-its-list": "su lista",
+ "r-archive": "Archivar",
+ "r-unarchive": "Restaurar del Archivo",
+ "r-card": "la tarjeta",
+ "r-add": "Añadir",
+ "r-remove": "Eliminar",
+ "r-label": "etiqueta",
+ "r-member": "miembro",
+ "r-remove-all": "Eliminar todos los miembros de la tarjeta",
+ "r-set-color": "Cambiar el color a",
+ "r-checklist": "lista de verificación",
+ "r-check-all": "Marcar todo",
+ "r-uncheck-all": "Desmarcar todo",
+ "r-items-check": "elementos de la lista de verificación",
+ "r-check": "Marcar",
+ "r-uncheck": "Desmarcar",
+ "r-item": "elemento",
+ "r-of-checklist": "de la lista de verificación",
+ "r-send-email": "Enviar un email",
+ "r-to": "a",
+ "r-of": "of",
+ "r-subject": "asunto",
+ "r-rule-details": "Detalle de la regla",
+ "r-d-move-to-top-gen": "Mover la tarjeta al inicio de su lista",
+ "r-d-move-to-top-spec": "Mover la tarjeta al inicio de la lista",
+ "r-d-move-to-bottom-gen": "Mover la tarjeta al final de su lista",
+ "r-d-move-to-bottom-spec": "Mover la tarjeta al final de la lista",
+ "r-d-send-email": "Enviar email",
+ "r-d-send-email-to": "a",
+ "r-d-send-email-subject": "asunto",
+ "r-d-send-email-message": "mensaje",
+ "r-d-archive": "Archivar la tarjeta",
+ "r-d-unarchive": "Restaurar tarjeta del Archivo",
+ "r-d-add-label": "Añadir etiqueta",
+ "r-d-remove-label": "Eliminar etiqueta",
+ "r-create-card": "Crear una nueva tarjeta",
+ "r-in-list": "en la lista",
+ "r-in-swimlane": "en el carril",
+ "r-d-add-member": "Añadir miembro",
+ "r-d-remove-member": "Eliminar miembro",
+ "r-d-remove-all-member": "Eliminar todos los miembros",
+ "r-d-check-all": "Marcar todos los elementos de una lista",
+ "r-d-uncheck-all": "Desmarcar todos los elementos de una lista",
+ "r-d-check-one": "Marcar elemento",
+ "r-d-uncheck-one": "Desmarcar elemento",
+ "r-d-check-of-list": "de la lista de verificación",
+ "r-d-add-checklist": "Añadir una lista de verificación",
+ "r-d-remove-checklist": "Eliminar lista de verificación",
+ "r-by": "por",
+ "r-add-checklist": "Añadir una lista de verificación",
+ "r-with-items": "con items",
+ "r-items-list": "item1,item2,item3",
+ "r-add-swimlane": "Agregar el carril",
+ "r-swimlane-name": "nombre del carril",
+ "r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles",
+ "r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.",
+ "r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista",
+ "r-set": "Cambiar",
+ "r-update": "Actualizar",
+ "r-datefield": "campo de fecha",
+ "r-df-start-at": "comienza",
+ "r-df-due-at": "vencimiento",
+ "r-df-end-at": "finalizado",
+ "r-df-received-at": "recibido",
+ "r-to-current-datetime": "a la fecha/hora actual",
+ "r-remove-value-from": "Eliminar el valor de",
+ "ldap": "LDAP",
+ "oauth2": "OAuth2",
+ "cas": "CAS",
+ "authentication-method": "Método de autenticación",
+ "authentication-type": "Tipo de autenticación",
+ "custom-product-name": "Nombre de producto personalizado",
+ "layout": "Diseño",
+ "hide-logo": "Ocultar el logo",
+ "add-custom-html-after-body-start": "Añade HTML personalizado después de <body>",
+ "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
+ "error-undefined": "Algo no está bien",
+ "error-ldap-login": "Ocurrió un error al intentar acceder",
+ "display-authentication-method": "Mostrar el método de autenticación",
+ "default-authentication-method": "Método de autenticación por defecto",
+ "duplicate-board": "Duplicar tablero",
+ "people-number": "El número de personas es:",
+ "swimlaneDeletePopup-title": "¿Eliminar el carril de flujo?",
+ "swimlane-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar el carril de flujo. Esta acción no puede deshacerse.",
+ "restore-all": "Restaurar todas",
+ "delete-all": "Borrar todas",
+ "loading": "Cargando. Por favor, espere.",
+ "previous_as": "el último tiempo fue",
+ "act-a-dueAt": "cambiada la hora de vencimiento a \nCuándo: __timeValue__\nDónde: __card__\n el vencimiento anterior fue __timeOldValue__",
+ "act-a-endAt": "cambiada la hora de finalización a __timeValue__ Fecha anterior: (__timeOldValue__)",
+ "act-a-startAt": "cambiada la hora de comienzo a __timeValue__ Fecha anterior: (__timeOldValue__)",
+ "act-a-receivedAt": "cambiada la fecha de recepción a __timeValue__ Fecha anterior: (__timeOldValue__)",
+ "a-dueAt": "cambiada la hora de vencimiento a",
+ "a-endAt": "cambiada la hora de finalización a",
+ "a-startAt": "cambiada la hora de comienzo a",
+ "a-receivedAt": "cambiada la hora de recepción a",
+ "almostdue": "está próxima la hora de vencimiento actual %s",
+ "pastdue": "se sobrepasó la hora de vencimiento actual%s",
+ "duenow": "la hora de vencimiento actual %s es hoy",
+ "act-newDue": "__list__/__card__ tiene una 1ra notificación de vencimiento [__board__]",
+ "act-withDue": "__list__/__card__ notificaciones de vencimiento [__board__]",
+ "act-almostdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ está próximo",
+ "act-pastdue": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ se sobrepasó",
+ "act-duenow": "se ha notificado que el vencimiento actual (__timeValue__) de __card__ es ahora",
+ "act-atUserComment": "Se te mencionó en [__board__] __list__/__card__",
+ "delete-user-confirm-popup": "¿Seguro que quieres eliminar esta cuenta? Esta acción no puede deshacerse.",
+ "accounts-allowUserDelete": "Permitir a los usuarios eliminar su cuenta",
+ "hide-minicard-label-text": "Ocultar el texto de la etiqueta de la minitarjeta",
+ "show-desktop-drag-handles": "Mostrar los controles de arrastre del escritorio",
+ "assignee": "Asignado",
+ "cardAssigneesPopup-title": "Asignado",
+ "addmore-detail": "Añadir una descripción detallada",
+ "show-on-card": "Mostrar en la tarjeta",
+ "new": "Nuevo",
+ "editUserPopup-title": "Editar el usuario",
+ "newUserPopup-title": "Nuevo usuario",
+ "notifications": "Notificaciones",
+ "view-all": "Ver todo",
+ "filter-by-unread": "Filtrar por no leído",
+ "mark-all-as-read": "Marcar todo como leido",
+ "remove-all-read": "Remove all read",
+ "allow-rename": "Permitir renombrar",
+ "allowRenamePopup-title": "Permitir renombrar",
+ "start-day-of-week": "Set day of the week start",
+ "monday": "Lunes",
+ "tuesday": "Martes",
+ "wednesday": "Miércoles",
+ "thursday": "Jueves",
+ "friday": "Viernes",
+ "saturday": "Sábado",
+ "sunday": "Domingo",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
+}
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 5c779ba7..4258a5a7 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Tiempo consumido",
"card-edit-attachments": "Editar los adjuntos",
"card-edit-custom-fields": "Editar los campos personalizados",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editar las etiquetas",
"card-edit-members": "Editar los miembros",
"card-labels-title": "Cambia las etiquetas de la tarjeta",
@@ -163,14 +161,18 @@
"cardAttachmentsPopup-title": "Adjuntar desde",
"cardCustomField-datePopup-title": "Cambiar la fecha",
"cardCustomFieldsPopup-title": "Editar los campos personalizados",
- "cardStartVotingPopup-title": "Start a vote",
+ "cardStartVotingPopup-title": "Comience a votar",
"positiveVoteMembersPopup-title": "Favorables",
"negativeVoteMembersPopup-title": "Contrarios",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
- "vote-question": "Voting question",
- "vote-public": "Show who voted what",
- "vote-for-it": "for it",
+ "card-edit-voting": "Editar votación",
+ "editVoteEndDatePopup-title": "Cambie fecha de termino del voto",
+ "allowNonBoardMembers": "Permitir todos los usuarios autentificados",
+ "vote-question": "Pregunta de votación",
+ "vote-public": "Mostrar quien voto que",
+ "vote-for-it": "por esto",
"vote-against": "contrarios",
+ "deleteVotePopup-title": "¿Borrar voto?",
+ "vote-delete-pop": "El Borrado es permanente. Perderá todas las acciones asociadas con este voto.",
"cardDeletePopup-title": "¿Eliminar la tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la tarjeta",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Es necesario ser miembro de este tablero para hacer eso",
"error-json-malformed": "El texto no es un JSON válido",
"error-json-schema": "Sus datos JSON no incluyen la información apropiada en el formato correcto",
+ "error-csv-schema": "Su CSV(Valores separados por coma)/TSV(Valores separados por tab) no incluyen la información apropiada en el formato correcto",
"error-list-doesNotExist": "La lista no existe",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
@@ -314,6 +317,11 @@
"error-username-taken": "Este nombre de usuario ya está en uso",
"error-email-taken": "Esta dirección de correo ya está en uso",
"export-board": "Exportar el tablero",
+ "export-board-json": "Exportar tablero a JSON",
+ "export-board-csv": "Exportar tablero a CSV",
+ "export-board-tsv": "Exportar tablero a TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar el tablero",
"sort": "Ordenar",
"sort-desc": "Click para ordenar la lista",
"list-sort-by": "Ordenar la lista por:",
@@ -329,7 +337,7 @@
"filter-clear": "Limpiar el filtro",
"filter-no-label": "Sin etiqueta",
"filter-no-member": "Sin miembro",
- "filter-no-assignee": "No assignee",
+ "filter-no-assignee": "No asignado",
"filter-no-custom-fields": "Sin campos personalizados",
"filter-show-archive": "Mostrar las listas archivadas",
"filter-hide-empty": "Ocultar las listas vacías",
@@ -349,12 +357,16 @@
"import-board-c": "Importar un tablero",
"import-board-title-trello": "Importar un tablero desde Trello",
"import-board-title-wekan": "Importar tablero desde una exportación previa",
+ "import-board-title-csv": "Importar tablero desde CSV/TSV",
"from-trello": "Desde Trello",
"from-wekan": "Desde exportación previa",
+ "from-csv": "Desde CSV/TSV",
"import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más' > 'Imprimir y exportar' > 'Exportar JSON', y copia el texto resultante.",
+ "import-board-instruction-csv": "Pegue en sus Valores separados por coma(CSV)/Valores separados por tab(TSV).",
"import-board-instruction-wekan": "En tu tablero, vete a 'Menú', luego 'Exportar tablero', y copia el texto en el archivo descargado.",
"import-board-instruction-about-errors": "Aunque obtengas errores cuando importes el tablero, a veces la importación funciona igualmente, y el tablero se encontrará en la página de tableros.",
"import-json-placeholder": "Pega tus datos JSON válidos aquí",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapa de miembros",
"import-members-map": "Tu tablero importado tiene algunos miembros. Por favor, mapea los miembros que quieres importar con tus usuarios.",
"import-show-user-mapping": "Revisión de la asignación de miembros",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Acciones del carril de flujo",
"swimlaneAddPopup-title": "Añadir un carril de flujo debajo",
"listImportCardPopup-title": "Importar una tarjeta de Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Más",
"link-list": "Enlazar a esta lista",
"list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Cuando una tarjeta",
"r-is": "es",
"r-is-moved": "es movida",
- "r-added-to": "agregada a",
+ "r-added-to": "Added to",
"r-removed-from": "eliminado de",
"r-the-board": "el tablero",
"r-list": "la lista",
@@ -784,5 +797,14 @@
"thursday": "Jueves",
"friday": "Viernes",
"saturday": "Sábado",
- "sunday": "Domingo"
+ "sunday": "Domingo",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index 13aef143..bbb21665 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Erabilitako denbora",
"card-edit-attachments": "Editatu eranskinak",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editatu etiketak",
"card-edit-members": "Editatu kideak",
"card-labels-title": "Aldatu txartelaren etiketak",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Ezabatu txartela?",
"cardDetailsActionsPopup-title": "Txartel-ekintzak",
"cardLabelsPopup-title": "Etiketak",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Arbel honetako kidea izan behar zara hori egin ahal izateko",
"error-json-malformed": "Zure testua ez da baliozko JSON",
"error-json-schema": "Zure JSON datuek ez dute formatu zuzenaren informazio egokia",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Zerrenda hau ez da existitzen",
"error-user-doesNotExist": "Erabiltzaile hau ez da existitzen",
"error-user-notAllowSelf": "Ezin duzu zure burua gonbidatu",
@@ -314,6 +317,11 @@
"error-username-taken": "Erabiltzaile-izen hori hartuta dago",
"error-email-taken": "E-mail hori hartuta dago",
"export-board": "Esportatu arbela",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Esportatu arbela",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Inportatu arbela",
"import-board-title-trello": "Inportatu arbela Trellotik",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Trellotik",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Zure Trello arbelean, aukeratu 'Menu\", 'More', 'Print and Export', 'Export JSON', eta kopiatu jasotako testua hemen.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Isatsi baliozko JSON datuak hemen",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Kideen mapa",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Berrikusi kideen mapa",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Inportatu Trello txartel bat",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Gehiago",
"link-list": "Lotura zerrenda honetara",
"list-delete-pop": "Ekintza guztiak ekintza jariotik kenduko dira eta ezin izango duzu zerrenda berreskuratu. Ez dago desegiterik.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index ebb76c25..861cff8d 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "زمان صرف شده",
"card-edit-attachments": "ویرایش ضمائم",
"card-edit-custom-fields": "ویرایش فیلدهای شخصی",
- "card-start-voting": "شروع رای گیری",
- "card-cancel-voting": "حذف رای گیری و همه آرا",
"card-edit-labels": "ویرایش برچسب",
"card-edit-members": "ویرایش اعضا",
"card-labels-title": "تغییر برچسب کارت",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "شروع به رای",
"positiveVoteMembersPopup-title": "طرفداران",
"negativeVoteMembersPopup-title": "مخالفان",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "سوال رای گیری",
- "vote-public": "Show who voted what",
+ "vote-public": "نمایش چه کسی به چه رای داده است",
"vote-for-it": "for it",
- "vote-against": "against",
+ "vote-against": "بر خلاف",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟",
"cardDetailsActionsPopup-title": "اعمال کارت",
"cardLabelsPopup-title": "برچسب ها",
@@ -307,6 +309,7 @@
"error-board-notAMember": "شما برای انجام آن، باید عضو این برد باشید",
"error-json-malformed": "متن درغالب صحیح Json نمی باشد.",
"error-json-schema": "داده های Json شما، شامل اطلاعات صحیح در غالب درستی نمی باشد.",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "این لیست موجود نیست",
"error-user-doesNotExist": "این کاربر وجود ندارد",
"error-user-notAllowSelf": "عدم امکان دعوت خود",
@@ -314,6 +317,11 @@
"error-username-taken": "این نام کاربری استفاده شده است",
"error-email-taken": "رایانامه توسط گیرنده دریافت شده است",
"export-board": "انتقال به بیرون برد",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "انتقال به بیرون برد",
"sort": "مرتب سازی",
"sort-desc": "برای مرتب سازی لیست کلیک کنید",
"list-sort-by": "مرتب سازی لیست بر اساس:",
@@ -329,7 +337,7 @@
"filter-clear": "حذف صافی ـ فیلتر ـ",
"filter-no-label": "بدون برچسب",
"filter-no-member": "بدون عضو",
- "filter-no-assignee": "No assignee",
+ "filter-no-assignee": "الحاق نشده",
"filter-no-custom-fields": "هیچ فیلدشخصی ای وجود ندارد",
"filter-show-archive": "نمایش لیست‌های آرشیو شده",
"filter-hide-empty": "مخفی کردن لیست‌های خالی",
@@ -349,12 +357,16 @@
"import-board-c": "وارد کردن برد",
"import-board-title-trello": "وارد کردن برد از Trello",
"import-board-title-wekan": "بارگذاری برد ها از آخرین خروجی",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "از Trello",
"from-wekan": "از آخرین خروجی",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "در Trello-ی خود به 'Menu'، 'More'، 'Print'، 'Export to JSON رفته و متن نهایی را دراینجا وارد نمایید.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "در هیئت مدیره خود، به 'Menu' بروید، سپس 'Export Board'، و متن را در فایل دانلود شده کپی کنید.",
"import-board-instruction-about-errors": "اگر هنگام بازگردانی با خطا مواجه شدید بعضی اوقات بازگردانی انجام می شود و تمامی برد ها در داخل صفحه All Boards هستند",
"import-json-placeholder": "اطلاعات Json معتبر خود را اینجا وارد کنید.",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "نگاشت اعضا",
"import-members-map": "برد ها بازگردانده شده تعدادی کاربر دارند . لطفا کاربر های که می خواهید را انتخاب نمایید",
"import-show-user-mapping": "بررسی نقشه کاربران",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "اضافه کردن مسیر شناور",
"listImportCardPopup-title": "وارد کردن کارت Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"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.",
@@ -544,7 +557,7 @@
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(ناشناخته)",
"Node_version": "نسخه Node",
- "Meteor_version": "Meteor version",
+ "Meteor_version": "نسخه متئور",
"MongoDB_version": "ورژن MongoDB",
"MongoDB_storage_engine": "موتور ذخیره سازی MongoDB",
"MongoDB_Oplog_enabled": "MongoDB Oplog فعال",
@@ -592,9 +605,9 @@
"default": "پیش‌فرض",
"queue": "صف",
"subtask-settings": "تنظیمات ریزکارها",
- "card-settings": "Card Settings",
+ "card-settings": "تنظیمات کارت",
"boardSubtaskSettingsPopup-title": "تنظیمات ریزکار های برد",
- "boardCardSettingsPopup-title": "Card Settings",
+ "boardCardSettingsPopup-title": "تنظیمات کارت",
"deposit-subtasks-board": "افزودن ریزکار به برد:",
"deposit-subtasks-list": "لیست برای ریزکار های افزوده شده",
"show-parent-in-minicard": "نمایش خانواده در ریز کارت",
@@ -626,7 +639,7 @@
"r-when-a-card": "زمانی که کارت",
"r-is": "هست",
"r-is-moved": "جابه‌جا شده",
- "r-added-to": "اضافه شد به",
+ "r-added-to": "Added to",
"r-removed-from": "حذف از",
"r-the-board": "برد",
"r-list": "لیست",
@@ -711,7 +724,7 @@
"r-board-note": "نکته: برای نمایش موارد ممکن کادر را خالی بگذارید.",
"r-checklist-note": "نکته: چک‌لیست‌ها باید توسط کاما از یک‌دیگر جدا شوند.",
"r-when-a-card-is-moved": "زمانی که یک کارت به لیست دیگری منتقل شد",
- "r-set": "Set",
+ "r-set": "تنظیم",
"r-update": "به روز رسانی",
"r-datefield": "تاریخ",
"r-df-start-at": "شروع",
@@ -761,12 +774,12 @@
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
- "hide-minicard-label-text": "Hide minicard label text",
+ "hide-minicard-label-text": "مخفی کردن اسم برچسب مینی کارت",
"show-desktop-drag-handles": "Show desktop drag handles",
- "assignee": "Assignee",
- "cardAssigneesPopup-title": "Assignee",
- "addmore-detail": "Add a more detailed description",
- "show-on-card": "Show on Card",
+ "assignee": "الحاق شده",
+ "cardAssigneesPopup-title": "الحاق شده",
+ "addmore-detail": "افزودن توضیحات کامل تر",
+ "show-on-card": "نمایش در کارت",
"new": "جدید",
"editUserPopup-title": "ویرایش کاربر",
"newUserPopup-title": "کاربر جدید",
@@ -775,14 +788,23 @@
"filter-by-unread": "فیلتر با خوانده نشده",
"mark-all-as-read": "علامت همه به خوانده شده",
"remove-all-read": "حذف همه خوانده شده",
- "allow-rename": "Allow Rename",
- "allowRenamePopup-title": "Allow Rename",
- "start-day-of-week": "Set day of the week start",
- "monday": "Monday",
- "tuesday": "Tuesday",
- "wednesday": "Wednesday",
- "thursday": "Thursday",
- "friday": "Friday",
- "saturday": "Saturday",
- "sunday": "Sunday"
+ "allow-rename": "اجازه تغییر نام",
+ "allowRenamePopup-title": "اجازه تغییر نام",
+ "start-day-of-week": "تنظیم روز شروع هفته",
+ "monday": "دوشنبه",
+ "tuesday": "سه شنبه",
+ "wednesday": "چهارشنبه",
+ "thursday": "پنجشنبه",
+ "friday": "جمعه",
+ "saturday": "شنبه",
+ "sunday": "یکشنبه",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index b0cc9742..1ebab3a0 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Käytetty aika",
"card-edit-attachments": "Muokkaa liitetiedostoja",
"card-edit-custom-fields": "Muokkaa mukautettuja kenttiä",
- "card-start-voting": "Aloita äänestys",
- "card-cancel-voting": "Poista äänestys ja kaikki äänet",
"card-edit-labels": "Muokkaa nimilappuja",
"card-edit-members": "Muokkaa jäseniä",
"card-labels-title": "Muokkaa kortin nimilappuja.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Äänestä",
"positiveVoteMembersPopup-title": "Kannattajat",
"negativeVoteMembersPopup-title": "Vastustajat",
- "allowNonBoardMembers": "Salli anonyymi äänestys julkisella taululla",
+ "card-edit-voting": "Muokkaa äänestystä",
+ "editVoteEndDatePopup-title": "Muokkaa äänestyksen loppumispäivää",
+ "allowNonBoardMembers": "Salli kaikki kirjautuneet käyttäjät",
"vote-question": "Äänestys kysymys",
"vote-public": "Näytä kuka äänesti mitäkin",
"vote-for-it": "puolesta",
"vote-against": "vastaan",
+ "deleteVotePopup-title": "Poista ääni?",
+ "vote-delete-pop": "Poistaminen on lopullista. Menetät kaikki tähän äänestykseen liitetyt toimet.",
"cardDeletePopup-title": "Poista kortti?",
"cardDetailsActionsPopup-title": "Korttitoimet",
"cardLabelsPopup-title": "Nimilaput",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Tehdäksesi tämän sinun täytyy olla tämän taulun jäsen",
"error-json-malformed": "Tekstisi ei ole kelvollisessa JSON-muodossa",
"error-json-schema": "JSON-tietosi ei sisällä oikeaa tietoa oikeassa muodossa",
+ "error-csv-schema": "CSV tietosi (pilkulla erotetut arvot)/TSV (tabilla erotetut arvot) ei sisällä oikeaa tietoa oikeassa muodossa",
"error-list-doesNotExist": "Tätä listaa ei ole olemassa",
"error-user-doesNotExist": "Tätä käyttäjää ei ole olemassa",
"error-user-notAllowSelf": "Et voi kutsua itseäsi",
@@ -314,6 +317,11 @@
"error-username-taken": "Tämä käyttäjätunnus on jo käytössä",
"error-email-taken": "Sähköpostiosoite on jo käytössä",
"export-board": "Vie taulu",
+ "export-board-json": "Vie taulu JSON",
+ "export-board-csv": "Vie taulu CSV",
+ "export-board-tsv": "Vie taulu TSV",
+ "export-board-html": "Vie taulu HTML",
+ "exportBoardPopup-title": "Vie taulu",
"sort": "Lajittele",
"sort-desc": "Klikkaa lajitellaksesi listan",
"list-sort-by": "Lajittele lista:",
@@ -349,12 +357,16 @@
"import-board-c": "Tuo taulu",
"import-board-title-trello": "Tuo taulu Trellosta",
"import-board-title-wekan": "Tuo taulu edellisestä viennistä",
+ "import-board-title-csv": "Tuo taulu CSV/TSV",
"from-trello": "Trellosta",
"from-wekan": "Edellisestä viennistä",
+ "from-csv": "CSV/TSV muodosta",
"import-board-instruction-trello": "Mene Trello-taulullasi 'Menu', sitten 'More', 'Print and Export', 'Export JSON', ja kopioi tuloksena saamasi teksti",
+ "import-board-instruction-csv": "Liitä pilkulla erotellut arvot (CSV)/ tabilla erotetut arvot (TSV).",
"import-board-instruction-wekan": "Taulullasi, mene 'Valikko', sitten 'Vie taulu', ja kopioi teksti ladatusta tiedostosta.",
"import-board-instruction-about-errors": "Jos virheitä tulee taulua tuotaessa, joskus tuonti silti toimii, ja taulu on Kaikki taulut sivulla.",
"import-json-placeholder": "Liitä kelvollinen JSON-tietosi tähän",
+ "import-csv-placeholder": "Liitä kelvollinen CSV/TSV tietosi tähän",
"import-map-members": "Vastaavat jäsenet",
"import-members-map": "Tuomallasi taululla on muutamia jäseniä. Ole hyvä ja valitse tuomiasi jäseniä vastaavat käyttäjäsi",
"import-show-user-mapping": "Tarkasta vastaavat jäsenet",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane-toimet",
"swimlaneAddPopup-title": "Lisää Swimlane alle",
"listImportCardPopup-title": "Tuo Trello-kortti",
+ "listImportCardsTsvPopup-title": "Tuo Excel CSV/TSV",
"listMorePopup-title": "Lisää",
"link-list": "Linkki tähän listaan",
"list-delete-pop": "Kaikki toimet poistetaan toimintasyötteestä ja listan poistaminen on lopullista. Tätä ei pysty peruuttamaan.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Kun kortti",
"r-is": "on",
"r-is-moved": "on siirretty",
- "r-added-to": "lisätty kohteeseen",
+ "r-added-to": "Lisätty kohteeseen",
"r-removed-from": "Poistettu kohteesta",
"r-the-board": "taulu",
"r-list": "lista",
@@ -784,5 +797,14 @@
"thursday": "Torstai",
"friday": "Perjantai",
"saturday": "Lauantai",
- "sunday": "Sunnuntai"
+ "sunday": "Sunnuntai",
+ "status": "Tilanne",
+ "swimlane": "Swimlane",
+ "owner": "Omistaja",
+ "last-modified-at": "Viimeksi muokattu",
+ "last-activity": "Viimeisin toiminta",
+ "voting": "Äänestys",
+ "archived": "Arkistoitu",
+ "delete-linked-card-before-this-card": "Et voi poistaa tätä korttia ennenkuin ensin poistat linkitetyn kortin jolla on",
+ "delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa"
}
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index 01390d34..26e5a74e 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Temps passé",
"card-edit-attachments": "Modifier les pièces jointes",
"card-edit-custom-fields": "Éditer les champs personnalisés",
- "card-start-voting": "Commencer le vote",
- "card-cancel-voting": "Supprimer le vote",
"card-edit-labels": "Gérer les étiquettes",
"card-edit-members": "Gérer les participants",
"card-labels-title": "Modifier les étiquettes de la carte.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Commencer un vote",
"positiveVoteMembersPopup-title": "Pour",
"negativeVoteMembersPopup-title": "Contre",
- "allowNonBoardMembers": "Autoriser le vote anonyme sur le tableau public",
+ "card-edit-voting": "Éditer le vote",
+ "editVoteEndDatePopup-title": "Modifier la date de fin de vote",
+ "allowNonBoardMembers": "Autoriser tous les utilisateurs authentifiés",
"vote-question": "Question du vote",
"vote-public": "Montrer qui a voté quoi",
"vote-for-it": "pour",
"vote-against": "contre",
+ "deleteVotePopup-title": "Supprimer le vote ?",
+ "vote-delete-pop": "La suppression est permanente. Vous perdrez toute action associée à ce vote.",
"cardDeletePopup-title": "Supprimer la carte ?",
"cardDetailsActionsPopup-title": "Actions sur la carte",
"cardLabelsPopup-title": "Étiquettes",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Vous devez être participant de ce tableau pour faire cela",
"error-json-malformed": "Votre texte JSON n'est pas valide",
"error-json-schema": "Vos données JSON ne contiennent pas l'information appropriée dans un format correct",
+ "error-csv-schema": "Votre fichier CSV (valeurs séparées par des virgules) / TSV (valeurs séparées par des tabulations) ne contient pas d'informations au bon format",
"error-list-doesNotExist": "Cette liste n'existe pas",
"error-user-doesNotExist": "Cet utilisateur n'existe pas",
"error-user-notAllowSelf": "Vous ne pouvez pas vous inviter vous-même",
@@ -314,6 +317,11 @@
"error-username-taken": "Ce nom d'utilisateur est déjà utilisé",
"error-email-taken": "Cette adresse mail est déjà utilisée",
"export-board": "Exporter le tableau",
+ "export-board-json": "Exporter le tableau en JSON",
+ "export-board-csv": "Exporter le tableau en CSV",
+ "export-board-tsv": "Exporter le tableau en TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exporter le tableau",
"sort": "Tri",
"sort-desc": "Cliquez pour trier la liste",
"list-sort-by": "Trier la liste par:",
@@ -349,12 +357,16 @@
"import-board-c": "Importer un tableau",
"import-board-title-trello": "Importer un tableau depuis Trello",
"import-board-title-wekan": "Importer un tableau depuis un export précédent",
+ "import-board-title-csv": "Importer un tableau depuis CSV/TSV",
"from-trello": "Depuis Trello",
"from-wekan": "Depuis un export précédent",
+ "from-csv": "Depuis CSV/TSV",
"import-board-instruction-trello": "Dans votre tableau Trello, allez sur 'Menu', puis sur 'Plus', 'Imprimer et exporter', 'Exporter en JSON' et copiez le texte du résultat",
+ "import-board-instruction-csv": "Déposez vos données en CSV (valeurs séparées par des virgules) ou TSV (valeurs séparées par des tabulations).",
"import-board-instruction-wekan": "Dans votre tableau, allez dans 'Menu', puis 'Exporter un tableau', et copier le texte du fichier téléchargé.",
"import-board-instruction-about-errors": "Si une erreur survient en important le tableau, il se peut que l'import ait fonctionné, et que le tableau se trouve sur la page \"Tous les tableaux\".",
"import-json-placeholder": "Collez ici les données JSON valides",
+ "import-csv-placeholder": "Déposez ici vos données valides CSV/TSV",
"import-map-members": "Assigner des participants",
"import-members-map": "Le tableau que vous venez d'importer contient des participants. Veuillez assigner les participants que vous souhaitez importer à vos utilisateurs.",
"import-show-user-mapping": "Contrôler l'assignation des participants",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Actions du couloir",
"swimlaneAddPopup-title": "Ajouter un couloir en dessous",
"listImportCardPopup-title": "Importer une carte Trello",
+ "listImportCardsTsvPopup-title": "Importer un fichier Excel CSV/TSV",
"listMorePopup-title": "Plus",
"link-list": "Lien vers cette liste",
"list-delete-pop": "Toutes les actions seront supprimées du fil d'activité et il ne sera plus possible de les récupérer. Cette action est irréversible.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Quand une carte",
"r-is": "est",
"r-is-moved": "est déplacée",
- "r-added-to": "est ajoutée à",
+ "r-added-to": "Ajouté à",
"r-removed-from": "Supprimé de",
"r-the-board": "tableau",
"r-list": "liste",
@@ -784,5 +797,14 @@
"thursday": "Jeudi",
"friday": "Vendredi",
"saturday": "Samedi",
- "sunday": "Dimanche"
+ "sunday": "Dimanche",
+ "status": "Statut",
+ "swimlane": "Couloir",
+ "owner": "Propriétaire",
+ "last-modified-at": "Dernière modification le",
+ "last-activity": "Dernière activité",
+ "voting": "Vote",
+ "archived": "Archivé",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index e8cd865d..c6f52477 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Editar anexos",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Cambiar as etiquetas da tarxeta.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Esta lista non existe",
"error-user-doesNotExist": "Este usuario non existe",
"error-user-notAllowSelf": "Non é posíbel convidarse a un mesmo",
@@ -314,6 +317,11 @@
"error-username-taken": "Este nome de usuario xa está collido",
"error-email-taken": "Email has already been taken",
"export-board": "Exportar taboleiro",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar taboleiro",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Importar taboleiro",
"import-board-title-trello": "Importar taboleiro de Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "De Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Máis",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index da268d6b..7ed6375d 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -144,7 +144,7 @@
"card-archived": "כרטיס זה שמור בארכיון.",
"board-archived": "הלוח עבר לארכיון",
"card-comments-title": "לכרטיס זה %s תגובות.",
- "card-delete-notice": "מחיקה היא סופית. כל הפעולות המשויכות לכרטיס זה תלכנה לאיוד.",
+ "card-delete-notice": "מחיקה היא סופית. כל הפעולות המשויכות לכרטיס זה תלכנה לאיבוד.",
"card-delete-pop": "כל הפעולות יוסרו מלוח הפעילות ולא תהיה אפשרות לפתוח מחדש את הכרטיס. אין דרך חזרה.",
"card-delete-suggest-archive": "על מנת להסיר כרטיסים מהלוח מבלי לאבד את היסטוריית הפעילות שלהם, ניתן לשמור אותם בארכיון.",
"card-due": "תאריך יעד",
@@ -152,8 +152,6 @@
"card-spent": "זמן שהושקע",
"card-edit-attachments": "עריכת קבצים מצורפים",
"card-edit-custom-fields": "עריכת שדות בהתאמה אישית",
- "card-start-voting": "ניתן להצביע",
- "card-cancel-voting": "מחיקת אפשרות ההצבעה ואת כל הקולות",
"card-edit-labels": "עריכת תוויות",
"card-edit-members": "עריכת חברים",
"card-labels-title": "שינוי תוויות לכרטיס.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "התחלת הצבעה",
"positiveVoteMembersPopup-title": "תומכים",
"negativeVoteMembersPopup-title": "יריבים",
- "allowNonBoardMembers": "לאפשר הצבעות אלמוניות בלוח ציבורי",
+ "card-edit-voting": "שינוי הצבעה",
+ "editVoteEndDatePopup-title": "החלפת מועד סיום הצבעה",
+ "allowNonBoardMembers": "לאפשר לכל המשתמשים הרשומים",
"vote-question": "שאלת הסקר",
"vote-public": "להציג מי הצביע למה",
"vote-for-it": "בעד",
"vote-against": "נגד",
+ "deleteVotePopup-title": "למחוק הצבעה?",
+ "vote-delete-pop": "מחיקה היא לצמיתות. כל הפעולות המשויכות להצבעה זו תלכנה לאיבוד.",
"cardDeletePopup-title": "למחוק כרטיס?",
"cardDetailsActionsPopup-title": "פעולות על הכרטיס",
"cardLabelsPopup-title": "תוויות",
@@ -307,6 +309,7 @@
"error-board-notAMember": "עליך לקבל חברות בלוח זה כדי לעשות זאת",
"error-json-malformed": "הטקסט שלך אינו JSON תקין",
"error-json-schema": "נתוני ה־JSON שלך לא כוללים את המידע הנכון בתבנית הנכונה",
+ "error-csv-schema": "ה־CSV (ערכים מופרדים בפסיקים)/‏TSV (ערכים מופרדים בטאבים) שלך לא כולל את המידע הנכון בצורה הנכונה.",
"error-list-doesNotExist": "רשימה זו לא קיימת",
"error-user-doesNotExist": "משתמש זה לא קיים",
"error-user-notAllowSelf": "אינך יכול להזמין את עצמך",
@@ -314,6 +317,11 @@
"error-username-taken": "המשתמש כבר קיים במערכת",
"error-email-taken": "כתובת הדוא״ל כבר נמצאת בשימוש",
"export-board": "ייצוא לוח",
+ "export-board-json": "ייצוא לוח ל־JSON",
+ "export-board-csv": "ייצוא לוח ל־CSV",
+ "export-board-tsv": "ייצוא לוח ל־TSV",
+ "export-board-html": "ייצוא לוח ל־HTML",
+ "exportBoardPopup-title": "ייצוא לוח",
"sort": "מיון",
"sort-desc": "לחיצה למיון הרשימה",
"list-sort-by": "מיון הרשימה לפי:",
@@ -349,12 +357,16 @@
"import-board-c": "יבוא לוח",
"import-board-title-trello": "ייבוא לוח מטרלו",
"import-board-title-wekan": "ייבוא לוח מייצוא קודם",
+ "import-board-title-csv": "ייבוא לוח מ־CSV/TSV",
"from-trello": "מ־Trello",
"from-wekan": "מייצוא קודם",
+ "from-csv": "מ־CSV/TSV",
"import-board-instruction-trello": "בלוח הטרלו שלך, עליך ללחוץ על ‚תפריט‘, ואז על ‚עוד‘, ‚הדפסה וייצוא‘, ‚יצוא JSON‘ ולהעתיק את הטקסט שנוצר.",
+ "import-board-instruction-csv": "נא להדביק את הערכים מופרדים בפסיקים (CSV)/ערכים מופרדים בטאבים (TSV) שלך.",
"import-board-instruction-wekan": "בלוח שלך עליך לגשת אל ‚תפריט’, לאחר מכן ‚ייצוא לוח’ ואז להעתיק את הטקסט מהקובץ שהתקבל.",
"import-board-instruction-about-errors": "גם אם התקבלו שגיאות בעת יבוא לוח, ייתכן שהייבוא עבד. כדי לבדוק זאת, יש להיכנס ל„כל הלוחות”.",
"import-json-placeholder": "יש להדביק את נתוני ה־JSON התקינים לכאן",
+ "import-csv-placeholder": "נא להדביק את נתוני ה־CSV/TSV התקינים שלך כאן",
"import-map-members": "מיפוי חברים",
"import-members-map": "הלוחות המיובאים שלך מכילים חברים. נא למפות את החברים שברצונך לייבא למשתמשים שלך",
"import-show-user-mapping": "סקירת מיפוי חברים",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "פעולות על מסלול",
"swimlaneAddPopup-title": "הוספת מסלול מתחת",
"listImportCardPopup-title": "יבוא כרטיס מ־Trello",
+ "listImportCardsTsvPopup-title": "ייבוא CSV/TSV מסוג Excel",
"listMorePopup-title": "עוד",
"link-list": "קישור לרשימה זו",
"list-delete-pop": "כל הפעולות תוסרנה מרצף הפעילות ולא תהיה לך אפשרות לשחזר את הרשימה. אין ביטול.",
@@ -784,5 +797,14 @@
"thursday": "יום חמישי",
"friday": "יום שישי",
"saturday": "שבת",
- "sunday": "יום ראשון"
+ "sunday": "יום ראשון",
+ "status": "מצב",
+ "swimlane": "מסלול",
+ "owner": "בעלות",
+ "last-modified-at": "שינוי אחרון ב־",
+ "last-activity": "פעילות אחרונה",
+ "voting": "הצבעה",
+ "archived": "בארכיון",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json
index 49aa9691..9cf12fdf 100644
--- a/i18n/hi.i18n.json
+++ b/i18n/hi.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "समय बिताया",
"card-edit-attachments": "संपादित संलग्नक",
"card-edit-custom-fields": "संपादित प्रचलन क्षेत्र",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "संपादित नामपत्र",
"card-edit-members": "संपादित सदस्य",
"card-labels-title": "कार्ड के लिए नामपत्र परिवर्तित करें ।",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "मिटाएँ कार्ड?",
"cardDetailsActionsPopup-title": "कार्ड क्रियाएँ",
"cardLabelsPopup-title": "नामपत्र",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need तक be एक सदस्य of यह बोर्ड तक do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "आपके JSON डेटा में सही प्रारूप में सही जानकारी शामिल नहीं है",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "यह सूची does not exist",
"error-user-doesNotExist": "यह user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "यह username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export बोर्ड",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export बोर्ड",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import बोर्ड",
"import-board-title-trello": "Import बोर्ड से Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello बोर्ड, go तक 'Menu', then 'More', 'Print और Export', 'Export JSON', और copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map सदस्य",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Re आलोकन सदस्य mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "तैरन Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import एक Trello कार्ड",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link तक यह list",
"list-delete-pop": "All actions हो जाएगा हटा दिया से the activity feed और you won't be able तक recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "हटा दिया from",
"r-the-board": "the बोर्ड",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index 44333d97..8cbe2fb8 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Eltöltött idő",
"card-edit-attachments": "Mellékletek szerkesztése",
"card-edit-custom-fields": "Egyéni mezők szerkesztése",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"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.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Törli a kártyát?",
"cardDetailsActionsPopup-title": "Kártyaműveletek",
"cardLabelsPopup-title": "Címkék",
@@ -307,6 +309,7 @@
"error-board-notAMember": "A tábla tagjának kell lennie, hogy ezt megtehesse",
"error-json-malformed": "A szöveg nem érvényes JSON",
"error-json-schema": "A JSON adatok nem a helyes formátumban tartalmazzák a megfelelő információkat",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Ez a lista nem létezik",
"error-user-doesNotExist": "Ez a felhasználó nem létezik",
"error-user-notAllowSelf": "Nem hívhatja meg saját magát",
@@ -314,6 +317,11 @@
"error-username-taken": "Ez a felhasználónév már foglalt",
"error-email-taken": "Az e-mail már foglalt",
"export-board": "Tábla exportálása",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Tábla exportálása",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Tábla importálása",
"import-board-title-trello": "Tábla importálása a Trello oldalról",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "A Trello oldalról",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "A Trello tábláján menjen a „Menü”, majd a „Több”, „Nyomtatás és exportálás”, „JSON exportálása” menüpontokra, és másolja ki az eredményül kapott szöveget.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Illessze be ide az érvényes JSON adatokat",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Tagok leképezése",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Tagok leképezésének vizsgálata",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Trello kártya importálása",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Több",
"link-list": "Összekapcsolás ezzel a listával",
"list-delete-pop": "Az összes művelet el lesz távolítva a tevékenységlistából, és nem lesz lehetősége visszaállítani a listát. Nincs visszavonás.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json
index 5fc9363a..54f856bd 100644
--- a/i18n/hy.i18n.json
+++ b/i18n/hy.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index 2509a5bc..82f0d536 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Sunting lampiran",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Sunting label",
"card-edit-members": "Sunting anggota",
"card-labels-title": "Ubah label kartu",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Hapus kartu",
"cardDetailsActionsPopup-title": "Aksi Kartu",
"cardLabelsPopup-title": "Daftar Label",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Anda harus jadi member panel ini untuk melakukannya",
"error-json-malformed": "Teks Anda bukan JSON yang sah",
"error-json-schema": "Data JSON Anda tidak mengikutsertakan informasi yang sesuai format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Daftar ini tidak ada",
"error-user-doesNotExist": "Nama pengguna ini tidak ada",
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
@@ -314,6 +317,11 @@
"error-username-taken": "Nama pengguna ini sudah dipakai",
"error-email-taken": "Email has already been taken",
"export-board": "Exspor Panel",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exspor Panel",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Impor panel dari Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Di panel Trello anda, ke 'Menu', terus 'More', 'Print and Export','Export JSON', dan salin hasilnya",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Tempelkan data JSON yang sah disini",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Petakan partisipan",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review pemetaan partisipan",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Impor dari Kartu Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Lainnya",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json
index 8eb436c0..6bbc2e2f 100644
--- a/i18n/ig.i18n.json
+++ b/i18n/ig.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Aha",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index 38796066..deb9eb78 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Tempo trascorso",
"card-edit-attachments": "Modifica allegati",
"card-edit-custom-fields": "Modifica campo personalizzato",
- "card-start-voting": "Inizia a votare",
- "card-cancel-voting": "Cancella votazione e tutti i voti",
"card-edit-labels": "Modifica etichette",
"card-edit-members": "Modifica membri",
"card-labels-title": "Cambia le etichette per questa scheda.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Inizia una votazione",
"positiveVoteMembersPopup-title": "Favorevoli",
"negativeVoteMembersPopup-title": "Contrari",
- "allowNonBoardMembers": "Consentire voto anonimo su bacheca pubblica",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Domanda di votazione",
"vote-public": "Mostrare chi ha votato cosa",
"vote-for-it": "a favore",
"vote-against": "contro",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Elimina scheda?",
"cardDetailsActionsPopup-title": "Azioni scheda",
"cardLabelsPopup-title": "Etichette",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare",
"error-json-malformed": "Il tuo testo non è un JSON valido",
"error-json-schema": "Il tuo file JSON non contiene le giuste informazioni nel formato corretto",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Questa lista non esiste",
"error-user-doesNotExist": "Questo utente non esiste",
"error-user-notAllowSelf": "Non puoi invitare te stesso",
@@ -314,6 +317,11 @@
"error-username-taken": "Questo username è già utilizzato",
"error-email-taken": "L'email è già stata presa",
"export-board": "Esporta bacheca",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Esporta bacheca",
"sort": "Ordina",
"sort-desc": "Clicca per ordinare la lista",
"list-sort-by": "Ordina la lista per:",
@@ -349,12 +357,16 @@
"import-board-c": "Importa bacheca",
"import-board-title-trello": "Importa una bacheca da Trello",
"import-board-title-wekan": "Importa bacheca dall'esportazione precedente",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Da Trello",
"from-wekan": "Dall'esportazione precedente",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Nella tua bacheca Trello vai a 'Menu', poi 'Altro', 'Stampa ed esporta', 'Esporta JSON', e copia il testo che compare.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Nella tua bacheca vai su \"Menu\", poi \"Esporta la bacheca\", e copia il testo nel file scaricato",
"import-board-instruction-about-errors": "Se hai degli errori quando importi una bacheca, qualche volta l'importazione funziona comunque, e la bacheca si trova nella pagina \"Tutte le bacheche\"",
"import-json-placeholder": "Incolla un JSON valido qui",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mappatura dei membri",
"import-members-map": "La bacheca che hai importato contiene alcuni membri. Per favore scegli i membri che vuoi importare tra i tuoi utenti",
"import-show-user-mapping": "Rivedi la mappatura dei membri",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Azioni diagramma Swimlane",
"swimlaneAddPopup-title": "Aggiungi un diagramma Swimlane di seguito",
"listImportCardPopup-title": "Importa una scheda di Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Altro",
"link-list": "Link a questa lista",
"list-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di recuperare la lista. Non potrai tornare indietro.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Quando una scheda",
"r-is": "è",
"r-is-moved": "viene spostata",
- "r-added-to": "Aggiunto/a a",
+ "r-added-to": "Added to",
"r-removed-from": "Rimosso da",
"r-the-board": "La bacheca",
"r-list": "lista",
@@ -784,5 +797,14 @@
"thursday": "Giovedi",
"friday": "Venerdi",
"saturday": "Sabato",
- "sunday": "Domenica"
+ "sunday": "Domenica",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index ee4538ec..8fb834f3 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "作業時間",
"card-edit-attachments": "添付ファイルの編集",
"card-edit-custom-fields": "カスタムフィールドの編集",
- "card-start-voting": "投票を開始",
- "card-cancel-voting": "投票と全ての結果を削除",
"card-edit-labels": "ラベルの編集",
"card-edit-members": "メンバーの編集",
"card-labels-title": "カードのラベルを変更する",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "投票を開始",
"positiveVoteMembersPopup-title": "支持者",
"negativeVoteMembersPopup-title": "反対者",
- "allowNonBoardMembers": "公開ボードでの匿名投票を許可",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "投票の質問事項",
"vote-public": "誰が何に投票したか表示",
"vote-for-it": "賛成",
"vote-against": "反対",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "カードを削除しますか?",
"cardDetailsActionsPopup-title": "カード操作",
"cardLabelsPopup-title": "ラベル",
@@ -307,6 +309,7 @@
"error-board-notAMember": "操作にはボードメンバーである必要があります",
"error-json-malformed": "このテキストは、有効なJSON形式ではありません",
"error-json-schema": "JSONデータが不正な値を含んでいます",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "このリストは存在しません",
"error-user-doesNotExist": "ユーザーが存在しません",
"error-user-notAllowSelf": "自分を招待することはできません。",
@@ -314,6 +317,11 @@
"error-username-taken": "このユーザ名は既に使用されています",
"error-email-taken": "メールは既に受け取られています",
"export-board": "ボードのエクスポート",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "ボードのエクスポート",
"sort": "並べ替え",
"sort-desc": "クリックでリストをソート",
"list-sort-by": "次によりリストを並べ替え:",
@@ -349,12 +357,16 @@
"import-board-c": "ボードをインポート",
"import-board-title-trello": "Trelloからボードをインポート",
"import-board-title-wekan": "以前のエクスポートからボードをインポート",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Trelloから",
"from-wekan": "以前のエクスポートから",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Trelloボードの、 'Menu' → 'More' → 'Print and Export' → 'Export JSON'を選択し、テキストをコピーしてください。",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "ボードの、 'メニュー' → 'ボードのエクスポート'を選択し、ダウンロードされたファイルの中のテキストをコピーしてください。",
"import-board-instruction-about-errors": "ボードのインポート中にエラーが発生した場合、インポートがまだ進行中のまま、全てのボードページに表示されている場合があります。",
"import-json-placeholder": "JSONデータをここに貼り付けする",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "メンバーを紐付け",
"import-members-map": "インポートしたボードにはいくつかのメンバーが含まれています。インポートしたいメンバーをユーザーにマッピングしてください",
"import-show-user-mapping": "メンバー紐付けの確認",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "スイムレーン操作",
"swimlaneAddPopup-title": "直下にスイムレーンを追加",
"listImportCardPopup-title": "Trelloのカードをインポート",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "さらに見る",
"link-list": "このリストへのリンク",
"list-delete-pop": "すべての内容がアクティビティから削除されます。この削除は元に戻すことができません。",
@@ -626,7 +639,7 @@
"r-when-a-card": "カード:",
"r-is": "が",
"r-is-moved": "が移動された時",
- "r-added-to": "次に追加された時",
+ "r-added-to": "Added to",
"r-removed-from": "次から削除された時",
"r-the-board": "ボード:",
"r-list": "リスト:",
@@ -674,7 +687,7 @@
"r-of-checklist": "チェックリスト",
"r-send-email": "メールを送る",
"r-to": "宛先",
- "r-of": "of",
+ "r-of": "/",
"r-subject": "件名",
"r-rule-details": "ルール詳細",
"r-d-move-to-top-gen": "カードを自身のリストの先頭に移動",
@@ -784,5 +797,14 @@
"thursday": "木曜",
"friday": "金曜",
"saturday": "土曜",
- "sunday": "日曜"
+ "sunday": "日曜",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json
index 0e266746..900f5bbe 100644
--- a/i18n/ka.i18n.json
+++ b/i18n/ka.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "დახარჯული დრო",
"card-edit-attachments": "მიბმული ფაილის შესწორება",
"card-edit-custom-fields": "მომხმარებლის ველის შესწორება",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "ნიშნის შესწორება",
"card-edit-members": "მომხმარებლების შესწორება",
"card-labels-title": "ნიშნის შეცვლა ბარათისთვის.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "წავშალოთ ბარათი? ",
"cardDetailsActionsPopup-title": "ბარათის მოქმედებები",
"cardLabelsPopup-title": "ნიშნები",
@@ -307,6 +309,7 @@
"error-board-notAMember": "ამის გასაკეთებლად საჭიროა იყოთ დაფის წევრი",
"error-json-malformed": "შენი ტექსტი არ არის ვალიდური JSON",
"error-json-schema": "თქვენი JSON მონაცემები არ შეიცავს ზუსტ ინფორმაციას სწორ ფორმატში ",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "ეს ცხრილი არ არსებობს",
"error-user-doesNotExist": "მსგავსი მომხმარებელი არ არსებობს",
"error-user-notAllowSelf": "თქვენ არ შეგიძლიათ საკუთარი თავის მოწვევა",
@@ -314,6 +317,11 @@
"error-username-taken": "არსებობს მსგავსი მომხმარებელი",
"error-email-taken": "უკვე არსებობს მსგავსი ელ.ფოსტა",
"export-board": "დაფის ექსპორტი",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "დაფის ექსპორტი",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "დაფის იმპორტი",
"import-board-title-trello": "დაფის იმპორტი Trello-დან",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Trello-დან",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "თქვენს Trello დაფაზე, შედით \"მენიუ\"-ში, შემდეგ დააკლიკეთ \"მეტი\", \"ამოპრინტერება და ექსპორტი\", \"JSON-ის ექსპორტი\" და დააკოპირეთ შედეგი. ",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "მოათავსეთ თქვენი ვალიდური JSON მონაცემები აქ. ",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "რუკის წევრები",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "მომხმარებლის რუკების განხილვა",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "ბილიკის მოქმედებები",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Trello ბარათის იმპორტი",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "მეტი",
"link-list": "დააკავშირეთ ამ ჩამონათვალთან",
"list-delete-pop": "ყველა მოქმედება წაიშლება აქტივობების ველიდან და თქვენ ვეღარ შეძლებთ მის აღდგენას ჩამონათვალში",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json
index cb8aa4f9..5e4c5117 100644
--- a/i18n/km.i18n.json
+++ b/i18n/km.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index c36e3baa..6eba07be 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "첨부 파일 수정",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "라벨 수정",
"card-edit-members": "멤버 수정",
"card-labels-title": "카드의 라벨 변경.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "카드를 삭제합니까?",
"cardDetailsActionsPopup-title": "카드 액션",
"cardLabelsPopup-title": "라벨",
@@ -307,6 +309,7 @@
"error-board-notAMember": "이 작업은 보드의 멤버만 실행할 수 있습니다.",
"error-json-malformed": "텍스트가 JSON 형식에 유효하지 않습니다.",
"error-json-schema": "JSON 데이터에 정보가 올바른 형식으로 포함되어 있지 않습니다.",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "목록이 없습니다.",
"error-user-doesNotExist": "멤버의 정보가 없습니다.",
"error-user-notAllowSelf": "자기 자신을 초대할 수 없습니다.",
@@ -314,6 +317,11 @@
"error-username-taken": "중복된 아이디 입니다.",
"error-email-taken": "Email has already been taken",
"export-board": "보드 내보내기",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "보드 내보내기",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "보드 가져오기",
"import-board-title-trello": "Trello에서 보드 가져오기",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Trello 게시판에서 'Menu' -> 'More' -> 'Print and Export', 'Export JSON' 선택하여 텍스트 결과값 복사",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "유효한 JSON 데이터를 여기에 붙여 넣으십시오.",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "보드 멤버들",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "멤버 매핑 미리보기",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Trello 카드 가져 오기",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "더보기",
"link-list": "이 리스트에 링크",
"list-delete-pop": "모든 작업이 활동내역에서 제거되며 리스트를 복구 할 수 없습니다. 실행 취소는 불가능 합니다.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json
index df33588e..71e7ea3b 100644
--- a/i18n/lv.i18n.json
+++ b/i18n/lv.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/mk.i18n.json b/i18n/mk.i18n.json
index 2a6f964b..314b4229 100644
--- a/i18n/mk.i18n.json
+++ b/i18n/mk.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Изработено време",
"card-edit-attachments": "Промени прикачените датотеки",
"card-edit-custom-fields": "Промени собствените полета",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Промени етикетите",
"card-edit-members": "Промени членовете",
"card-labels-title": "Промени етикетите за картата.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Желаете да изтриете картата?",
"cardDetailsActionsPopup-title": "Опции",
"cardLabelsPopup-title": "Етикети",
@@ -307,6 +309,7 @@
"error-board-notAMember": "За да направите това трябва да сте член на това табло",
"error-json-malformed": "Текстът Ви не е валиден JSON",
"error-json-schema": "JSON информацията Ви не съдържа информация във валиден формат",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Този списък не съществува",
"error-user-doesNotExist": "Този потребител не съществува",
"error-user-notAllowSelf": "Не можете да поканите себе си",
@@ -314,6 +317,11 @@
"error-username-taken": "Това потребителско име е вече заето",
"error-email-taken": "Имейлът е вече зает",
"export-board": "Експортиране на Табло",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Експортиране на Табло",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Импортирай Табло",
"import-board-title-trello": "Импорт на табло от Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "От Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Копирайте валидната Ви JSON информация тук",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Импорт на карта от Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Когато карта",
"r-is": "е",
"r-is-moved": "преместена",
- "r-added-to": "добавена в",
+ "r-added-to": "Added to",
"r-removed-from": "премахната от",
"r-the-board": "таблото",
"r-list": "списък",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json
index f3256a6c..02fe75c6 100644
--- a/i18n/mn.i18n.json
+++ b/i18n/mn.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index 578520bd..616fe50b 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Rediger vedlegg",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Rediger etiketter",
"card-edit-members": "Endre medlemmer",
"card-labels-title": "Endre etiketter for kortet.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Slett kort?",
"cardDetailsActionsPopup-title": "Kort-handlinger",
"cardLabelsPopup-title": "Etiketter",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Du må være medlem av denne tavlen for å gjøre dette",
"error-json-malformed": "Denne teksten er ikke gyldig JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Denne listen finnes ikke",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mer",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index 4a4ad0bc..ed66a2d1 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Gespendeerde tijd",
"card-edit-attachments": "Wijzig bijlagen",
"card-edit-custom-fields": "Wijzig maatwerkvelden",
- "card-start-voting": "Start stemming",
- "card-cancel-voting": "Verwijder stemming en verwijder stemmen",
"card-edit-labels": "Wijzig labels",
"card-edit-members": "Wijzig leden",
"card-labels-title": "Wijzig de labels van de kaart.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start een stemming",
"positiveVoteMembersPopup-title": "Voorstanders",
"negativeVoteMembersPopup-title": "Tegenstanders",
- "allowNonBoardMembers": "Sta anoniem stemmen toe op openbaar bord",
+ "card-edit-voting": "Wijzig stemming",
+ "editVoteEndDatePopup-title": "Wijzig einddatum stemming",
+ "allowNonBoardMembers": "Sta alle ingelogde gebruikers toe",
"vote-question": "Stemvraag",
"vote-public": "Toon wie wat gestemd heeft",
"vote-for-it": "Voor",
"vote-against": "tegen",
+ "deleteVotePopup-title": "Stemming verwijderen?",
+ "vote-delete-pop": "Verwijdering is permanent. Je raakt alle acties die gekoppeld zijn aan deze stemming kwijt.",
"cardDeletePopup-title": "Kaart verwijderen?",
"cardDetailsActionsPopup-title": "Kaart actie ondernemen",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Je moet een lid zijn van dit bord om dat te doen.",
"error-json-malformed": "JSON format klopt niet",
"error-json-schema": "De JSON data bevat niet de juiste informatie in de juiste format",
+ "error-csv-schema": "Je CSV(Comma Separated Values)/TSV (Tab Separated Values) bevat niet de juiste informatie in het juiste fomaat.",
"error-list-doesNotExist": "Deze lijst bestaat niet",
"error-user-doesNotExist": "Deze gebruiker bestaat niet",
"error-user-notAllowSelf": "Je kan jezelf niet uitnodigen",
@@ -314,6 +317,11 @@
"error-username-taken": "Deze gebruikersnaam is al in gebruik",
"error-email-taken": "Dit e-mailadres is al in gebruik",
"export-board": "Exporteer bord",
+ "export-board-json": "Exporteer bord naar JSON",
+ "export-board-csv": "Exporteer bord naar CSV",
+ "export-board-tsv": "Exporteer bord naar TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exporteer bord",
"sort": "Sorteer",
"sort-desc": "Klik om lijst te sorteren",
"list-sort-by": "Sorteer lijst op",
@@ -349,12 +357,16 @@
"import-board-c": "Importeer bord",
"import-board-title-trello": "Importeer bord vanuit Trello",
"import-board-title-wekan": "Importeer bord vanuit eerdere export",
+ "import-board-title-csv": "Importeer bord van CSV/TSV",
"from-trello": "Vanuit Trello",
"from-wekan": "Vanuit eerdere export",
+ "from-csv": "Van CSV/TSV",
"import-board-instruction-trello": "Op jouw Trello bord, ga naar 'Menu', dan naar 'Meer', 'Print en Exporteer', 'Exporteer JSON', en kopieer de tekst.",
+ "import-board-instruction-csv": "Plak hier je Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Ga op je bord naar 'Menu' en klik dan 'Export board' en kopieer de tekst in het gedownloade bestand.",
"import-board-instruction-about-errors": "Als je tijdens de import van het bord foutmeldingen krijgt is de import soms toch gelukt en vind je het bord terug op de 'Alle borden' scherm.",
"import-json-placeholder": "Plak geldige JSON data hier",
+ "import-csv-placeholder": "Plak hier je geldige CSV/TSV data",
"import-map-members": "Breng leden in kaart",
"import-members-map": "Je geïmporteerde bord heeft een aantal leden. Koppel de leden die je wilt importeren aan je gebruikers.",
"import-show-user-mapping": "Breng leden overzicht tevoorschijn",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane handelingen",
"swimlaneAddPopup-title": "Voeg hieronder een Swimlane toe",
"listImportCardPopup-title": "Importeer een Trello kaart",
+ "listImportCardsTsvPopup-title": "Importeer Excel CSV/TSV",
"listMorePopup-title": "Meer",
"link-list": "Link naar deze lijst",
"list-delete-pop": "Alle acties zullen verwijderd worden van de activiteiten feed, en je zult deze niet meer kunnen herstellen. Er is geen herstelmogelijkheid.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Als een kaart",
"r-is": "is",
"r-is-moved": "is verplaatst",
- "r-added-to": "toegevoegd aan",
+ "r-added-to": "Toegevoegd aan",
"r-removed-from": "verwijderd van",
"r-the-board": "het bord",
"r-list": "lijst",
@@ -784,5 +797,14 @@
"thursday": "Donderdag",
"friday": "Vrijdag",
"saturday": "Zaterdag",
- "sunday": "Zondag"
+ "sunday": "Zondag",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Eigenaar",
+ "last-modified-at": "Laatste aanpassing op",
+ "last-activity": "Laatste activiteit",
+ "voting": "Stemmen",
+ "archived": "Gearchiveerd",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/oc.i18n.json b/i18n/oc.i18n.json
index 17c9ebca..c03c0746 100644
--- a/i18n/oc.i18n.json
+++ b/i18n/oc.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Temps passat",
"card-edit-attachments": "Cambiar las pèças jonchas",
"card-edit-custom-fields": "Cambiar los camps personalizats",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Cambiar los labèls",
"card-edit-members": "Cambiar los participants",
"card-labels-title": "Cambiar l'etiqueta de la carta.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Suprimir la carta?",
"cardDetailsActionsPopup-title": "Accions sus la carta",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Devètz èsser un participant del tablèu per far aquò",
"error-json-malformed": "Vòstre tèxte es pas valid JSON",
"error-json-schema": "Vòstre JSON es pas al format correct ",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Aqueste tièra existís pas",
"error-user-doesNotExist": "Aqueste utilizator existís pas",
"error-user-notAllowSelf": "Vos podètz pas convidar vautres meteisses",
@@ -314,6 +317,11 @@
"error-username-taken": "Lo nom es ja pres",
"error-email-taken": "Lo corrièl es ja pres ",
"export-board": "Exportar lo tablèu",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar lo tablèu",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Importar un tablèu",
"import-board-title-trello": "Importar un tablèu dempuèi Trello",
"import-board-title-wekan": "Importar un tablèu dempuèi un export passat",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Dempuèi Trello",
"from-wekan": "Dempuèi un export passat",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Dins vòstre tablèu Trello, vos cal anar dins \"Menut\", puèi \"Mai\", \"Export\", \"Export JSON\", e copiar lo tèxte balhat.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Dins vòstre tablèu, vos cal anar dins \"Menut\", puèi \"Exportar lo tablèu\", e de copiar lo tèxte del fichièr telecargat.",
"import-board-instruction-about-errors": "Se avètz de errors al moment d'importar un tablèu, es possible que l'importacion as fonccionat, lo tablèu es belèu a la pagina \"Totes los tablèus\".",
"import-json-placeholder": "Pegar las donadas del fichièr JSON aicí",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapa dels participants",
"import-members-map": "Lo tablèu qu'avètz importat as ja de participants, vos cal far la migracion amb los utilizators actual",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Importar una carta de Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mai",
"link-list": "Ligam d'aquesta tièra",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index 449ae3aa..8c6380ad 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spędzony czas",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-custom-fields": "Edytuj niestandardowe pola",
- "card-start-voting": "Rozpocznij głosowanie",
- "card-cancel-voting": "Usuń głosowanie i wszystkie głosy",
"card-edit-labels": "Edytuj etykiety",
"card-edit-members": "Edytuj członków",
"card-labels-title": "Zmień etykiety karty",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Zacznij głosowanie",
"positiveVoteMembersPopup-title": "Zwolennicy",
"negativeVoteMembersPopup-title": "Przeciwnicy",
- "allowNonBoardMembers": "Pozwól na oddawanie anonimowych głosów na publicznej tablicy",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Pytanie do głosowania",
"vote-public": "Pokaż, kto głosował na wybrane opcje",
"vote-for-it": "za",
"vote-against": "przeciwko",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Czynności kart",
"cardLabelsPopup-title": "Etykiety",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Musisz być członkiem tej tablicy, żeby wykonać tę czynność",
"error-json-malformed": "Twoja fraza nie jest w formacie JSON",
"error-json-schema": "Twoje dane JSON nie zawierają prawidłowych informacji w poprawnym formacie",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Ta lista nie isnieje",
"error-user-doesNotExist": "Ten użytkownik nie istnieje",
"error-user-notAllowSelf": "Nie możesz zaprosić samego siebie",
@@ -314,6 +317,11 @@
"error-username-taken": "Ta nazwa jest już zajęta",
"error-email-taken": "Adres email jest już zarezerwowany",
"export-board": "Eksportuj tablicę",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Eksportuj tablicę",
"sort": "Sortuj",
"sort-desc": "Kliknij by sortować listę",
"list-sort-by": "Sortuj listę przez:",
@@ -349,12 +357,16 @@
"import-board-c": "Import tablicy",
"import-board-title-trello": "Importuj tablicę z Trello",
"import-board-title-wekan": "Importuj tablicę z poprzedniego eksportu",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Z Trello",
"from-wekan": "Z poprzedniego eksportu",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "W twojej tablicy na Trello przejdź do 'Menu', następnie 'Więcej', 'Drukuj i eksportuj', 'Eksportuj jako JSON' i skopiuj wynik",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Na Twojej tablicy przejdź do 'Menu', a następnie wybierz 'Eksportuj tablicę' i skopiuj tekst w pobranym pliku.",
"import-board-instruction-about-errors": "W przypadku, gdy otrzymujesz błędy importowania tablicy, czasami importowanie pomimo wszystko działa poprawnie i tablica znajduje się w oknie Wszystkie tablice.",
"import-json-placeholder": "Wklej Twoje dane JSON tutaj",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Przypisz członków",
"import-members-map": "Twoje zaimportowane tablice mają kilku członków. Proszę wybierz członków których chcesz zaimportować dla Twoich użytkowników",
"import-show-user-mapping": "Przejrzyj wybranych członków",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Opcje diagramu czynności",
"swimlaneAddPopup-title": "Dodaj diagram czynności poniżej",
"listImportCardPopup-title": "Zaimportuj kartę z Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Więcej",
"link-list": "Podepnij do tej listy",
"list-delete-pop": "Wszystkie czynności zostaną usunięte z Aktywności i nie będziesz w stanie przywrócić listy. Nie ma możliwości cofnięcia tej operacji.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Gdy karta",
"r-is": "jest",
"r-is-moved": "jest przenoszona",
- "r-added-to": "dodana do",
+ "r-added-to": "Added to",
"r-removed-from": "usunął z",
"r-the-board": "tablicy",
"r-list": "lista",
@@ -784,5 +797,14 @@
"thursday": "Czwartek",
"friday": "Piątek",
"saturday": "Sobota",
- "sunday": "Niedziela"
+ "sunday": "Niedziela",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 70c7cccf..f0f0d86d 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Tempo Gasto",
"card-edit-attachments": "Editar anexos",
"card-edit-custom-fields": "Editar campos customizados",
- "card-start-voting": "Iniciar votação",
- "card-cancel-voting": "Excluir votação e todos os votos",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Alterar etiquetas do cartão.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Iniciar uma votação",
"positiveVoteMembersPopup-title": "Proponentes",
"negativeVoteMembersPopup-title": "Oponentes",
- "allowNonBoardMembers": "Permitir voto anônimo em quadro público",
+ "card-edit-voting": "Editar votação",
+ "editVoteEndDatePopup-title": "Mudar votação e data",
+ "allowNonBoardMembers": "Permitir todos os usuários logados",
"vote-question": "Questão em votação",
"vote-public": "Mostrar quem votou no quê",
"vote-for-it": "a favor",
"vote-against": "contra",
+ "deleteVotePopup-title": "Excluir votação?",
+ "vote-delete-pop": "A exclusão é permanente. Você perderá todas as ações associadas a esta votação.",
"cardDeletePopup-title": "Excluir Cartão?",
"cardDetailsActionsPopup-title": "Ações do cartão",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Você precisa ser um membro desse quadro para fazer isto",
"error-json-malformed": "Seu texto não é um JSON válido",
"error-json-schema": "Seu JSON não inclui as informações no formato correto",
+ "error-csv-schema": "Seu CSV(Comma Separated Values)/TSV (Tab Separated Values) não inclui a informação adequada no formato correto",
"error-list-doesNotExist": "Esta lista não existe",
"error-user-doesNotExist": "Este usuário não existe",
"error-user-notAllowSelf": "Você não pode convidar a si mesmo",
@@ -314,6 +317,11 @@
"error-username-taken": "Esse username já existe",
"error-email-taken": "E-mail já está em uso",
"export-board": "Exportar quadro",
+ "export-board-json": "Exportar quadro para JSON",
+ "export-board-csv": "Exportar quadro para CSV",
+ "export-board-tsv": "Exportar quadro para TSV",
+ "export-board-html": "Exportar quadro para HTML",
+ "exportBoardPopup-title": "Exportar quadro",
"sort": "Ordenar",
"sort-desc": "Clique para Ordenar Lista",
"list-sort-by": "Ordenar a Lista por:",
@@ -349,12 +357,16 @@
"import-board-c": "Importar quadro",
"import-board-title-trello": "Importar quadro do Trello",
"import-board-title-wekan": "Importar quadro a partir de exportação prévia",
+ "import-board-title-csv": "Importar quadro de CSV/TSV",
"from-trello": "Do Trello",
"from-wekan": "A partir de exportação prévia",
+ "from-csv": "De CSV/TSV",
"import-board-instruction-trello": "No seu quadro do Trello, vá em 'Menu', depois em 'Mais', 'Imprimir e Exportar', 'Exportar JSON', então copie o texto emitido",
+ "import-board-instruction-csv": "Cole seu Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "Em seu quadro vá para 'Menu', depois 'Exportar quadro' e copie o texto no arquivo baixado.",
"import-board-instruction-about-errors": "Se você receber erros ao importar o quadro, às vezes a importação ainda funciona e o quadro está na página Todos os Quadros.",
"import-json-placeholder": "Cole seus dados JSON válidos aqui",
+ "import-csv-placeholder": "Cole aqui os dados válidos de seu CSV/TSV",
"import-map-members": "Mapear membros",
"import-members-map": "Seu quadro importado possui alguns membros. Por favor, mapeie os membros que você deseja importar para seus usuários",
"import-show-user-mapping": "Revisar mapeamento dos membros",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Ações de Raia",
"swimlaneAddPopup-title": "Adicionar uma Raia abaixo",
"listImportCardPopup-title": "Importe um cartão do Trello",
+ "listImportCardsTsvPopup-title": "Importar Excel CSV/TSV",
"listMorePopup-title": "Mais",
"link-list": "Vincular a esta lista",
"list-delete-pop": "Todas as ações serão excluidas da lista de atividades e você não poderá recuperar a lista. Não há como desfazer.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Quando um cartão",
"r-is": "é",
"r-is-moved": "é movido",
- "r-added-to": "adicionado à",
+ "r-added-to": "adicionado a",
"r-removed-from": "Removido de",
"r-the-board": "o quadro",
"r-list": "lista",
@@ -784,5 +797,14 @@
"thursday": "Quinta",
"friday": "Sexta",
"saturday": "Sábado",
- "sunday": "Domingo"
+ "sunday": "Domingo",
+ "status": "Status",
+ "swimlane": "Raia",
+ "owner": "Proprietário",
+ "last-modified-at": "Última modificação em",
+ "last-activity": "Última atividade",
+ "voting": "Votação",
+ "archived": "Arquivado",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json
index 93a600f1..5045759b 100644
--- a/i18n/pt.i18n.json
+++ b/i18n/pt.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Tempo Gasto",
"card-edit-attachments": "Editar anexos",
"card-edit-custom-fields": "Editar campos personalizados",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Alterar as etiquetas do cartão.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Apagar Cartão?",
"cardDetailsActionsPopup-title": "Acções do Cartão",
"cardLabelsPopup-title": "Etiquetas",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Precisa de ser um membro deste quadro para fazer isso",
"error-json-malformed": "O seu texto não é um JSON válido",
"error-json-schema": "O seu JSON não inclui as informações apropriadas no formato correto",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Esta lista não existe",
"error-user-doesNotExist": "Este utilizador não existe",
"error-user-notAllowSelf": "Não se pode convidar a si mesmo",
@@ -314,6 +317,11 @@
"error-username-taken": "Esse nome de utilizador já existe",
"error-email-taken": "Endereço de e-mail já está em uso",
"export-board": "Exportar quadro",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportar quadro",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Importar quadro",
"import-board-title-trello": "Importar quadro do Trello",
"import-board-title-wekan": "Importar quadro a partir de exportação prévia",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Do Trello",
"from-wekan": "A partir de exportação prévia",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "No seu quadro do Trello, vá em 'Menu', depois em 'Mais', 'Imprimir e Exportar', 'Exportar JSON', e copie o texto resultante.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "No seu quadro vá para 'Menu', depois 'Exportar quadro' e copie o texto no ficheiro descarregado.",
"import-board-instruction-about-errors": "Se receber erros ao importar o quadro, às vezes a importação ainda funciona e o quadro está na página Todos os Quadros.",
"import-json-placeholder": "Cole seus dados JSON válidos aqui",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapear membros",
"import-members-map": "O seu quadro importado possui alguns membros. Por favor, mapeie os membros que deseja importar para seus utilizadores",
"import-show-user-mapping": "Rever mapeamento dos membros",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Acções de Pista",
"swimlaneAddPopup-title": "Adicionar uma Pista abaixo",
"listImportCardPopup-title": "Importe um cartão do Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Mais",
"link-list": "Ligar a esta lista",
"list-delete-pop": "Todas as acções serão removidas do feed de actividade e não poderá recuperar a lista. Não há como desfazer.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Quando um cartão",
"r-is": "é",
"r-is-moved": "é movido",
- "r-added-to": "adicionado a",
+ "r-added-to": "Added to",
"r-removed-from": "Removido de",
"r-the-board": "o quadro",
"r-list": "lista",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index c791357d..7a15976f 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Editează atașamente",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Editează etichete",
"card-edit-members": "Editează membrii",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 16458866..8e28497f 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Затраченное время",
"card-edit-attachments": "Изменить вложения",
"card-edit-custom-fields": "Редактировать настраиваемые поля",
- "card-start-voting": "Запустить голосование",
- "card-cancel-voting": "Отменить голосование и удалить голоса",
"card-edit-labels": "Изменить метку",
"card-edit-members": "Изменить участников",
"card-labels-title": "Изменить метки для этой карточки.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Голосовать",
"positiveVoteMembersPopup-title": "Сторонники",
"negativeVoteMembersPopup-title": "Противники",
- "allowNonBoardMembers": "Разрешить анонимное голосование на доступной всем доске",
+ "card-edit-voting": "Редактировать голосование",
+ "editVoteEndDatePopup-title": "Изменить дату окончания голосования",
+ "allowNonBoardMembers": "Разрешить всем авторизованным пользователям ",
"vote-question": "Вопрос для голосования",
"vote-public": "Показать кто как голосовал",
"vote-for-it": "за",
"vote-against": "против",
+ "deleteVotePopup-title": "Удалить голосование?",
+ "vote-delete-pop": "Это действие невозможно будет отменить. Все связанные с голосованием действия будут потеряны.",
"cardDeletePopup-title": "Удалить карточку?",
"cardDetailsActionsPopup-title": "Действия в карточке",
"cardLabelsPopup-title": "Метки",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Вы должны быть участником доски, чтобы сделать это",
"error-json-malformed": "Ваше текст не является правильным JSON",
"error-json-schema": "Содержимое вашего JSON не содержит информацию в корректном формате",
+ "error-csv-schema": "Ваши данные CSV (с разделителями запятой)/TSV (с разделителями табулятором) не содержат информации в корректном формате",
"error-list-doesNotExist": "Список не найден",
"error-user-doesNotExist": "Пользователь не найден",
"error-user-notAllowSelf": "Вы не можете пригласить себя",
@@ -314,6 +317,11 @@
"error-username-taken": "Это имя пользователя уже занято",
"error-email-taken": "Этот адрес уже занят",
"export-board": "Экспортировать доску",
+ "export-board-json": "Экспортировать доску в JSON",
+ "export-board-csv": "Экспортировать доску в CSV",
+ "export-board-tsv": "Экспортировать доску в TSV",
+ "export-board-html": "Экспортировать доску в HTML",
+ "exportBoardPopup-title": "Экспортировать доску",
"sort": "Сортировать",
"sort-desc": "Нажмите, чтобы отсортировать список",
"list-sort-by": "Сортировать список по:",
@@ -349,12 +357,16 @@
"import-board-c": "Импортировать доску",
"import-board-title-trello": "Импортировать доску из Trello",
"import-board-title-wekan": "Импортировать доску, сохраненную ранее.",
+ "import-board-title-csv": "Импортировать доску из CSV/TSV",
"from-trello": "Из Trello",
"from-wekan": "Сохраненную ранее",
+ "from-csv": "Из CSV/TSV",
"import-board-instruction-trello": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст",
+ "import-board-instruction-csv": "Вставка CSV/TSV данных",
"import-board-instruction-wekan": "На вашей доске перейдите в “Меню”, далее “Экспортировать доску” и скопируйте текст из скачаного файла",
"import-board-instruction-about-errors": "Даже если при импорте возникли ошибки, иногда импортирование проходит успешно – тогда доска появится на странице «Все доски».",
"import-json-placeholder": "Вставьте JSON сюда",
+ "import-csv-placeholder": "Вставьте CSV/TSV сюда",
"import-map-members": "Составить карту участников",
"import-members-map": "Вы импортировали доску с участниками. Пожалуйста, отметьте участников, которых вы хотите импортировать в качестве пользователей",
"import-show-user-mapping": "Проверить карту участников",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Действия с дорожкой",
"swimlaneAddPopup-title": "Добавить дорожку ниже",
"listImportCardPopup-title": "Импортировать Trello карточку",
+ "listImportCardsTsvPopup-title": "Импорт CSV/TSV из Excel",
"listMorePopup-title": "Поделиться",
"link-list": "Ссылка на список",
"list-delete-pop": "Все действия будут удалены из ленты активности участников, и вы не сможете восстановить список. Данное действие необратимо.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Когда карточка",
"r-is": " ",
"r-is-moved": "перемещается",
- "r-added-to": "добавляется в",
+ "r-added-to": "Добавлено в",
"r-removed-from": "Покидает",
"r-the-board": "доску",
"r-list": "список",
@@ -784,5 +797,14 @@
"thursday": "Четверг",
"friday": "Пятница",
"saturday": "Суббота",
- "sunday": "Воскресенье"
+ "sunday": "Воскресенье",
+ "status": "Статус",
+ "swimlane": "Дорожка",
+ "owner": "Владелец",
+ "last-modified-at": "Последний раз изменено",
+ "last-activity": "Последние действия",
+ "voting": "Голосование",
+ "archived": "Архивировано",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/sl.i18n.json b/i18n/sl.i18n.json
index b07930c4..bbd3ce1c 100644
--- a/i18n/sl.i18n.json
+++ b/i18n/sl.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Porabljen čas",
"card-edit-attachments": "Uredi priponke",
"card-edit-custom-fields": "Uredi poljubna polja",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Uredi oznake",
"card-edit-members": "Uredi člane",
"card-labels-title": "Spremeni oznake za kartico.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Briši kartico?",
"cardDetailsActionsPopup-title": "Dejanja kartice",
"cardLabelsPopup-title": "Oznake",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Niste član table.",
"error-json-malformed": "Vaše besedilo ni veljaven JSON",
"error-json-schema": "Vaši JSON podatki ne vsebujejo pravilnih informacij v ustreznem formatu",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Seznam ne obstaja",
"error-user-doesNotExist": "Uporabnik ne obstaja",
"error-user-notAllowSelf": "Ne morete povabiti sebe",
@@ -314,6 +317,11 @@
"error-username-taken": "To up. ime že obstaja",
"error-email-taken": "E-poštni naslov je že zaseden",
"export-board": "Izvozi tablo",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Izvozi tablo",
"sort": "Sortiraj",
"sort-desc": "Klikni za sortiranje seznama",
"list-sort-by": "Sortiraj po:",
@@ -349,12 +357,16 @@
"import-board-c": "Uvozi tablo",
"import-board-title-trello": "Uvozi tablo iz orodja Trello",
"import-board-title-wekan": "Uvozi tablo iz prejšnjega izvoza",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Iz orodja Trello",
"from-wekan": "Od prejšnjega izvoza",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "V vaši Trello tabli pojdite na 'Meni', 'Več', 'Natisni in Izvozi', 'Izvozi JSON', in kopirajte prikazano besedilo.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "V vaši tabli pojdite na 'Meni', 'Izvozi tablo' in kopirajte besedilo iz prenesene datoteke.",
"import-board-instruction-about-errors": "Pri napakah med uvozom table v nekaterih primerih uvažanje še deluje, uvožena tabla pa je na strani Vse Table.",
"import-json-placeholder": "Tukaj prilepite veljavne JSON podatke",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapiraj člane",
"import-members-map": "Vaša uvožena tabla vsebuje nekaj članov. Prosimo mapirajte člane, ki jih želite uvoziti, z vašimi uporabniki.",
"import-show-user-mapping": "Preglejte povezane člane",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Dejanja plavalnih stez",
"swimlaneAddPopup-title": "Dodaj plavalno stezo spodaj",
"listImportCardPopup-title": "Uvozi Trello kartico",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Več",
"link-list": "Poveži s seznamom",
"list-delete-pop": "Vsa dejanja bodo odstranjena iz vira dejavnosti in seznama ne boste mogli obnoviti. Razveljavitve ni.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Ko je kartica",
"r-is": " ",
"r-is-moved": "premaknjena",
- "r-added-to": "dodan na",
+ "r-added-to": "Added to",
"r-removed-from": "izbrisan iz",
"r-the-board": "tabla",
"r-list": "seznam",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index b0d9638b..cc8694ee 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Uredi priloge",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Započni glasanje",
- "card-cancel-voting": "Obriši glasanje i sve glasove",
"card-edit-labels": "Uredi natpise",
"card-edit-members": "Uredi članove",
"card-labels-title": "Promeni natpis na kartici.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Novo glasanje",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Pitanje za glasanje",
"vote-public": "Show who voted what",
"vote-for-it": "za",
"vote-against": "protiv",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Obrisati karticu?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Oznake",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "Korisnik ne postoji",
"error-user-notAllowSelf": "Ne možeš pozvati samog sebe",
@@ -314,6 +317,11 @@
"error-username-taken": "Korisničko ime je već zauzeto",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sortiraj",
"sort-desc": "Kliknite da biste sortirali listu",
"list-sort-by": "Poredaj listu po:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Uvezi tablu iz Trella",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Mapiraj članove",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Više",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Kada kartica",
"r-is": "je",
"r-is-moved": "je premeštena",
- "r-added-to": "dodata u",
+ "r-added-to": "Added to",
"r-removed-from": "Uklonjena iz",
"r-the-board": "table",
"r-list": "liste",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index 97a7b1f1..fec61ca7 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -64,7 +64,7 @@
"activity-unchecked-item": "okryssad %s i checklistan %s av %s",
"activity-checklist-added": "lade kontrollista till %s",
"activity-checklist-removed": "tog bort en checklista från %s",
- "activity-checklist-completed": "completed checklist %s of %s",
+ "activity-checklist-completed": "slutförde checklista %s av %s",
"activity-checklist-uncompleted": "inte slutfört checklistan %s av %s",
"activity-checklist-item-added": "lade checklista objekt till '%s' i %s",
"activity-checklist-item-removed": "tog bort en checklista objekt från \"%s\" i %s",
@@ -126,7 +126,7 @@
"board-nb-stars": "%s stjärnor",
"board-not-found": "Anslagstavla hittades inte",
"board-private-info": "Denna anslagstavla kommer att vara <strong>privat</strong>.",
- "board-public-info": "Denna anslagstavla kommer att vara <strong>officiell</strong>.",
+ "board-public-info": "Denna anslagstavla kommer att vara <strong>publik</strong>.",
"boardChangeColorPopup-title": "Ändra bakgrund på anslagstavla",
"boardChangeTitlePopup-title": "Byt namn på anslagstavla",
"boardChangeVisibilityPopup-title": "Ändra synlighet",
@@ -152,8 +152,6 @@
"card-spent": "Spenderad tid",
"card-edit-attachments": "Redigera bilaga",
"card-edit-custom-fields": "Redigera anpassade fält",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Redigera etiketter",
"card-edit-members": "Redigera medlemmar",
"card-labels-title": "Ändra etiketter för kortet.",
@@ -163,14 +161,18 @@
"cardAttachmentsPopup-title": "Bifoga från",
"cardCustomField-datePopup-title": "Ändra datum",
"cardCustomFieldsPopup-title": "Redigera anpassade fält",
- "cardStartVotingPopup-title": "Start a vote",
- "positiveVoteMembersPopup-title": "Proponents",
- "negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
- "vote-question": "Voting question",
- "vote-public": "Show who voted what",
- "vote-for-it": "for it",
- "vote-against": "against",
+ "cardStartVotingPopup-title": "Påbörja en omröstning",
+ "positiveVoteMembersPopup-title": "Förespråkare",
+ "negativeVoteMembersPopup-title": "Opponenter",
+ "card-edit-voting": "Redigera röstning",
+ "editVoteEndDatePopup-title": "Ändra slutdatum för röstning",
+ "allowNonBoardMembers": "Tillåt alla inloggade användare",
+ "vote-question": "Omröstningsfråga",
+ "vote-public": "Visa vem som röstade på vad",
+ "vote-for-it": "för",
+ "vote-against": "emot",
+ "deleteVotePopup-title": "Radera röstning?",
+ "vote-delete-pop": "Radering är permanent. Du kommer förlora alla aktiviteter som hör till denna röstning.",
"cardDeletePopup-title": "Ta bort kort?",
"cardDetailsActionsPopup-title": "Kortåtgärder",
"cardLabelsPopup-title": "Etiketter",
@@ -234,7 +236,7 @@
"no-comments": "Inga kommentarer",
"no-comments-desc": "Kan inte se kommentarer och aktiviteter.",
"worker": "Worker",
- "worker-desc": "Can only move cards, assign itself to card and comment.",
+ "worker-desc": "Kan endast flytta kort, tilldela sig kort och kommentera.",
"computer": "Dator",
"confirm-subtask-delete-dialog": "Är du säker på att du vill radera deluppgift?",
"confirm-checklist-delete-dialog": "Är du säker på att du vill radera checklista?",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Du måste vara medlem i denna anslagstavla för att göra det",
"error-json-malformed": "Din text är inte giltigt JSON",
"error-json-schema": "Din JSON data inkluderar inte korrekt information i rätt format",
+ "error-csv-schema": "Din CSV(Comma Separated Values)/TSV (Tab Separated Values) innehåller inte korrekt information i rätt format.",
"error-list-doesNotExist": "Denna lista finns inte",
"error-user-doesNotExist": "Denna användare finns inte",
"error-user-notAllowSelf": "Du kan inte bjuda in dig själv",
@@ -314,13 +317,18 @@
"error-username-taken": "Detta användarnamn är redan taget",
"error-email-taken": "E-post har redan tagits",
"export-board": "Exportera anslagstavla",
+ "export-board-json": "Exportera tavla till JSON",
+ "export-board-csv": "Expoertera tavla till CSV",
+ "export-board-tsv": "Exportera tavla till TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Exportera anslagstavla",
"sort": "Sortera",
"sort-desc": "Klicka för att sortera listan",
"list-sort-by": "Sortera listan efter:",
"list-label-modifiedAt": "Sista åtkomsttid",
"list-label-title": "Namn på listan",
- "list-label-sort": "Your Manual Order",
- "list-label-short-modifiedAt": "(L)",
+ "list-label-sort": "Din Manuella Ordning",
+ "list-label-short-modifiedAt": "(S)",
"list-label-short-title": "(N)",
"list-label-short-sort": "(M)",
"filter": "Filtrera",
@@ -329,7 +337,7 @@
"filter-clear": "Rensa filter",
"filter-no-label": "Ingen etikett",
"filter-no-member": "Ingen medlem",
- "filter-no-assignee": "No assignee",
+ "filter-no-assignee": "Inte tilldelad någon",
"filter-no-custom-fields": "Inga anpassade fält",
"filter-show-archive": "Visa arkiverade listor",
"filter-hide-empty": "Dölj tomma listor",
@@ -349,12 +357,16 @@
"import-board-c": "Importera anslagstavla",
"import-board-title-trello": "Importera anslagstavla från Trello",
"import-board-title-wekan": "Importera anslagstavla från tidigare export",
+ "import-board-title-csv": "Importera tavla från CSV/TSV",
"from-trello": "Från Trello",
"from-wekan": "Från tidigare export",
+ "from-csv": "Från CSV/TSV",
"import-board-instruction-trello": "I din Trello-anslagstavla, gå till 'Meny', sedan 'Mera', 'Skriv ut och exportera', 'Exportera JSON' och kopiera den resulterande text.",
+ "import-board-instruction-csv": "Klistra in Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "På din anslagstavla, gå till \"Meny\", sedan \"Exportera anslagstavla\" och kopiera texten i den hämtade filen.",
"import-board-instruction-about-errors": "Om du får fel vid import av anslagstavla, ibland importerar fortfarande fungerar, och styrelsen är på alla sidor för anslagstavlor.",
"import-json-placeholder": "Klistra in giltigt JSON data här",
+ "import-csv-placeholder": "Klistra in CSV/TSV-data här",
"import-map-members": "Kartlägg medlemmar",
"import-members-map": "Din importerade anslagstavla har några medlemmar. Vänligen kartlägg medlemmarna du vill importera till dina användare",
"import-show-user-mapping": "Granska medlemskartläggning",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Simbana-åtgärder",
"swimlaneAddPopup-title": "Lägg till en simbana nedan",
"listImportCardPopup-title": "Importera ett Trello kort",
+ "listImportCardsTsvPopup-title": "Importera Excel CSV/TSV",
"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.",
@@ -449,7 +462,7 @@
"save": "Spara",
"search": "Sök",
"rules": "Regler",
- "search-cards": "Search from card/list titles, descriptions and custom fields on this board",
+ "search-cards": "Sök i kort- och listtitlar, beskrivningar och anpassade fält på denna anslagstavla",
"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",
@@ -536,7 +549,7 @@
"webhook-title": "Namn på webhook",
"webhook-token": "Token (valfritt för autentisering)",
"outgoing-webhooks": "Utgående Webhookar",
- "bidirectional-webhooks": "Two-Way Webhooks",
+ "bidirectional-webhooks": "Dubbelriktade Webhookar",
"outgoingWebhooksPopup-title": "Utgående Webhookar",
"boardCardTitlePopup-title": "Korttitelfiler",
"disable-webhook": "Avaktivera denna webhook",
@@ -626,7 +639,7 @@
"r-when-a-card": "När ett kort",
"r-is": "är",
"r-is-moved": "är flyttad",
- "r-added-to": "tillagd till",
+ "r-added-to": "Tillagd till",
"r-removed-from": "Borttagen från",
"r-the-board": "anslagstavlan",
"r-list": "lista",
@@ -674,7 +687,7 @@
"r-of-checklist": "av checklistan",
"r-send-email": "Skicka ett e-postmeddelande",
"r-to": "till",
- "r-of": "of",
+ "r-of": "av",
"r-subject": "änme",
"r-rule-details": "Regeldetaljer",
"r-d-move-to-top-gen": "Flytta kort till toppen av sin lista",
@@ -770,19 +783,28 @@
"new": "Ny",
"editUserPopup-title": "Redigera användare",
"newUserPopup-title": "Ny användare",
- "notifications": "Notifications",
- "view-all": "View All",
- "filter-by-unread": "Filter by Unread",
- "mark-all-as-read": "Mark all as read",
- "remove-all-read": "Remove all read",
- "allow-rename": "Allow Rename",
- "allowRenamePopup-title": "Allow Rename",
- "start-day-of-week": "Set day of the week start",
- "monday": "Monday",
- "tuesday": "Tuesday",
- "wednesday": "Wednesday",
- "thursday": "Thursday",
- "friday": "Friday",
- "saturday": "Saturday",
- "sunday": "Sunday"
+ "notifications": "Notifieringar",
+ "view-all": "Visa Allt",
+ "filter-by-unread": "Filtrera efter Oläst",
+ "mark-all-as-read": "Markera alla som lästa",
+ "remove-all-read": "Ta bort alla lästa",
+ "allow-rename": "Tillåt Namnändring",
+ "allowRenamePopup-title": "Tillåt Namnändring",
+ "start-day-of-week": "Ange veckans första dag",
+ "monday": "Måndag",
+ "tuesday": "Tisdag",
+ "wednesday": "Onsdag",
+ "thursday": "Torsdag",
+ "friday": "Fredag",
+ "saturday": "Lördag",
+ "sunday": "Söndag",
+ "status": "Status",
+ "swimlane": "Simbana",
+ "owner": "Ägare",
+ "last-modified-at": "Senast ändrad",
+ "last-activity": "Senaste aktivitet",
+ "voting": "Röstning",
+ "archived": "Arkiverad",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/sw.i18n.json b/i18n/sw.i18n.json
index 242b3f17..80046204 100644
--- a/i18n/sw.i18n.json
+++ b/i18n/sw.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Muda uliotumika",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index dd66c13e..f56e9a91 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Trello ல் இருந்து ",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "மேலும் ",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index dad60012..fc48f428 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "แก้ไขสิ่งที่แนบมา",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "แก้ไขป้ายกำกับ",
"card-edit-members": "แก้ไขสมาชิก",
"card-labels-title": "เปลี่ยนป้ายกำกับของการ์ด",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "ลบการ์ดนี้หรือไม่",
"cardDetailsActionsPopup-title": "การดำเนินการการ์ด",
"cardLabelsPopup-title": "ป้ายกำกับ",
@@ -307,6 +309,7 @@
"error-board-notAMember": "คุณต้องเป็นสมาชิกของบอร์ดนี้ถึงจะทำได้",
"error-json-malformed": "ข้อความของคุณไม่ใช่ JSON",
"error-json-schema": "รูปแบบข้้้อมูล JSON ของคุณไม่ถูกต้อง",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "รายการนี้ไม่มีอยู่",
"error-user-doesNotExist": "ผู้ใช้นี้ไม่มีอยู่",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "ชื่อนี้ถูกใช้งานแล้ว",
"error-email-taken": "Email has already been taken",
"export-board": "ส่งออกกระดาน",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "ส่งออกกระดาน",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "นำเข้าบอร์ดจาก Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "ใน Trello ของคุณให้ไปที่ 'Menu' และไปที่ More -> Print and Export -> Export JSON และคัดลอกข้อความจากนั้น",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "วางข้อมูล JSON ที่ถูกต้องของคุณที่นี่",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "แผนที่สมาชิก",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review การทำแผนที่สมาชิก",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "นำเข้าการ์ด Trello",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "เพิ่มเติม",
"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.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index 657b4dcf..b30a9a11 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Harcanan Zaman",
"card-edit-attachments": "Ek dosyasını düzenle",
"card-edit-custom-fields": "Özel alanları düzenle",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Etiketleri düzenle",
"card-edit-members": "Üyeleri düzenle",
"card-labels-title": "Bu kart için etiketleri düzenle",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Kart Silinsin mi?",
"cardDetailsActionsPopup-title": "Kart işlemleri",
"cardLabelsPopup-title": "Etiketler",
@@ -307,6 +309,7 @@
"error-board-notAMember": "Bu işlemi yapmak için panoya üye olmalısın.",
"error-json-malformed": "Girilen metin geçerli bir JSON formatında değil",
"error-json-schema": "Girdiğin JSON metni tüm bilgileri doğru biçimde barındırmıyor",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "Liste bulunamadı",
"error-user-doesNotExist": "Kullanıcı bulunamadı",
"error-user-notAllowSelf": "Kendi kendini davet edemezsin",
@@ -314,6 +317,11 @@
"error-username-taken": "Kullanıcı adı zaten alınmış",
"error-email-taken": "Bu e-posta adresi daha önceden alınmış",
"export-board": "Panoyu dışarı aktar",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Panoyu dışarı aktar",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Panoyu içe aktar",
"import-board-title-trello": "Trello'dan panoyu içeri aktar",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "Trello'dan",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "Trello panonuzda 'Menü'ye gidip 'Daha fazlası'na tıklayın, ardından 'Yazdır ve Çıktı Al'ı seçip 'JSON biçiminde çıktı al' diyerek çıkan metni buraya kopyalayın.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Geçerli JSON verisini buraya yapıştırın",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Üyeleri eşleştirme",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Üye eşleştirmesini kontrol et",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Kulvar İşlemleri",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Bir Trello kartını içeri aktar",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Daha",
"link-list": "Listeye doğrudan bağlantı",
"list-delete-pop": "Etkinlik akışınızdaki tüm eylemler geri kurtarılamaz şekilde kaldırılacak. Bu işlem geri alınamaz.",
@@ -626,7 +639,7 @@
"r-when-a-card": "Kart eklendiğinde",
"r-is": "is",
"r-is-moved": "taşındı",
- "r-added-to": "eklendi",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "pano",
"r-list": "liste",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index 2938ee8f..514a2dde 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Витрачено часу",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Редагувати мітки",
"card-edit-members": "Редагувати учасників",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Видалити картку?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Видалити з",
"r-the-board": "Дошка",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index a3ec456a..daa090f3 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 6c821ee1..7c9b8f44 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "耗时",
"card-edit-attachments": "编辑附件",
"card-edit-custom-fields": "编辑自定义字段",
- "card-start-voting": "开始投票",
- "card-cancel-voting": "移除投票",
"card-edit-labels": "编辑标签",
"card-edit-members": "编辑成员",
"card-labels-title": "更改该卡片上的标签",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "建立投票",
"positiveVoteMembersPopup-title": "支持",
"negativeVoteMembersPopup-title": "反对",
- "allowNonBoardMembers": "允许任何人在公开看板投票",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "投票题目",
"vote-public": "查看投票结果",
"vote-for-it": "同意",
"vote-against": "反对",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "彻底删除卡片?",
"cardDetailsActionsPopup-title": "卡片操作",
"cardLabelsPopup-title": "标签",
@@ -307,6 +309,7 @@
"error-board-notAMember": "需要成为看板成员才能执行此操作",
"error-json-malformed": "文本不是合法的 JSON",
"error-json-schema": "JSON 数据没有用正确的格式包含合适的信息",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "不存在此列表",
"error-user-doesNotExist": "该用户不存在",
"error-user-notAllowSelf": "无法邀请自己",
@@ -314,6 +317,11 @@
"error-username-taken": "此用户名已存在",
"error-email-taken": "此EMail已存在",
"export-board": "导出看板",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "导出看板",
"sort": "排序",
"sort-desc": "点此来将列表排序",
"list-sort-by": "按此来将列表排序:",
@@ -349,12 +357,16 @@
"import-board-c": "导入看板",
"import-board-title-trello": "从Trello导入看板",
"import-board-title-wekan": "从以前的导出数据导入看板",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "自 Trello",
"from-wekan": "自以前的导出",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "在你的Trello看板中,点击“菜单”,然后选择“更多”,“打印与导出”,“导出为 JSON” 并拷贝结果文本",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "在您的看板,点击“菜单”,然后“导出看板”,复制下载文件中的文本。",
"import-board-instruction-about-errors": "如果在导入看板时出现错误,导入工作可能仍然在进行中,并且看板已经出现在全部看板页。",
"import-json-placeholder": "粘贴您有效的 JSON 数据至此",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "映射成员",
"import-members-map": "您导入的看板有一些成员,请映射这些成员到您导入的用户。",
"import-show-user-mapping": "核对成员映射",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "泳道图操作",
"swimlaneAddPopup-title": "在下面添加一个泳道",
"listImportCardPopup-title": "导入 Trello 卡片",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "更多",
"link-list": "关联到这个列表",
"list-delete-pop": "所有活动将被从活动动态中删除并且你无法恢复他们,此操作无法撤销。",
@@ -626,7 +639,7 @@
"r-when-a-card": "当一张卡片",
"r-is": "是",
"r-is-moved": "已经移动",
- "r-added-to": "添加到",
+ "r-added-to": "Added to",
"r-removed-from": "已移除",
"r-the-board": "该看板",
"r-list": "列表",
@@ -784,5 +797,14 @@
"thursday": "周四",
"friday": "周五",
"saturday": "周六",
- "sunday": "周日"
+ "sunday": "周日",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/zh-HK.i18n.json b/i18n/zh-HK.i18n.json
index 6adb1d7e..2324c3f0 100644
--- a/i18n/zh-HK.i18n.json
+++ b/i18n/zh-HK.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
- "card-start-voting": "Start voting",
- "card-cancel-voting": "Delete voting and all votes",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
@@ -307,6 +309,7 @@
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
@@ -314,6 +317,11 @@
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
@@ -349,12 +357,16 @@
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
@@ -626,7 +639,7 @@
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
- "r-added-to": "added to",
+ "r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
@@ -784,5 +797,14 @@
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
- "sunday": "Sunday"
+ "sunday": "Sunday",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index 232193b7..ac923fef 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -152,8 +152,6 @@
"card-spent": "耗時",
"card-edit-attachments": "編輯附件",
"card-edit-custom-fields": "編輯自訂欄位",
- "card-start-voting": "開始投票",
- "card-cancel-voting": "移除投票",
"card-edit-labels": "編輯標籤",
"card-edit-members": "編輯成員",
"card-labels-title": "更改該卡片上的標籤",
@@ -166,11 +164,15 @@
"cardStartVotingPopup-title": "建立投票",
"positiveVoteMembersPopup-title": "支持",
"negativeVoteMembersPopup-title": "反對",
- "allowNonBoardMembers": "Allow anonymous vote on public board",
+ "card-edit-voting": "Edit voting",
+ "editVoteEndDatePopup-title": "Change vote end date",
+ "allowNonBoardMembers": "Allow all logged in users",
"vote-question": "投票題目",
"vote-public": "Show who voted what",
"vote-for-it": "同意",
"vote-against": "反對",
+ "deleteVotePopup-title": "Delete vote?",
+ "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "徹底刪除卡片?",
"cardDetailsActionsPopup-title": "卡片操作",
"cardLabelsPopup-title": "標籤",
@@ -307,6 +309,7 @@
"error-board-notAMember": "需要成為看板成員才能執行此操作",
"error-json-malformed": "不是有效的 JSON",
"error-json-schema": "JSON 資料沒有用正確的格式包含合適的資訊",
+ "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "不存在此列表",
"error-user-doesNotExist": "該使用者不存在",
"error-user-notAllowSelf": "不允許對自己執行此操作",
@@ -314,6 +317,11 @@
"error-username-taken": "這個使用者名稱已被使用",
"error-email-taken": "Email 已被使用",
"export-board": "匯出看板",
+ "export-board-json": "Export board to JSON",
+ "export-board-csv": "Export board to CSV",
+ "export-board-tsv": "Export board to TSV",
+ "export-board-html": "Export board to HTML",
+ "exportBoardPopup-title": "匯出看板",
"sort": "排序",
"sort-desc": "點選排序清單",
"list-sort-by": "清單排序依照:",
@@ -349,12 +357,16 @@
"import-board-c": "匯入看板",
"import-board-title-trello": "匯入在 Trello 的看板",
"import-board-title-wekan": "從上次的匯出檔匯入看板",
+ "import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "來自 Trello",
"from-wekan": "從上次的匯出檔",
+ "from-csv": "From CSV/TSV",
"import-board-instruction-trello": "在你的Trello看板中,點選“功能表”,然後選擇“更多”,“列印與匯出”,“匯出為 JSON” 並拷貝結果文本",
+ "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "在您的看板,點擊“選單”,然後“匯出看板”,複製下載文件中的文本。",
"import-board-instruction-about-errors": "如果在匯入看板時出現錯誤,匯入工作可能仍然在進行中,並且看板已經出現在全部看板頁。",
"import-json-placeholder": "貼上您有效的 JSON 資料至此",
+ "import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "複製成員",
"import-members-map": "您匯入的看板有一些成員,請複製這些成員到您匯入的用戶。",
"import-show-user-mapping": "核對複製的成員",
@@ -387,6 +399,7 @@
"swimlaneActionPopup-title": "泳道動作",
"swimlaneAddPopup-title": "在下面新增泳道",
"listImportCardPopup-title": "匯入 Trello 卡片",
+ "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "更多",
"link-list": "連結到這個清單",
"list-delete-pop": "所有的動作都將從活動動態中被移除且您將無法再開啟該清單\b。此操作無法復原。",
@@ -626,7 +639,7 @@
"r-when-a-card": "當一張卡片",
"r-is": "是",
"r-is-moved": "已經移動",
- "r-added-to": "新增到",
+ "r-added-to": "Added to",
"r-removed-from": "已移除",
"r-the-board": "該看板",
"r-list": "清單",
@@ -784,5 +797,14 @@
"thursday": "週四",
"friday": "週五",
"saturday": "週六",
- "sunday": "週日"
+ "sunday": "週日",
+ "status": "Status",
+ "swimlane": "Swimlane",
+ "owner": "Owner",
+ "last-modified-at": "Last modified at",
+ "last-activity": "Last activity",
+ "voting": "Voting",
+ "archived": "Archived",
+ "delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
+ "delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
}
diff --git a/models/cards.js b/models/cards.js
index ae52ff04..f4bb464c 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -340,6 +340,10 @@ Cards.attachSchema(
type: Boolean,
defaultValue: false,
},
+ 'vote.allowNonBoardMembers': {
+ type: Boolean,
+ defaultValue: false,
+ },
}),
);
@@ -347,8 +351,14 @@ Cards.allow({
insert(userId, doc) {
return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
},
- update(userId, doc) {
- return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
+
+ update(userId, doc, fields) {
+ // Allow board members or logged in users if only vote get's changed
+ return (
+ allowIsBoardMember(userId, Boards.findOne(doc.boardId)) ||
+ (_.isEqual(fields, ['vote', 'modifiedAt', 'dateLastActivity']) &&
+ !!userId)
+ );
},
remove(userId, doc) {
return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
@@ -432,6 +442,21 @@ Cards.helpers({
return _id;
},
+ link(boardId, swimlaneId, listId) {
+ // TODO is there a better method to create a deepcopy?
+ linkCard = JSON.parse(JSON.stringify(this));
+ // TODO is this how it is meant to be?
+ linkCard.linkedId = linkCard.linkedId || linkCard._id;
+ linkCard.boardId = boardId;
+ linkCard.swimlaneId = swimlaneId;
+ linkCard.listId = listId;
+ linkCard.type = 'cardType-linkedCard';
+ delete linkCard._id;
+ // TODO shall we copy the labels for a linked card?!
+ delete linkCard.labelIds;
+ return Cards.insert(linkCard);
+ },
+
list() {
return Lists.findOne(this.listId);
},
@@ -1053,6 +1078,29 @@ Cards.helpers({
}
},
+ getVoteEnd() {
+ if (this.isLinkedCard()) {
+ const card = Cards.findOne({ _id: this.linkedId });
+ if (card && card.vote) return card.vote.end;
+ else return null;
+ } else if (this.isLinkedBoard()) {
+ const board = Boards.findOne({ _id: this.linkedId });
+ if (board && board.vote) return board.vote.end;
+ else return null;
+ } else if (this.vote) {
+ return this.vote.end;
+ } else {
+ return null;
+ }
+ },
+ expiredVote() {
+ let end = this.getVoteEnd();
+ if (end) {
+ end = moment(end);
+ return end.isBefore(new Date());
+ }
+ return false;
+ },
voteMemberPositive() {
if (this.vote && this.vote.positive)
return Users.find({ _id: { $in: this.vote.positive } });
@@ -1158,6 +1206,26 @@ Cards.helpers({
isTemplateCard() {
return this.type === 'template-card';
},
+
+ votePublic() {
+ if (this.vote) return this.vote.public;
+ return null;
+ },
+ voteAllowNonBoardMembers() {
+ if (this.vote) return this.vote.allowNonBoardMembers;
+ return null;
+ },
+ voteCountNegative() {
+ if (this.vote && this.vote.negative) return this.vote.negative.length;
+ return null;
+ },
+ voteCountPositive() {
+ if (this.vote && this.vote.positive) return this.vote.positive.length;
+ return null;
+ },
+ voteCount() {
+ return this.voteCountPositive() + this.voteCountNegative();
+ },
});
Cards.mutations({
@@ -1481,12 +1549,13 @@ Cards.mutations({
},
};
},
- setVoteQuestion(question, publicVote) {
+ setVoteQuestion(question, publicVote, allowNonBoardMembers) {
return {
$set: {
vote: {
question,
public: publicVote,
+ allowNonBoardMembers,
positive: [],
negative: [],
},
@@ -1500,6 +1569,16 @@ Cards.mutations({
},
};
},
+ setVoteEnd(end) {
+ return {
+ $set: { 'vote.end': end },
+ };
+ },
+ unsetVoteEnd() {
+ return {
+ $unset: { 'vote.end': '' },
+ };
+ },
setVote(userId, forIt) {
switch (forIt) {
case true:
@@ -2161,7 +2240,7 @@ if (Meteor.isServer) {
const check = Users.findOne({
_id: req.body.authorId,
});
- const members = req.body.members || [req.body.authorId];
+ const members = req.body.members;
const assignees = req.body.assignees;
if (typeof check !== 'undefined') {
const id = Cards.direct.insert({
diff --git a/models/csvCreator.js b/models/csvCreator.js
new file mode 100644
index 00000000..025a3179
--- /dev/null
+++ b/models/csvCreator.js
@@ -0,0 +1,313 @@
+import Boards from './boards';
+
+export class CsvCreator {
+ constructor(data) {
+ // date to be used for timestamps during import
+ this._nowDate = new Date();
+ // index to help keep track of what information a column stores
+ // each row represents a card
+ this.fieldIndex = {};
+ this.lists = {};
+ // Map of members using username => wekanid
+ this.members = data.membersMapping ? data.membersMapping : {};
+ this.swimlane = null;
+ }
+
+ /**
+ * If dateString is provided,
+ * return the Date it represents.
+ * If not, will return the date when it was first called.
+ * This is useful for us, as we want all import operations to
+ * have the exact same date for easier later retrieval.
+ *
+ * @param {String} dateString a properly formatted Date
+ */
+ _now(dateString) {
+ if (dateString) {
+ return new Date(dateString);
+ }
+ if (!this._nowDate) {
+ this._nowDate = new Date();
+ }
+ return this._nowDate;
+ }
+
+ _user(wekanUserId) {
+ if (wekanUserId && this.members[wekanUserId]) {
+ return this.members[wekanUserId];
+ }
+ return Meteor.userId();
+ }
+
+ /**
+ * Map the header row titles to an index to help assign proper values to the cards' fields
+ * Valid headers (name of card fields):
+ * title, description, status, owner, member, label, due date, start date, finish date, created at, updated at
+ * Some header aliases can also be accepted.
+ * Headers are NOT case-sensitive.
+ *
+ * @param {Array} headerRow array from row of headers of imported CSV/TSV for cards
+ */
+ mapHeadertoCardFieldIndex(headerRow) {
+ const index = {};
+ for (let i = 0; i < headerRow.length; i++) {
+ switch (headerRow[i].trim().toLowerCase()) {
+ case 'title':
+ index.title = i;
+ break;
+ case 'description':
+ index.description = i;
+ break;
+ case 'stage':
+ case 'status':
+ case 'state':
+ index.stage = i;
+ break;
+ case 'owner':
+ index.owner = i;
+ break;
+ case 'members':
+ case 'member':
+ index.members = i;
+ break;
+ case 'labels':
+ case 'label':
+ index.labels = i;
+ break;
+ case 'due date':
+ case 'deadline':
+ case 'due at':
+ index.dueAt = i;
+ break;
+ case 'start date':
+ case 'start at':
+ index.startAt = i;
+ break;
+ case 'finish date':
+ case 'end at':
+ index.endAt = i;
+ break;
+ case 'creation date':
+ case 'created at':
+ index.createdAt = i;
+ break;
+ case 'update date':
+ case 'updated at':
+ case 'modified at':
+ case 'modified on':
+ index.modifiedAt = i;
+ break;
+ }
+ }
+ this.fieldIndex = index;
+ }
+
+ createBoard(csvData) {
+ const boardToCreate = {
+ archived: false,
+ color: 'belize',
+ createdAt: this._now(),
+ labels: [],
+ members: [
+ {
+ userId: Meteor.userId(),
+ wekanId: Meteor.userId(),
+ isActive: true,
+ isAdmin: true,
+ isNoComments: false,
+ isCommentOnly: false,
+ swimlaneId: false,
+ },
+ ],
+ modifiedAt: this._now(),
+ //default is private, should inform user.
+ permission: 'private',
+ slug: 'board',
+ stars: 0,
+ title: `Imported Board ${this._now()}`,
+ };
+
+ // create labels
+ const labelsToCreate = new Set();
+ for (let i = 1; i < csvData.length; i++) {
+ if (csvData[i][this.fieldIndex.labels]) {
+ for (const importedLabel of csvData[i][this.fieldIndex.labels].split(
+ ' ',
+ )) {
+ if (importedLabel && importedLabel.length > 0) {
+ labelsToCreate.add(importedLabel);
+ }
+ }
+ }
+ }
+ for (const label of labelsToCreate) {
+ let labelName, labelColor;
+ if (label.indexOf('-') > -1) {
+ labelName = label.split('-')[0];
+ labelColor = label.split('-')[1];
+ } else {
+ labelName = label;
+ }
+ const labelToCreate = {
+ _id: Random.id(6),
+ color: labelColor ? labelColor : 'black',
+ name: labelName,
+ };
+ boardToCreate.labels.push(labelToCreate);
+ }
+
+ const boardId = Boards.direct.insert(boardToCreate);
+ Boards.direct.update(boardId, {
+ $set: {
+ modifiedAt: this._now(),
+ },
+ });
+ // log activity
+ Activities.direct.insert({
+ activityType: 'importBoard',
+ boardId,
+ createdAt: this._now(),
+ source: {
+ id: boardId,
+ system: 'CSV/TSV',
+ },
+ // We attribute the import to current user,
+ // not the author from the original object.
+ userId: this._user(),
+ });
+ return boardId;
+ }
+
+ createSwimlanes(boardId) {
+ const swimlaneToCreate = {
+ archived: false,
+ boardId,
+ createdAt: this._now(),
+ title: 'Default',
+ sort: 1,
+ };
+ const swimlaneId = Swimlanes.direct.insert(swimlaneToCreate);
+ Swimlanes.direct.update(swimlaneId, { $set: { updatedAt: this._now() } });
+ this.swimlane = swimlaneId;
+ }
+
+ createLists(csvData, boardId) {
+ let numOfCreatedLists = 0;
+ for (let i = 1; i < csvData.length; i++) {
+ const listToCreate = {
+ archived: false,
+ boardId,
+ createdAt: this._now(),
+ };
+ if (csvData[i][this.fieldIndex.stage]) {
+ const existingList = Lists.find({
+ title: csvData[i][this.fieldIndex.stage],
+ boardId,
+ }).fetch();
+ if (existingList.length > 0) {
+ continue;
+ } else {
+ listToCreate.title = csvData[i][this.fieldIndex.stage];
+ }
+ } else listToCreate.title = `Imported List ${this._now()}`;
+
+ const listId = Lists.direct.insert(listToCreate);
+ this.lists[csvData[i][this.fieldIndex.stage]] = listId;
+ numOfCreatedLists++;
+ Lists.direct.update(listId, {
+ $set: {
+ updatedAt: this._now(),
+ sort: numOfCreatedLists,
+ },
+ });
+ }
+ }
+
+ createCards(csvData, boardId) {
+ for (let i = 1; i < csvData.length; i++) {
+ const cardToCreate = {
+ archived: false,
+ boardId,
+ createdAt: csvData[i][this.fieldIndex.createdAt]
+ ? this._now(new Date(csvData[i][this.fieldIndex.createdAt]))
+ : null,
+ dateLastActivity: this._now(),
+ description: csvData[i][this.fieldIndex.description],
+ listId: this.lists[csvData[i][this.fieldIndex.stage]],
+ swimlaneId: this.swimlane,
+ sort: -1,
+ title: csvData[i][this.fieldIndex.title],
+ userId: this._user(),
+ startAt: csvData[i][this.fieldIndex.startAt]
+ ? this._now(new Date(csvData[i][this.fieldIndex.startAt]))
+ : null,
+ dueAt: csvData[i][this.fieldIndex.dueAt]
+ ? this._now(new Date(csvData[i][this.fieldIndex.dueAt]))
+ : null,
+ endAt: csvData[i][this.fieldIndex.endAt]
+ ? this._now(new Date(csvData[i][this.fieldIndex.endAt]))
+ : null,
+ spentTime: null,
+ labelIds: [],
+ modifiedAt: csvData[i][this.fieldIndex.modifiedAt]
+ ? this._now(new Date(csvData[i][this.fieldIndex.modifiedAt]))
+ : null,
+ };
+ // add the labels
+ if (csvData[i][this.fieldIndex.labels]) {
+ const board = Boards.findOne(boardId);
+ for (const importedLabel of csvData[i][this.fieldIndex.labels].split(
+ ' ',
+ )) {
+ if (importedLabel && importedLabel.length > 0) {
+ let labelToApply;
+ if (importedLabel.indexOf('-') === -1) {
+ labelToApply = board.getLabel(importedLabel, 'black');
+ } else {
+ labelToApply = board.getLabel(
+ importedLabel.split('-')[0],
+ importedLabel.split('-')[1],
+ );
+ }
+ cardToCreate.labelIds.push(labelToApply._id);
+ }
+ }
+ }
+ // add the members
+ if (csvData[i][this.fieldIndex.members]) {
+ const wekanMembers = [];
+ for (const importedMember of csvData[i][this.fieldIndex.members].split(
+ ' ',
+ )) {
+ if (this.members[importedMember]) {
+ const wekanId = this.members[importedMember];
+ if (!wekanMembers.find(wId => wId === wekanId)) {
+ wekanMembers.push(wekanId);
+ }
+ }
+ }
+ if (wekanMembers.length > 0) {
+ cardToCreate.members = wekanMembers;
+ }
+ }
+ Cards.direct.insert(cardToCreate);
+ }
+ }
+
+ create(board, currentBoardId) {
+ const isSandstorm =
+ Meteor.settings &&
+ Meteor.settings.public &&
+ Meteor.settings.public.sandstorm;
+ if (isSandstorm && currentBoardId) {
+ const currentBoard = Boards.findOne(currentBoardId);
+ currentBoard.archive();
+ }
+ this.mapHeadertoCardFieldIndex(board[0]);
+ const boardId = this.createBoard(board);
+ this.createLists(board, boardId);
+ this.createSwimlanes(boardId);
+ this.createCards(board, boardId);
+ return boardId;
+ }
+}
diff --git a/models/exporter.js b/models/exporter.js
new file mode 100644
index 00000000..3fa8ca3a
--- /dev/null
+++ b/models/exporter.js
@@ -0,0 +1,344 @@
+const stringify = require('csv-stringify');
+
+// exporter maybe is broken since Gridfs introduced, add fs and path
+export class Exporter {
+ constructor(boardId) {
+ this._boardId = boardId;
+ }
+
+ build() {
+ const fs = Npm.require('fs');
+ const os = Npm.require('os');
+ const path = Npm.require('path');
+
+ const byBoard = { boardId: this._boardId };
+ const byBoardNoLinked = {
+ boardId: this._boardId,
+ linkedId: { $in: ['', null] },
+ };
+ // we do not want to retrieve boardId in related elements
+ const noBoardId = {
+ fields: {
+ boardId: 0,
+ },
+ };
+ const result = {
+ _format: 'wekan-board-1.0.0',
+ };
+ _.extend(
+ result,
+ Boards.findOne(this._boardId, {
+ fields: {
+ stars: 0,
+ },
+ }),
+ );
+ result.lists = Lists.find(byBoard, noBoardId).fetch();
+ result.cards = Cards.find(byBoardNoLinked, noBoardId).fetch();
+ result.swimlanes = Swimlanes.find(byBoard, noBoardId).fetch();
+ result.customFields = CustomFields.find(
+ { boardIds: { $in: [this.boardId] } },
+ { fields: { boardId: 0 } },
+ ).fetch();
+ result.comments = CardComments.find(byBoard, noBoardId).fetch();
+ result.activities = Activities.find(byBoard, noBoardId).fetch();
+ result.rules = Rules.find(byBoard, noBoardId).fetch();
+ result.checklists = [];
+ result.checklistItems = [];
+ result.subtaskItems = [];
+ result.triggers = [];
+ result.actions = [];
+ result.cards.forEach(card => {
+ result.checklists.push(
+ ...Checklists.find({
+ cardId: card._id,
+ }).fetch(),
+ );
+ result.checklistItems.push(
+ ...ChecklistItems.find({
+ cardId: card._id,
+ }).fetch(),
+ );
+ result.subtaskItems.push(
+ ...Cards.find({
+ parentId: card._id,
+ }).fetch(),
+ );
+ });
+ result.rules.forEach(rule => {
+ result.triggers.push(
+ ...Triggers.find(
+ {
+ _id: rule.triggerId,
+ },
+ noBoardId,
+ ).fetch(),
+ );
+ result.actions.push(
+ ...Actions.find(
+ {
+ _id: rule.actionId,
+ },
+ noBoardId,
+ ).fetch(),
+ );
+ });
+
+ // [Old] for attachments we only export IDs and absolute url to original doc
+ // [New] Encode attachment to base64
+
+ const getBase64Data = function(doc, callback) {
+ let buffer = Buffer.allocUnsafe(0);
+ buffer.fill(0);
+
+ // callback has the form function (err, res) {}
+ const tmpFile = path.join(
+ os.tmpdir(),
+ `tmpexport${process.pid}${Math.random()}`,
+ );
+ const tmpWriteable = fs.createWriteStream(tmpFile);
+ const readStream = doc.createReadStream();
+ readStream.on('data', function(chunk) {
+ buffer = Buffer.concat([buffer, chunk]);
+ });
+
+ readStream.on('error', function() {
+ callback(null, null);
+ });
+ readStream.on('end', function() {
+ // done
+ fs.unlink(tmpFile, () => {
+ //ignored
+ });
+
+ callback(null, buffer.toString('base64'));
+ });
+ readStream.pipe(tmpWriteable);
+ };
+ const getBase64DataSync = Meteor.wrapAsync(getBase64Data);
+ result.attachments = Attachments.find(byBoard)
+ .fetch()
+ .map(attachment => {
+ let filebase64 = null;
+ filebase64 = getBase64DataSync(attachment);
+
+ return {
+ _id: attachment._id,
+ cardId: attachment.cardId,
+ //url: FlowRouter.url(attachment.url()),
+ file: filebase64,
+ name: attachment.original.name,
+ type: attachment.original.type,
+ };
+ });
+
+ // we also have to export some user data - as the other elements only
+ // include id but we have to be careful:
+ // 1- only exports users that are linked somehow to that board
+ // 2- do not export any sensitive information
+ const users = {};
+ result.members.forEach(member => {
+ users[member.userId] = true;
+ });
+ result.lists.forEach(list => {
+ users[list.userId] = true;
+ });
+ result.cards.forEach(card => {
+ users[card.userId] = true;
+ if (card.members) {
+ card.members.forEach(memberId => {
+ users[memberId] = true;
+ });
+ }
+ });
+ result.comments.forEach(comment => {
+ users[comment.userId] = true;
+ });
+ result.activities.forEach(activity => {
+ users[activity.userId] = true;
+ });
+ result.checklists.forEach(checklist => {
+ users[checklist.userId] = true;
+ });
+ const byUserIds = {
+ _id: {
+ $in: Object.getOwnPropertyNames(users),
+ },
+ };
+ // we use whitelist to be sure we do not expose inadvertently
+ // some secret fields that gets added to User later.
+ const userFields = {
+ fields: {
+ _id: 1,
+ username: 1,
+ 'profile.fullname': 1,
+ 'profile.initials': 1,
+ 'profile.avatarUrl': 1,
+ },
+ };
+ result.users = Users.find(byUserIds, userFields)
+ .fetch()
+ .map(user => {
+ // user avatar is stored as a relative url, we export absolute
+ if ((user.profile || {}).avatarUrl) {
+ user.profile.avatarUrl = FlowRouter.url(user.profile.avatarUrl);
+ }
+ return user;
+ });
+ return result;
+ }
+
+ buildCsv(delimiter = ',') {
+ const result = this.build();
+ const columnHeaders = [];
+ const cardRows = [];
+ columnHeaders.push(
+ 'Title',
+ 'Description',
+ 'Status',
+ 'Swimlane',
+ 'Owner',
+ 'Requested by',
+ 'Assigned by',
+ 'Members',
+ 'Assignees',
+ 'Labels',
+ 'Start at',
+ 'Due at',
+ 'End at',
+ 'Over time',
+ 'Spent time (hours)',
+ 'Created at',
+ 'Last modified at',
+ 'Last activity',
+ 'Vote',
+ 'Archived',
+ );
+
+ /* TODO: Try to get translations working.
+ These currently only bring English translations.
+ TAPi18n.__('title'),
+ TAPi18n.__('description'),
+ TAPi18n.__('status'),
+ TAPi18n.__('swimlane'),
+ TAPi18n.__('owner'),
+ TAPi18n.__('requested-by'),
+ TAPi18n.__('assigned-by'),
+ TAPi18n.__('members'),
+ TAPi18n.__('assignee'),
+ TAPi18n.__('labels'),
+ TAPi18n.__('card-start'),
+ TAPi18n.__('card-due'),
+ TAPi18n.__('card-end'),
+ TAPi18n.__('overtime-hours'),
+ TAPi18n.__('spent-time-hours'),
+ TAPi18n.__('createdAt'),
+ TAPi18n.__('last-modified-at'),
+ TAPi18n.__('last-activity'),
+ TAPi18n.__('voting'),
+ TAPi18n.__('archived'),
+ */
+
+ const stringifier = stringify({
+ header: true,
+ delimiter,
+ columns: columnHeaders,
+ });
+
+ stringifier.on('readable', function() {
+ let row;
+ while ((row = stringifier.read())) {
+ cardRows.push(row);
+ }
+ });
+
+ stringifier.on('error', function(err) {
+ // eslint-disable-next-line no-console
+ console.error(err.message);
+ });
+
+ result.cards.forEach(card => {
+ const currentRow = [];
+ currentRow.push(card.title);
+ currentRow.push(card.description);
+ currentRow.push(
+ result.lists.find(({ _id }) => _id === card.listId).title,
+ );
+ currentRow.push(
+ result.swimlanes.find(({ _id }) => _id === card.swimlaneId).title,
+ );
+ currentRow.push(
+ result.users.find(({ _id }) => _id === card.userId).username,
+ );
+ currentRow.push(card.requestedBy ? card.requestedBy : ' ');
+ currentRow.push(card.assignedBy ? card.assignedBy : ' ');
+ let usernames = '';
+ card.members.forEach(memberId => {
+ const user = result.users.find(({ _id }) => _id === memberId);
+ usernames = `${usernames + user.username} `;
+ });
+ currentRow.push(usernames.trim());
+ let assignees = '';
+ card.assignees.forEach(assigneeId => {
+ const user = result.users.find(({ _id }) => _id === assigneeId);
+ assignees = `${assignees + user.username} `;
+ });
+ currentRow.push(assignees.trim());
+ let labels = '';
+ card.labelIds.forEach(labelId => {
+ const label = result.labels.find(({ _id }) => _id === labelId);
+ labels = `${labels + label.name}-${label.color} `;
+ });
+ currentRow.push(labels.trim());
+ currentRow.push(card.startAt ? moment(card.startAt).format('LLLL') : ' ');
+ currentRow.push(card.dueAt ? moment(card.dueAt).format('LLLL') : ' ');
+ currentRow.push(card.endAt ? moment(card.endAt).format('LLLL') : ' ');
+ currentRow.push(card.isOvertime ? 'true' : 'false');
+ currentRow.push(card.spentTime);
+ currentRow.push(
+ card.createdAt ? moment(card.createdAt).format('LLLL') : ' ',
+ );
+ currentRow.push(
+ card.modifiedAt ? moment(card.modifiedAt).format('LLLL') : ' ',
+ );
+ currentRow.push(
+ card.dateLastActivity
+ ? moment(card.dateLastActivity).format('LLLL')
+ : ' ',
+ );
+ if (card.vote.question) {
+ let positiveVoters = '';
+ let negativeVoters = '';
+ card.vote.positive.forEach(userId => {
+ const user = result.users.find(({ _id }) => _id === userId);
+ positiveVoters = `${positiveVoters + user.username} `;
+ });
+ card.vote.negative.forEach(userId => {
+ const user = result.users.find(({ _id }) => _id === userId);
+ negativeVoters = `${negativeVoters + user.username} `;
+ });
+ const votingResult = `${
+ card.vote.public
+ ? `yes-${
+ card.vote.positive.length
+ }-${positiveVoters.trimRight()}-no-${
+ card.vote.negative.length
+ }-${negativeVoters.trimRight()}`
+ : `yes-${card.vote.positive.length}-no-${card.vote.negative.length}`
+ }`;
+ currentRow.push(`${card.vote.question}-${votingResult}`);
+ } else {
+ currentRow.push(' ');
+ }
+ currentRow.push(card.archived ? 'true' : 'false');
+ stringifier.write(currentRow);
+ });
+ stringifier.end();
+ return cardRows;
+ }
+
+ canExport(user) {
+ const board = Boards.findOne(this._boardId);
+ return board && board.isVisibleBy(user);
+ }
+}
diff --git a/models/import.js b/models/import.js
index fbfb1483..f3cbaa9b 100644
--- a/models/import.js
+++ b/models/import.js
@@ -1,22 +1,28 @@
import { TrelloCreator } from './trelloCreator';
import { WekanCreator } from './wekanCreator';
-import { Exporter } from './export';
+import { CsvCreator } from './csvCreator';
+import { Exporter } from './exporter';
import wekanMembersMapper from './wekanmapper';
Meteor.methods({
importBoard(board, data, importSource, currentBoard) {
- check(board, Object);
check(data, Object);
check(importSource, String);
check(currentBoard, Match.Maybe(String));
let creator;
switch (importSource) {
case 'trello':
+ check(board, Object);
creator = new TrelloCreator(data);
break;
case 'wekan':
+ check(board, Object);
creator = new WekanCreator(data);
break;
+ case 'csv':
+ check(board, Array);
+ creator = new CsvCreator(data);
+ break;
}
// 1. check all parameters are ok from a syntax point of view
diff --git a/models/users.js b/models/users.js
index a1bc5b0f..1a021bb7 100644
--- a/models/users.js
+++ b/models/users.js
@@ -1240,6 +1240,25 @@ if (Meteor.isServer) {
Authentication.checkLoggedIn(req.userId);
const data = Meteor.users.findOne({ _id: req.userId });
delete data.services;
+
+ // get all boards where the user is member of
+ let boards = Boards.find(
+ {
+ type: 'board',
+ 'members.userId': req.userId,
+ },
+ {
+ fields: { _id: 1, members: 1 },
+ },
+ );
+ boards = boards.map(b => {
+ const u = b.members.find(m => m.userId === req.userId);
+ delete u.userId;
+ u.boardId = b._id;
+ return u;
+ });
+
+ data.boards = boards;
JsonRoutes.sendResult(res, {
code: 200,
data,
@@ -1292,9 +1311,29 @@ if (Meteor.isServer) {
try {
Authentication.checkUserId(req.userId);
const id = req.params.userId;
+
+ // get all boards where the user is member of
+ let boards = Boards.find(
+ {
+ type: 'board',
+ 'members.userId': id,
+ },
+ {
+ fields: { _id: 1, members: 1 },
+ },
+ );
+ boards = boards.map(b => {
+ const u = b.members.find(m => m.userId === id);
+ delete u.userId;
+ u.boardId = b._id;
+ return u;
+ });
+
+ const user = Meteor.users.findOne({ _id: id });
+ user.boards = boards;
JsonRoutes.sendResult(res, {
code: 200,
- data: Meteor.users.findOne({ _id: id }),
+ data: user,
});
} catch (error) {
JsonRoutes.sendResult(res, {
diff --git a/package-lock.json b/package-lock.json
index 5b22af78..a1e0a02c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,18 +13,18 @@
}
},
"@babel/core": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
- "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz",
+ "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==",
"requires": {
"@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.0",
+ "@babel/generator": "^7.9.6",
"@babel/helper-module-transforms": "^7.9.0",
- "@babel/helpers": "^7.9.0",
- "@babel/parser": "^7.9.0",
+ "@babel/helpers": "^7.9.6",
+ "@babel/parser": "^7.9.6",
"@babel/template": "^7.8.6",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0",
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
@@ -33,12 +33,57 @@
"resolve": "^1.3.2",
"semver": "^5.4.1",
"source-map": "^0.5.0"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+ "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "requires": {
+ "@babel/types": "^7.9.6",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+ "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ },
+ "@babel/traverse": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+ "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.6",
+ "@babel/helper-function-name": "^7.9.5",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+ "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.9.5",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/generator": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
"integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+ "dev": true,
"requires": {
"@babel/types": "^7.9.5",
"jsesc": "^2.5.1",
@@ -103,14 +148,58 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.8.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
- "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
+ "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
"requires": {
"@babel/helper-member-expression-to-functions": "^7.8.3",
"@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/traverse": "^7.8.6",
- "@babel/types": "^7.8.6"
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+ "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "requires": {
+ "@babel/types": "^7.9.6",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+ "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ },
+ "@babel/traverse": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+ "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.6",
+ "@babel/helper-function-name": "^7.9.5",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+ "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.9.5",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/helper-simple-access": {
@@ -136,13 +225,57 @@
"integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g=="
},
"@babel/helpers": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
- "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
+ "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
"requires": {
"@babel/template": "^7.8.3",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0"
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6"
+ },
+ "dependencies": {
+ "@babel/generator": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+ "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
+ "requires": {
+ "@babel/types": "^7.9.6",
+ "jsesc": "^2.5.1",
+ "lodash": "^4.17.13",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/parser": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+ "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q=="
+ },
+ "@babel/traverse": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+ "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@babel/generator": "^7.9.6",
+ "@babel/helper-function-name": "^7.9.5",
+ "@babel/helper-split-export-declaration": "^7.8.3",
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0",
+ "lodash": "^4.17.13"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+ "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.9.5",
+ "lodash": "^4.17.13",
+ "to-fast-properties": "^2.0.0"
+ }
+ }
}
},
"@babel/highlight": {
@@ -161,9 +294,9 @@
"integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA=="
},
"@babel/runtime": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
- "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
+ "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -182,6 +315,7 @@
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
"integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+ "dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
"@babel/generator": "^7.9.5",
@@ -204,6 +338,11 @@
"to-fast-properties": "^2.0.0"
}
},
+ "@root/request": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@root/request/-/request-1.6.1.tgz",
+ "integrity": "sha512-8wrWyeBLRp7T8J36GkT3RODJ6zYmL0/maWlAUD5LOXT28D3TDquUepyYDKYANNA3Gc8R5ZCgf+AXvSTYpJEWwQ=="
+ },
"@samverschueren/stream-to-observable": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
@@ -894,6 +1033,11 @@
"resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
"integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4="
},
+ "csv-stringify": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.5.0.tgz",
+ "integrity": "sha512-G05575DSO/9vFzQxZN+Srh30cNyHk0SM0ePyiTChMD5WVt7GMTVPBQf4rtgMF6mqhNCJUPw4pN8LDe8MF9EYOA=="
+ },
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
@@ -3305,9 +3449,9 @@
"optional": true
},
"mongodb": {
- "version": "3.5.6",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.6.tgz",
- "integrity": "sha512-sh3q3GLDLT4QmoDLamxtAECwC3RGjq+oNuK1ENV8+tnipIavss6sMYt77hpygqlMOCt0Sla5cl7H4SKCVBCGEg==",
+ "version": "3.5.7",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.7.tgz",
+ "integrity": "sha512-lMtleRT+vIgY/JhhTn1nyGwnSMmJkJELp+4ZbrjctrnBxuLbj6rmLuJFz8W2xUzUqWmqoyVxJLYuC58ZKpcTYQ==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@@ -3733,6 +3877,11 @@
"path-to-regexp": "~1.2.1"
}
},
+ "papaparse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.2.0.tgz",
+ "integrity": "sha512-ylq1wgUSnagU+MKQtNeVqrPhZuMYBvOSL00DHycFTCxownF95gpLAk1HiHdUW77N8yxRq1qHXLdlIPyBSG9NSA=="
+ },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -3975,9 +4124,9 @@
"dev": true
},
"qs": {
- "version": "6.9.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
- "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw=="
+ "version": "6.9.4",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz",
+ "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ=="
},
"rc": {
"version": "1.2.8",
@@ -4392,9 +4541,9 @@
}
},
"source-map-support": {
- "version": "0.5.18",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.18.tgz",
- "integrity": "sha512-9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ==",
+ "version": "0.5.19",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
+ "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
diff --git a/package.json b/package.json
index 85dc1f9b..50ce8f24 100644
--- a/package.json
+++ b/package.json
@@ -54,23 +54,26 @@
"prettier-eslint": "^9.0.1"
},
"dependencies": {
- "@babel/core": "^7.9.0",
- "@babel/runtime": "^7.9.2",
+ "@babel/core": "^7.9.6",
+ "@babel/runtime": "^7.9.6",
+ "@root/request": "^1.6.1",
"ajv": "^5.0.0",
"babel-runtime": "^6.26.0",
"bcrypt": "^3.0.7",
"bson": "^4.0.3",
"bunyan": "^1.8.12",
+ "csv-stringify": "^5.5.0",
"es6-promise": "^4.2.4",
"flatted": "^2.0.1",
"gridfs-stream": "^0.5.3",
"ldapjs": "^1.0.2",
"meteor-node-stubs": "^0.4.1",
- "mongodb": "^3.5.0",
+ "mongodb": "^3.5.7",
"os": "^0.1.1",
"page": "^1.11.5",
- "qs": "^6.9.1",
- "source-map-support": "^0.5.16",
+ "papaparse": "^5.2.0",
+ "qs": "^6.9.4",
+ "source-map-support": "^0.5.19",
"xss": "^1.0.6"
}
}
diff --git a/rebuild-wekan.sh b/rebuild-wekan.sh
index 1655d8f7..b058a6c9 100755
--- a/rebuild-wekan.sh
+++ b/rebuild-wekan.sh
@@ -64,7 +64,7 @@ function npm_call(){
echo
PS3='Please enter your choice: '
-options=("Install Wekan dependencies" "Build Wekan" "Quit")
+options=("Install Wekan dependencies" "Build Wekan" "Run Meteor for development on Ethernet IP address port 4000" "Run Meteor for development on Custom IP address and port" "Quit")
select opt in "${options[@]}"
do
case $opt in
@@ -106,18 +106,19 @@ do
exit;
fi
- ## Latest npm with Meteor 1.8.x
- npm_call -g install npm
- npm_call -g install node-gyp
- # Latest fibers for Meteor 1.8.x
+ ## Latest npm with Meteor 1.8.x
+ npm_call -g install npm
+ npm_call -g install node-gyp
+ # Latest fibers for Meteor 1.8.x
sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
- npm_call -g install fibers
- # Install Meteor, if it's not yet installed
- curl https://install.meteor.com | bash
+ npm_call -g install fibers
+ # Install Meteor, if it's not yet installed
+ curl https://install.meteor.com | bash
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
break
;;
- "Build Wekan")
+
+ "Build Wekan")
echo "Building Wekan."
#wekan_repo_check
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
@@ -148,7 +149,7 @@ do
rm -rf .build
meteor build .build --directory
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
- # Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
+ # Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
rm -rf .build/bundle/programs/web.browser.legacy
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
@@ -164,9 +165,26 @@ do
echo Done.
break
;;
- "Quit")
+
+ "Run Meteor for development on Ethernet IP address port 4000")
+ IPADDRESS=$(ip addr show enp2s0 | grep 'inet ' | cut -d: -f2 | awk '{ print $2}' | cut -d '/' -f 1)
+ WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
+ break
+ ;;
+
+ "Run Meteor for development on Custom IP address and port")
+ ip address
+ echo "From above list, what is your IP address?"
+ read IPADDRESS
+ echo "On what port you would like to run Wekan?"
+ read PORT
+ WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:$PORT meteor run --exclude-archs web.browser.legacy,web.cordova --port $PORT
+ break
+ ;;
+
+ "Quit")
break
- ;;
- *) echo invalid option;;
+ ;;
+ *) echo invalid option;;
esac
done
diff --git a/releases/translations/pull-translations.sh b/releases/translations/pull-translations.sh
index b97f5a8d..ed2aa1ce 100755
--- a/releases/translations/pull-translations.sh
+++ b/releases/translations/pull-translations.sh
@@ -42,6 +42,9 @@ tx pull -f -l sl_SI
echo "Spanish:"
tx pull -f -l es
+echo "Spanish (Chile):"
+tx pull -f -l es_CL
+
echo "Spanish (Argentina):"
tx pull -f -l es_AR
diff --git a/sandstorm.js b/sandstorm.js
index 8615e419..de386d14 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -22,7 +22,7 @@ const sandstormBoard = {
if (isSandstorm && Meteor.isServer) {
const fs = require('fs');
- const Capnp = Npm.require(`capnp`);
+ const Capnp = Npm.require('capnp');
const Package = Capnp.importSystem('sandstorm/package.capnp');
const Powerbox = Capnp.importSystem('sandstorm/powerbox.capnp');
const Identity = Capnp.importSystem('sandstorm/identity.capnp');