Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b445ad789 | ||
|
|
9baed4256a | ||
|
|
2b4df7e8c7 | ||
|
|
6e28dec712 | ||
|
|
ba9f0ca672 | ||
|
|
7261ccdc90 | ||
|
|
6fbadbe5bc | ||
|
|
26d7ba72aa | ||
|
|
44e4df2492 | ||
|
|
d8482b533a | ||
|
|
2082480ddd | ||
|
|
e8c4e394fd | ||
|
|
0c5052ebae | ||
|
|
d3b2ae1975 | ||
|
|
f4f0f489eb | ||
|
|
3368ebf067 | ||
|
|
b0ac10d94a | ||
|
|
c87a8b86ae | ||
|
|
d5d71d7097 | ||
|
|
c960a8b909 | ||
|
|
3257f78d24 | ||
|
|
a9133bf933 | ||
|
|
8e8147b5ac | ||
|
|
711f4de3d7 | ||
|
|
68998e062e | ||
|
|
f40d1f6bd5 | ||
|
|
048c3cd14d | ||
|
|
08ca353205 | ||
|
|
c83cdc9335 | ||
|
|
e91e3c076d | ||
|
|
8be7eec2ca | ||
|
|
acc4493517 | ||
|
|
ff467402c0 | ||
|
|
49d3eb5a3f | ||
|
|
889aa6d652 | ||
|
|
78e0457843 | ||
|
|
7f568faef6 | ||
|
|
be045f3156 | ||
|
|
3b5e81d514 | ||
|
|
346bdf2ca8 | ||
|
|
501289786c | ||
|
|
24ffe223be | ||
|
|
32c561d78e | ||
|
|
ff65b37336 | ||
|
|
3f698ca012 | ||
|
|
785bc2556e | ||
|
|
e198282b4d | ||
|
|
24e59c378b | ||
|
|
c1b4aae573 | ||
|
|
f5339ef97f | ||
|
|
2b53fae16f | ||
|
|
1d3466c7a0 | ||
|
|
4d8b2029d2 | ||
|
|
8ad0da2109 | ||
|
|
12827ef0a6 | ||
|
|
4c399a41f7 | ||
|
|
25968a35cc | ||
|
|
548d095223 | ||
|
|
1683bcb3e5 | ||
|
|
991843acb0 | ||
|
|
8b85437b6b | ||
|
|
6259f0de70 | ||
|
|
d86bc1d84d | ||
|
|
88bdb0815d | ||
|
|
97f64fe5e6 | ||
|
|
196fef3a1b | ||
|
|
a2d756074f | ||
|
|
b2f23d619d | ||
|
|
9d1d66b0f5 | ||
|
|
c61e44d55b | ||
|
|
76c5c283b9 | ||
|
|
2d88afb77e | ||
|
|
7fd09761cb | ||
|
|
cb53c53c2b | ||
|
|
77ff6349f6 | ||
|
|
879ad4001d | ||
|
|
e1436ab964 | ||
|
|
007bea0a4b | ||
|
|
67b76558fc | ||
|
|
f60429efdf | ||
|
|
f140e20c6f | ||
|
|
c502ab9500 | ||
|
|
425ae55422 | ||
|
|
e9006a234b | ||
|
|
ef6aa4e415 | ||
|
|
1901c3c798 | ||
|
|
6cb046f29e | ||
|
|
e7e67e300b | ||
|
|
3f948ba49b | ||
|
|
96f33e4052 | ||
|
|
68d60f4f64 | ||
|
|
f7153da83d | ||
|
|
16d53897c7 | ||
|
|
32d405bca4 | ||
|
|
2f747fc09d | ||
|
|
32d5a1d3f7 | ||
|
|
db44b8ea54 | ||
|
|
1f512c8ba1 | ||
|
|
417dc9dc42 | ||
|
|
bd66ea8acc | ||
|
|
dba9d13b00 | ||
|
|
1e034a794f | ||
|
|
a261c66f34 | ||
|
|
b94bd73d33 | ||
|
|
a9be6b17b9 | ||
|
|
ac6f8e8551 | ||
|
|
23fb2bfc7f | ||
|
|
ff1c3722a8 | ||
|
|
1712368f6a | ||
|
|
d7529bf6b5 | ||
|
|
6b145bb3cc | ||
|
|
72e905675d |
No files matched your search
+103
-1
@@ -1,4 +1,106 @@
|
||||
# v1.94 2018-12-18 Wekan version
|
||||
# v2.02 2019-01-22 Wekan release
|
||||
|
||||
This release adds the following new features with Apache I-CLA, thanks to bentiss:
|
||||
|
||||
- [Add per card color: Card / Hamburger menu / Set Color](https://github.com/wekan/wekan/pull/2116) with [color picker](https://github.com/wekan/wekan/pull/2117);
|
||||
- [OpenAPI and generating of REST API Docs](https://github.com/wekan/wekan/pull/1965);
|
||||
- [Allow to retrieve full export of board from the REST API](https://github.com/wekan/wekan/pull/2118) through generic authentication.
|
||||
When the board is big, retrieving individual cards is heavy for both the server and the number of requests.
|
||||
Allowing the API to directly call on export and then treat the data makes the whole process smoother.
|
||||
|
||||
and adds the following new features with Apache I-CLA, thanks to xet7 and bentiss:
|
||||
|
||||
- [Translate and add color names to IFTTT Rules dropdown](https://github.com/wekan/wekan/commit/44e4df2492b95226f1297e7f556d61b1afaab714), thanks to xet7.
|
||||
[Fix to this feature blank item](https://github.com/wekan/wekan/pull/2119), thanks to bentiss.
|
||||
|
||||
and adds these updates:
|
||||
|
||||
- Update translations. Thanks to translators.
|
||||
- Added missing translation for 'days'. Thanks to Chartman123.
|
||||
|
||||
and fixes these typos;
|
||||
|
||||
- Fix typo, changelog year to 2019. Thanks to xorander00.
|
||||
- Fix License to 2019. Thanks to ajRiverav.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v2.01 2019-01-06 Wekan release
|
||||
|
||||
Update translations. Thanks to translators.
|
||||
|
||||
# v2.00 2019-01-04 Wekan release
|
||||
|
||||
Update translations. Thanks to translators.
|
||||
|
||||
# v1.99 2019-01-04 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [IFTTT Rules improvements](https://github.com/wekan/wekan/pull/2088). Thanks to Angtrim.
|
||||
- Add [find.sh](https://github.com/wekan/wekan/blob/devel/find.sh) bash script that ignores
|
||||
extra directories when searching. xet7 uses this a lot when developing. Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v1.98 2019-01-01 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Add optional Nginx reverse proxy config to docker-compose.yml and nginx directory. Thanks to MyTheValentinus.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- docker-compose.yml back to MongoDB 3.2.21 because 3.2.22 MongoDB container does not exist yet. Thanks to xet7.
|
||||
- [Mobile fixes](https://github.com/wekan/wekan/pull/2084), thanks to hupptechnologies:
|
||||
- Move home button / avatar bar from bottom to top. So at top first is home button / avatar, then others.
|
||||
- When clicking Move Card, go to correct page position. Currently it's at empty page position, and there is
|
||||
need to scroll page up to see Move Card options. It should work similarly like Copy Card, that is visible.
|
||||
- Also check that other buttons go to visible page.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v1.97 2018-12-26 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Upgrade to Node 8.15.0 and MongoDB 3.2.22.
|
||||
- Stacksmith: back to Meteor 1.6.x based Wekan, because Meteor 1.8.x based is currently broken.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.96 2018-12-24 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Combine all docker-compose.yml files](https://github.com/wekan/wekan/commit/3f948ba49ba7266c436ff138716bdcae9e879903).
|
||||
|
||||
and tries to fix following bugs:
|
||||
|
||||
- Revert "Improve authentication", remove login dropdown and "Default Authentication Method" that were added
|
||||
in Wekan v1.95 because login did not work with email address.
|
||||
It was later found that login did work with username, so later this could be fixed and added back.
|
||||
- Fixes to docker-compose.yml so that Wekan Meteor 1.6.x version would work.
|
||||
Most likely Meteor 1.8.x version is still broken.
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.95 2018-12-21 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Improve authentication](https://github.com/wekan/wekan/pull/2065): remove login dropdown,
|
||||
and add setting `DEFAULT_AUTHENTICATION_METHOD=ldap` or
|
||||
`sudo snap set wekan default-authentication-method='ldap'`. Thanks to Akuket. Closes wekan/wekan-ldap#31
|
||||
NOTE: This was reverted in Wekan v1.96 because login did not work with email address.
|
||||
It was later found that login did work with username, so later this could be fixed and added back.
|
||||
- [Drag handles and long press on mobile when using desktop mode of mobile
|
||||
browser](https://github.com/wekan/wekan/pull/2067). Thanks to hupptechnologies.
|
||||
- Upgrade to node v8.14.1 . Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions.
|
||||
|
||||
# v1.94 2018-12-18 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
|
||||
+20
-3
@@ -70,12 +70,13 @@ ARG LOGOUT_IN
|
||||
ARG LOGOUT_ON_HOURS
|
||||
ARG LOGOUT_ON_MINUTES
|
||||
ARG CORS
|
||||
ARG DEFAULT_AUTHENTICATION_METHOD
|
||||
|
||||
# Set the environment variables (defaults where required)
|
||||
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
|
||||
# ENV BUILD_DEPS="paxctl"
|
||||
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python git ca-certificates gcc-7" \
|
||||
NODE_VERSION=v8.14.0 \
|
||||
ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential python python3 python3-distutils git ca-certificates gcc-7" \
|
||||
NODE_VERSION=v8.15.0 \
|
||||
METEOR_RELEASE=1.6.0.1 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
@@ -142,7 +143,8 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
|
||||
LOGOUT_IN="" \
|
||||
LOGOUT_ON_HOURS="" \
|
||||
LOGOUT_ON_MINUTES="" \
|
||||
CORS=""
|
||||
CORS="" \
|
||||
DEFAULT_AUTHENTICATION_METHOD=""
|
||||
|
||||
# Copy the app to the image
|
||||
COPY ${SRC_PATH} /home/wekan/app
|
||||
@@ -249,6 +251,18 @@ RUN \
|
||||
cd /home/wekan/.meteor && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
|
||||
\
|
||||
# extract the OpenAPI specification
|
||||
npm install -g api2html && \
|
||||
mkdir -p /home/wekan/python && \
|
||||
chown wekan:wekan --recursive /home/wekan/python && \
|
||||
cd /home/wekan/python && \
|
||||
gosu wekan:wekan git clone --depth 1 -b master git://github.com/Kronuz/esprima-python && \
|
||||
cd /home/wekan/python/esprima-python && \
|
||||
python3 setup.py install --record files.txt && \
|
||||
cd /home/wekan/app &&\
|
||||
mkdir -p ./public/api && \
|
||||
python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml && \
|
||||
/opt/nodejs/bin/api2html -c ./public/wekan-logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml; \
|
||||
# Build app
|
||||
cd /home/wekan/app && \
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor add standard-minifier-js && \
|
||||
@@ -273,10 +287,13 @@ RUN \
|
||||
# Cleanup
|
||||
apt-get remove --purge -y ${BUILD_DEPS} && \
|
||||
apt-get autoremove -y && \
|
||||
npm uninstall -g api2html &&\
|
||||
rm -R /var/lib/apt/lists/* && \
|
||||
rm -R /home/wekan/.meteor && \
|
||||
rm -R /home/wekan/app && \
|
||||
rm -R /home/wekan/app_build && \
|
||||
cat /home/wekan/python/esprima-python/files.txt | xargs rm -R && \
|
||||
rm -R /home/wekan/python && \
|
||||
rm /home/wekan/install_meteor.sh
|
||||
|
||||
ENV PORT=8080
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2018 The Wekan Team
|
||||
Copyright (c) 2014-2019 The Wekan Team
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v1.94.0"
|
||||
appVersion: "v2.02.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
template(name="cardDetails")
|
||||
section.card-details.js-card-details.js-perfect-scrollbar: .card-details-canvas
|
||||
.card-details-header
|
||||
.card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
|
||||
+inlinedForm(classNames="js-card-details-title")
|
||||
+editCardTitleForm
|
||||
else
|
||||
@@ -234,6 +234,7 @@ template(name="cardDetailsActionsPopup")
|
||||
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
|
||||
li: a.js-end-date {{_ 'editCardEndDatePopup-title'}}
|
||||
li: a.js-spent-time {{_ 'editCardSpentTimePopup-title'}}
|
||||
li: a.js-set-card-color {{_ 'setCardColor-title'}}
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
|
||||
@@ -264,7 +265,7 @@ template(name="copyChecklistToManyCardsPopup")
|
||||
|
||||
template(name="boardsAndLists")
|
||||
label {{_ 'boards'}}:
|
||||
select.js-select-boards
|
||||
select.js-select-boards(autofocus)
|
||||
each boards
|
||||
if $eq _id currentBoard._id
|
||||
option(value="{{_id}}" selected) {{_ 'current'}}
|
||||
@@ -302,7 +303,7 @@ template(name="cardMorePopup")
|
||||
span {{_ 'link-card'}}
|
||||
= ' '
|
||||
i.fa.colorful(class="{{#if board.isPublic}}fa-globe{{else}}fa-lock{{/if}}")
|
||||
input.inline-input(type="text" id="cardURL" readonly value="{{ absoluteUrl }}")
|
||||
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'}}
|
||||
span.clearfix
|
||||
br
|
||||
@@ -335,7 +336,17 @@ template(name="cardMorePopup")
|
||||
span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
|
||||
a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
|
||||
|
||||
|
||||
template(name="setCardColorPopup")
|
||||
p.quiet
|
||||
span.clearfix
|
||||
label {{_ "select-color"}}
|
||||
form.edit-label
|
||||
.palette-colors: each colors
|
||||
span.card-label.palette-color.js-palette-color(class="card-details-{{color}}")
|
||||
if(isSelected color)
|
||||
i.fa.fa-check
|
||||
button.primary.confirm.js-submit {{_ 'save'}}
|
||||
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
|
||||
|
||||
template(name="cardDeletePopup")
|
||||
p {{_ "card-delete-pop"}}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
const subManager = new SubsManager();
|
||||
const { calculateIndexData, enableClickOnTouch } = Utils;
|
||||
|
||||
let cardColors;
|
||||
Meteor.startup(() => {
|
||||
cardColors = Cards.simpleSchema()._schema.color.allowedValues;
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
mixins() {
|
||||
return [Mixins.InfiniteScrolling, Mixins.PerfectScrollbar];
|
||||
@@ -22,6 +27,7 @@ BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
this.isLoaded = new ReactiveVar(false);
|
||||
this.currentColor = new ReactiveVar(this.data().color);
|
||||
const boardBody = this.parentComponent().parentComponent();
|
||||
//in Miniview parent is Board, not BoardBody.
|
||||
if (boardBody !== null) {
|
||||
@@ -337,6 +343,7 @@ Template.cardDetailsActionsPopup.events({
|
||||
'click .js-move-card': Popup.open('moveCard'),
|
||||
'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-move-card-to-top' (evt) {
|
||||
evt.preventDefault();
|
||||
const minOrder = _.min(this.list().cards(this.swimlaneId).map((c) => c.sort));
|
||||
@@ -583,6 +590,37 @@ Template.copyChecklistToManyCardsPopup.events({
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentCard = this.currentData();
|
||||
this.currentColor = new ReactiveVar(this.currentCard.color);
|
||||
},
|
||||
|
||||
colors() {
|
||||
return cardColors.map((color) => ({ color, name: '' }));
|
||||
},
|
||||
|
||||
isSelected(color) {
|
||||
return this.currentColor.get() === color;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-palette-color'() {
|
||||
this.currentColor.set(this.currentData().color);
|
||||
},
|
||||
'click .js-submit' () {
|
||||
this.currentCard.setColor(this.currentColor.get());
|
||||
Popup.close();
|
||||
},
|
||||
'click .js-remove-color'() {
|
||||
this.currentCard.setColor(null);
|
||||
Popup.close();
|
||||
},
|
||||
}];
|
||||
},
|
||||
}).register('setCardColorPopup');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentCard = this.currentData();
|
||||
|
||||
@@ -140,3 +140,80 @@ input[type="submit"].attachment-add-link-submit
|
||||
|
||||
.card-details-menu
|
||||
margin-right: 10px
|
||||
|
||||
card-details-color(background, color...)
|
||||
background: background !important
|
||||
if color
|
||||
color: color //overwrite text for better visibility
|
||||
|
||||
.card-details-green
|
||||
card-details-color(#3cb500, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-yellow
|
||||
card-details-color(#fad900)
|
||||
|
||||
.card-details-orange
|
||||
card-details-color(#ff9f19)
|
||||
|
||||
.card-details-red
|
||||
card-details-color(#eb4646, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-purple
|
||||
card-details-color(#a632db, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-blue
|
||||
card-details-color(#0079bf, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-pink
|
||||
card-details-color(#ff78cb)
|
||||
|
||||
.card-details-sky
|
||||
card-details-color(#00c2e0, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-black
|
||||
card-details-color(#4d4d4d, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-lime
|
||||
card-details-color(#51e898)
|
||||
|
||||
.card-details-silver
|
||||
card-details-color(#c0c0c0)
|
||||
|
||||
.card-details-peachpuff
|
||||
card-details-color(#ffdab9)
|
||||
|
||||
.card-details-crimson
|
||||
card-details-color(#dc143c, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-plum
|
||||
card-details-color(#dda0dd)
|
||||
|
||||
.card-details-darkgreen
|
||||
card-details-color(#006400, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-slateblue
|
||||
card-details-color(#6a5acd, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-magenta
|
||||
card-details-color(#ff00ff, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-gold
|
||||
card-details-color(#ffd700)
|
||||
|
||||
.card-details-navy
|
||||
card-details-color(#000080, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-gray
|
||||
card-details-color(#808080, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-saddlebrown
|
||||
card-details-color(#8b4513, #ffffff) //White text for better visibility
|
||||
|
||||
.card-details-paleturquoise
|
||||
card-details-color(#afeeee)
|
||||
|
||||
.card-details-mistyrose
|
||||
card-details-color(#ffe4e1)
|
||||
|
||||
.card-details-indigo
|
||||
card-details-color(#4b0082, #ffffff) //White text for better visibility
|
||||
@@ -1,7 +1,8 @@
|
||||
template(name="minicard")
|
||||
.minicard(
|
||||
class="{{#if isLinkedCard}}linked-card{{/if}}"
|
||||
class="{{#if isLinkedBoard}}linked-board{{/if}}")
|
||||
class="{{#if isLinkedBoard}}linked-board{{/if}}"
|
||||
class="minicard-{{colorClass}}")
|
||||
if cover
|
||||
.minicard-cover(style="background-image: url('{{cover.url}}');")
|
||||
if labels
|
||||
@@ -9,6 +10,8 @@ template(name="minicard")
|
||||
each labels
|
||||
.minicard-label(class="card-label-{{color}}" title="{{name}}")
|
||||
.minicard-title
|
||||
.handle
|
||||
.fa.fa-arrows
|
||||
if $eq 'prefix-with-full-path' currentBoard.presentParentTask
|
||||
.parent-prefix
|
||||
| {{ parentString ' > ' }}
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
// });
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.currentColor = new ReactiveVar(this.data().color);
|
||||
},
|
||||
|
||||
template() {
|
||||
return 'minicard';
|
||||
},
|
||||
|
||||
@@ -94,6 +94,19 @@
|
||||
.minicard-custom-field-item
|
||||
max-width:50%;
|
||||
flex-grow:1;
|
||||
.handle
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 5px;
|
||||
display:none;
|
||||
@media only screen and (max-width: 1199px) {
|
||||
display:block;
|
||||
}
|
||||
.fa-arrows
|
||||
font-size:20px;
|
||||
color: #ccc;
|
||||
.minicard-title
|
||||
p:last-child
|
||||
margin-bottom: 0
|
||||
@@ -189,3 +202,86 @@
|
||||
border-top-right-radius: 0
|
||||
z-index: 15
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,.15)
|
||||
|
||||
minicard-color(background, color...)
|
||||
background-color: background
|
||||
if color
|
||||
color: color //overwrite text for better visibility
|
||||
&:hover:not(.minicard-composer),
|
||||
.is-selected &,
|
||||
.draggable-hover-card &
|
||||
background: darken(background, 3%)
|
||||
.draggable-hover-card &
|
||||
background: darken(background, 7%)
|
||||
|
||||
.minicard-green
|
||||
minicard-color(#3cb500, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-yellow
|
||||
minicard-color(#fad900)
|
||||
|
||||
.minicard-orange
|
||||
minicard-color(#ff9f19)
|
||||
|
||||
.minicard-red
|
||||
minicard-color(#eb4646, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-purple
|
||||
minicard-color(#a632db, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-blue
|
||||
minicard-color(#0079bf, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-pink
|
||||
minicard-color(#ff78cb)
|
||||
|
||||
.minicard-sky
|
||||
minicard-color(#00c2e0, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-black
|
||||
minicard-color(#4d4d4d, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-lime
|
||||
minicard-color(#51e898)
|
||||
|
||||
.minicard-silver
|
||||
minicard-color(#c0c0c0)
|
||||
|
||||
.minicard-peachpuff
|
||||
minicard-color(#ffdab9)
|
||||
|
||||
.minicard-crimson
|
||||
minicard-color(#dc143c, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-plum
|
||||
minicard-color(#dda0dd)
|
||||
|
||||
.minicard-darkgreen
|
||||
minicard-color(#006400, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-slateblue
|
||||
minicard-color(#6a5acd, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-magenta
|
||||
minicard-color(#ff00ff, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-gold
|
||||
minicard-color(#ffd700)
|
||||
|
||||
.minicard-navy
|
||||
minicard-color(#000080, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-gray
|
||||
minicard-color(#808080, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-saddlebrown
|
||||
minicard-color(#8b4513, #ffffff) //White text for better visibility
|
||||
|
||||
.minicard-paleturquoise
|
||||
minicard-color(#afeeee)
|
||||
|
||||
.minicard-mistyrose
|
||||
minicard-color(#ffe4e1)
|
||||
|
||||
.minicard-indigo
|
||||
minicard-color(#4b0082, #ffffff) //White text for better visibility
|
||||
@@ -26,6 +26,13 @@ BlazeComponent.extendComponent({
|
||||
|
||||
const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)';
|
||||
const $cards = this.$('.js-minicards');
|
||||
|
||||
if(window.matchMedia('(max-width: 1199px)').matches) {
|
||||
$( '.js-minicards' ).sortable({
|
||||
handle: '.handle',
|
||||
});
|
||||
}
|
||||
|
||||
$cards.sortable({
|
||||
connectWith: '.js-minicards:not(.js-list-full)',
|
||||
tolerance: 'pointer',
|
||||
|
||||
@@ -188,8 +188,6 @@
|
||||
width: 100%
|
||||
padding: 10px 0px
|
||||
z-index: 30
|
||||
position: absolute
|
||||
bottom: 0px
|
||||
|
||||
ul
|
||||
width: calc(100% - 60px)
|
||||
|
||||
@@ -385,8 +385,8 @@ a
|
||||
|
||||
@media screen and (max-width: 800px)
|
||||
#content
|
||||
margin: 1px 0px 49px 0px
|
||||
height: calc(100% - 96px)
|
||||
margin: 1px 0px 0px 0px
|
||||
height: calc(100% - 0px)
|
||||
|
||||
> .wrapper
|
||||
margin-top: 0px
|
||||
|
||||
@@ -36,7 +36,33 @@ template(name="boardActions")
|
||||
div.trigger-text
|
||||
| {{_'r-card'}}
|
||||
div.trigger-button.js-add-arch-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-add-swimlane'}}
|
||||
div.trigger-dropdown
|
||||
input(id="swimlane-name",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-button.js-add-swimlane-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-create-card'}}
|
||||
div.trigger-dropdown
|
||||
input(id="card-name",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-text
|
||||
| {{_'r-in-list'}}
|
||||
div.trigger-dropdown
|
||||
input(id="list-name",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-text
|
||||
| {{_'r-in-swimlane'}}
|
||||
div.trigger-dropdown
|
||||
input(id="swimlane-name2",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-button.js-create-card-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,52 @@ BlazeComponent.extendComponent({
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-create-card-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
const cardName = this.find('#card-name').value;
|
||||
const listName = this.find('#list-name').value;
|
||||
const swimlaneName = this.find('#swimlane-name2').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const triggerId = Triggers.insert(trigger);
|
||||
const actionId = Actions.insert({
|
||||
actionType: 'createCard',
|
||||
swimlaneName,
|
||||
cardName,
|
||||
listName,
|
||||
boardId,
|
||||
desc,
|
||||
});
|
||||
Rules.insert({
|
||||
title: ruleName,
|
||||
triggerId,
|
||||
actionId,
|
||||
boardId,
|
||||
});
|
||||
|
||||
},
|
||||
'click .js-add-swimlane-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
const swimlaneName = this.find('#swimlane-name').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const triggerId = Triggers.insert(trigger);
|
||||
const actionId = Actions.insert({
|
||||
actionType: 'addSwimlane',
|
||||
swimlaneName,
|
||||
boardId,
|
||||
desc,
|
||||
});
|
||||
Rules.insert({
|
||||
title: ruleName,
|
||||
triggerId,
|
||||
actionId,
|
||||
boardId,
|
||||
});
|
||||
|
||||
},
|
||||
'click .js-add-spec-move-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
|
||||
@@ -35,9 +35,36 @@ template(name="cardActions")
|
||||
div.trigger-button.js-add-removeall-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{{_'r-set-color'}}}
|
||||
div.trigger-dropdown
|
||||
select(id="color-action")
|
||||
option(value="white") {{{_'color-white'}}}
|
||||
option(value="green") {{{_'color-green'}}}
|
||||
option(value="yellow") {{{_'color-yellow'}}}
|
||||
option(value="orange") {{{_'color-orange'}}}
|
||||
option(value="red") {{{_'color-red'}}}
|
||||
option(value="purple") {{{_'color-purple'}}}
|
||||
option(value="blue") {{{_'color-blue'}}}
|
||||
option(value="sky") {{{_'color-sky'}}}
|
||||
option(value="lime") {{{_'color-lime'}}}
|
||||
option(value="pink") {{{_'color-pink'}}}
|
||||
option(value="black") {{{_'color-black'}}}
|
||||
option(value="silver") {{{_'color-silver'}}}
|
||||
option(value="peachpuff") {{{_'color-peachpuff'}}}
|
||||
option(value="crimson") {{{_'color-crimson'}}}
|
||||
option(value="plum") {{{_'color-plum'}}}
|
||||
option(value="darkgreen") {{{_'color-darkgreen'}}}
|
||||
option(value="slateblue") {{{_'color-slateblue'}}}
|
||||
option(value="magenta") {{{_'color-magenta'}}}
|
||||
option(value="gold") {{{_'color-gold'}}}
|
||||
option(value="navy") {{{_'color-navy'}}}
|
||||
option(value="gray") {{{_'color-gray'}}}
|
||||
option(value="saddlebrown") {{{_'color-saddlebrown'}}}
|
||||
option(value="paleturquoise") {{{_'color-paleturquoise'}}}
|
||||
option(value="mistyrose") {{{_'color-mistyrose'}}}
|
||||
option(value="indigo") {{{_'color-indigo'}}}
|
||||
div.trigger-button.js-set-color-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
@@ -112,6 +112,26 @@ BlazeComponent.extendComponent({
|
||||
boardId,
|
||||
});
|
||||
},
|
||||
'click .js-set-color-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
const selectedColor = this.find('#color-action').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const triggerId = Triggers.insert(trigger);
|
||||
const actionId = Actions.insert({
|
||||
actionType: 'setColor',
|
||||
selectedColor,
|
||||
boardId,
|
||||
desc,
|
||||
});
|
||||
Rules.insert({
|
||||
title: ruleName,
|
||||
triggerId,
|
||||
actionId,
|
||||
boardId,
|
||||
});
|
||||
},
|
||||
}];
|
||||
},
|
||||
|
||||
|
||||
@@ -43,6 +43,25 @@ template(name="checklistActions")
|
||||
div.trigger-button.js-add-check-item-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{{_'r-add-checklist'}}}
|
||||
div.trigger-dropdown
|
||||
input(id="checklist-name-3",type=text,placeholder="{{{_'r-name'}}}")
|
||||
div.trigger-text
|
||||
| {{{_'r-with-items'}}}
|
||||
div.trigger-dropdown
|
||||
input(id="checklist-items",type=text,placeholder="{{{_'r-items-list'}}}")
|
||||
div.trigger-button.js-add-checklist-items-action.js-goto-rules
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{{_'r-checklist-note'}}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,6 +4,29 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
events() {
|
||||
return [{
|
||||
'click .js-add-checklist-items-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
const checklistName = this.find('#checklist-name-3').value;
|
||||
const checklistItems = this.find('#checklist-items').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const triggerId = Triggers.insert(trigger);
|
||||
const actionId = Actions.insert({
|
||||
actionType: 'addChecklistWithItems',
|
||||
checklistName,
|
||||
checklistItems,
|
||||
boardId,
|
||||
desc,
|
||||
});
|
||||
Rules.insert({
|
||||
title: ruleName,
|
||||
triggerId,
|
||||
actionId,
|
||||
boardId,
|
||||
});
|
||||
|
||||
},
|
||||
'click .js-add-checklist-action' (event) {
|
||||
const ruleName = this.data().ruleName.get();
|
||||
const trigger = this.data().triggerVar.get();
|
||||
|
||||
@@ -10,7 +10,10 @@
|
||||
display: inline-block
|
||||
float: left
|
||||
margin: revert
|
||||
|
||||
.hide-element
|
||||
display:none !important
|
||||
.user-details
|
||||
display:inline-block
|
||||
.rules-btns-group
|
||||
position: absolute
|
||||
right: 0
|
||||
@@ -120,6 +123,15 @@
|
||||
.trigger-text
|
||||
font-size: 16px
|
||||
display:inline-block
|
||||
.trigger-inline-button
|
||||
font-size: 16px
|
||||
display: inline;
|
||||
padding: 6px;
|
||||
border: 1px solid #eee
|
||||
border-radius: 4px
|
||||
box-shadow: inset -1px -1px 3px rgba(0,0,0,.05)
|
||||
&:hover, &.is-active
|
||||
box-shadow: 0 0 0 2px darken(white, 60%) inset
|
||||
.trigger-text.trigger-text-email
|
||||
margin-left: 5px;
|
||||
margin-top: 10px;
|
||||
@@ -160,6 +172,8 @@
|
||||
box-shadow: 0 0 0 2px darken(white, 60%) inset
|
||||
.trigger-button.trigger-button-email
|
||||
top:30px
|
||||
.trigger-button.trigger-button-person
|
||||
right:-40px
|
||||
.trigger-item.trigger-item-mail
|
||||
height:300px
|
||||
|
||||
|
||||
@@ -9,7 +9,13 @@ BlazeComponent.extendComponent({
|
||||
setTrigger() {
|
||||
this.rulesCurrentTab.set('trigger');
|
||||
},
|
||||
|
||||
sanitizeObject(obj){
|
||||
Object.keys(obj).forEach((key) => {
|
||||
if(obj[key] === '' || obj[key] === undefined){
|
||||
obj[key] = '*';
|
||||
}}
|
||||
);
|
||||
},
|
||||
setRulesList() {
|
||||
this.rulesCurrentTab.set('rulesList');
|
||||
},
|
||||
@@ -42,8 +48,27 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
'click .js-goto-action' (event) {
|
||||
event.preventDefault();
|
||||
// Add user to the trigger
|
||||
const username = $(event.currentTarget.offsetParent).find('.user-name').val();
|
||||
let trigger = this.triggerVar.get();
|
||||
trigger.userId = '*';
|
||||
if(username !== undefined ){
|
||||
const userFound = Users.findOne({username});
|
||||
if(userFound !== undefined){
|
||||
trigger.userId = userFound._id;
|
||||
this.triggerVar.set(trigger);
|
||||
}
|
||||
}
|
||||
// Sanitize trigger
|
||||
trigger = this.triggerVar.get();
|
||||
this.sanitizeObject(trigger);
|
||||
this.triggerVar.set(trigger);
|
||||
this.setAction();
|
||||
},
|
||||
'click .js-show-user-field' (event) {
|
||||
event.preventDefault();
|
||||
$(event.currentTarget.offsetParent).find('.user-details').removeClass('hide-element');
|
||||
},
|
||||
'click .js-goto-rules' (event) {
|
||||
event.preventDefault();
|
||||
this.setRulesList();
|
||||
@@ -68,3 +93,5 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
}).register('rulesMain');
|
||||
|
||||
|
||||
@@ -1,43 +1,58 @@
|
||||
template(name="boardTriggers")
|
||||
div.trigger-item
|
||||
div.trigger-item#trigger-two
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-card-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="gen-action")
|
||||
option(value="created") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
| {{_'r-when-a-card'}}
|
||||
div.trigger-inline-button.js-open-card-title-popup
|
||||
i.fa.fa-filter
|
||||
div.trigger-text
|
||||
| {{_'r-the-board'}}
|
||||
div.trigger-button.js-add-gen-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
| {{_'r-is'}}
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-card-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="create-action")
|
||||
option(value="created") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
| {{_'r-added-to'}}
|
||||
div.trigger-text
|
||||
| {{_'r-list'}}
|
||||
div.trigger-dropdown
|
||||
input(id="create-list-name",type=text,placeholder="{{_'r-list-name'}}")
|
||||
input(id="create-list-name",type=text,placeholder="{{_'r-list-name'}}")
|
||||
div.trigger-text
|
||||
| {{_'r-in-swimlane'}}
|
||||
div.trigger-dropdown
|
||||
input(id="create-swimlane-name",type=text,placeholder="{{_'r-swimlane-name'}}")
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-create-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-item#trigger-three
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-card-is-moved'}}
|
||||
| {{_'r-when-a-card'}}
|
||||
div.trigger-inline-button.js-open-card-title-popup
|
||||
i.fa.fa-filter
|
||||
div.trigger-text
|
||||
| {{_'r-is-moved'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-moved-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-item#trigger-four
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-card-is'}}
|
||||
| {{_'r-when-a-card'}}
|
||||
div.trigger-inline-button.js-open-card-title-popup
|
||||
i.fa.fa-filter
|
||||
div.trigger-text
|
||||
| {{_'r-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="move-action")
|
||||
option(value="moved-to") {{_'r-moved-to'}}
|
||||
@@ -45,21 +60,55 @@ template(name="boardTriggers")
|
||||
div.trigger-text
|
||||
| {{_'r-list'}}
|
||||
div.trigger-dropdown
|
||||
input(id="move-list-name",type=text,placeholder="{{_'r-list-name'}}")
|
||||
input(id="move-list-name",type=text,placeholder="{{_'r-list-name'}}")
|
||||
div.trigger-text
|
||||
| {{_'r-in-swimlane'}}
|
||||
div.trigger-dropdown
|
||||
input(id="create-swimlane-name",type=text,placeholder="{{_'r-swimlane-name'}}")
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-moved-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-item#trigger-five
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-card-is'}}
|
||||
| {{_'r-when-a-card'}}
|
||||
div.trigger-inline-button.js-open-card-title-popup
|
||||
i.fa.fa-filter
|
||||
div.trigger-text
|
||||
| {{_'r-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="arch-action")
|
||||
option(value="archived") {{_'r-archived'}}
|
||||
option(value="unarchived") {{_'r-unarchived'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-arch-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
| {{{_'r-board-note'}}}
|
||||
|
||||
template(name="boardCardTitlePopup")
|
||||
form
|
||||
label
|
||||
| Card Title Filter
|
||||
input.js-card-filter-name(type="text" value=title autofocus)
|
||||
input.js-card-filter-button.primary.wide(type="submit" value="{{_ 'set-filter'}}")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,59 +1,45 @@
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
|
||||
this.provaVar = new ReactiveVar('');
|
||||
this.currentPopupTriggerId = 'def';
|
||||
this.cardTitleFilters = {};
|
||||
},
|
||||
setNameFilter(name){
|
||||
this.cardTitleFilters[this.currentPopupTriggerId] = name;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [{
|
||||
'click .js-add-gen-trigger' (event) {
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const datas = this.data();
|
||||
const actionSelected = this.find('#gen-action').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
if (actionSelected === 'created') {
|
||||
datas.triggerVar.set({
|
||||
activityType: 'createCard',
|
||||
boardId,
|
||||
'listName': '*',
|
||||
desc,
|
||||
});
|
||||
}
|
||||
if (actionSelected === 'removed') {
|
||||
datas.triggerVar.set({
|
||||
activityType: 'removeCard',
|
||||
boardId,
|
||||
desc,
|
||||
});
|
||||
}
|
||||
|
||||
'click .js-open-card-title-popup'(event){
|
||||
const funct = Popup.open('boardCardTitle');
|
||||
const divId = $(event.currentTarget.parentNode.parentNode).attr('id');
|
||||
//console.log('current popup');
|
||||
//console.log(this.currentPopupTriggerId);
|
||||
this.currentPopupTriggerId = divId;
|
||||
funct.call(this, event);
|
||||
},
|
||||
'click .js-add-create-trigger' (event) {
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
const datas = this.data();
|
||||
const actionSelected = this.find('#create-action').value;
|
||||
const listName = this.find('#create-list-name').value;
|
||||
const swimlaneName = this.find('#create-swimlane-name').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
if (actionSelected === 'created') {
|
||||
datas.triggerVar.set({
|
||||
activityType: 'createCard',
|
||||
boardId,
|
||||
listName,
|
||||
desc,
|
||||
});
|
||||
}
|
||||
if (actionSelected === 'removed') {
|
||||
datas.triggerVar.set({
|
||||
activityType: 'removeCard',
|
||||
boardId,
|
||||
listName,
|
||||
desc,
|
||||
});
|
||||
}
|
||||
const divId = $(event.currentTarget.parentNode).attr('id');
|
||||
const cardTitle = this.cardTitleFilters[divId];
|
||||
// move to generic funciont
|
||||
datas.triggerVar.set({
|
||||
activityType: 'createCard',
|
||||
boardId,
|
||||
cardTitle,
|
||||
swimlaneName,
|
||||
listName,
|
||||
desc,
|
||||
});
|
||||
},
|
||||
'click .js-add-moved-trigger' (event) {
|
||||
const datas = this.data();
|
||||
const desc = Utils.getTriggerActionDesc(event, this);
|
||||
|
||||
const swimlaneName = this.find('#create-swimlane-name').value;
|
||||
const actionSelected = this.find('#move-action').value;
|
||||
const listName = this.find('#move-list-name').value;
|
||||
const boardId = Session.get('currentBoard');
|
||||
@@ -62,6 +48,7 @@ BlazeComponent.extendComponent({
|
||||
activityType: 'moveCard',
|
||||
boardId,
|
||||
listName,
|
||||
swimlaneName,
|
||||
'oldListName': '*',
|
||||
desc,
|
||||
});
|
||||
@@ -70,6 +57,7 @@ BlazeComponent.extendComponent({
|
||||
datas.triggerVar.set({
|
||||
activityType: 'moveCard',
|
||||
boardId,
|
||||
swimlaneName,
|
||||
'listName': '*',
|
||||
'oldListName': listName,
|
||||
desc,
|
||||
@@ -82,8 +70,9 @@ BlazeComponent.extendComponent({
|
||||
const boardId = Session.get('currentBoard');
|
||||
|
||||
datas.triggerVar.set({
|
||||
activityType: 'moveCard',
|
||||
'activityType': 'moveCard',
|
||||
boardId,
|
||||
'swimlaneName': '*',
|
||||
'listName':'*',
|
||||
'oldListName': '*',
|
||||
desc,
|
||||
@@ -114,3 +103,13 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
}).register('boardTriggers');
|
||||
|
||||
|
||||
Template.boardCardTitlePopup.events({
|
||||
submit(evt, tpl) {
|
||||
const title = tpl.$('.js-card-filter-name').val().trim();
|
||||
Popup.getOpenerComponent().setNameFilter(title);
|
||||
evt.preventDefault();
|
||||
Popup.close();
|
||||
},
|
||||
});
|
||||
@@ -1,79 +1,114 @@
|
||||
template(name="cardTriggers")
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-label-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="label-action")
|
||||
option(value="added") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-label-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-when-the-label-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="spec-label")
|
||||
each labels
|
||||
option(value="#{_id}")
|
||||
= name
|
||||
div.trigger-text
|
||||
option(value="#{_id}" style="background-color: #{name}")
|
||||
= translatedname
|
||||
div.trigger-text
|
||||
| {{_'r-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="spec-label-action")
|
||||
option(value="added") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-spec-label-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-member'}}
|
||||
div.trigger-dropdown
|
||||
select(id="gen-member-action")
|
||||
option(value="added") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-member-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-when-the-member'}}
|
||||
div.trigger-dropdown
|
||||
input(id="spec-member",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-text
|
||||
input(id="spec-member",type=text,placeholder="{{_'r-name'}}")
|
||||
div.trigger-text
|
||||
| {{_'r-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="spec-member-action")
|
||||
option(value="added") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-spec-member-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
div.trigger-item
|
||||
div.trigger-content
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-when-a-attach'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-is'}}
|
||||
div.trigger-dropdown
|
||||
select(id="attach-action")
|
||||
option(value="added") {{_'r-added-to'}}
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-attachment-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
@@ -6,7 +6,10 @@ BlazeComponent.extendComponent({
|
||||
const labels = Boards.findOne(Session.get('currentBoard')).labels;
|
||||
for (let i = 0; i < labels.length; i++) {
|
||||
if (labels[i].name === '' || labels[i].name === undefined) {
|
||||
labels[i].name = labels[i].color.toUpperCase();
|
||||
labels[i].name = labels[i].color;
|
||||
labels[i].translatedname = `${TAPi18n.__(`color-${ labels[i].color}`)}`;
|
||||
} else {
|
||||
labels[i].translatedname = labels[i].name;
|
||||
}
|
||||
}
|
||||
return labels;
|
||||
|
||||
@@ -9,6 +9,13 @@ template(name="checklistTriggers")
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-check-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -27,6 +34,13 @@ template(name="checklistTriggers")
|
||||
option(value="removed") {{_'r-removed-from'}}
|
||||
div.trigger-text
|
||||
| {{_'r-a-card'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-spec-check-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -38,6 +52,13 @@ template(name="checklistTriggers")
|
||||
select(id="gen-comp-check-action")
|
||||
option(value="completed") {{_'r-completed'}}
|
||||
option(value="uncompleted") {{_'r-made-incomplete'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-comp-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -53,6 +74,13 @@ template(name="checklistTriggers")
|
||||
select(id="spec-comp-check-action")
|
||||
option(value="completed") {{_'r-completed'}}
|
||||
option(value="uncompleted") {{_'r-made-incomplete'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-spec-comp-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -64,6 +92,13 @@ template(name="checklistTriggers")
|
||||
select(id="check-item-gen-action")
|
||||
option(value="checked") {{_'r-checked'}}
|
||||
option(value="unchecked") {{_'r-unchecked'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-gen-check-item-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
|
||||
@@ -79,5 +114,12 @@ template(name="checklistTriggers")
|
||||
select(id="check-item-spec-action")
|
||||
option(value="checked") {{_'r-checked'}}
|
||||
option(value="unchecked") {{_'r-unchecked'}}
|
||||
div.trigger-button.trigger-button-person.js-show-user-field
|
||||
i.fa.fa-user
|
||||
div.user-details.hide-element
|
||||
div.trigger-text
|
||||
| {{_'r-by'}}
|
||||
div.trigger-dropdown
|
||||
input(class="user-name",type=text,placeholder="{{_'username'}}")
|
||||
div.trigger-button.js-add-spec-check-item-trigger.js-goto-action
|
||||
i.fa.fa-plus
|
||||
+2
-4
@@ -27,11 +27,9 @@ window.Popup = new class {
|
||||
open(name) {
|
||||
const self = this;
|
||||
const popupName = `${name}Popup`;
|
||||
|
||||
function clickFromPopup(evt) {
|
||||
return $(evt.target).closest('.js-pop-over').length !== 0;
|
||||
}
|
||||
|
||||
return function(evt) {
|
||||
// If a popup is already opened, clicking again on the opener element
|
||||
// should close it -- and interrupt the current `open` function.
|
||||
@@ -57,7 +55,6 @@ window.Popup = new class {
|
||||
self._stack = [];
|
||||
openerElement = evt.currentTarget;
|
||||
}
|
||||
|
||||
$(openerElement).addClass('is-active');
|
||||
evt.preventDefault();
|
||||
|
||||
@@ -139,6 +136,7 @@ window.Popup = new class {
|
||||
const openerElement = this._getTopStack().openerElement;
|
||||
$(openerElement).removeClass('is-active');
|
||||
|
||||
|
||||
this._stack = [];
|
||||
}
|
||||
}
|
||||
@@ -200,7 +198,7 @@ escapeActions.forEach((actionName) => {
|
||||
() => Popup[actionName](),
|
||||
() => Popup.isOpen(),
|
||||
{
|
||||
noClickEscapeOn: '.js-pop-over',
|
||||
noClickEscapeOn: '.js-pop-over,.js-open-card-title-popup',
|
||||
enabledOnClick: actionName === 'close',
|
||||
}
|
||||
);
|
||||
|
||||
+11
-1
@@ -218,10 +218,20 @@ Utils = {
|
||||
const element = tempInstance.$(triggerEls[i]);
|
||||
if (element.hasClass('trigger-text')) {
|
||||
finalString += element.text().toLowerCase();
|
||||
} else if (element.hasClass('user-details')) {
|
||||
let username = element.find('input').val();
|
||||
if(username === undefined || username === ''){
|
||||
username = '*';
|
||||
}
|
||||
finalString += `${element.find('.trigger-text').text().toLowerCase() } ${ username}`;
|
||||
} else if (element.find('select').length > 0) {
|
||||
finalString += element.find('select option:selected').text().toLowerCase();
|
||||
} else if (element.find('input').length > 0) {
|
||||
finalString += element.find('input').val();
|
||||
let inputvalue = element.find('input').val();
|
||||
if(inputvalue === undefined || inputvalue === ''){
|
||||
inputvalue = '*';
|
||||
}
|
||||
finalString += inputvalue;
|
||||
}
|
||||
// Add space
|
||||
if (i !== length - 1) {
|
||||
|
||||
@@ -1,238 +0,0 @@
|
||||
version: '2'
|
||||
|
||||
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
# 1) Edit settings
|
||||
# 2) docker-compose up -d
|
||||
|
||||
services:
|
||||
|
||||
wekandb:
|
||||
image: mongo:3.2.21
|
||||
container_name: wekan-db
|
||||
restart: always
|
||||
command: mongod --smallfiles --oplogSize 128
|
||||
networks:
|
||||
- wekan-tier
|
||||
expose:
|
||||
- 27017
|
||||
volumes:
|
||||
- wekan-db:/data/db
|
||||
- wekan-db-dump:/dump
|
||||
|
||||
wekan:
|
||||
image: quay.io/wekan/wekan
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
networks:
|
||||
- wekan-tier
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
- NODE_VERSION=${NODE_VERSION}
|
||||
- METEOR_RELEASE=${METEOR_RELEASE}
|
||||
- NPM_VERSION=${NPM_VERSION}
|
||||
- ARCHITECTURE=${ARCHITECTURE}
|
||||
- SRC_PATH=${SRC_PATH}
|
||||
- METEOR_EDGE=${METEOR_EDGE}
|
||||
- USE_EDGE=${USE_EDGE}
|
||||
ports:
|
||||
# Docker outsideport:insideport
|
||||
- 80:8080
|
||||
environment:
|
||||
- MONGO_URL=mongodb://wekandb:27017/wekan
|
||||
- ROOT_URL=http://localhost
|
||||
# Wekan Export Board works when WITH_API=true.
|
||||
# If you disable Wekan API with false, Export Board does not work.
|
||||
- WITH_API=true
|
||||
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||
#- CORS=*
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
#- MATOMO_ADDRESS=
|
||||
# The value of the site ID given in Matomo server for Wekan
|
||||
# example: - MATOMO_SITE_ID=12345
|
||||
#- MATOMO_SITE_ID=
|
||||
# The option do not track which enables users to not be tracked by matomo
|
||||
# example: - MATOMO_DO_NOT_TRACK=false
|
||||
#- MATOMO_DO_NOT_TRACK=
|
||||
# The option that allows matomo to retrieve the username:
|
||||
# example: MATOMO_WITH_USERNAME=true
|
||||
#- MATOMO_WITH_USERNAME=false
|
||||
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||
# Setting this to false is not recommended, it also disables all other browser policy protections
|
||||
# and allows all iframing etc. See wekan/server/policy.js
|
||||
- BROWSER_POLICY_ENABLED=true
|
||||
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||
#- TRUSTED_URL=
|
||||
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#- WEBHOOKS_ATTRIBUTES=
|
||||
# Enable the OAuth2 connection
|
||||
# example: OAUTH2_ENABLED=true
|
||||
#- OAUTH2_ENABLED=false
|
||||
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
# OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
|
||||
# example: OAUTH2_CLIENT_ID=abcde12345
|
||||
#- OAUTH2_CLIENT_ID=
|
||||
# OAuth2 Secret, for example from Rocket.Chat: Example: 54321abcde
|
||||
# example: OAUTH2_SECRET=54321abcde
|
||||
#- OAUTH2_SECRET=
|
||||
# OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com
|
||||
# example: OAUTH2_SERVER_URL=https://chat.example.com
|
||||
#- OAUTH2_SERVER_URL=
|
||||
# OAuth2 Authorization Endpoint. Example: /oauth/authorize
|
||||
# example: OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||
#- OAUTH2_AUTH_ENDPOINT=
|
||||
# OAuth2 Userinfo Endpoint. Example: /oauth/userinfo
|
||||
# example: OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||
#- OAUTH2_USERINFO_ENDPOINT=
|
||||
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||
# example: OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
#- OAUTH2_TOKEN_ENDPOINT=
|
||||
# LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||
# example : LDAP_ENABLE=true
|
||||
#- LDAP_ENABLE=false
|
||||
# LDAP_PORT : The port of the LDAP server
|
||||
# example : LDAP_PORT=389
|
||||
#- LDAP_PORT=389
|
||||
# LDAP_HOST : The host server for the LDAP server
|
||||
# example : LDAP_HOST=localhost
|
||||
#- LDAP_HOST=
|
||||
# LDAP_BASEDN : The base DN for the LDAP Tree
|
||||
# example : LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||
#- LDAP_BASEDN=
|
||||
# LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
|
||||
# example : LDAP_LOGIN_FALLBACK=true
|
||||
#- LDAP_LOGIN_FALLBACK=false
|
||||
# LDAP_RECONNECT : Reconnect to the server if the connection is lost
|
||||
# example : LDAP_RECONNECT=false
|
||||
#- LDAP_RECONNECT=true
|
||||
# LDAP_TIMEOUT : Overall timeout, in milliseconds
|
||||
# example : LDAP_TIMEOUT=12345
|
||||
#- LDAP_TIMEOUT=10000
|
||||
# LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
|
||||
# example : LDAP_IDLE_TIMEOUT=12345
|
||||
#- LDAP_IDLE_TIMEOUT=10000
|
||||
# LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
|
||||
# example : LDAP_CONNECT_TIMEOUT=12345
|
||||
#- LDAP_CONNECT_TIMEOUT=10000
|
||||
# LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
|
||||
# example : LDAP_AUTHENTIFICATION=true
|
||||
#- LDAP_AUTHENTIFICATION=false
|
||||
# LDAP_AUTHENTIFICATION_USERDN : The search user DN
|
||||
# example : LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
|
||||
#- LDAP_AUTHENTIFICATION_USERDN=
|
||||
# LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
|
||||
# example : AUTHENTIFICATION_PASSWORD=admin
|
||||
#- LDAP_AUTHENTIFICATION_PASSWORD=
|
||||
# LDAP_LOG_ENABLED : Enable logs for the module
|
||||
# example : LDAP_LOG_ENABLED=true
|
||||
#- LDAP_LOG_ENABLED=false
|
||||
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||
# example : LDAP_BACKGROUND_SYNC=true
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
#- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
# example : LDAP_ENCRYPTION=ssl
|
||||
#- LDAP_ENCRYPTION=false
|
||||
# LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
# example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#- LDAP_CA_CERT=
|
||||
# LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
|
||||
# example : LDAP_REJECT_UNAUTHORIZED=true
|
||||
#- LDAP_REJECT_UNAUTHORIZED=false
|
||||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
#- LDAP_USER_SEARCH_FILTER=
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
#- LDAP_USER_SEARCH_SCOPE=
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
# example : LDAP_USER_SEARCH_FIELD=uid
|
||||
#- LDAP_USER_SEARCH_FIELD=
|
||||
# LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
|
||||
# example : LDAP_SEARCH_PAGE_SIZE=12345
|
||||
#- LDAP_SEARCH_PAGE_SIZE=0
|
||||
# LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
|
||||
# example : LDAP_SEARCH_SIZE_LIMIT=12345
|
||||
#- LDAP_SEARCH_SIZE_LIMIT=0
|
||||
# LDAP_GROUP_FILTER_ENABLE : Enable group filtering
|
||||
# example : LDAP_GROUP_FILTER_ENABLE=true
|
||||
#- LDAP_GROUP_FILTER_ENABLE=false
|
||||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
#- LDAP_GROUP_FILTER_OBJECTCLASS=
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_NAME=
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
#- LDAP_UNIQUE_IDENTIFIER_FIELD=
|
||||
# LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
|
||||
# example : LDAP_UTF8_NAMES_SLUGIFY=false
|
||||
#- LDAP_UTF8_NAMES_SLUGIFY=true
|
||||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
#- LDAP_USERNAME_FIELD=
|
||||
# LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
|
||||
# example : LDAP_FULLNAME_FIELD=fullname
|
||||
#- LDAP_FULLNAME_FIELD=
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
#- LDAP_MERGE_EXISTING_USERS=false
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
#- LDAP_SYNC_USER_DATA=false
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||
#- LDAP_SYNC_USER_DATA_FIELDMAP=
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
#- LDAP_SYNC_GROUP_ROLES=
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
#- LDAP_DEFAULT_DOMAIN=
|
||||
# LOGOUT_WITH_TIMER : Enables or not the option logout with timer
|
||||
# example : LOGOUT_WITH_TIMER=true
|
||||
#- LOGOUT_WITH_TIMER=
|
||||
# LOGOUT_IN : The number of days
|
||||
# example : LOGOUT_IN=1
|
||||
#- LOGOUT_IN=
|
||||
# LOGOUT_ON_HOURS : The number of hours
|
||||
# example : LOGOUT_ON_HOURS=9
|
||||
#- LOGOUT_ON_HOURS=
|
||||
# LOGOUT_ON_MINUTES : The number of minutes
|
||||
# example : LOGOUT_ON_MINUTES=55
|
||||
#- LOGOUT_ON_MINUTES=
|
||||
|
||||
depends_on:
|
||||
- wekandb
|
||||
|
||||
volumes:
|
||||
wekan-db:
|
||||
driver: local
|
||||
wekan-db-dump:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
wekan-tier:
|
||||
driver: bridge
|
||||
@@ -1,260 +0,0 @@
|
||||
version: '2'
|
||||
|
||||
# Docker: Wekan <=> MongoDB <=> ToroDB => PostgreSQL read-only mirroring
|
||||
# for reporting with SQL, and accessing with any programming language,
|
||||
# reporting package and Office suite that can connect to PostgreSQL.
|
||||
# https://github.com/wekan/wekan-postgresql
|
||||
|
||||
services:
|
||||
torodb-stampede:
|
||||
image: torodb/stampede:1.0.0-SNAPSHOT
|
||||
networks:
|
||||
- wekan-tier
|
||||
links:
|
||||
- postgres
|
||||
- mongodb
|
||||
environment:
|
||||
- POSTGRES_PASSWORD
|
||||
- TORODB_SETUP=true
|
||||
- TORODB_SYNC_SOURCE=mongodb:27017
|
||||
- TORODB_BACKEND_HOST=postgres
|
||||
- TORODB_BACKEND_PORT=5432
|
||||
- TORODB_BACKEND_DATABASE=wekan
|
||||
- TORODB_BACKEND_USER=wekan
|
||||
- TORODB_BACKEND_PASSWORD=wekan
|
||||
- DEBUG
|
||||
postgres:
|
||||
image: postgres:9.6
|
||||
networks:
|
||||
- wekan-tier
|
||||
environment:
|
||||
- POSTGRES_PASSWORD
|
||||
ports:
|
||||
- "15432:5432"
|
||||
mongodb:
|
||||
image: mongo:3.2
|
||||
networks:
|
||||
- wekan-tier
|
||||
ports:
|
||||
- "28017:27017"
|
||||
entrypoint:
|
||||
- /bin/bash
|
||||
- "-c"
|
||||
- mongo --nodb --eval '
|
||||
var db;
|
||||
while (!db) {
|
||||
try {
|
||||
db = new Mongo("mongodb:27017").getDB("local");
|
||||
} catch(ex) {}
|
||||
sleep(3000);
|
||||
};
|
||||
rs.initiate({_id:"rs1",members:[{_id:0,host:"mongodb:27017"}]});
|
||||
' 1>/dev/null 2>&1 &
|
||||
mongod --replSet rs1
|
||||
wekan:
|
||||
image: quay.io/wekan/wekan
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
networks:
|
||||
- wekan-tier
|
||||
ports:
|
||||
- 80:8080
|
||||
environment:
|
||||
- MONGO_URL=mongodb://mongodb:27017/wekan
|
||||
- ROOT_URL=http://localhost
|
||||
#---------------------------------------------------------------
|
||||
# == WEKAN API ==
|
||||
# Wekan Export Board works when WITH_API='true'.
|
||||
# If you disable Wekan API, Export Board does not work.
|
||||
- WITH_API=true
|
||||
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||
#- CORS=*
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
#- MATOMO_ADDRESS=
|
||||
# The value of the site ID given in Matomo server for Wekan
|
||||
# example: - MATOMO_SITE_ID=12345
|
||||
#- MATOMO_SITE_ID=
|
||||
# The option do not track which enables users to not be tracked by matomo
|
||||
# example: - MATOMO_DO_NOT_TRACK=false
|
||||
#- MATOMO_DO_NOT_TRACK=
|
||||
# The option that allows matomo to retrieve the username:
|
||||
# example: MATOMO_WITH_USERNAME=true
|
||||
#- MATOMO_WITH_USERNAME=false
|
||||
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||
# Setting this to false is not recommended, it also disables all other browser policy protections
|
||||
# and allows all iframing etc. See wekan/server/policy.js
|
||||
- BROWSER_POLICY_ENABLED=true
|
||||
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||
#- TRUSTED_URL=
|
||||
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#- WEBHOOKS_ATTRIBUTES=
|
||||
# Enable the OAuth2 connection
|
||||
# example: OAUTH2_ENABLED=true
|
||||
#- OAUTH2_ENABLED=false
|
||||
# OAuth2 docs: https://github.com/wekan/wekan/wiki/OAuth2
|
||||
# OAuth2 Client ID, for example from Rocket.Chat. Example: abcde12345
|
||||
# example: OAUTH2_CLIENT_ID=abcde12345
|
||||
#- OAUTH2_CLIENT_ID=
|
||||
# OAuth2 Secret, for example from Rocket.Chat: Example: 54321abcde
|
||||
# example: OAUTH2_SECRET=54321abcde
|
||||
#- OAUTH2_SECRET=
|
||||
# OAuth2 Server URL, for example Rocket.Chat. Example: https://chat.example.com
|
||||
# example: OAUTH2_SERVER_URL=https://chat.example.com
|
||||
#- OAUTH2_SERVER_URL=
|
||||
# OAuth2 Authorization Endpoint. Example: /oauth/authorize
|
||||
# example: OAUTH2_AUTH_ENDPOINT=/oauth/authorize
|
||||
#- OAUTH2_AUTH_ENDPOINT=
|
||||
# OAuth2 Userinfo Endpoint. Example: /oauth/userinfo
|
||||
# example: OAUTH2_USERINFO_ENDPOINT=/oauth/userinfo
|
||||
#- OAUTH2_USERINFO_ENDPOINT=
|
||||
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||
# example: OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
#- OAUTH2_TOKEN_ENDPOINT=
|
||||
# LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||
# example : LDAP_ENABLE=true
|
||||
#- LDAP_ENABLE=false
|
||||
# LDAP_PORT : The port of the LDAP server
|
||||
# example : LDAP_PORT=389
|
||||
#- LDAP_PORT=389
|
||||
# LDAP_HOST : The host server for the LDAP server
|
||||
# example : LDAP_HOST=localhost
|
||||
#- LDAP_HOST=
|
||||
# LDAP_BASEDN : The base DN for the LDAP Tree
|
||||
# example : LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||
#- LDAP_BASEDN=
|
||||
# LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
|
||||
# example : LDAP_LOGIN_FALLBACK=true
|
||||
#- LDAP_LOGIN_FALLBACK=false
|
||||
# LDAP_RECONNECT : Reconnect to the server if the connection is lost
|
||||
# example : LDAP_RECONNECT=false
|
||||
#- LDAP_RECONNECT=true
|
||||
# LDAP_TIMEOUT : Overall timeout, in milliseconds
|
||||
# example : LDAP_TIMEOUT=12345
|
||||
#- LDAP_TIMEOUT=10000
|
||||
# LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
|
||||
# example : LDAP_IDLE_TIMEOUT=12345
|
||||
#- LDAP_IDLE_TIMEOUT=10000
|
||||
# LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
|
||||
# example : LDAP_CONNECT_TIMEOUT=12345
|
||||
#- LDAP_CONNECT_TIMEOUT=10000
|
||||
# LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
|
||||
# example : LDAP_AUTHENTIFICATION=true
|
||||
#- LDAP_AUTHENTIFICATION=false
|
||||
# LDAP_AUTHENTIFICATION_USERDN : The search user DN
|
||||
# example : LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
|
||||
#- LDAP_AUTHENTIFICATION_USERDN=
|
||||
# LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
|
||||
# example : AUTHENTIFICATION_PASSWORD=admin
|
||||
#- LDAP_AUTHENTIFICATION_PASSWORD=
|
||||
# LDAP_LOG_ENABLED : Enable logs for the module
|
||||
# example : LDAP_LOG_ENABLED=true
|
||||
#- LDAP_LOG_ENABLED=false
|
||||
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||
# example : LDAP_BACKGROUND_SYNC=true
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
#- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
# example : LDAP_ENCRYPTION=ssl
|
||||
#- LDAP_ENCRYPTION=false
|
||||
# LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
# example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#- LDAP_CA_CERT=
|
||||
# LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
|
||||
# example : LDAP_REJECT_UNAUTHORIZED=true
|
||||
#- LDAP_REJECT_UNAUTHORIZED=false
|
||||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
#- LDAP_USER_SEARCH_FILTER=
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
#- LDAP_USER_SEARCH_SCOPE=
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
# example : LDAP_USER_SEARCH_FIELD=uid
|
||||
#- LDAP_USER_SEARCH_FIELD=
|
||||
# LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
|
||||
# example : LDAP_SEARCH_PAGE_SIZE=12345
|
||||
#- LDAP_SEARCH_PAGE_SIZE=0
|
||||
# LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
|
||||
# example : LDAP_SEARCH_SIZE_LIMIT=12345
|
||||
#- LDAP_SEARCH_SIZE_LIMIT=0
|
||||
# LDAP_GROUP_FILTER_ENABLE : Enable group filtering
|
||||
# example : LDAP_GROUP_FILTER_ENABLE=true
|
||||
#- LDAP_GROUP_FILTER_ENABLE=false
|
||||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
#- LDAP_GROUP_FILTER_OBJECTCLASS=
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_NAME=
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
#- LDAP_UNIQUE_IDENTIFIER_FIELD=
|
||||
# LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
|
||||
# example : LDAP_UTF8_NAMES_SLUGIFY=false
|
||||
#- LDAP_UTF8_NAMES_SLUGIFY=true
|
||||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
#- LDAP_USERNAME_FIELD=
|
||||
# LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
|
||||
# example : LDAP_FULLNAME_FIELD=fullname
|
||||
#- LDAP_FULLNAME_FIELD=
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
#- LDAP_MERGE_EXISTING_USERS=false
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
#- LDAP_SYNC_USER_DATA=false
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||
#- LDAP_SYNC_USER_DATA_FIELDMAP=
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
#- LDAP_SYNC_GROUP_ROLES=
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
#- LDAP_DEFAULT_DOMAIN=
|
||||
# LOGOUT_WITH_TIMER : Enables or not the option logout with timer
|
||||
# example : LOGOUT_WITH_TIMER=true
|
||||
#- LOGOUT_WITH_TIMER=
|
||||
# LOGOUT_IN : The number of days
|
||||
# example : LOGOUT_IN=1
|
||||
#- LOGOUT_IN=
|
||||
# LOGOUT_ON_HOURS : The number of hours
|
||||
# example : LOGOUT_ON_HOURS=9
|
||||
#- LOGOUT_ON_HOURS=
|
||||
# LOGOUT_ON_MINUTES : The number of minutes
|
||||
# example : LOGOUT_ON_MINUTES=55
|
||||
#- LOGOUT_ON_MINUTES=
|
||||
|
||||
depends_on:
|
||||
- mongodb
|
||||
|
||||
volumes:
|
||||
mongodb:
|
||||
driver: local
|
||||
mongodb-dump:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
wekan-tier:
|
||||
driver: bridge
|
||||
+298
-4
@@ -1,13 +1,101 @@
|
||||
version: '2'
|
||||
|
||||
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
# 1) Edit settings
|
||||
# 2) docker-compose up -d
|
||||
#---------------------------------------------------------------------------------------------------------
|
||||
# ==== CREATING USERS AND LOGGING IN TO WEKAN ====
|
||||
# https://github.com/wekan/wekan/wiki/Adding-users
|
||||
#---------------------------------------------------------------------------------------------------------
|
||||
# ==== FORGOT PASSWORD ====
|
||||
# https://github.com/wekan/wekan/wiki/Forgot-Password
|
||||
#---------------------------------------------------------------------------------------------------------
|
||||
# ==== Upgrading Wekan to new version =====
|
||||
# 1) Stop Wekan:
|
||||
# docker-compose stop
|
||||
# 2) Download new version:
|
||||
# docker-compose pull wekan
|
||||
# 3) If you have more networks for VPN etc as described at bottom of
|
||||
# this config, download for them too:
|
||||
# docker-compose pull wekan2
|
||||
# 4) Start Wekan:
|
||||
# docker-compose start
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: DEDICATED DOCKER USER ====
|
||||
# 1) Optionally create a dedicated user for Wekan, for example:
|
||||
# sudo useradd -d /home/wekan -m -s /bin/bash wekan
|
||||
# 2) Add this user to the docker group, then logout+login or reboot:
|
||||
# sudo usermod -aG docker wekan
|
||||
# 3) Then login as user wekan.
|
||||
# 4) Create this file /home/wekan/docker-compose.yml with your modifications.
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== RUN DOCKER AS SERVICE ====
|
||||
# 1a) Running Docker as service, on Systemd like Debian 9, Ubuntu 16.04, CentOS 7:
|
||||
# sudo systemctl enable docker
|
||||
# sudo systemctl start docker
|
||||
# 1b) Running Docker as service, on init.d like Debian 8, Ubuntu 14.04, CentOS 6:
|
||||
# sudo update-rc.d docker defaults
|
||||
# sudo service docker start
|
||||
# ----------------------------------------------------------------------------------
|
||||
# ==== USAGE OF THIS docker-compose.yml ====
|
||||
# 1) For seeing does Wekan work, try this and check with your webbroser:
|
||||
# docker-compose up
|
||||
# 2) Stop Wekan and start Wekan in background:
|
||||
# docker-compose stop
|
||||
# docker-compose up -d
|
||||
# 3) See running Docker containers:
|
||||
# docker ps
|
||||
# 4) Stop Docker containers:
|
||||
# docker-compose stop
|
||||
# ----------------------------------------------------------------------------------
|
||||
# ===== INSIDE DOCKER CONTAINERS, AND BACKUP/RESTORE ====
|
||||
# https://github.com/wekan/wekan/wiki/Backup
|
||||
# If really necessary, repair MongoDB: https://github.com/wekan/wekan-mongodb/issues/6#issuecomment-424004116
|
||||
# 1) Going inside containers:
|
||||
# a) Wekan app, does not contain data
|
||||
# docker exec -it wekan-app bash
|
||||
# b) MongoDB, contains all data
|
||||
# docker exec -it wekan-db bash
|
||||
# 2) Copying database to outside of container:
|
||||
# docker exec -it wekan-db bash
|
||||
# cd /data
|
||||
# mongodump
|
||||
# exit
|
||||
# docker cp wekan-db:/data/dump .
|
||||
# 3) Restoring database
|
||||
# # 1) Stop wekan
|
||||
# docker stop wekan-app
|
||||
# # 2) Go inside database container
|
||||
# docker exec -it wekan-db bash
|
||||
# # 3) and data directory
|
||||
# cd /data
|
||||
# # 4) Remove previos dump
|
||||
# rm -rf dump
|
||||
# # 5) Exit db container
|
||||
# exit
|
||||
# # 6) Copy dump to inside docker container
|
||||
# docker cp dump wekan-db:/data/
|
||||
# # 7) Go inside database container
|
||||
# docker exec -it wekan-db bash
|
||||
# # 8) and data directory
|
||||
# cd /data
|
||||
# # 9) Restore
|
||||
# mongorestore --drop
|
||||
# # 10) Exit db container
|
||||
# exit
|
||||
# # 11) Start wekan
|
||||
# docker start wekan-app
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
services:
|
||||
|
||||
wekandb:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) CURRENTLY BROKEN: For Wekan Meteor 1.8.x version at meteor-1.8 branch, use mongo 4.x
|
||||
# image: mongo:4.0.4
|
||||
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
image: mongo:3.2.21
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-db
|
||||
restart: always
|
||||
command: mongod --smallfiles --oplogSize 128
|
||||
@@ -20,22 +108,121 @@ services:
|
||||
- wekan-db-dump:/dump
|
||||
|
||||
wekan:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) CURRENTLY BROKEN: For Wekan Meteor 1.8.x version at meteor-1.8 branch,
|
||||
# using https://quay.io/wekan/wekan automatic builds
|
||||
# image: quay.io/wekan/wekan:meteor-1.8
|
||||
# b) For Wekan Meteor 1.6.x version at master/devel/edge branches.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
image: quay.io/wekan/wekan
|
||||
# c) Using specific Meteor 1.6.x version tag:
|
||||
# image: quay.io/wekan/wekan:v1.95
|
||||
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
|
||||
# image: wekanteam/wekan:meteor-1.8
|
||||
# image: wekanteam/wekan:v1.95
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
networks:
|
||||
- wekan-tier
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
|
||||
# ==== and use commands: docker-compose up -d --build
|
||||
#build:
|
||||
# context: .
|
||||
# dockerfile: Dockerfile
|
||||
# args:
|
||||
# - NODE_VERSION=${NODE_VERSION}
|
||||
# - METEOR_RELEASE=${METEOR_RELEASE}
|
||||
# - NPM_VERSION=${NPM_VERSION}
|
||||
# - ARCHITECTURE=${ARCHITECTURE}
|
||||
# - SRC_PATH=${SRC_PATH}
|
||||
# - METEOR_EDGE=${METEOR_EDGE}
|
||||
# - USE_EDGE=${USE_EDGE}
|
||||
#-------------------------------------------------------------------------------------
|
||||
ports:
|
||||
# Docker outsideport:insideport
|
||||
# Docker outsideport:insideport. Do not add anything extra here.
|
||||
# For example, if you want to have wekan on port 3001,
|
||||
# use 3001:8080 . Do not add any extra address etc here, that way it does not work.
|
||||
# remove port mapping if you use nginx reverse proxy, port 8080 is already exposed to wekan-tier network
|
||||
- 80:8080
|
||||
environment:
|
||||
- MONGO_URL=mongodb://wekandb:27017/wekan
|
||||
- ROOT_URL=http://localhost
|
||||
#---------------------------------------------------------------
|
||||
# ==== ROOT_URL SETTING ====
|
||||
# Change ROOT_URL to your real Wekan URL, for example:
|
||||
# If you have Caddy/Nginx/Apache providing SSL
|
||||
# - https://example.com
|
||||
# - https://boards.example.com
|
||||
# This can be problematic with avatars https://github.com/wekan/wekan/issues/1776
|
||||
# - https://example.com/wekan
|
||||
# If without https, can be only wekan node, no need for Caddy/Nginx/Apache if you don't need them
|
||||
# - http://example.com
|
||||
# - http://boards.example.com
|
||||
# - http://192.168.1.100 <=== using at local LAN
|
||||
- ROOT_URL=http://localhost # <=== using only at same laptop/desktop where Wekan is installed
|
||||
#---------------------------------------------------------------
|
||||
# ==== EMAIL SETTINGS ====
|
||||
# Email settings are required in both MAIL_URL and Admin Panel,
|
||||
# see https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||
# For SSL in email, change smtp:// to smtps://
|
||||
# NOTE: Special characters need to be url-encoded in MAIL_URL.
|
||||
# You can encode those characters for example at: https://www.urlencoder.org
|
||||
- MAIL_URL=smtp://user:pass@mailserver.example.com:25/
|
||||
- MAIL_FROM='Example Wekan Support <support@example.com>'
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: MONGO OPLOG SETTINGS =====
|
||||
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-378343587
|
||||
# We've fixed our CPU usage problem today with an environment
|
||||
# change around Wekan. I wasn't aware during implementation
|
||||
# that if you're using more than 1 instance of Wekan
|
||||
# (or any MeteorJS based tool) you're supposed to set
|
||||
# MONGO_OPLOG_URL as an environment variable.
|
||||
# Without setting it, Meteor will perform a pull-and-diff
|
||||
# update of it's dataset. With it, Meteor will update from
|
||||
# the OPLOG. See here
|
||||
# https://blog.meteor.com/tuning-meteor-mongo-livedata-for-scalability-13fe9deb8908
|
||||
# After setting
|
||||
# MONGO_OPLOG_URL=mongodb://<username>:<password>@<mongoDbURL>/local?authSource=admin&replicaSet=rsWekan
|
||||
# the CPU usage for all Wekan instances dropped to an average
|
||||
# of less than 10% with only occasional spikes to high usage
|
||||
# (I guess when someone is doing a lot of work)
|
||||
# - MONGO_OPLOG_URL=mongodb://<username>:<password>@<mongoDbURL>/local?authSource=admin&replicaSet=rsWekan
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: KADIRA PERFORMANCE MONITORING FOR METEOR ====
|
||||
# https://github.com/smeijer/kadira
|
||||
# https://blog.meteor.com/kadira-apm-is-now-open-source-490469ffc85f
|
||||
# - export KADIRA_OPTIONS_ENDPOINT=http://127.0.0.1:11011
|
||||
#---------------------------------------------------------------
|
||||
# ==== OPTIONAL: LOGS AND STATS ====
|
||||
# https://github.com/wekan/wekan/wiki/Logs
|
||||
#
|
||||
# Daily export of Wekan changes as JSON to Logstash and ElasticSearch / Kibana (ELK)
|
||||
# https://github.com/wekan/wekan-logstash
|
||||
#
|
||||
# Statistics Python script for Wekan Dashboard
|
||||
# https://github.com/wekan/wekan-stats
|
||||
#
|
||||
# Console, file, and zulip logger on database changes https://github.com/wekan/wekan/pull/1010
|
||||
# with fix to replace console.log by winston logger https://github.com/wekan/wekan/pull/1033
|
||||
# but there could be bug https://github.com/wekan/wekan/issues/1094
|
||||
#
|
||||
# There is Feature Request: Logging date and time of all activity with summary reports,
|
||||
# and requesting reason for changing card to other column https://github.com/wekan/wekan/issues/1598
|
||||
#---------------------------------------------------------------
|
||||
# ==== WEKAN API AND EXPORT BOARD ====
|
||||
# Wekan Export Board works when WITH_API=true.
|
||||
# https://github.com/wekan/wekan/wiki/REST-API
|
||||
# https://github.com/wekan/wekan-gogs
|
||||
# If you disable Wekan API with false, Export Board does not work.
|
||||
- WITH_API=true
|
||||
#-----------------------------------------------------------------
|
||||
# ==== CORS =====
|
||||
# CORS: Set Access-Control-Allow-Origin header. Example: *
|
||||
#- CORS=*
|
||||
#-----------------------------------------------------------------
|
||||
# ==== MATOMO INTEGRATION ====
|
||||
# Optional: Integration with Matomo https://matomo.org that is installed to your server
|
||||
# The address of the server where Matomo is hosted.
|
||||
# example: - MATOMO_ADDRESS=https://example.com/matomo
|
||||
@@ -49,15 +236,23 @@ services:
|
||||
# The option that allows matomo to retrieve the username:
|
||||
# example: MATOMO_WITH_USERNAME=true
|
||||
#- MATOMO_WITH_USERNAME=false
|
||||
#-----------------------------------------------------------------
|
||||
# ==== BROWSER POLICY AND TRUSTED IFRAME URL ====
|
||||
# Enable browser policy and allow one trusted URL that can have iframe that has Wekan embedded inside.
|
||||
# Setting this to false is not recommended, it also disables all other browser policy protections
|
||||
# and allows all iframing etc. See wekan/server/policy.js
|
||||
- BROWSER_POLICY_ENABLED=true
|
||||
# When browser policy is enabled, HTML code at this Trusted URL can have iframe that embeds Wekan inside.
|
||||
#- TRUSTED_URL=
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OUTGOING WEBHOOKS ====
|
||||
# What to send to Outgoing Webhook, or leave out. Example, that includes all that are default: cardId,listId,oldListId,boardId,comment,user,card,commentId .
|
||||
# example: WEBHOOKS_ATTRIBUTES=cardId,listId,oldListId,boardId,comment,user,card,commentId
|
||||
#- WEBHOOKS_ATTRIBUTES=
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 ONLY WITH OIDC AND DOORKEEPER AS INDENTITY PROVIDER
|
||||
# https://github.com/wekan/wekan/issues/1874
|
||||
# https://github.com/wekan/wekan/wiki/OAuth2
|
||||
# Enable the OAuth2 connection
|
||||
# example: OAUTH2_ENABLED=true
|
||||
#- OAUTH2_ENABLED=false
|
||||
@@ -80,142 +275,241 @@ services:
|
||||
# OAuth2 Token Endpoint. Example: /oauth/token
|
||||
# example: OAUTH2_TOKEN_ENDPOINT=/oauth/token
|
||||
#- OAUTH2_TOKEN_ENDPOINT=
|
||||
#-----------------------------------------------------------------
|
||||
# ==== LDAP ====
|
||||
# https://github.com/wekan/wekan/wiki/LDAP
|
||||
# For Snap settings see https://github.com/wekan/wekan-snap/wiki/Supported-settings-keys
|
||||
# Most settings work both on Snap and Docker below.
|
||||
# Note: Do not add single quotes '' to variables. Having spaces still works without quotes where required.
|
||||
#
|
||||
# DEFAULT_AUTHENTICATION_METHOD : The default authentication method used if a user does not exist to create and authenticate. Can be set as ldap.
|
||||
# example : DEFAULT_AUTHENTICATION_METHOD=ldap
|
||||
#- DEFAULT_AUTHENTICATION_METHOD=
|
||||
#
|
||||
# LDAP_ENABLE : Enable or not the connection by the LDAP
|
||||
# example : LDAP_ENABLE=true
|
||||
#- LDAP_ENABLE=false
|
||||
#
|
||||
# LDAP_PORT : The port of the LDAP server
|
||||
# example : LDAP_PORT=389
|
||||
#- LDAP_PORT=389
|
||||
#
|
||||
# LDAP_HOST : The host server for the LDAP server
|
||||
# example : LDAP_HOST=localhost
|
||||
#- LDAP_HOST=
|
||||
#
|
||||
# LDAP_BASEDN : The base DN for the LDAP Tree
|
||||
# example : LDAP_BASEDN=ou=user,dc=example,dc=org
|
||||
#- LDAP_BASEDN=
|
||||
#
|
||||
# LDAP_LOGIN_FALLBACK : Fallback on the default authentication method
|
||||
# example : LDAP_LOGIN_FALLBACK=true
|
||||
#- LDAP_LOGIN_FALLBACK=false
|
||||
#
|
||||
# LDAP_RECONNECT : Reconnect to the server if the connection is lost
|
||||
# example : LDAP_RECONNECT=false
|
||||
#- LDAP_RECONNECT=true
|
||||
#
|
||||
# LDAP_TIMEOUT : Overall timeout, in milliseconds
|
||||
# example : LDAP_TIMEOUT=12345
|
||||
#- LDAP_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_IDLE_TIMEOUT : Specifies the timeout for idle LDAP connections in milliseconds
|
||||
# example : LDAP_IDLE_TIMEOUT=12345
|
||||
#- LDAP_IDLE_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_CONNECT_TIMEOUT : Connection timeout, in milliseconds
|
||||
# example : LDAP_CONNECT_TIMEOUT=12345
|
||||
#- LDAP_CONNECT_TIMEOUT=10000
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION : If the LDAP needs a user account to search
|
||||
# example : LDAP_AUTHENTIFICATION=true
|
||||
#- LDAP_AUTHENTIFICATION=false
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION_USERDN : The search user DN
|
||||
# example : LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=example,dc=org
|
||||
#- LDAP_AUTHENTIFICATION_USERDN=
|
||||
#
|
||||
# LDAP_AUTHENTIFICATION_PASSWORD : The password for the search user
|
||||
# example : AUTHENTIFICATION_PASSWORD=admin
|
||||
#- LDAP_AUTHENTIFICATION_PASSWORD=
|
||||
#
|
||||
# LDAP_LOG_ENABLED : Enable logs for the module
|
||||
# example : LDAP_LOG_ENABLED=true
|
||||
#- LDAP_LOG_ENABLED=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC : If the sync of the users should be done in the background
|
||||
# example : LDAP_BACKGROUND_SYNC=true
|
||||
#- LDAP_BACKGROUND_SYNC=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_INTERVAL : At which interval does the background task sync in milliseconds
|
||||
# example : LDAP_BACKGROUND_SYNC_INTERVAL=12345
|
||||
#- LDAP_BACKGROUND_SYNC_INTERVAL=100
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED :
|
||||
# example : LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
|
||||
#- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false
|
||||
#
|
||||
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS :
|
||||
# example : LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
|
||||
#- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false
|
||||
#
|
||||
# LDAP_ENCRYPTION : If using LDAPS
|
||||
# example : LDAP_ENCRYPTION=ssl
|
||||
#- LDAP_ENCRYPTION=false
|
||||
#
|
||||
# LDAP_CA_CERT : The certification for the LDAPS server. Certificate needs to be included in this docker-compose.yml file.
|
||||
# example : LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+zCCA+OgAwIBAgIkAhwR/6TVLmdRY6hHxvUFWc0+Enmu/Hu6cj+G2FIdAgIC...-----END CERTIFICATE-----
|
||||
#- LDAP_CA_CERT=
|
||||
#
|
||||
# LDAP_REJECT_UNAUTHORIZED : Reject Unauthorized Certificate
|
||||
# example : LDAP_REJECT_UNAUTHORIZED=true
|
||||
#- LDAP_REJECT_UNAUTHORIZED=false
|
||||
#
|
||||
# LDAP_USER_SEARCH_FILTER : Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
|
||||
# example : LDAP_USER_SEARCH_FILTER=
|
||||
#- LDAP_USER_SEARCH_FILTER=
|
||||
#
|
||||
# LDAP_USER_SEARCH_SCOPE : base (search only in the provided DN), one (search only in the provided DN and one level deep), or sub (search the whole subtree)
|
||||
# example : LDAP_USER_SEARCH_SCOPE=one
|
||||
#- LDAP_USER_SEARCH_SCOPE=
|
||||
#
|
||||
# LDAP_USER_SEARCH_FIELD : Which field is used to find the user
|
||||
# example : LDAP_USER_SEARCH_FIELD=uid
|
||||
#- LDAP_USER_SEARCH_FIELD=
|
||||
#
|
||||
# LDAP_SEARCH_PAGE_SIZE : Used for pagination (0=unlimited)
|
||||
# example : LDAP_SEARCH_PAGE_SIZE=12345
|
||||
#- LDAP_SEARCH_PAGE_SIZE=0
|
||||
#
|
||||
# LDAP_SEARCH_SIZE_LIMIT : The limit number of entries (0=unlimited)
|
||||
# example : LDAP_SEARCH_SIZE_LIMIT=12345
|
||||
#- LDAP_SEARCH_SIZE_LIMIT=0
|
||||
#
|
||||
# LDAP_GROUP_FILTER_ENABLE : Enable group filtering
|
||||
# example : LDAP_GROUP_FILTER_ENABLE=true
|
||||
#- LDAP_GROUP_FILTER_ENABLE=false
|
||||
#
|
||||
# LDAP_GROUP_FILTER_OBJECTCLASS : The object class for filtering
|
||||
# example : LDAP_GROUP_FILTER_OBJECTCLASS=group
|
||||
#- LDAP_GROUP_FILTER_OBJECTCLASS=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=
|
||||
#
|
||||
# LDAP_GROUP_FILTER_GROUP_NAME :
|
||||
# example :
|
||||
#- LDAP_GROUP_FILTER_GROUP_NAME=
|
||||
#
|
||||
# LDAP_UNIQUE_IDENTIFIER_FIELD : This field is sometimes class GUID (Globally Unique Identifier)
|
||||
# example : LDAP_UNIQUE_IDENTIFIER_FIELD=guid
|
||||
#- LDAP_UNIQUE_IDENTIFIER_FIELD=
|
||||
#
|
||||
# LDAP_UTF8_NAMES_SLUGIFY : Convert the username to utf8
|
||||
# example : LDAP_UTF8_NAMES_SLUGIFY=false
|
||||
#- LDAP_UTF8_NAMES_SLUGIFY=true
|
||||
#
|
||||
# LDAP_USERNAME_FIELD : Which field contains the ldap username
|
||||
# example : LDAP_USERNAME_FIELD=username
|
||||
#- LDAP_USERNAME_FIELD=
|
||||
#
|
||||
# LDAP_FULLNAME_FIELD : Which field contains the ldap fullname
|
||||
# example : LDAP_FULLNAME_FIELD=fullname
|
||||
#- LDAP_FULLNAME_FIELD=
|
||||
#
|
||||
# LDAP_MERGE_EXISTING_USERS :
|
||||
# example : LDAP_MERGE_EXISTING_USERS=true
|
||||
#- LDAP_MERGE_EXISTING_USERS=false
|
||||
#-----------------------------------------------------------------
|
||||
# LDAP_SYNC_USER_DATA :
|
||||
# example : LDAP_SYNC_USER_DATA=true
|
||||
#- LDAP_SYNC_USER_DATA=false
|
||||
#
|
||||
# LDAP_SYNC_USER_DATA_FIELDMAP :
|
||||
# example : LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
|
||||
#- LDAP_SYNC_USER_DATA_FIELDMAP=
|
||||
#
|
||||
# LDAP_SYNC_GROUP_ROLES :
|
||||
# example :
|
||||
#- LDAP_SYNC_GROUP_ROLES=
|
||||
#
|
||||
# LDAP_DEFAULT_DOMAIN : The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
|
||||
# example :
|
||||
#- LDAP_DEFAULT_DOMAIN=
|
||||
#---------------------------------------------------------------------
|
||||
# ==== LOGOUT TIMER, probably does not work yet ====
|
||||
# LOGOUT_WITH_TIMER : Enables or not the option logout with timer
|
||||
# example : LOGOUT_WITH_TIMER=true
|
||||
#- LOGOUT_WITH_TIMER=
|
||||
#
|
||||
# LOGOUT_IN : The number of days
|
||||
# example : LOGOUT_IN=1
|
||||
#- LOGOUT_IN=
|
||||
#
|
||||
# LOGOUT_ON_HOURS : The number of hours
|
||||
# example : LOGOUT_ON_HOURS=9
|
||||
#- LOGOUT_ON_HOURS=
|
||||
#
|
||||
# LOGOUT_ON_MINUTES : The number of minutes
|
||||
# example : LOGOUT_ON_MINUTES=55
|
||||
#- LOGOUT_ON_MINUTES=
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
depends_on:
|
||||
- wekandb
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: SHARE DATABASE TO OFFICE LAN AND REMOTE VPN ====
|
||||
# When using Wekan both at office LAN and remote VPN:
|
||||
# 1) Have above Wekan docker container config with LAN IP address
|
||||
# 2) Copy all of above wekan container config below, look above of this part above and all config below it,
|
||||
# before above depends_on: part:
|
||||
#
|
||||
# wekan:
|
||||
# #-------------------------------------------------------------------------------------
|
||||
# # ==== MONGODB AND METEOR VERSION ====
|
||||
# # a) For Wekan Meteor 1.8.x version at meteor-1.8 branch, .....
|
||||
#
|
||||
#
|
||||
# and change name to different name like wekan2 or wekanvpn, and change ROOT_URL to server VPN IP
|
||||
# address.
|
||||
# 3) This way both Wekan containers can use same MongoDB database
|
||||
# and see the same Wekan boards.
|
||||
# 4) You could also add 3rd Wekan container for 3rd network etc.
|
||||
# EXAMPLE:
|
||||
# wekan2:
|
||||
# ....COPY CONFIG FROM ABOVE TO HERE...
|
||||
# environment:
|
||||
# - ROOT_URL='http://10.10.10.10'
|
||||
# ...COPY CONFIG FROM ABOVE TO HERE...
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
# OPTIONAL NGINX CONFIG FOR REVERSE PROXY
|
||||
# nginx:
|
||||
# image: nginx
|
||||
# container_name: nginx
|
||||
# restart: always
|
||||
# networks:
|
||||
# - wekan-tier
|
||||
# depends_on:
|
||||
# - wekan
|
||||
# ports:
|
||||
# - 80:80
|
||||
# - 443:443
|
||||
# volumes:
|
||||
# - ./nginx/ssl:/etc/nginx/ssl/
|
||||
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
||||
|
||||
|
||||
volumes:
|
||||
wekan-db:
|
||||
driver: local
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Find text from all subdirectories
|
||||
# and ignore all temporary directories:
|
||||
# - node-modules = installed node modules
|
||||
# - .build = Wekan bundle that is combined from source. Do not edit these, these are deleted and recreated.
|
||||
# - .meteor = Meteor version, packages etc at .meteor/local
|
||||
# - .git = git history
|
||||
|
||||
# If less or more that 1 parameter, show usage.
|
||||
if (( $# != 1 )); then
|
||||
echo 'Usage: ./find.sh text-to-find'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
find . | grep -v node_modules | grep -v .build | grep -v .meteor | grep -v .git | xargs grep --no-messages $1 | less
|
||||
+92
-57
@@ -1,20 +1,20 @@
|
||||
{
|
||||
"accept": "اقبلboard",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "ربط __attachment__ الى __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "added checklist __checklist__ to __card__",
|
||||
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
|
||||
"act-addComment": "علق على __comment__ : __card__",
|
||||
"act-createBoard": "احدث __board__",
|
||||
"act-createCard": "اضاف __card__ الى __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "اضاف __list__ الى __board__",
|
||||
"accept": "قبول",
|
||||
"act-activity-notify": "اشعارات النشاط",
|
||||
"act-addAttachment": "ربط __المرفق__ الى __بطاقة__",
|
||||
"act-addSubtask": "تمة اضافة فرع المهمة __ قائمة التدقيق __ الى __ بطاقة",
|
||||
"act-addChecklist": "تمة اضافة قائمة التدقيق __ قائمة التدقيق __ الى __ بطاقة",
|
||||
"act-addChecklistItem": "تمة اضافة عنصر قائمة التدقيق __الى قائمة التدقيق __ قائمة التدقيق __ في __ بطاقة",
|
||||
"act-addComment": "علق على __بطاقة__ : __تعليق__",
|
||||
"act-createBoard": "احدث __لوحة__",
|
||||
"act-createCard": "تمة اضافة __بطاقة__ الى __قائمة__",
|
||||
"act-createCustomField": "احدث حقل مخصص __ حقل مخصص__",
|
||||
"act-createList": "اضاف __قائمة__ الى __لوحة__",
|
||||
"act-addBoardMember": "اضاف __member__ الى __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-archivedBoard": "__ لوح __ انتقل إلى الأرشيف",
|
||||
"act-archivedCard": "__ بطاقة __ انتقلت إلى الأرشيف",
|
||||
"act-archivedList": "__ القائمة __ انتقلت إلى الأرشيف",
|
||||
"act-archivedSwimlane": "__خط السباحة__انتقل إلى الأرشيف",
|
||||
"act-importBoard": "إستورد __board__",
|
||||
"act-importCard": "إستورد __card__",
|
||||
"act-importList": "إستورد __list__",
|
||||
@@ -23,16 +23,16 @@
|
||||
"act-removeBoardMember": "أزال __member__ من __board__",
|
||||
"act-restoredCard": "أعاد __card__ إلى __board__",
|
||||
"act-unjoinMember": "أزال __member__ من __card__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withBoardTitle": "__لوح__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "الإجراءات",
|
||||
"activities": "الأنشطة",
|
||||
"activity": "النشاط",
|
||||
"activity-added": "تمت إضافة %s ل %s",
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-archived": "%s انتقل الى الارشيف",
|
||||
"activity-attached": "إرفاق %s ل %s",
|
||||
"activity-created": "أنشأ %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-customfield-created": "%s احدت حقل مخصص",
|
||||
"activity-excluded": "استبعاد %s عن %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
"activity-imported-board": "imported %s from %s",
|
||||
@@ -42,15 +42,15 @@
|
||||
"activity-removed": "حذف %s إلى %s",
|
||||
"activity-sent": "إرسال %s إلى %s",
|
||||
"activity-unjoined": "غادر %s",
|
||||
"activity-subtask-added": "added subtask to %s",
|
||||
"activity-checked-item": "checked %s in checklist %s of %s",
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-subtask-added": "تم اضافة مهمة فرعية الى %s",
|
||||
"activity-checked-item": "تحقق %s في قائمة التحقق %s من %s",
|
||||
"activity-unchecked-item": "ازالة تحقق %s من قائمة التحقق %s من %s",
|
||||
"activity-checklist-added": "أضاف قائمة تحقق إلى %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "added checklist item to '%s' in %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"activity-checklist-removed": "ازالة قائمة التحقق من %s",
|
||||
"activity-checklist-completed": "تم انجاز قائمة التحقق %s من %s",
|
||||
"activity-checklist-uncompleted": "لم يتم انجاز قائمة التحقق %s من %s",
|
||||
"activity-checklist-item-added": "تم اضافة عنصر قائمة التحقق الى '%s' في %s",
|
||||
"activity-checklist-item-removed": "تم ازالة عنصر قائمة التحقق الى '%s' في %s",
|
||||
"add": "أضف",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
@@ -79,18 +79,18 @@
|
||||
"and-n-other-card_plural": "And __count__ other بطاقات",
|
||||
"apply": "طبق",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Move to Archive",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"archive": "نقل الى الارشيف",
|
||||
"archive-all": "نقل الكل الى الارشيف",
|
||||
"archive-board": "نقل اللوح الى الارشيف",
|
||||
"archive-card": "نقل البطاقة الى الارشيف",
|
||||
"archive-list": "نقل القائمة الى الارشيف",
|
||||
"archive-swimlane": "نقل خط السباحة الى الارشيف",
|
||||
"archive-selection": "نقل التحديد إلى الأرشيف",
|
||||
"archiveBoardPopup-title": "نقل الوح إلى الأرشيف",
|
||||
"archived-items": "أرشيف",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"archived-boards": "الالواح في الأرشيف",
|
||||
"restore-board": "استعادة اللوحة",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"no-archived-boards": "لا توجد لوحات في الأرشيف.",
|
||||
"archives": "أرشيف",
|
||||
"assign-member": "تعيين عضو",
|
||||
"attached": "أُرفق)",
|
||||
@@ -112,23 +112,23 @@
|
||||
"boardChangeWatchPopup-title": "تغيير المتابعة",
|
||||
"boardMenuPopup-title": "قائمة اللوحة",
|
||||
"boards": "لوحات",
|
||||
"board-view": "Board View",
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view": "عرض اللوحات",
|
||||
"board-view-cal": "التقويم",
|
||||
"board-view-swimlanes": "خطوط السباحة",
|
||||
"board-view-lists": "القائمات",
|
||||
"bucket-example": "مثل « todo list » على سبيل المثال",
|
||||
"cancel": "إلغاء",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "البطاقة منقولة الى الارشيف",
|
||||
"board-archived": "اللوحات منقولة الى الارشيف",
|
||||
"card-comments-title": "%s تعليقات لهذه البطاقة",
|
||||
"card-delete-notice": "هذا حذف أبديّ . سوف تفقد كل الإجراءات المنوطة بهذه البطاقة",
|
||||
"card-delete-pop": "سيتم إزالة جميع الإجراءات من تبعات النشاط، وأنك لن تكون قادرا على إعادة فتح البطاقة. لا يوجد التراجع.",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-suggest-archive": "يمكنك نقل بطاقة إلى الأرشيف لإزالتها من اللوحة والمحافظة على النشاط.",
|
||||
"card-due": "مستحق",
|
||||
"card-due-on": "مستحق في",
|
||||
"card-spent": "Spent Time",
|
||||
"card-spent": "امضى وقتا",
|
||||
"card-edit-attachments": "تعديل المرفقات",
|
||||
"card-edit-custom-fields": "Edit custom fields",
|
||||
"card-edit-custom-fields": "تعديل الحقل المعدل",
|
||||
"card-edit-labels": "تعديل العلامات",
|
||||
"card-edit-members": "تعديل الأعضاء",
|
||||
"card-labels-title": "تعديل علامات البطاقة.",
|
||||
@@ -136,8 +136,8 @@
|
||||
"card-start": "بداية",
|
||||
"card-start-on": "يبدأ في",
|
||||
"cardAttachmentsPopup-title": "إرفاق من",
|
||||
"cardCustomField-datePopup-title": "Change date",
|
||||
"cardCustomFieldsPopup-title": "Edit custom fields",
|
||||
"cardCustomField-datePopup-title": "تغير التاريخ",
|
||||
"cardCustomFieldsPopup-title": "تعديل الحقل المعدل",
|
||||
"cardDeletePopup-title": "حذف البطاقة ?",
|
||||
"cardDetailsActionsPopup-title": "إجراءات على البطاقة",
|
||||
"cardLabelsPopup-title": "علامات",
|
||||
@@ -145,9 +145,9 @@
|
||||
"cardMorePopup-title": "المزيد",
|
||||
"cards": "بطاقات",
|
||||
"cards-count": "بطاقات",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"casSignIn": "تسجيل الدخول مع CAS",
|
||||
"cardType-card": "بطاقة",
|
||||
"cardType-linkedCard": "البطاقة المرتبطة",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"change": "Change",
|
||||
"change-avatar": "تعديل الصورة الشخصية",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "تعليق",
|
||||
"comment-placeholder": "أكتب تعليق",
|
||||
"comment-only": "التعليق فقط",
|
||||
@@ -187,7 +203,7 @@
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "نسخ رابط البطاقة إلى الحافظة",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"linkCardPopup-title": "ربط البطاقة",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"copyCardPopup-title": "نسخ البطاقة",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
@@ -327,7 +343,7 @@
|
||||
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
|
||||
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
|
||||
"lists": "القائمات",
|
||||
"swimlanes": "Swimlanes",
|
||||
"swimlanes": "خطوط السباحة",
|
||||
"log-out": "تسجيل الخروج",
|
||||
"log-in": "تسجيل الدخول",
|
||||
"loginPopup-title": "تسجيل الدخول",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "أنتَ لا تملك الصلاحيات لرؤية هذه الصفحة.",
|
||||
"outgoing-webhooks": "الويبهوك الصادرة",
|
||||
"outgoingWebhooksPopup-title": "الويبهوك الصادرة",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "ويبهوك جديدة ",
|
||||
"no-name": "(غير معروف)",
|
||||
"Node_version": "إصدار النود",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "الذاكرة الكلية لنظام التشغيل",
|
||||
"OS_Type": "نوع نظام التشغيل",
|
||||
"OS_Uptime": "مدة تشغيل نظام التشغيل",
|
||||
"days": "days",
|
||||
"hours": "الساعات",
|
||||
"minutes": "الدقائق",
|
||||
"seconds": "الثواني",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -567,7 +588,7 @@
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "its list",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-archive": "نقل الى الارشيف",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-card": "card",
|
||||
"r-add": "أضف",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "черно",
|
||||
"color-blue": "синьо",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "зелено",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "лайм",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "оранжево",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "розово",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "пурпурно",
|
||||
"color-red": "червено",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "светло синьо",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "жълто",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Коментирай",
|
||||
"comment-placeholder": "Напиши коментар",
|
||||
"comment-only": "Само коментар",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Версия на Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "ОС Общо памет",
|
||||
"OS_Type": "Тип ОС",
|
||||
"OS_Uptime": "OS Ъптайм",
|
||||
"days": "days",
|
||||
"hours": "часа",
|
||||
"minutes": "минути",
|
||||
"seconds": "секунди",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Завършена на",
|
||||
"editCardReceivedDatePopup-title": "Промени датата на получаване",
|
||||
"editCardEndDatePopup-title": "Промени датата на завършване",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Изтрий правилото",
|
||||
"r-new-rule-name": "Заглавие за новото правило",
|
||||
"r-no-rules": "Няма правила",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "du",
|
||||
"color-blue": "glas",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "gwer",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "melen sitroñs",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orañjez",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "roz",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "mouk",
|
||||
"color-red": "ruz",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "pers",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "melen",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+105
-70
@@ -1,38 +1,38 @@
|
||||
{
|
||||
"accept": "Accepta",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "adjuntat __attachment__ a __card__",
|
||||
"act-activity-notify": "Notificació d'activitat",
|
||||
"act-addAttachment": "afegit__adjunt__ a la __fitxa__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "afegida la checklist _checklist__ a __card__",
|
||||
"act-addChecklistItem": "afegit __checklistItem__ a la checklist __checklist__ on __card__",
|
||||
"act-addComment": "comentat a __card__: __comment__",
|
||||
"act-createBoard": "creat __board__",
|
||||
"act-createBoard": "nou __tauler__",
|
||||
"act-createCard": "afegit/da __card__ a __list__",
|
||||
"act-createCustomField": "created custom field __customField__",
|
||||
"act-createList": "afegit/da __list__ a __board__",
|
||||
"act-addBoardMember": "afegit/da __member__ a __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-createList": "llista __afegida__ al __tauler__",
|
||||
"act-addBoardMember": "usuari __afegit__ al __tauler__",
|
||||
"act-archivedBoard": "__tauler__ mogut al Arxiu",
|
||||
"act-archivedCard": "__fitxa__ moguda al Arxiu",
|
||||
"act-archivedList": "__llista__ mogud al Arxiu",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-importBoard": "__board__ importat",
|
||||
"act-importBoard": "tauler __importat__",
|
||||
"act-importCard": "__card__ importat",
|
||||
"act-importList": "__list__ importat",
|
||||
"act-joinMember": "afegit/da __member__ a __card__",
|
||||
"act-moveCard": "mou __card__ de __oldList__ a __list__",
|
||||
"act-removeBoardMember": "elimina __member__ de __board__",
|
||||
"act-restoredCard": "recupera __card__ a __board__",
|
||||
"act-removeBoardMember": "elimina __usuari__ del __tauler__",
|
||||
"act-restoredCard": "fitxa __restaurada__ al __tauler__",
|
||||
"act-unjoinMember": "elimina __member__ de __card__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"act-withBoardTitle": "__tauler__",
|
||||
"act-withCardTitle": "[__tauler__] __fitxa__",
|
||||
"actions": "Accions",
|
||||
"activities": "Activitats",
|
||||
"activity": "Activitat",
|
||||
"activity-added": "ha afegit %s a %s",
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-archived": "%s mogut al Arxiu",
|
||||
"activity-attached": "ha adjuntat %s a %s",
|
||||
"activity-created": "ha creat %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-customfield-created": "camp personalitzat creat %s",
|
||||
"activity-excluded": "ha exclòs %s de %s",
|
||||
"activity-imported": "importat %s dins %s des de %s",
|
||||
"activity-imported-board": "importat %s des de %s",
|
||||
@@ -58,11 +58,11 @@
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"add-attachment": "Afegeix adjunt",
|
||||
"add-board": "Afegeix Tauler",
|
||||
"add-card": "Afegeix fitxa",
|
||||
"add-card": "Afegeix Fitxa",
|
||||
"add-swimlane": "Afegix Carril de Natació",
|
||||
"add-subtask": "Add Subtask",
|
||||
"add-subtask": "Afegir Subtasca",
|
||||
"add-checklist": "Afegeix checklist",
|
||||
"add-checklist-item": "Afegeix un ítem",
|
||||
"add-checklist-item": "Afegeix un ítem al checklist",
|
||||
"add-cover": "Afegeix coberta",
|
||||
"add-label": "Afegeix etiqueta",
|
||||
"add-list": "Afegeix llista",
|
||||
@@ -70,27 +70,27 @@
|
||||
"added": "Afegit",
|
||||
"addMemberPopup-title": "Membres",
|
||||
"admin": "Administrador",
|
||||
"admin-desc": "Pots veure i editar fitxes, eliminar membres, i canviar la configuració del tauler",
|
||||
"admin-announcement": "Bàndol",
|
||||
"admin-announcement-active": "Activar bàndol del Sistema",
|
||||
"admin-announcement-title": "Bàndol de l'administració",
|
||||
"admin-desc": "Pots veure i editar fitxes, eliminar usuaris, i canviar la configuració del tauler.",
|
||||
"admin-announcement": "Alertes",
|
||||
"admin-announcement-active": "Activar alertes del Sistema",
|
||||
"admin-announcement-title": "Alertes d'administració",
|
||||
"all-boards": "Tots els taulers",
|
||||
"and-n-other-card": "And __count__ other card",
|
||||
"and-n-other-card_plural": "And __count__ other cards",
|
||||
"apply": "Aplica",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Move to Archive",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive": "Moure al arxiu",
|
||||
"archive-all": "Moure tot al arxiu",
|
||||
"archive-board": "Moure Tauler al Arxiu",
|
||||
"archive-card": "Moure Fitxa al Arxiu",
|
||||
"archive-list": "Moure Llista al Arxiu",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"archive-selection": "Moure selecció al Arxiu",
|
||||
"archiveBoardPopup-title": "Moure el Tauler al Arxiu?",
|
||||
"archived-items": "Desa",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"archived-boards": "Taulers al Arxiu",
|
||||
"restore-board": "Restaura Tauler",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"no-archived-boards": "No hi han Taulers al Arxiu.",
|
||||
"archives": "Desa",
|
||||
"assign-member": "Assignar membre",
|
||||
"attached": "adjuntat",
|
||||
@@ -98,28 +98,28 @@
|
||||
"attachment-delete-pop": "L'esborrat d'un arxiu adjunt és permanent. No es pot desfer.",
|
||||
"attachmentDeletePopup-title": "Esborrar adjunt?",
|
||||
"attachments": "Adjunts",
|
||||
"auto-watch": "Automàticament segueix el taulers quan són creats",
|
||||
"auto-watch": "Segueix automàticament el taulers quan són creats",
|
||||
"avatar-too-big": "L'avatar es massa gran (70KM max)",
|
||||
"back": "Enrere",
|
||||
"board-change-color": "Canvia el color",
|
||||
"board-nb-stars": "%s estrelles",
|
||||
"board-not-found": "No s'ha trobat el tauler",
|
||||
"board-private-info": "Aquest tauler serà <strong> privat </ strong>.",
|
||||
"board-public-info": "Aquest tauler serà <strong> públic </ strong>.",
|
||||
"boardChangeColorPopup-title": "Canvia fons",
|
||||
"board-private-info": "Aquest tauler serà <strong> privat.",
|
||||
"board-public-info": "Aquest tauler serà <strong> públic.",
|
||||
"boardChangeColorPopup-title": "Canvia fons del tauler",
|
||||
"boardChangeTitlePopup-title": "Canvia el nom tauler",
|
||||
"boardChangeVisibilityPopup-title": "Canvia visibilitat",
|
||||
"boardChangeWatchPopup-title": "Canvia seguiment",
|
||||
"boardMenuPopup-title": "Menú del tauler",
|
||||
"boards": "Taulers",
|
||||
"board-view": "Visió del tauler",
|
||||
"board-view-cal": "Calendar",
|
||||
"board-view-cal": "Calendari",
|
||||
"board-view-swimlanes": "Carrils de Natació",
|
||||
"board-view-lists": "Llistes",
|
||||
"bucket-example": "Igual que “Bucket List”, per exemple",
|
||||
"cancel": "Cancel·la",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "Aquesta fitxa ha estat moguda al Arxiu.",
|
||||
"board-archived": "Aquest tauler s'ha mogut al arxiu",
|
||||
"card-comments-title": "Aquesta fitxa té %s comentaris.",
|
||||
"card-delete-notice": "L'esborrat és permanent. Perdreu totes les accions associades a aquesta fitxa.",
|
||||
"card-delete-pop": "Totes les accions s'eliminaran de l'activitat i no podreu tornar a obrir la fitxa. No es pot desfer.",
|
||||
@@ -128,7 +128,7 @@
|
||||
"card-due-on": "Finalitza a",
|
||||
"card-spent": "Temps Dedicat",
|
||||
"card-edit-attachments": "Edita arxius adjunts",
|
||||
"card-edit-custom-fields": "Edit custom fields",
|
||||
"card-edit-custom-fields": "Editar camps personalitzats",
|
||||
"card-edit-labels": "Edita etiquetes",
|
||||
"card-edit-members": "Edita membres",
|
||||
"card-labels-title": "Canvia les etiquetes de la fitxa",
|
||||
@@ -136,8 +136,8 @@
|
||||
"card-start": "Comença",
|
||||
"card-start-on": "Comença a",
|
||||
"cardAttachmentsPopup-title": "Adjunta des de",
|
||||
"cardCustomField-datePopup-title": "Change date",
|
||||
"cardCustomFieldsPopup-title": "Edit custom fields",
|
||||
"cardCustomField-datePopup-title": "Canviar data",
|
||||
"cardCustomFieldsPopup-title": "Editar camps personalitzats",
|
||||
"cardDeletePopup-title": "Esborrar fitxa?",
|
||||
"cardDetailsActionsPopup-title": "Accions de fitxes",
|
||||
"cardLabelsPopup-title": "Etiquetes",
|
||||
@@ -146,7 +146,7 @@
|
||||
"cards": "Fitxes",
|
||||
"cards-count": "Fitxes",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-card": "Fitxa",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"change": "Canvia",
|
||||
@@ -159,7 +159,7 @@
|
||||
"changePasswordPopup-title": "Canvia la contrasenya",
|
||||
"changePermissionsPopup-title": "Canvia permisos",
|
||||
"changeSettingsPopup-title": "Canvia configuració",
|
||||
"subtasks": "Subtasks",
|
||||
"subtasks": "Subtasca",
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Fes clic per destacar aquest tauler.",
|
||||
"click-to-unstar": "Fes clic per deixar de destacar aquest tauler.",
|
||||
@@ -169,26 +169,42 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "negre",
|
||||
"color-blue": "blau",
|
||||
"color-crimson": "carmesí",
|
||||
"color-darkgreen": "verd fosc",
|
||||
"color-gold": "daurat",
|
||||
"color-gray": "gris",
|
||||
"color-green": "verd",
|
||||
"color-indigo": "índigo",
|
||||
"color-lime": "llima",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "marina",
|
||||
"color-orange": "taronja",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "pruna",
|
||||
"color-purple": "púrpura",
|
||||
"color-red": "vermell",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "plata",
|
||||
"color-sky": "cel",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "blanc",
|
||||
"color-yellow": "groc",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comentari",
|
||||
"comment-placeholder": "Escriu un comentari",
|
||||
"comment-only": "Només comentaris",
|
||||
"comment-only-desc": "Només pots fer comentaris a les fitxes",
|
||||
"no-comments": "No comments",
|
||||
"no-comments": "Sense comentaris",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Ordinador",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-subtask-delete-dialog": "Esteu segur que voleu eliminar la subtasca?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
"copy-card-link-to-clipboard": "Copia l'enllaç de la ftixa al porta-retalls",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"searchCardPopup-title": "Buscar Fitxa",
|
||||
"copyCardPopup-title": "Copia la fitxa",
|
||||
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títols de fitxa i Descripcions de destí en aquest format JSON",
|
||||
@@ -197,20 +213,20 @@
|
||||
"createBoardPopup-title": "Crea tauler",
|
||||
"chooseBoardSourcePopup-title": "Importa Tauler",
|
||||
"createLabelPopup-title": "Crea etiqueta",
|
||||
"createCustomField": "Create Field",
|
||||
"createCustomFieldPopup-title": "Create Field",
|
||||
"createCustomField": "Crear camp",
|
||||
"createCustomFieldPopup-title": "Crear camp",
|
||||
"current": "Actual",
|
||||
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
|
||||
"custom-field-checkbox": "Checkbox",
|
||||
"custom-field-date": "Data",
|
||||
"custom-field-dropdown": "Dropdown List",
|
||||
"custom-field-dropdown-none": "(none)",
|
||||
"custom-field-dropdown-options": "List Options",
|
||||
"custom-field-dropdown-options": "Llista d'opcions",
|
||||
"custom-field-dropdown-options-placeholder": "Press enter to add more options",
|
||||
"custom-field-dropdown-unknown": "(unknown)",
|
||||
"custom-field-number": "Number",
|
||||
"custom-field-text": "Text",
|
||||
"custom-fields": "Custom Fields",
|
||||
"custom-fields": "Camps Personalitzats",
|
||||
"date": "Data",
|
||||
"decline": "Declina",
|
||||
"default-avatar": "Avatar per defecte",
|
||||
@@ -230,7 +246,7 @@
|
||||
"soft-wip-limit": "Soft WIP Limit",
|
||||
"editCardStartDatePopup-title": "Canvia data d'inici",
|
||||
"editCardDueDatePopup-title": "Canvia data de finalització",
|
||||
"editCustomFieldPopup-title": "Edit Field",
|
||||
"editCustomFieldPopup-title": "Modificar camp",
|
||||
"editCardSpentTimePopup-title": "Canvia temps dedicat",
|
||||
"editLabelPopup-title": "Canvia etiqueta",
|
||||
"editNotificationPopup-title": "Edita la notificació",
|
||||
@@ -271,7 +287,7 @@
|
||||
"filter-on": "Filtra per",
|
||||
"filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
|
||||
"filter-to-selection": "Filtra selecció",
|
||||
"advanced-filter-label": "Advanced Filter",
|
||||
"advanced-filter-label": "Filtre avançat",
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Nom complet",
|
||||
"header-logo-title": "Torna a la teva pàgina de taulers",
|
||||
@@ -279,7 +295,7 @@
|
||||
"headerBarCreateBoardPopup-title": "Crea tauler",
|
||||
"home": "Inici",
|
||||
"import": "importa",
|
||||
"link": "Link",
|
||||
"link": "Enllaç",
|
||||
"import-board": "Importa tauler",
|
||||
"import-board-c": "Importa tauler",
|
||||
"import-board-title-trello": "Importa tauler des de Trello",
|
||||
@@ -296,7 +312,7 @@
|
||||
"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",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"importMapMembersAddPopup-title": "Selecciona un usuari",
|
||||
"info": "Versió",
|
||||
"initials": "Inicials",
|
||||
"invalid-date": "Data invàlida",
|
||||
@@ -315,7 +331,7 @@
|
||||
"leave-board-pop": "De debò voleu abandonar __boardTitle__? Se us eliminarà de totes les fitxes d'aquest tauler.",
|
||||
"leaveBoardPopup-title": "Abandonar Tauler?",
|
||||
"link-card": "Enllaç a aquesta fitxa",
|
||||
"list-archive-cards": "Move all cards in this list to Archive",
|
||||
"list-archive-cards": "Moure totes les fitxes en aquesta llista al Arxiu",
|
||||
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
|
||||
"list-move-cards": "Mou totes les fitxes d'aquesta llista",
|
||||
"list-select-cards": "Selecciona totes les fitxes d'aquesta llista",
|
||||
@@ -345,8 +361,8 @@
|
||||
"muted-info": "No seràs notificat dels canvis en aquest tauler",
|
||||
"my-boards": "Els meus taulers",
|
||||
"name": "Nom",
|
||||
"no-archived-cards": "No cards in Archive.",
|
||||
"no-archived-lists": "No lists in Archive.",
|
||||
"no-archived-cards": "No hi ha fitxes a l'arxiu.",
|
||||
"no-archived-lists": "No hi ha llistes al arxiu.",
|
||||
"no-archived-swimlanes": "No swimlanes in Archive.",
|
||||
"no-results": "Sense resultats",
|
||||
"normal": "Normal",
|
||||
@@ -383,7 +399,7 @@
|
||||
"restore": "Restaura",
|
||||
"save": "Desa",
|
||||
"search": "Cerca",
|
||||
"rules": "Rules",
|
||||
"rules": "Regles",
|
||||
"search-cards": "Cerca títols de fitxa i descripcions en aquest tauler",
|
||||
"search-example": "Text que cercar?",
|
||||
"select-color": "Selecciona color",
|
||||
@@ -418,7 +434,7 @@
|
||||
"title": "Títol",
|
||||
"tracking": "En seguiment",
|
||||
"tracking-info": "Seràs notificat per cada canvi a aquelles fitxes de les que n'eres creador o membre",
|
||||
"type": "Type",
|
||||
"type": "Tipus",
|
||||
"unassign-member": "Desassignar membre",
|
||||
"unsaved-description": "Tens una descripció sense desar.",
|
||||
"unwatch": "Suprimeix observació",
|
||||
@@ -453,7 +469,7 @@
|
||||
"smtp-tls-description": "Activa suport TLS pel servidor SMTP",
|
||||
"smtp-host": "Servidor SMTP",
|
||||
"smtp-port": "Port SMTP",
|
||||
"smtp-username": "Nom d'Usuari",
|
||||
"smtp-username": "Nom d'usuari",
|
||||
"smtp-password": "Contrasenya",
|
||||
"smtp-tls": "Suport TLS",
|
||||
"send-from": "De",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "No estau autoritzats per veure aquesta pàgina",
|
||||
"outgoing-webhooks": "Webhooks sortints",
|
||||
"outgoingWebhooksPopup-title": "Webhooks sortints",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Nou Webook sortint",
|
||||
"no-name": "Importa tauler des de Wekan",
|
||||
"Node_version": "Versió Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Memòria total",
|
||||
"OS_Type": "Tipus de SO",
|
||||
"OS_Uptime": "Temps d'activitat",
|
||||
"days": "days",
|
||||
"hours": "hores",
|
||||
"minutes": "minuts",
|
||||
"seconds": "segons",
|
||||
@@ -499,8 +517,9 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assignat Per",
|
||||
"requested-by": "Demanat Per",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
|
||||
"boardDeletePopup-title": "Delete Board?",
|
||||
@@ -531,17 +550,20 @@
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
"r-board-rules": "Board rules",
|
||||
"r-board-rules": "Regles del tauler",
|
||||
"r-add-rule": "Add rule",
|
||||
"r-view-rule": "View rule",
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-no-rules": "No hi han regles",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -567,7 +588,7 @@
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "its list",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-archive": "Moure al arxiu",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-card": "card",
|
||||
"r-add": "Afegeix",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+134
-99
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"accept": "Přijmout",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-activity-notify": "Notifikace aktivit",
|
||||
"act-addAttachment": "přiložen __attachment__ do __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addSubtask": "přidán podúkol __checklist__ do __card__",
|
||||
"act-addChecklist": "přidán checklist __checklist__ do __card__",
|
||||
"act-addChecklistItem": "přidán __checklistItem__ do checklistu __checklist__ v __card__",
|
||||
"act-addComment": "komentář k __card__: __comment__",
|
||||
@@ -11,10 +11,10 @@
|
||||
"act-createCustomField": "vytvořeno vlastní pole __customField__",
|
||||
"act-createList": "přidání __list__ do __board__",
|
||||
"act-addBoardMember": "přidání __member__ do __board__",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-archivedBoard": "__board__ byl přesunut do archivu",
|
||||
"act-archivedCard": "__card__ byla přesunuta do archivu",
|
||||
"act-archivedList": "__list__ byl přesunut do archivu",
|
||||
"act-archivedSwimlane": "__swimlane__ bylo přesunuto do archivu",
|
||||
"act-importBoard": "import __board__",
|
||||
"act-importCard": "import __card__",
|
||||
"act-importList": "import __list__",
|
||||
@@ -29,7 +29,7 @@
|
||||
"activities": "Aktivity",
|
||||
"activity": "Aktivita",
|
||||
"activity-added": "%s přidáno k %s",
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-archived": "%s bylo přesunuto do archivu",
|
||||
"activity-attached": "přiloženo %s k %s",
|
||||
"activity-created": "%s vytvořeno",
|
||||
"activity-customfield-created": "vytvořeno vlastní pole %s",
|
||||
@@ -42,12 +42,12 @@
|
||||
"activity-removed": "odstraněn %s z %s",
|
||||
"activity-sent": "%s posláno na %s",
|
||||
"activity-unjoined": "odpojen %s",
|
||||
"activity-subtask-added": "added subtask to %s",
|
||||
"activity-subtask-added": "podúkol přidán do %s",
|
||||
"activity-checked-item": "checked %s in checklist %s of %s",
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "přidán checklist do %s",
|
||||
"activity-checklist-removed": "odstraněn checklist z %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-completed": "dokončen checklist %s z %s",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "přidána položka checklist do '%s' v %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
@@ -78,19 +78,19 @@
|
||||
"and-n-other-card": "A __count__ další karta(y)",
|
||||
"and-n-other-card_plural": "A __count__ dalších karet",
|
||||
"apply": "Použít",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Move to Archive",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"app-is-offline": "Načítá se, prosím čekejte. Obnovení stránky způsobí ztrátu dat. Pokud se načítání nedaří, zkontrolujte prosím server.",
|
||||
"archive": "Přesunout do archivu",
|
||||
"archive-all": "Přesunout vše do archivu",
|
||||
"archive-board": "Přesunout tablo do archivu",
|
||||
"archive-card": "Přesunout kartu do archivu",
|
||||
"archive-list": "Přesunout seznam do archivu",
|
||||
"archive-swimlane": "Přesunout swimlane do archivu",
|
||||
"archive-selection": "Přesunout výběr do archivu",
|
||||
"archiveBoardPopup-title": "Přesunout tablo do archivu?",
|
||||
"archived-items": "Archiv",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"archived-boards": "Tabla v archivu",
|
||||
"restore-board": "Obnovit tablo",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"no-archived-boards": "V archivu nejsou žádná tabla.",
|
||||
"archives": "Archiv",
|
||||
"assign-member": "Přiřadit člena",
|
||||
"attached": "přiloženo",
|
||||
@@ -118,12 +118,12 @@
|
||||
"board-view-lists": "Sloupce",
|
||||
"bucket-example": "Například \"O čem sním\"",
|
||||
"cancel": "Zrušit",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "Karta byla přesunuta do archivu.",
|
||||
"board-archived": "Toto tablo je přesunuto do archivu.",
|
||||
"card-comments-title": "Tato karta má %s komentářů.",
|
||||
"card-delete-notice": "Smazání je trvalé. Přijdete o všechny akce asociované s touto kartou.",
|
||||
"card-delete-pop": "Všechny akce budou odstraněny z kanálu aktivity a nebude možné kartu obnovit. Toto nelze vrátit zpět.",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-suggest-archive": "Můžete přesunout kartu do archivu pro odstranění z tabla a zachovat aktivitu.",
|
||||
"card-due": "Termín",
|
||||
"card-due-on": "Do",
|
||||
"card-spent": "Strávený čas",
|
||||
@@ -145,7 +145,7 @@
|
||||
"cardMorePopup-title": "Více",
|
||||
"cards": "Karty",
|
||||
"cards-count": "Karty",
|
||||
"casSignIn": "Sign In with CAS",
|
||||
"casSignIn": "Přihlásit pomocí CAS",
|
||||
"cardType-card": "Karta",
|
||||
"cardType-linkedCard": "Propojená karta",
|
||||
"cardType-linkedBoard": "Propojené tablo",
|
||||
@@ -159,7 +159,7 @@
|
||||
"changePasswordPopup-title": "Změnit heslo",
|
||||
"changePermissionsPopup-title": "Změnit oprávnění",
|
||||
"changeSettingsPopup-title": "Změnit nastavení",
|
||||
"subtasks": "Subtasks",
|
||||
"subtasks": "Podúkol",
|
||||
"checklists": "Checklisty",
|
||||
"click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.",
|
||||
"click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
|
||||
@@ -169,20 +169,36 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "černá",
|
||||
"color-blue": "modrá",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "zelená",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "světlezelená",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "oranžová",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "růžová",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "fialová",
|
||||
"color-red": "červená",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "nebeská",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "žlutá",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Komentář",
|
||||
"comment-placeholder": "Text komentáře",
|
||||
"comment-only": "Pouze komentáře",
|
||||
"comment-only-desc": "Může přidávat komentáře pouze do karet.",
|
||||
"no-comments": "Žádné komentáře",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"no-comments-desc": "Nemůže vidět komentáře a aktivity",
|
||||
"computer": "Počítač",
|
||||
"confirm-subtask-delete-dialog": "Opravdu chcete smazat tento podúkol?",
|
||||
"confirm-checklist-delete-dialog": "Opravdu chcete smazat tento checklist?",
|
||||
@@ -283,20 +299,20 @@
|
||||
"import-board": "Importovat tablo",
|
||||
"import-board-c": "Importovat tablo",
|
||||
"import-board-title-trello": "Import board from Trello",
|
||||
"import-board-title-wekan": "Import board from previous export",
|
||||
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
|
||||
"import-board-title-wekan": "Importovat tablo z předchozího exportu",
|
||||
"import-sandstorm-backup-warning": "Nemažte data, která importujete z původního exportovaného tabla nebo Trello předtím, nežli zkontrolujete, jestli lze tuto část zavřít a znovu otevřít nebo jestli se Vám nezobrazuje chyba tabla, což znamená ztrátu dat.",
|
||||
"import-sandstorm-warning": "Importované tablo spaže všechny existující data v tablu a nahradí je importovaným tablem.",
|
||||
"from-trello": "Z Trella",
|
||||
"from-wekan": "From previous export",
|
||||
"from-wekan": "Z předchozího exportu",
|
||||
"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-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-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-map-members": "Mapovat členy",
|
||||
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
|
||||
"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ů",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"import-user-select": "Vyberte existující uživatelský účet, kterého chcete použít pro tuto osobu",
|
||||
"importMapMembersAddPopup-title": "Zvolte osobu",
|
||||
"info": "Verze",
|
||||
"initials": "Iniciály",
|
||||
"invalid-date": "Neplatné datum",
|
||||
@@ -315,7 +331,7 @@
|
||||
"leave-board-pop": "Opravdu chcete opustit tablo __boardTitle__? Odstraníte se tím i ze všech karet v tomto tablu.",
|
||||
"leaveBoardPopup-title": "Opustit tablo?",
|
||||
"link-card": "Odkázat na tuto kartu",
|
||||
"list-archive-cards": "Move all cards in this list to Archive",
|
||||
"list-archive-cards": "Přesunout všechny karty v tomto seznamu do archivu.",
|
||||
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
|
||||
"list-move-cards": "Přesunout všechny karty v tomto sloupci",
|
||||
"list-select-cards": "Vybrat všechny karty v tomto sloupci",
|
||||
@@ -325,7 +341,7 @@
|
||||
"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.",
|
||||
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
|
||||
"list-delete-suggest-archive": "Seznam můžete přesunout do archivu, abyste jej odstranili z tabla a zachovali si svou aktivitu.",
|
||||
"lists": "Sloupce",
|
||||
"swimlanes": "Swimlanes",
|
||||
"log-out": "Odhlásit",
|
||||
@@ -345,9 +361,9 @@
|
||||
"muted-info": "Nikdy nedostanete oznámení o změně v tomto tablu.",
|
||||
"my-boards": "Moje tabla",
|
||||
"name": "Jméno",
|
||||
"no-archived-cards": "No cards in Archive.",
|
||||
"no-archived-lists": "No lists in Archive.",
|
||||
"no-archived-swimlanes": "No swimlanes in Archive.",
|
||||
"no-archived-cards": "V archivu nejsou žádné karty.",
|
||||
"no-archived-lists": "V archivu nejsou žádné seznamy.",
|
||||
"no-archived-swimlanes": "V archivu nejsou žádné swimlanes.",
|
||||
"no-results": "Žádné výsledky",
|
||||
"normal": "Normální",
|
||||
"normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
|
||||
@@ -427,7 +443,7 @@
|
||||
"uploaded-avatar": "Avatar nahrán",
|
||||
"username": "Uživatelské jméno",
|
||||
"view-it": "Zobrazit",
|
||||
"warn-list-archived": "warning: this card is in an list at Archive",
|
||||
"warn-list-archived": "varování: tato karta je v seznamu v Archivu",
|
||||
"watch": "Sledovat",
|
||||
"watching": "Sledující",
|
||||
"watching-info": "Bude vám oznámena každá změna v tomto tablu",
|
||||
@@ -460,13 +476,14 @@
|
||||
"send-smtp-test": "Poslat si zkušební email.",
|
||||
"invitation-code": "Kód pozvánky",
|
||||
"email-invite-register-subject": "__inviter__ odeslal pozvánku",
|
||||
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
|
||||
"email-smtp-test-subject": "SMTP Test Email",
|
||||
"email-invite-register-text": "Ahoj __user__,\n\n__inviter__ tě přizval do kanban boardu ke spolupráci.\n\nNásleduj prosím odkaz níže:\n\n__url__\n\nKód Tvé pozvánky je: __icode__\n\nDěkujeme.",
|
||||
"email-smtp-test-subject": "E-mail testující SMTP",
|
||||
"email-smtp-test-text": "Email byl úspěšně odeslán",
|
||||
"error-invitation-code-not-exist": "Kód pozvánky neexistuje.",
|
||||
"error-notAuthorized": "Nejste autorizován k prohlížení této stránky.",
|
||||
"outgoing-webhooks": "Odchozí Webhooky",
|
||||
"outgoingWebhooksPopup-title": "Odchozí Webhooky",
|
||||
"boardCardTitlePopup-title": "Filtr názvů karet",
|
||||
"new-outgoing-webhook": "Nové odchozí Webhooky",
|
||||
"no-name": "(Neznámé)",
|
||||
"Node_version": "Node verze",
|
||||
@@ -479,12 +496,13 @@
|
||||
"OS_Totalmem": "OS Celková paměť",
|
||||
"OS_Type": "Typ OS",
|
||||
"OS_Uptime": "OS Doba běhu systému",
|
||||
"days": "days",
|
||||
"hours": "hodin",
|
||||
"minutes": "minut",
|
||||
"seconds": "sekund",
|
||||
"show-field-on-card": "Ukázat toto pole na kartě",
|
||||
"automatically-field-on-card": "Auto create field to all cards",
|
||||
"showLabel-field-on-card": "Show field label on minicard",
|
||||
"automatically-field-on-card": "Automaticky vytvořit pole na všech kartách",
|
||||
"showLabel-field-on-card": "Ukázat štítek pole na minikartě",
|
||||
"yes": "Ano",
|
||||
"no": "Ne",
|
||||
"accounts": "Účty",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Končí v",
|
||||
"editCardReceivedDatePopup-title": "Změnit datum přijetí",
|
||||
"editCardEndDatePopup-title": "Změnit datum konce",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Přidělil(a)",
|
||||
"requested-by": "Vyžádal(a)",
|
||||
"board-delete-notice": "Smazání je trvalé. Přijdete o všechny sloupce, karty a akce spojené s tímto tablem.",
|
||||
@@ -507,86 +526,89 @@
|
||||
"delete-board": "Smazat tablo",
|
||||
"default-subtasks-board": "Podúkoly pro tablo __board__",
|
||||
"default": "Výchozí",
|
||||
"queue": "Queue",
|
||||
"queue": "Fronta",
|
||||
"subtask-settings": "Nastavení podúkolů",
|
||||
"boardSubtaskSettingsPopup-title": "Nastavení podúkolů tabla",
|
||||
"show-subtasks-field": "Karty mohou mít podúkoly",
|
||||
"deposit-subtasks-board": "Deposit subtasks to this board:",
|
||||
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
|
||||
"show-parent-in-minicard": "Show parent in minicard:",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
"subtext-with-parent": "Subtext with parent",
|
||||
"change-card-parent": "Change card's parent",
|
||||
"parent-card": "Parent card",
|
||||
"show-parent-in-minicard": "Ukázat předka na minikartě",
|
||||
"prefix-with-full-path": "Prefix s celou cestou",
|
||||
"prefix-with-parent": "Prefix s předkem",
|
||||
"subtext-with-full-path": "Podtext s celou cestou",
|
||||
"subtext-with-parent": "Podtext s předkem",
|
||||
"change-card-parent": "Změnit rodiče karty",
|
||||
"parent-card": "Rodičovská karta",
|
||||
"source-board": "Zdrojové tablo",
|
||||
"no-parent": "Don't show parent",
|
||||
"no-parent": "Nezobrazovat rodiče",
|
||||
"activity-added-label": "added label '%s' to %s",
|
||||
"activity-removed-label": "removed label '%s' from %s",
|
||||
"activity-delete-attach": "deleted an attachment from %s",
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"activity-added-label-card": "přidán štítek '%s'",
|
||||
"activity-removed-label-card": "odstraněn štítek '%s'",
|
||||
"activity-delete-attach-card": "odstraněna příloha",
|
||||
"r-rule": "Pravidlo",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-trigger": "Přidat spoštěč",
|
||||
"r-add-action": "Přidat akci",
|
||||
"r-board-rules": "Pravidla Tabla",
|
||||
"r-add-rule": "Přidat pravidlo",
|
||||
"r-view-rule": "Zobrazit pravidlo",
|
||||
"r-delete-rule": "Smazat pravidlo",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-new-rule-name": "Nový název pravidla",
|
||||
"r-no-rules": "Žádná pravidla",
|
||||
"r-when-a-card-is": "Pokud je karta",
|
||||
"r-added-to": "Přidáno do",
|
||||
"r-when-a-card": "Pokud karta",
|
||||
"r-is": "je",
|
||||
"r-is-moved": "je přesunuto",
|
||||
"r-added-to": "přidáno do",
|
||||
"r-removed-from": "Odstraněno z",
|
||||
"r-the-board": "the board",
|
||||
"r-the-board": "tablo",
|
||||
"r-list": "sloupce",
|
||||
"set-filter": "Nastavit filtr",
|
||||
"r-moved-to": "Přesunuto do",
|
||||
"r-moved-from": "Přesunuto z",
|
||||
"r-archived": "Moved to Archive",
|
||||
"r-unarchived": "Restored from Archive",
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "Název sloupce",
|
||||
"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-archived": "Přesunuto do archivu",
|
||||
"r-unarchived": "Obnoveno z archivu",
|
||||
"r-a-card": "karta",
|
||||
"r-when-a-label-is": "Pokud nějaký štítek je",
|
||||
"r-when-the-label-is": "Pokud tento štítek je",
|
||||
"r-list-name": "název seznamu",
|
||||
"r-when-a-member": "Pokud nějaký člen je",
|
||||
"r-when-the-member": "Pokud tento člen je",
|
||||
"r-name": "jméno",
|
||||
"r-when-a-attach": "Pokud je nějaká příloha",
|
||||
"r-when-a-checklist": "Když zaškrtávací seznam je",
|
||||
"r-when-the-checklist": "Když zaškrtávací seznam",
|
||||
"r-completed": "Dokončeno",
|
||||
"r-made-incomplete": "Made incomplete",
|
||||
"r-made-incomplete": "Vytvořeno nehotové",
|
||||
"r-when-a-item": "Když položka zaškrtávacího seznamu je",
|
||||
"r-when-the-item": "Když položka zaškrtávacího seznamu",
|
||||
"r-checked": "Checked",
|
||||
"r-unchecked": "Unchecked",
|
||||
"r-move-card-to": "Move card to",
|
||||
"r-checked": "Zaškrtnuto",
|
||||
"r-unchecked": "Odškrtnuto",
|
||||
"r-move-card-to": "Přesunout kartu do",
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "toho sloupce",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-archive": "Přesunout do archivu",
|
||||
"r-unarchive": "Obnovit z archivu",
|
||||
"r-card": "karta",
|
||||
"r-add": "Přidat",
|
||||
"r-remove": "Odstranit",
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-label": "štítek",
|
||||
"r-member": "člen",
|
||||
"r-remove-all": "Odstranit všechny členy z této karty",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "zaškrtávací seznam",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
"r-check-all": "Zaškrtnout vše",
|
||||
"r-uncheck-all": "Odškrtnout vše",
|
||||
"r-items-check": "položky zaškrtávacího seznamu",
|
||||
"r-check": "Check",
|
||||
"r-uncheck": "Uncheck",
|
||||
"r-item": "item",
|
||||
"r-check": "Označit",
|
||||
"r-uncheck": "Odznačit",
|
||||
"r-item": "Položka",
|
||||
"r-of-checklist": "ze zaškrtávacího seznamu",
|
||||
"r-send-email": "Send an email",
|
||||
"r-send-email": "Odeslat e-mail",
|
||||
"r-to": "komu",
|
||||
"r-subject": "předmět",
|
||||
"r-rule-details": "Rule details",
|
||||
"r-rule-details": "Podrobnosti pravidla",
|
||||
"r-d-move-to-top-gen": "Přesunout kartu na začátek toho sloupce",
|
||||
"r-d-move-to-top-spec": "Přesunout kartu na začátek sloupce",
|
||||
"r-d-move-to-bottom-gen": "Přesunout kartu na konec sloupce",
|
||||
@@ -595,29 +617,42 @@
|
||||
"r-d-send-email-to": "komu",
|
||||
"r-d-send-email-subject": "předmět",
|
||||
"r-d-send-email-message": "zpráva",
|
||||
"r-d-archive": "Move card to Archive",
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-archive": "Přesunout kartu do archivu",
|
||||
"r-d-unarchive": "Obnovit kartu z archivu",
|
||||
"r-d-add-label": "Přidat štítek",
|
||||
"r-d-remove-label": "Odstranit štítek",
|
||||
"r-create-card": "Vytvořit novou kartu",
|
||||
"r-in-list": "v seznamu",
|
||||
"r-in-swimlane": "ve swimlane",
|
||||
"r-d-add-member": "Přidat člena",
|
||||
"r-d-remove-member": "Odstranit člena",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
"r-d-check-all": "Check all items of a list",
|
||||
"r-d-uncheck-all": "Uncheck all items of a list",
|
||||
"r-d-check-one": "Check item",
|
||||
"r-d-uncheck-one": "Uncheck item",
|
||||
"r-d-remove-all-member": "Odstranit všechny členy",
|
||||
"r-d-check-all": "Označit všechny položky na seznamu",
|
||||
"r-d-uncheck-all": "Odznačit všechny položky na seznamu",
|
||||
"r-d-check-one": "Označit položku",
|
||||
"r-d-uncheck-one": "Odznačit položku",
|
||||
"r-d-check-of-list": "ze zaškrtávacího seznamu",
|
||||
"r-d-add-checklist": "Přidat zaškrtávací seznam",
|
||||
"r-d-remove-checklist": "Odstranit zaškrtávací seznam",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Přidat zaškrtávací seznam",
|
||||
"r-with-items": "s položkami",
|
||||
"r-items-list": "položka1,položka2,položka3",
|
||||
"r-add-swimlane": "Přidat swimlane",
|
||||
"r-swimlane-name": "Název swimlane",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "Když je karta přesunuta do jiného sloupce",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Metoda autentizace",
|
||||
"authentication-type": "Typ autentizace",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"custom-product-name": "Vlastní název produktu",
|
||||
"layout": "uspořádání",
|
||||
"hide-logo": "Skrýt logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Něco se pokazilo",
|
||||
"error-ldap-login": "Během přihlašování nastala chyba"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+61
-26
@@ -44,16 +44,16 @@
|
||||
"activity-unjoined": "hat %s verlassen",
|
||||
"activity-subtask-added": "Teilaufgabe zu %s hinzugefügt",
|
||||
"activity-checked-item": "markierte %s in Checkliste %svon %s",
|
||||
"activity-unchecked-item": "demarkierte %s in Checkliste %s von %s",
|
||||
"activity-unchecked-item": "hat %s in Checkliste %s von %s abgewählt",
|
||||
"activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt",
|
||||
"activity-checklist-removed": "entfernte eine Checkliste von %s",
|
||||
"activity-checklist-completed": "vervollständigte die Checkliste %s von %s",
|
||||
"activity-checklist-uncompleted": "unvervollständigte die Checkliste %s von %s",
|
||||
"activity-checklist-item-added": "hat eine Checklistenposition zu '%s' in %s hinzugefügt",
|
||||
"activity-checklist-item-removed": "entfernte eine Checklistenposition von '%s' in %s",
|
||||
"activity-checklist-item-added": "hat ein Checklistenelement zu '%s' in %s hinzugefügt",
|
||||
"activity-checklist-item-removed": "hat ein Checklistenelement von '%s' in %s entfernt",
|
||||
"add": "Hinzufügen",
|
||||
"activity-checked-item-card": "markiere %s in Checkliste %s",
|
||||
"activity-unchecked-item-card": "demarkiere %s in Checkliste %s",
|
||||
"activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt",
|
||||
"activity-checklist-completed-card": "vervollständigte die Checkliste %s",
|
||||
"activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s",
|
||||
"add-attachment": "Datei anhängen",
|
||||
@@ -62,7 +62,7 @@
|
||||
"add-swimlane": "Swimlane hinzufügen",
|
||||
"add-subtask": "Teilaufgabe hinzufügen",
|
||||
"add-checklist": "Checkliste hinzufügen",
|
||||
"add-checklist-item": "Position zu einer Checkliste hinzufügen",
|
||||
"add-checklist-item": "Element zu Checkliste hinzufügen",
|
||||
"add-cover": "Cover hinzufügen",
|
||||
"add-label": "Label hinzufügen",
|
||||
"add-list": "Liste hinzufügen",
|
||||
@@ -78,7 +78,7 @@
|
||||
"and-n-other-card": "und eine andere Karte",
|
||||
"and-n-other-card_plural": "und __count__ andere Karten",
|
||||
"apply": "Übernehmen",
|
||||
"app-is-offline": "Wekan lädt gerade, bitte warten Sie. Wenn Sie die Seite neu laden, gehen nicht übertragene Änderungen verloren. Sollte Wekan nicht geladen werden, überprüfen Sie bitte, ob der Server noch läuft.",
|
||||
"app-is-offline": "Laden, bitte warten. Das Aktualisieren der Seite führt zu Datenverlust. Wenn das Laden nicht funktioniert, überprüfen Sie bitte, ob der Server nicht angehalten wurde.",
|
||||
"archive": "Ins Archiv verschieben",
|
||||
"archive-all": "Alles ins Archiv verschieben",
|
||||
"archive-board": "Board ins Archiv verschieben",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "Sie können das Board wiederherstellen, indem Sie die Schaltfläche \"Archiv\" in der Kopfzeile der Startseite anklicken.",
|
||||
"color-black": "schwarz",
|
||||
"color-blue": "blau",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "grün",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "hellgrün",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "lila",
|
||||
"color-red": "rot",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "himmelblau",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "gelb",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Kommentar",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur Kommentare",
|
||||
@@ -284,18 +300,18 @@
|
||||
"import-board-c": "Board importieren",
|
||||
"import-board-title-trello": "Board von Trello importieren",
|
||||
"import-board-title-wekan": "Board aus vorherigem Export importieren",
|
||||
"import-sandstorm-backup-warning": "Bitte keine Daten aus dem Original-Wekan oder Trello Board nach dem Import löschen, bitte prüfe vorher ob die alles funktioniert, andernfalls es kommt zum Fehler \"Board nicht gefunden\", dies meint Datenverlust.",
|
||||
"import-sandstorm-backup-warning": "Löschen Sie keine Daten, die Sie aus einem ursprünglich exportierten oder Trelloboard importieren, bevor Sie geprüft haben, ob alles funktioniert. Andernfalls kann es zu Datenverlust kommen, falls es zu einem \"Board nicht gefunden\"-Fehler kommt.",
|
||||
"import-sandstorm-warning": "Das importierte Board wird alle bereits existierenden Daten löschen und mit den importierten Daten überschreiben.",
|
||||
"from-trello": "Von Trello",
|
||||
"from-wekan": "Aus vorherigem Export",
|
||||
"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-wekan": "Gehen Sie in Ihrem Wekan Board auf 'Menü', anschließend auf 'Board exportieren'. Kopieren Sie anschließend den Text aus der heruntergeladenen Datei.",
|
||||
"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-map-members": "Mitglieder zuordnen",
|
||||
"import-members-map": "Das importierte Board hat Mitglieder. Bitte ordnen jene, die importiert werden sollen, vorhandenen Wekan-Nutzern zu",
|
||||
"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",
|
||||
"import-user-select": "Wählen Sie den Wekan-Nutzer aus, der dieses Mitglied sein soll",
|
||||
"import-user-select": "Wählen Sie den bestehenden Benutzer aus, den Sie für dieses Mitglied verwenden wollen.",
|
||||
"importMapMembersAddPopup-title": "Mitglied auswählen",
|
||||
"info": "Version",
|
||||
"initials": "Initialen",
|
||||
@@ -460,13 +476,14 @@
|
||||
"send-smtp-test": "Test-E-Mail an sich selbst schicken",
|
||||
"invitation-code": "Einladungscode",
|
||||
"email-invite-register-subject": "__inviter__ hat Ihnen eine Einladung geschickt",
|
||||
"email-invite-register-text": "Hallo __user__,\n\n__inviter__ hat Sie für Ihre Zusammenarbeit zu Wekan eingeladen.\n\nBitte klicken Sie auf folgenden Link:\n__url__\n\nIhr Einladungscode lautet: __icode__\n\nDanke.",
|
||||
"email-smtp-test-subject": "SMTP Test E-Mail",
|
||||
"email-invite-register-text": "Sehr geehrte(r) __user__,\n\n__inviter__ hat Sie zur Mitarbeit an einem Kanbanboard eingeladen.\n\nBitte klicken Sie auf folgenden Link:\n__url__\n\nIhr Einladungscode lautet: __icode__\n\nDanke.",
|
||||
"email-smtp-test-subject": "SMTP Test-E-Mail",
|
||||
"email-smtp-test-text": "Sie haben erfolgreich eine E-Mail versandt",
|
||||
"error-invitation-code-not-exist": "Ungültiger Einladungscode",
|
||||
"error-notAuthorized": "Sie sind nicht berechtigt diese Seite zu sehen.",
|
||||
"outgoing-webhooks": "Ausgehende Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Ausgehende Webhooks",
|
||||
"boardCardTitlePopup-title": "Kartentitel-Filter",
|
||||
"new-outgoing-webhook": "Neuer ausgehender Webhook",
|
||||
"no-name": "(Unbekannt)",
|
||||
"Node_version": "Node-Version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Gesamter Arbeitsspeicher",
|
||||
"OS_Type": "Typ des Betriebssystems",
|
||||
"OS_Uptime": "Laufzeit des Systems",
|
||||
"days": "Tage",
|
||||
"hours": "Stunden",
|
||||
"minutes": "Minuten",
|
||||
"seconds": "Sekunden",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Endet am",
|
||||
"editCardReceivedDatePopup-title": "Empfangsdatum ändern",
|
||||
"editCardEndDatePopup-title": "Enddatum ändern",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Zugewiesen von",
|
||||
"requested-by": "Angefordert von",
|
||||
"board-delete-notice": "Löschen kann nicht rückgängig gemacht werden. Sie werden alle Listen, Karten und Aktionen, die mit diesem Board verbunden sind, verlieren.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Regel löschen",
|
||||
"r-new-rule-name": "Neuer Regeltitel",
|
||||
"r-no-rules": "Keine Regeln",
|
||||
"r-when-a-card-is": "Wenn eine Karte ist",
|
||||
"r-added-to": "Hinzugefügt zu",
|
||||
"r-when-a-card": "Wenn eine Karte",
|
||||
"r-is": "ist",
|
||||
"r-is-moved": "verschoben wird",
|
||||
"r-added-to": "hinzugefügt wird zu",
|
||||
"r-removed-from": "Entfernt von",
|
||||
"r-the-board": "das Board",
|
||||
"r-list": "Liste",
|
||||
"set-filter": "Setze Filter",
|
||||
"r-moved-to": "Verschieben nach",
|
||||
"r-moved-from": "Verschieben von",
|
||||
"r-archived": "Ins Archiv verschieben",
|
||||
@@ -549,20 +571,19 @@
|
||||
"r-a-card": "eine Karte",
|
||||
"r-when-a-label-is": "Wenn ein Label ist",
|
||||
"r-when-the-label-is": " Wenn das Label ist",
|
||||
"r-list-name": "Listennamen",
|
||||
"r-list-name": "Listenname",
|
||||
"r-when-a-member": "Wenn ein Mitglied ist",
|
||||
"r-when-the-member": "Wenn das Mitglied",
|
||||
"r-name": "Name",
|
||||
"r-is": "ist",
|
||||
"r-when-a-attach": "Wenn ein Anhang",
|
||||
"r-when-a-checklist": "Wenn eine Checkliste ist",
|
||||
"r-when-the-checklist": "Wenn die Checkliste",
|
||||
"r-completed": "Abgeschlossen",
|
||||
"r-made-incomplete": "Unvollständig gemacht",
|
||||
"r-when-a-item": "Wenn eine Checklistenposition ist",
|
||||
"r-when-the-item": "Wenn die Checklistenposition",
|
||||
"r-when-a-item": "Wenn ein Checklistenelement ist",
|
||||
"r-when-the-item": "Wenn das Checklistenelement",
|
||||
"r-checked": "Markiert",
|
||||
"r-unchecked": "Demarkiert",
|
||||
"r-unchecked": "Abgewählt",
|
||||
"r-move-card-to": "Verschiebe Karte nach",
|
||||
"r-top-of": "Anfang von",
|
||||
"r-bottom-of": "Ende von",
|
||||
@@ -575,12 +596,13 @@
|
||||
"r-label": "Label",
|
||||
"r-member": "Mitglied",
|
||||
"r-remove-all": "Entferne alle Mitglieder von der Karte",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "Checkliste",
|
||||
"r-check-all": "Alle markieren",
|
||||
"r-uncheck-all": "Alle demarkieren",
|
||||
"r-uncheck-all": "Alle abwählen",
|
||||
"r-items-check": "Elemente der Checkliste",
|
||||
"r-check": "Markieren",
|
||||
"r-uncheck": "Demarkieren",
|
||||
"r-uncheck": "Abwählen",
|
||||
"r-item": "Element",
|
||||
"r-of-checklist": "der Checkliste",
|
||||
"r-send-email": "Eine E-Mail senden",
|
||||
@@ -599,16 +621,27 @@
|
||||
"r-d-unarchive": "Karte aus dem Archiv wiederherstellen",
|
||||
"r-d-add-label": "Label hinzufügen",
|
||||
"r-d-remove-label": "Label entfernen",
|
||||
"r-create-card": "Neue Karte erstellen",
|
||||
"r-in-list": "in der Liste",
|
||||
"r-in-swimlane": "in Swimlane",
|
||||
"r-d-add-member": "Mitglied hinzufügen",
|
||||
"r-d-remove-member": "Mitglied entfernen",
|
||||
"r-d-remove-all-member": "Entferne alle Mitglieder",
|
||||
"r-d-check-all": "Alle Element der Liste markieren",
|
||||
"r-d-uncheck-all": "Alle Element der Liste demarkieren",
|
||||
"r-d-check-one": "Element markieren",
|
||||
"r-d-uncheck-one": "Element demarkieren",
|
||||
"r-d-check-all": "Alle Elemente der Liste markieren",
|
||||
"r-d-uncheck-all": "Alle Element der Liste abwählen",
|
||||
"r-d-check-one": "Element auswählen",
|
||||
"r-d-uncheck-one": "Element abwählen",
|
||||
"r-d-check-of-list": "der Checkliste",
|
||||
"r-d-add-checklist": "Checkliste hinzufügen",
|
||||
"r-d-remove-checklist": "Checkliste entfernen",
|
||||
"r-by": "durch",
|
||||
"r-add-checklist": "Checkliste hinzufügen",
|
||||
"r-with-items": "mit Elementen",
|
||||
"r-items-list": "Element1,Element2,Element3",
|
||||
"r-add-swimlane": "Füge Swimlane hinzu",
|
||||
"r-swimlane-name": "Swimlanename",
|
||||
"r-board-note": "Hinweis: Lassen Sie ein Feld leer, um alle möglichen Werte zu finden.",
|
||||
"r-checklist-note": "Hinweis: Die Elemente der Checkliste müssen als kommagetrennte Werte geschrieben werden.",
|
||||
"r-when-a-card-is-moved": "Wenn eine Karte in eine andere Liste verschoben wird",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Verstecke Logo",
|
||||
"add-custom-html-after-body-start": "Füge benutzerdefiniertes HTML nach <body> Anfang hinzu",
|
||||
"add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu"
|
||||
"add-custom-html-before-body-end": "Füge benutzerdefiniertes HTML vor </body>Ende hinzu",
|
||||
"error-undefined": "Etwas ist schief gelaufen",
|
||||
"error-ldap-login": "Es ist ein Fehler beim Anmelden aufgetreten"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "μαύρο",
|
||||
"color-blue": "μπλε",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "πράσινο",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "λάιμ",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "πορτοκαλί",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "ροζ",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "μωβ",
|
||||
"color-red": "κόκκινο",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "ουρανός",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "κίτρινο",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Άγνωστο)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "ώρες",
|
||||
"minutes": "λεπτά",
|
||||
"seconds": "δευτερόλεπτα",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorised to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-3
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "Added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter":"Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,7 +571,7 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "When a member is",
|
||||
"r-when-the-member": "When the member",
|
||||
"r-name": "name",
|
||||
@@ -576,6 +598,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -600,6 +623,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -610,6 +636,15 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value. ",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-added-to": "added to",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -620,5 +655,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "nigra",
|
||||
"color-blue": "blua",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "verda",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "oranĝa",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "ruĝa",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "flava",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Komento",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+42
-7
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"accept": "Aceptar",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-activity-notify": "Notificación de Actividad",
|
||||
"act-addAttachment": "adjunto __attachment__ a __card__",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addSubtask": "lista de ítems __checklist__ agregada a __card__",
|
||||
"act-addChecklist": "lista de ítems __checklist__ agregada a __card__",
|
||||
"act-addChecklistItem": " __checklistItem__ agregada a lista de ítems __checklist__ en __card__",
|
||||
"act-addComment": "comentado en __card__: __comment__",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "negro",
|
||||
"color-blue": "azul",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "verde",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lima",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "naranja",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "púrpura",
|
||||
"color-red": "rojo",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "cielo",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "amarillo",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comentario",
|
||||
"comment-placeholder": "Comentar",
|
||||
"comment-only": "Comentar solamente",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "No estás autorizado para ver esta página.",
|
||||
"outgoing-webhooks": "Ganchos Web Salientes",
|
||||
"outgoingWebhooksPopup-title": "Ganchos Web Salientes",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Nuevo Gancho Web",
|
||||
"no-name": "(desconocido)",
|
||||
"Node_version": "Versión de Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Memoria Total del SO",
|
||||
"OS_Type": "Tipo de SO",
|
||||
"OS_Uptime": "Tiempo encendido del SO",
|
||||
"days": "days",
|
||||
"hours": "horas",
|
||||
"minutes": "minutos",
|
||||
"seconds": "segundos",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Termina en",
|
||||
"editCardReceivedDatePopup-title": "Cambiar fecha de recepción",
|
||||
"editCardEndDatePopup-title": "Cambiar fecha de término",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+39
-4
@@ -169,14 +169,30 @@
|
||||
"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": "Unset",
|
||||
"comment": "Comentar",
|
||||
"comment-placeholder": "Escribir comentario",
|
||||
"comment-only": "Sólo comentarios",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "No estás autorizado a ver esta página.",
|
||||
"outgoing-webhooks": "Webhooks salientes",
|
||||
"outgoingWebhooksPopup-title": "Webhooks salientes",
|
||||
"boardCardTitlePopup-title": "Filtro de títulos de tarjeta ",
|
||||
"new-outgoing-webhook": "Nuevo webhook saliente",
|
||||
"no-name": "(Desconocido)",
|
||||
"Node_version": "Versión de Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"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",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Finalizado el",
|
||||
"editCardReceivedDatePopup-title": "Cambiar la fecha de recepción",
|
||||
"editCardEndDatePopup-title": "Cambiar la fecha de finalización",
|
||||
"setCardColor-title": "Cambiar 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.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Eliminar regla",
|
||||
"r-new-rule-name": "Nueva título de regla",
|
||||
"r-no-rules": "No hay reglas",
|
||||
"r-when-a-card-is": "Cuando una tarjeta es",
|
||||
"r-added-to": "Añadido a",
|
||||
"r-when-a-card": "Cuando una tarjeta",
|
||||
"r-is": "es",
|
||||
"r-is-moved": "es movida",
|
||||
"r-added-to": "es agregada a",
|
||||
"r-removed-from": "Eliminado de",
|
||||
"r-the-board": "el tablero",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Filtrar",
|
||||
"r-moved-to": "Movido a",
|
||||
"r-moved-from": "Movido desde",
|
||||
"r-archived": "Movido a Archivo",
|
||||
@@ -553,7 +575,6 @@
|
||||
"r-when-a-member": "Cuando un miembro es",
|
||||
"r-when-the-member": "Cuando el miembro",
|
||||
"r-name": "nombre",
|
||||
"r-is": "es",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "etiqueta",
|
||||
"r-member": "miembro",
|
||||
"r-remove-all": "Eliminar todos los miembros de la tarjeta",
|
||||
"r-set-color": "Cambiar color a",
|
||||
"r-checklist": "lista de verificación",
|
||||
"r-check-all": "Marcar todo",
|
||||
"r-uncheck-all": "Desmarcar todo",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restaurar tarjeta del Archivo",
|
||||
"r-d-add-label": "Añadir etiqueta",
|
||||
"r-d-remove-label": "Eliminar etiqueta",
|
||||
"r-create-card": "Crear nueva tarjeta",
|
||||
"r-in-list": "en la lista",
|
||||
"r-in-swimlane": "en carril ",
|
||||
"r-d-add-member": "Añadir miembro",
|
||||
"r-d-remove-member": "Eliminar miembro",
|
||||
"r-d-remove-all-member": "Eliminar todos los miembros",
|
||||
@@ -609,6 +634,14 @@
|
||||
"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 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",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Disñeo",
|
||||
"hide-logo": "Ocultar 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>"
|
||||
"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"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "beltza",
|
||||
"color-blue": "urdina",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "berdea",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lima",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "laranja",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "larrosa",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purpura",
|
||||
"color-red": "gorria",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "zerua",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "horia",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Iruzkina",
|
||||
"comment-placeholder": "Idatzi iruzkin bat",
|
||||
"comment-only": "Iruzkinak besterik ez",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Ez duzu orri hau ikusteko baimenik.",
|
||||
"outgoing-webhooks": "Irteerako Webhook-ak",
|
||||
"outgoingWebhooksPopup-title": "Irteerako Webhook-ak",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Irteera-webhook berria",
|
||||
"no-name": "(Ezezaguna)",
|
||||
"Node_version": "Nodo bertsioa",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "SE memoria guztira",
|
||||
"OS_Type": "SE mota",
|
||||
"OS_Uptime": "SE denbora abiatuta",
|
||||
"days": "days",
|
||||
"hours": "ordu",
|
||||
"minutes": "minutu",
|
||||
"seconds": "segundo",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "شما می توانید با کلیک کردن بر روی دکمه «بایگانی» از صفحه هدر، صفحه را بازگردانید.",
|
||||
"color-black": "مشکی",
|
||||
"color-blue": "آبی",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "سبز",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "لیمویی",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "نارنجی",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "صورتی",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "بنفش",
|
||||
"color-red": "قرمز",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "آبی آسمانی",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "زرد",
|
||||
"unset-color": "Unset",
|
||||
"comment": "نظر",
|
||||
"comment-placeholder": "درج نظر",
|
||||
"comment-only": "فقط نظر",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "شما مجاز به دیدن این صفحه نیستید.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(ناشناخته)",
|
||||
"Node_version": "نسخه Node ",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "ساعت",
|
||||
"minutes": "دقیقه",
|
||||
"seconds": "ثانیه",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "پایان در",
|
||||
"editCardReceivedDatePopup-title": "تغییر تاریخ رسید",
|
||||
"editCardEndDatePopup-title": "تغییر تاریخ پایان",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "محول شده توسط",
|
||||
"requested-by": "تقاضا شده توسط",
|
||||
"board-delete-notice": "حذف دائمی است شما تمام لیست ها، کارت ها و اقدامات مرتبط با این برد را از دست خواهید داد.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "حذف قانون",
|
||||
"r-new-rule-name": "تیتر قانون جدید",
|
||||
"r-no-rules": "بدون قانون",
|
||||
"r-when-a-card-is": "زمانی که کارت هست",
|
||||
"r-added-to": "افزودن به",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "هست",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "حذف از",
|
||||
"r-the-board": "برد",
|
||||
"r-list": "لیست",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "انتقال به",
|
||||
"r-moved-from": "انتقال از",
|
||||
"r-archived": "انتقال به آرشیو",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "کارت",
|
||||
"r-when-a-label-is": "زمانی که لیبل هست",
|
||||
"r-when-the-label-is": "زمانی که لیبل هست",
|
||||
"r-list-name": "نام لیست",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "زمانی که کاربر هست",
|
||||
"r-when-the-member": "زمانی که کاربر",
|
||||
"r-name": "نام",
|
||||
"r-is": "هست",
|
||||
"r-when-a-attach": "زمانی که ضمیمه",
|
||||
"r-when-a-checklist": "زمانی که چک لیست هست",
|
||||
"r-when-the-checklist": "زمانی که چک لیست",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "برچسب",
|
||||
"r-member": "عضو",
|
||||
"r-remove-all": "حذف همه کاربران از کارت",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "چک لیست",
|
||||
"r-check-all": "انتخاب همه",
|
||||
"r-uncheck-all": "لغو انتخاب همه",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "بازگردانی کارت از آرشیو",
|
||||
"r-d-add-label": "افزودن برچسب",
|
||||
"r-d-remove-label": "حذف برچسب",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "افزودن عضو",
|
||||
"r-d-remove-member": "حذف عضو",
|
||||
"r-d-remove-all-member": "حذف تمامی کاربران",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "از چک لیست",
|
||||
"r-d-add-checklist": "افزودن چک لیست",
|
||||
"r-d-remove-checklist": "حذف چک لیست",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "افزودن چک لیست",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "لایه",
|
||||
"hide-logo": "مخفی سازی نماد",
|
||||
"add-custom-html-after-body-start": "افزودن کد های HTML بعد از <body> شروع",
|
||||
"add-custom-html-before-body-end": "افزودن کد های HTML قبل از </body> پایان"
|
||||
"add-custom-html-before-body-end": "افزودن کد های HTML قبل از </body> پایان",
|
||||
"error-undefined": "یک اشتباه رخ داده شده است",
|
||||
"error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "Voit palauttaa taulun klikkaamalla “Arkisto” painiketta taululistan yläpalkista.",
|
||||
"color-black": "musta",
|
||||
"color-blue": "sininen",
|
||||
"color-crimson": "karmiininpunainen",
|
||||
"color-darkgreen": "tummanvihreä",
|
||||
"color-gold": "kulta",
|
||||
"color-gray": "harmaa",
|
||||
"color-green": "vihreä",
|
||||
"color-indigo": "syvän sininen",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "vaaleanpunainen ruusu",
|
||||
"color-navy": "laivastonsininen",
|
||||
"color-orange": "oranssi",
|
||||
"color-paleturquoise": "vaalean turkoosi",
|
||||
"color-peachpuff": "persikanpunainen",
|
||||
"color-pink": "vaaleanpunainen",
|
||||
"color-plum": "luumunvärinen",
|
||||
"color-purple": "violetti",
|
||||
"color-red": "punainen",
|
||||
"color-saddlebrown": "satulanruskea",
|
||||
"color-silver": "hopea",
|
||||
"color-sky": "taivas",
|
||||
"color-slateblue": "liuskekivi sininen",
|
||||
"color-white": "valkoinen",
|
||||
"color-yellow": "keltainen",
|
||||
"unset-color": "Peru väri",
|
||||
"comment": "Kommentti",
|
||||
"comment-placeholder": "Kirjoita kommentti",
|
||||
"comment-only": "Vain kommentointi",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Sinulla ei ole oikeutta tarkastella tätä sivua.",
|
||||
"outgoing-webhooks": "Lähtevät Webkoukut",
|
||||
"outgoingWebhooksPopup-title": "Lähtevät Webkoukut",
|
||||
"boardCardTitlePopup-title": "Kortin otsikko suodatin",
|
||||
"new-outgoing-webhook": "Uusi lähtevä Webkoukku",
|
||||
"no-name": "(Tuntematon)",
|
||||
"Node_version": "Node versio",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Käyttöjärjestelmän muistin kokonaismäärä",
|
||||
"OS_Type": "Käyttöjärjestelmän tyyppi",
|
||||
"OS_Uptime": "Käyttöjärjestelmä ollut käynnissä",
|
||||
"days": "päivää",
|
||||
"hours": "tuntia",
|
||||
"minutes": "minuuttia",
|
||||
"seconds": "sekuntia",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Loppuu",
|
||||
"editCardReceivedDatePopup-title": "Vaihda vastaanottamispäivää",
|
||||
"editCardEndDatePopup-title": "Vaihda loppumispäivää",
|
||||
"setCardColor-title": "Aseta väri",
|
||||
"assigned-by": "Tehtävänantaja",
|
||||
"requested-by": "Pyytäjä",
|
||||
"board-delete-notice": "Poistaminen on lopullista. Menetät kaikki listat, kortit ja toimet tällä taululla.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Poista sääntö",
|
||||
"r-new-rule-name": "Uuden säännön otsikko",
|
||||
"r-no-rules": "Ei sääntöjä",
|
||||
"r-when-a-card-is": "Kun kortti on",
|
||||
"r-added-to": "Lisätty kohteeseen",
|
||||
"r-when-a-card": "Kun kortti",
|
||||
"r-is": "on",
|
||||
"r-is-moved": "on siirretty",
|
||||
"r-added-to": "lisätty kohteeseen",
|
||||
"r-removed-from": "Poistettu kohteesta",
|
||||
"r-the-board": "taulu",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Aseta suodatin",
|
||||
"r-moved-to": "Siirretty kohteeseen",
|
||||
"r-moved-from": "Siirretty kohteesta",
|
||||
"r-archived": "Siirretty Arkistoon",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "kortti",
|
||||
"r-when-a-label-is": "Kun tunniste on",
|
||||
"r-when-the-label-is": "Kun tunniste on",
|
||||
"r-list-name": "Listan nimi",
|
||||
"r-list-name": "listan nimi",
|
||||
"r-when-a-member": "Kun jäsen on",
|
||||
"r-when-the-member": "Kun käyttäjä",
|
||||
"r-name": "nimi",
|
||||
"r-is": "on",
|
||||
"r-when-a-attach": "Kun liitetiedosto",
|
||||
"r-when-a-checklist": "Kun tarkistuslista on",
|
||||
"r-when-the-checklist": "Kun tarkistuslista",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "tunniste",
|
||||
"r-member": "jäsen",
|
||||
"r-remove-all": "Poista kaikki jäsenet kortilta",
|
||||
"r-set-color": "Aseta väriksi",
|
||||
"r-checklist": "tarkistuslista",
|
||||
"r-check-all": "Ruksaa kaikki",
|
||||
"r-uncheck-all": "Poista ruksi kaikista",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Palauta kortti Arkistosta",
|
||||
"r-d-add-label": "Lisää tunniste",
|
||||
"r-d-remove-label": "Poista tunniste",
|
||||
"r-create-card": "Luo uusi kortti",
|
||||
"r-in-list": "listassa",
|
||||
"r-in-swimlane": "swimlanessa",
|
||||
"r-d-add-member": "Lisää jäsen",
|
||||
"r-d-remove-member": "Poista jäsen",
|
||||
"r-d-remove-all-member": "Poista kaikki jäsenet",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "tarkistuslistasta",
|
||||
"r-d-add-checklist": "Lisää tarkistuslista",
|
||||
"r-d-remove-checklist": "Poista tarkistuslista",
|
||||
"r-by": "mennessä",
|
||||
"r-add-checklist": "Lisää tarkistuslista",
|
||||
"r-with-items": "kohteiden kanssa",
|
||||
"r-items-list": "kohde1,kohde2,kohde3",
|
||||
"r-add-swimlane": "Lisää swimlane",
|
||||
"r-swimlane-name": "swimlanen nimi",
|
||||
"r-board-note": "Huom: jätä kenttä tyhjäksi täsmätäksesi jokaiseen mahdolliseen arvoon.",
|
||||
"r-checklist-note": "Huom: tarkistuslistan kohteet täytyy kirjoittaa pilkulla eroteltuina.",
|
||||
"r-when-a-card-is-moved": "Kun kortti on siirretty toiseen listaan",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Ulkoasu",
|
||||
"hide-logo": "Piilota Logo",
|
||||
"add-custom-html-after-body-start": "Lisää HTML <body> alun jälkeen",
|
||||
"add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua"
|
||||
"add-custom-html-before-body-end": "Lisä HTML ennen </body> loppua",
|
||||
"error-undefined": "Jotain meni pieleen",
|
||||
"error-ldap-login": "Virhe tapahtui yrittäessä kirjautua sisään"
|
||||
}
|
||||
+51
-16
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"accept": "Accepter",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-activity-notify": "Notification d'activité",
|
||||
"act-addAttachment": "a joint __attachment__ à __card__",
|
||||
"act-addSubtask": "a ajouté une sous-tâche __checklist__ à __card__",
|
||||
"act-addChecklist": "a ajouté la checklist __checklist__ à __card__",
|
||||
@@ -78,7 +78,7 @@
|
||||
"and-n-other-card": "Et __count__ autre carte",
|
||||
"and-n-other-card_plural": "Et __count__ autres cartes",
|
||||
"apply": "Appliquer",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"app-is-offline": "Chargement en cours, veuillez patienter. Vous risquez de perdre des données si vous rechargez la page. Si le chargement échoue, veuillez vérifier que le serveur n'est pas arrêté.",
|
||||
"archive": "Archiver",
|
||||
"archive-all": "Tout archiver",
|
||||
"archive-board": "Archiver le tableau",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "Vous pouvez restaurer le tableau en cliquant sur le bouton « Archives » depuis le menu en entête.",
|
||||
"color-black": "noir",
|
||||
"color-blue": "bleu",
|
||||
"color-crimson": "rouge cramoisi",
|
||||
"color-darkgreen": "vert foncé",
|
||||
"color-gold": "or",
|
||||
"color-gray": "gris",
|
||||
"color-green": "vert",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "citron vert",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "rose brumeux",
|
||||
"color-navy": "bleu marin",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "azurin",
|
||||
"color-peachpuff": "beige pêche",
|
||||
"color-pink": "rose",
|
||||
"color-plum": "prune",
|
||||
"color-purple": "violet",
|
||||
"color-red": "rouge",
|
||||
"color-saddlebrown": "brun cuir",
|
||||
"color-silver": "argent",
|
||||
"color-sky": "ciel",
|
||||
"color-slateblue": "bleu ardoise",
|
||||
"color-white": "blanc",
|
||||
"color-yellow": "jaune",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Commenter",
|
||||
"comment-placeholder": "Écrire un commentaire",
|
||||
"comment-only": "Commentaire uniquement",
|
||||
@@ -283,20 +299,20 @@
|
||||
"import-board": "importer un tableau",
|
||||
"import-board-c": "Importer un tableau",
|
||||
"import-board-title-trello": "Importer le tableau depuis Trello",
|
||||
"import-board-title-wekan": "Import board from previous export",
|
||||
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
|
||||
"import-board-title-wekan": "Importer le tableau depuis l'export précédent",
|
||||
"import-sandstorm-backup-warning": "Ne supprimez pas les données que vous importez du tableau exporté d'origine ou de Trello avant de vérifier que la graine peut se fermer et s'ouvrir à nouveau, ou qu'une erreur \"Tableau introuvable\" survient, sinon vous perdrez vos données.",
|
||||
"import-sandstorm-warning": "Le tableau importé supprimera toutes les données du tableau et les remplacera avec celles du tableau importé.",
|
||||
"from-trello": "Depuis Trello",
|
||||
"from-wekan": "From previous export",
|
||||
"from-wekan": "Depuis un export précédent",
|
||||
"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-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
|
||||
"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-map-members": "Faire correspondre aux membres",
|
||||
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
|
||||
"import-members-map": "Le tableau que vous venez d'importer contient des membres. Veuillez associer les membres que vous souhaitez importer à vos utilisateurs.",
|
||||
"import-show-user-mapping": "Contrôler l'association des membres",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"import-user-select": "Sélectionnez l'utilisateur existant que vous voulez associer à ce membre",
|
||||
"importMapMembersAddPopup-title": "Sélectionner le membre",
|
||||
"info": "Version",
|
||||
"initials": "Initiales",
|
||||
"invalid-date": "Date invalide",
|
||||
@@ -460,13 +476,14 @@
|
||||
"send-smtp-test": "Envoyer un mail de test à vous-même",
|
||||
"invitation-code": "Code d'invitation",
|
||||
"email-invite-register-subject": "__inviter__ vous a envoyé une invitation",
|
||||
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
|
||||
"email-smtp-test-subject": "SMTP Test Email",
|
||||
"email-invite-register-text": "Cher __user__,\n\n__inviter__ vous invite à le rejoindre sur le tableau kanban pour collaborer.\n\nVeuillez suivre le lien ci-dessous :\n__url__\n\nVotre code d'invitation est : __icode__\n\nMerci.",
|
||||
"email-smtp-test-subject": "Email de test SMTP",
|
||||
"email-smtp-test-text": "Vous avez envoyé un mail avec succès",
|
||||
"error-invitation-code-not-exist": "Ce code d'invitation n'existe pas.",
|
||||
"error-notAuthorized": "Vous n'êtes pas autorisé à accéder à cette page.",
|
||||
"outgoing-webhooks": "Webhooks sortants",
|
||||
"outgoingWebhooksPopup-title": "Webhooks sortants",
|
||||
"boardCardTitlePopup-title": "Filtre par titre de carte",
|
||||
"new-outgoing-webhook": "Nouveau webhook sortant",
|
||||
"no-name": "(Inconnu)",
|
||||
"Node_version": "Version de Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Mémoire totale",
|
||||
"OS_Type": "Type d'OS",
|
||||
"OS_Uptime": "OS Durée de fonctionnement",
|
||||
"days": "jours",
|
||||
"hours": "heures",
|
||||
"minutes": "minutes",
|
||||
"seconds": "secondes",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Se termine le",
|
||||
"editCardReceivedDatePopup-title": "Modifier la date de réception",
|
||||
"editCardEndDatePopup-title": "Modifier la date de fin",
|
||||
"setCardColor-title": "Définir la couleur",
|
||||
"assigned-by": "Assigné par",
|
||||
"requested-by": "Demandé par",
|
||||
"board-delete-notice": "La suppression est définitive. Vous perdrez toutes les listes, cartes et actions associées à ce tableau.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Supprimer la règle",
|
||||
"r-new-rule-name": "Titre de la nouvelle règle",
|
||||
"r-no-rules": "Pas de règles",
|
||||
"r-when-a-card-is": "Quand une carte est",
|
||||
"r-added-to": "Ajouté à",
|
||||
"r-when-a-card": "Quand une carte",
|
||||
"r-is": "est",
|
||||
"r-is-moved": "est déplacée",
|
||||
"r-added-to": "est ajoutée à",
|
||||
"r-removed-from": "Supprimé de",
|
||||
"r-the-board": "tableau",
|
||||
"r-list": "liste",
|
||||
"set-filter": "Définir un filtre",
|
||||
"r-moved-to": "Déplacé vers",
|
||||
"r-moved-from": "Déplacé depuis",
|
||||
"r-archived": "Archivé",
|
||||
@@ -553,7 +575,6 @@
|
||||
"r-when-a-member": "Quand un membre est",
|
||||
"r-when-the-member": "Quand le membre",
|
||||
"r-name": "nom",
|
||||
"r-is": "est",
|
||||
"r-when-a-attach": "Quand une pièce jointe",
|
||||
"r-when-a-checklist": "Quand une checklist est",
|
||||
"r-when-the-checklist": "Quand la checklist",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "étiquette",
|
||||
"r-member": "membre",
|
||||
"r-remove-all": "Supprimer tous les membres de la carte",
|
||||
"r-set-color": "Définir la couleur à",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Tout cocher",
|
||||
"r-uncheck-all": "Tout décocher",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restaurer la carte depuis l'Archive",
|
||||
"r-d-add-label": "Ajouter une étiquette",
|
||||
"r-d-remove-label": "Supprimer l'étiquette",
|
||||
"r-create-card": "Créer une nouvelle carte",
|
||||
"r-in-list": "dans la liste",
|
||||
"r-in-swimlane": "Dans le couloir",
|
||||
"r-d-add-member": "Ajouter un membre",
|
||||
"r-d-remove-member": "Supprimer un membre",
|
||||
"r-d-remove-all-member": "Supprimer tous les membres",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "de la checklist",
|
||||
"r-d-add-checklist": "Ajouter une checklist",
|
||||
"r-d-remove-checklist": "Supprimer la checklist",
|
||||
"r-by": "par",
|
||||
"r-add-checklist": "Ajouter une checklist",
|
||||
"r-with-items": "avec les items",
|
||||
"r-items-list": "item1, item2, item3",
|
||||
"r-add-swimlane": "Ajouter un couloir",
|
||||
"r-swimlane-name": "Nom du couloir",
|
||||
"r-board-note": "Note : laisser le champ vide pour faire correspondre avec toutes les valeurs possibles.",
|
||||
"r-checklist-note": "Note : les items de la checklist doivent être séparés par des virgules.",
|
||||
"r-when-a-card-is-moved": "Quand une carte est déplacée vers une autre liste",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -618,6 +651,8 @@
|
||||
"custom-product-name": "Nom personnalisé",
|
||||
"layout": "Interface",
|
||||
"hide-logo": "Cacher le logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-after-body-start": "Ajouter le HTML personnalisé après le début du <body>",
|
||||
"add-custom-html-before-body-end": "Ajouter le HTML personnalisé avant la fin du </body>",
|
||||
"error-undefined": "Une erreur inconnue s'est produite",
|
||||
"error-ldap-login": "Une erreur s'est produite lors de la tentative de connexion"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "negro",
|
||||
"color-blue": "azul",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "verde",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "laranxa",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "vermello",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "celeste",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "amarelo",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comentario",
|
||||
"comment-placeholder": "Escribir un comentario",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+61
-26
@@ -35,13 +35,13 @@
|
||||
"activity-customfield-created": "נוצר שדה בהתאמה אישית %s",
|
||||
"activity-excluded": "%s לא נכלל ב%s",
|
||||
"activity-imported": "%s ייובא מ%s אל %s",
|
||||
"activity-imported-board": "%s ייובא מ%s",
|
||||
"activity-imported-board": "%s יובא מ%s",
|
||||
"activity-joined": "הצטרפות אל %s",
|
||||
"activity-moved": "%s עבר מ%s ל%s",
|
||||
"activity-on": "ב%s",
|
||||
"activity-removed": "%s הוסר מ%s",
|
||||
"activity-sent": "%s נשלח ל%s",
|
||||
"activity-unjoined": "בטל צירוף %s",
|
||||
"activity-unjoined": "בוטל צירוף אל %s",
|
||||
"activity-subtask-added": "נוספה תת־משימה אל %s",
|
||||
"activity-checked-item": "%s סומן ברשימת המשימות %s מתוך %s",
|
||||
"activity-unchecked-item": "בוטל הסימון של %s ברשימת המשימות %s מתוך %s",
|
||||
@@ -78,7 +78,7 @@
|
||||
"and-n-other-card": "וכרטיס נוסף",
|
||||
"and-n-other-card_plural": "ו־__count__ כרטיסים נוספים",
|
||||
"apply": "החלה",
|
||||
"app-is-offline": "טוען, אנא המתן. טעינה מחדש של הדף תוביל לאבדן מידע. אם הטעינה לוקחת יותר מדי זמן, אנא בדוק אם השרת מקוון.",
|
||||
"app-is-offline": "בטעינה, נא להמתין. רענון הדף תוביל לאבדן מידע. אם הטעינה אורכת זמן רב מדי, מוטב לבדוק אם השרת מקוון.",
|
||||
"archive": "העברה לארכיון",
|
||||
"archive-all": "אחסן הכל בארכיון",
|
||||
"archive-board": "העברת הלוח לארכיון",
|
||||
@@ -86,7 +86,7 @@
|
||||
"archive-list": "העברת הרשימה לארכיון",
|
||||
"archive-swimlane": "שמור נתיב זרימה לארכיון",
|
||||
"archive-selection": "העברת הבחירה לארכיון",
|
||||
"archiveBoardPopup-title": "האם להעביר לוח זה לארכיון?",
|
||||
"archiveBoardPopup-title": "להעביר לוח זה לארכיון?",
|
||||
"archived-items": "להעביר לארכיון",
|
||||
"archived-boards": "לוחות שנשמרו בארכיון",
|
||||
"restore-board": "שחזור לוח",
|
||||
@@ -159,7 +159,7 @@
|
||||
"changePasswordPopup-title": "החלפת ססמה",
|
||||
"changePermissionsPopup-title": "שינוי הרשאות",
|
||||
"changeSettingsPopup-title": "שינוי הגדרות",
|
||||
"subtasks": "תתי משימות",
|
||||
"subtasks": "תת משימות",
|
||||
"checklists": "רשימות",
|
||||
"click-to-star": "יש ללחוץ להוספת הלוח למועדפים.",
|
||||
"click-to-unstar": "יש ללחוץ להסרת הלוח מהמועדפים.",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "ניתן לשחזר את הלוח בלחיצה על כפתור „ארכיונים“ מהכותרת העליונה.",
|
||||
"color-black": "שחור",
|
||||
"color-blue": "כחול",
|
||||
"color-crimson": "שני",
|
||||
"color-darkgreen": "ירוק כהה",
|
||||
"color-gold": "זהב",
|
||||
"color-gray": "אפור",
|
||||
"color-green": "ירוק",
|
||||
"color-indigo": "אינדיגו",
|
||||
"color-lime": "ליים",
|
||||
"color-magenta": "ארגמן",
|
||||
"color-mistyrose": "ורד",
|
||||
"color-navy": "כחול כהה",
|
||||
"color-orange": "כתום",
|
||||
"color-paleturquoise": "טורקיז חיוור",
|
||||
"color-peachpuff": "נשיפת אפרסק",
|
||||
"color-pink": "ורוד",
|
||||
"color-plum": "שזיף",
|
||||
"color-purple": "סגול",
|
||||
"color-red": "אדום",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "כסף",
|
||||
"color-sky": "תכלת",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "לבן",
|
||||
"color-yellow": "צהוב",
|
||||
"unset-color": "בטל הגדרה",
|
||||
"comment": "לפרסם",
|
||||
"comment-placeholder": "כתיבת הערה",
|
||||
"comment-only": "תגובה בלבד",
|
||||
@@ -195,7 +211,7 @@
|
||||
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"כותרת כרטיס ראשון\", \"description\":\"תיאור כרטיס ראשון\"}, {\"title\":\"כותרת כרטיס שני\",\"description\":\"תיאור כרטיס שני\"},{\"title\":\"כותרת כרטיס אחרון\",\"description\":\"תיאור כרטיס אחרון\"} ]",
|
||||
"create": "יצירה",
|
||||
"createBoardPopup-title": "יצירת לוח",
|
||||
"chooseBoardSourcePopup-title": "ייבוא לוח",
|
||||
"chooseBoardSourcePopup-title": "יבוא לוח",
|
||||
"createLabelPopup-title": "יצירת תווית",
|
||||
"createCustomField": "יצירת שדה",
|
||||
"createCustomFieldPopup-title": "יצירת שדה",
|
||||
@@ -283,21 +299,21 @@
|
||||
"import-board": "ייבוא לוח",
|
||||
"import-board-c": "יבוא לוח",
|
||||
"import-board-title-trello": "ייבוא לוח מטרלו",
|
||||
"import-board-title-wekan": "Import board from previous export",
|
||||
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
|
||||
"import-board-title-wekan": "ייבוא לוח מייצוא קודם",
|
||||
"import-sandstorm-backup-warning": "עדיף לא למחוק נתונים שייובאו מייצוא מקורי או מ־Trello בטרם בדיקה האם הגרעין הזה נסגר ונפתח שוב או אם מתקבלת שגיאה על כך שהלוח לא נמצא, משמעות הדבר היא אבדן מידע.",
|
||||
"import-sandstorm-warning": "הלוח שייובא ימחק את כל הנתונים הקיימים בלוח ויחליף אותם בלוח שייובא.",
|
||||
"from-trello": "מ־Trello",
|
||||
"from-wekan": "מייצוא קודם",
|
||||
"import-board-instruction-trello": "בלוח הטרלו שלך, עליך ללחוץ על ‚תפריט‘, ואז על ‚עוד‘, ‚הדפסה וייצוא‘, ‚יצוא JSON‘ ולהעתיק את הטקסט שנוצר.",
|
||||
"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": "גם אם התקבלו שגיאות בעת ייבוא לוח, ייתכן שהייבוא עבד. כדי לבדוק זאת, יש להיכנס ל„כל הלוחות”.",
|
||||
"import-board-instruction-wekan": "בלוח שלך עליך לגשת אל ‚תפריט’, לאחר מכן ‚ייצוא לוח’ ואז להעתיק את הטקסט מהקובץ שהתקבל.",
|
||||
"import-board-instruction-about-errors": "גם אם התקבלו שגיאות בעת יבוא לוח, ייתכן שהייבוא עבד. כדי לבדוק זאת, יש להיכנס ל„כל הלוחות”.",
|
||||
"import-json-placeholder": "יש להדביק את נתוני ה־JSON התקינים לכאן",
|
||||
"import-map-members": "מיפוי חברים",
|
||||
"import-members-map": "הלוחות המיובאים שלך מכילים חברים. בבקשה מפה את החברים שתרצה לייבא כמשתמשים",
|
||||
"import-members-map": "הלוחות המיובאים שלך מכילים חברים. נא למפות את החברים שברצונך לייבא למשתמשים שלך",
|
||||
"import-show-user-mapping": "סקירת מיפוי חברים",
|
||||
"import-user-select": "נא לבחור את המשתמש ב־Wekan בו ברצונך להשתמש עבור חבר זה",
|
||||
"importMapMembersAddPopup-title": "בחר משתמש",
|
||||
"info": "גרסא",
|
||||
"import-user-select": "נא לבחור את המשתמש ב־Wekan אותו ברצונך למפות אל חבר זה",
|
||||
"importMapMembersAddPopup-title": "בחירת משתמש",
|
||||
"info": "גרסה",
|
||||
"initials": "ראשי תיבות",
|
||||
"invalid-date": "תאריך שגוי",
|
||||
"invalid-time": "זמן שגוי",
|
||||
@@ -316,7 +332,7 @@
|
||||
"leaveBoardPopup-title": "לעזוב לוח ?",
|
||||
"link-card": "קישור לכרטיס זה",
|
||||
"list-archive-cards": "העברת כל הכרטיסים שברשימה זו לארכיון",
|
||||
"list-archive-cards-pop": "כל הכרטיסים מרשימה זו יוסרו מהלוח. לצפייה בכרטיסים השמורים בארכיון ולהחזירם ללוח, לחצו \"תפריט\" > \"פריטים בארכיון\".",
|
||||
"list-archive-cards-pop": "כל הכרטיסים מרשימה זו יוסרו מהלוח. לצפייה בכרטיסים השמורים בארכיון ולהחזירם ללוח, ניתן ללחוץ על „תפריט” > „פריטים בארכיון”.",
|
||||
"list-move-cards": "העברת כל הכרטיסים שברשימה זו",
|
||||
"list-select-cards": "בחירת כל הכרטיסים שברשימה זו",
|
||||
"listActionPopup-title": "פעולות רשימה",
|
||||
@@ -347,7 +363,7 @@
|
||||
"name": "שם",
|
||||
"no-archived-cards": "אין כרטיסים בארכיון",
|
||||
"no-archived-lists": "אין רשימות בארכיון",
|
||||
"no-archived-swimlanes": "לא שמורים נתיבי זרימה בארכיון",
|
||||
"no-archived-swimlanes": "לא שמורים מסלולים בארכיון",
|
||||
"no-results": "אין תוצאות",
|
||||
"normal": "רגיל",
|
||||
"normal-desc": "הרשאה לצפות ולערוך כרטיסים. לא ניתן לשנות הגדרות.",
|
||||
@@ -413,7 +429,7 @@
|
||||
"overtime-hours": "שעות נוספות",
|
||||
"overtime": "שעות נוספות",
|
||||
"has-overtime-cards": "יש כרטיסי שעות נוספות",
|
||||
"has-spenttime-cards": "ניצל את כרטיסי הזמן שהושקע",
|
||||
"has-spenttime-cards": "יש כרטיסי זמן שהושקע",
|
||||
"time": "זמן",
|
||||
"title": "כותרת",
|
||||
"tracking": "מעקב",
|
||||
@@ -461,12 +477,13 @@
|
||||
"invitation-code": "קוד הזמנה",
|
||||
"email-invite-register-subject": "נשלחה אליך הזמנה מאת __inviter__",
|
||||
"email-invite-register-text": " __user__, יקר/ה\n\n__inviter__ מזמין/ה אתכם לשיתוף פעולה בלוח הקנבן.\n\nאנא לחצו על הקישור הבא:\n__url__\n\nקוד ההזמנה הוא: __icode__\n\nתודה.",
|
||||
"email-smtp-test-subject": "דוא\"ל בדיקת SMTP",
|
||||
"email-smtp-test-subject": "דוא״ל לבדיקת SMTP",
|
||||
"email-smtp-test-text": "שלחת הודעת דוא״ל בהצלחה",
|
||||
"error-invitation-code-not-exist": "קוד ההזמנה אינו קיים",
|
||||
"error-notAuthorized": "אין לך הרשאה לצפות בעמוד זה.",
|
||||
"outgoing-webhooks": "קרסי רשת יוצאים",
|
||||
"outgoingWebhooksPopup-title": "קרסי רשת יוצאים",
|
||||
"boardCardTitlePopup-title": "מסנן כותרת כרטיס",
|
||||
"new-outgoing-webhook": "קרסי רשת יוצאים חדשים",
|
||||
"no-name": "(לא ידוע)",
|
||||
"Node_version": "גרסת Node",
|
||||
@@ -476,19 +493,20 @@
|
||||
"OS_Loadavg": "עומס ממוצע ",
|
||||
"OS_Platform": "מערכת הפעלה",
|
||||
"OS_Release": "גרסת מערכת הפעלה",
|
||||
"OS_Totalmem": "סך הכל זיכרון (RAM)",
|
||||
"OS_Totalmem": "סך כל הזיכרון (RAM)",
|
||||
"OS_Type": "סוג מערכת ההפעלה",
|
||||
"OS_Uptime": "זמן שעבר מאז האתחול האחרון",
|
||||
"days": "ימים",
|
||||
"hours": "שעות",
|
||||
"minutes": "דקות",
|
||||
"seconds": "שניות",
|
||||
"show-field-on-card": "הצגת שדה זה בכרטיס",
|
||||
"automatically-field-on-card": "הוספת שדה לכל הכרטיסים",
|
||||
"showLabel-field-on-card": "הצג תווית של השדה במיני כרטיס",
|
||||
"showLabel-field-on-card": "הצגת תווית של השדה בכרטיס מוקטן",
|
||||
"yes": "כן",
|
||||
"no": "לא",
|
||||
"accounts": "חשבונות",
|
||||
"accounts-allowEmailChange": "אפשר שינוי דוא\"ל",
|
||||
"accounts-allowEmailChange": "לאפשר שינוי דוא״ל",
|
||||
"accounts-allowUserNameChange": "לאפשר שינוי שם משתמש",
|
||||
"createdAt": "נוצר ב",
|
||||
"verified": "עבר אימות",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "מועד הסיום",
|
||||
"editCardReceivedDatePopup-title": "החלפת מועד הקבלה",
|
||||
"editCardEndDatePopup-title": "החלפת מועד הסיום",
|
||||
"setCardColor-title": "הגדרת צבע",
|
||||
"assigned-by": "הוקצה על ידי",
|
||||
"requested-by": "התבקש על ידי",
|
||||
"board-delete-notice": "מחיקה היא לצמיתות. כל הרשימות, הכרטיבים והפעולות שקשורים בלוח הזה ילכו לאיבוד.",
|
||||
@@ -506,7 +525,7 @@
|
||||
"boardDeletePopup-title": "למחוק את הלוח?",
|
||||
"delete-board": "מחיקת לוח",
|
||||
"default-subtasks-board": "תת־משימות עבור הלוח __board__",
|
||||
"default": "ברירת מחדל",
|
||||
"default": "בררת מחדל",
|
||||
"queue": "תור",
|
||||
"subtask-settings": "הגדרות תתי משימות",
|
||||
"boardSubtaskSettingsPopup-title": "הגדרות תת־משימות בלוח",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "מחיקת כל",
|
||||
"r-new-rule-name": "שמו של הכלל החדש",
|
||||
"r-no-rules": "אין כללים",
|
||||
"r-when-a-card-is": "כאשר כרטיס",
|
||||
"r-when-a-card": "כאשר כרטיס",
|
||||
"r-is": "הוא",
|
||||
"r-is-moved": "מועבר",
|
||||
"r-added-to": "נוסף אל",
|
||||
"r-removed-from": "מוסר מ־",
|
||||
"r-the-board": "הלוח",
|
||||
"r-list": "רשימה",
|
||||
"set-filter": "הגדרת מסנן",
|
||||
"r-moved-to": "מועבר אל",
|
||||
"r-moved-from": "מועבר מ־",
|
||||
"r-archived": "הועבר לארכיון",
|
||||
@@ -553,7 +575,6 @@
|
||||
"r-when-a-member": "כאשר חבר הוא",
|
||||
"r-when-the-member": "כאשר חבר",
|
||||
"r-name": "שם",
|
||||
"r-is": "הוא",
|
||||
"r-when-a-attach": "כאשר קובץ מצורף",
|
||||
"r-when-a-checklist": "כאשר רשימת משימות",
|
||||
"r-when-the-checklist": "כאשר רשימת המשימות",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "תווית",
|
||||
"r-member": "חבר",
|
||||
"r-remove-all": "הסרת כל החברים מהכרטיס",
|
||||
"r-set-color": "הגדרת צבע לכדי",
|
||||
"r-checklist": "רשימת משימות",
|
||||
"r-check-all": "לסמן הכול",
|
||||
"r-uncheck-all": "לבטל את הסימון",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "החזרת כרטיס מהארכיון",
|
||||
"r-d-add-label": "הוספת תווית",
|
||||
"r-d-remove-label": "הסרת תווית",
|
||||
"r-create-card": "יצירת כרטיס חדש",
|
||||
"r-in-list": "ברשימה",
|
||||
"r-in-swimlane": "במסלול",
|
||||
"r-d-add-member": "הוספת חבר",
|
||||
"r-d-remove-member": "הסרת חבר",
|
||||
"r-d-remove-all-member": "הסרת כל החברים",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "של רשימת משימות",
|
||||
"r-d-add-checklist": "הוספת רשימת משימות",
|
||||
"r-d-remove-checklist": "הסרת רשימת משימות",
|
||||
"r-by": "על ידי",
|
||||
"r-add-checklist": "הוספת רשימת משימות",
|
||||
"r-with-items": "עם פריטים",
|
||||
"r-items-list": "פריט1,פריט2,פריט3",
|
||||
"r-add-swimlane": "הוספת מסלול",
|
||||
"r-swimlane-name": "שם המסלול",
|
||||
"r-board-note": "לתשומת לבך: ניתן להשאיר את השדה ריק כדי ללכוד כל ערך אפשרי.",
|
||||
"r-checklist-note": "לתשומת לבך: את פריטי רשימת הביצוע יש לכתוב בתצורת רשימה של ערכים המופרדים בפסיקים.",
|
||||
"r-when-a-card-is-moved": "כאשר כרטיס מועבר לרשימה אחרת",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -618,6 +651,8 @@
|
||||
"custom-product-name": "שם מותאם אישית למוצר",
|
||||
"layout": "פריסה",
|
||||
"hide-logo": "הסתרת לוגו",
|
||||
"add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית בתחילת ה <body>.",
|
||||
"add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית בסוף ה</body>."
|
||||
"add-custom-html-after-body-start": "הוספת קוד HTML מותאם אישית לאחר ה־<body> הפותח.",
|
||||
"add-custom-html-before-body-end": "הוספת קוד HTML מותאם אישית לפני ה־</body> הסוגר.",
|
||||
"error-undefined": "מהו השתבש",
|
||||
"error-ldap-login": "אירעה שגיאה בעת ניסיון הכניסה"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "काला",
|
||||
"color-blue": "नीला",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "हरा",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "हल्का हरा",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "नारंगी",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "गुलाबी",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "बैंगनी",
|
||||
"color-red": "लाल",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "आकाशिया नीला",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "पीला",
|
||||
"unset-color": "Unset",
|
||||
"comment": "टिप्पणी",
|
||||
"comment-placeholder": "टिप्पणी लिखें",
|
||||
"comment-only": "केवल टिप्पणी करें",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized तक आलोकन यह page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose संपूर्ण lists, कार्ड और actions associated साथ में यह बोर्ड.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "मिटाएँ rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "जब एक कार्ड is",
|
||||
"r-added-to": "संकलित to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "हटा दिया from",
|
||||
"r-the-board": "the बोर्ड",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "स्थानांतरित to",
|
||||
"r-moved-from": "स्थानांतरित from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a कार्ड",
|
||||
"r-when-a-label-is": "जब एक नामपत्र है",
|
||||
"r-when-the-label-is": "जब नामपत्र है",
|
||||
"r-list-name": "सूची name",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "जब एक सदस्य is",
|
||||
"r-when-the-member": "जब the सदस्य",
|
||||
"r-name": "name",
|
||||
"r-is": "is",
|
||||
"r-when-a-attach": "जब an संलग्नक",
|
||||
"r-when-a-checklist": "जब एक चिह्नांकन-सूची is",
|
||||
"r-when-the-checklist": "जब the checklist",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "हटाएँ संपूर्ण सदस्य से the कार्ड",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "जोड़ें label",
|
||||
"r-d-remove-label": "हटाएँ label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "जोड़ें सदस्य",
|
||||
"r-d-remove-member": "हटाएँ सदस्य",
|
||||
"r-d-remove-all-member": "हटाएँ संपूर्ण सदस्य",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "जोड़ें checklist",
|
||||
"r-d-remove-checklist": "हटाएँ checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "जोड़ें checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "जब एक कार्ड is स्थानांतरित तक another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "fekete",
|
||||
"color-blue": "kék",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "zöld",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "citrus",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "narancssárga",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rózsaszín",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "lila",
|
||||
"color-red": "piros",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "égszínkék",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "sárga",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Megjegyzés",
|
||||
"comment-placeholder": "Megjegyzés írása",
|
||||
"comment-only": "Csak megjegyzés",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Nincs jogosultsága az oldal megtekintéséhez.",
|
||||
"outgoing-webhooks": "Kimenő webhurkok",
|
||||
"outgoingWebhooksPopup-title": "Kimenő webhurkok",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Új kimenő webhurok",
|
||||
"no-name": "(Ismeretlen)",
|
||||
"Node_version": "Node verzió",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Operációs rendszer összes memóriája",
|
||||
"OS_Type": "Operációs rendszer típusa",
|
||||
"OS_Uptime": "Operációs rendszer üzemideje",
|
||||
"days": "days",
|
||||
"hours": "óra",
|
||||
"minutes": "perc",
|
||||
"seconds": "másodperc",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Befejeződik ekkor",
|
||||
"editCardReceivedDatePopup-title": "Érkezési dátum megváltoztatása",
|
||||
"editCardEndDatePopup-title": "Befejezési dátum megváltoztatása",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "hitam",
|
||||
"color-blue": "biru",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "hijau",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "hijau muda",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "jingga",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "merah muda",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "ungu",
|
||||
"color-red": "merah",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "biru muda",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "kuning",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Komentar",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Hanya komentar",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Tambahkan label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Sembunyikan Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "elekere",
|
||||
"minutes": "nkeji",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "nero",
|
||||
"color-blue": "blu",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "verde",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "arancione",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "viola",
|
||||
"color-red": "rosso",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "azzurro",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "giallo",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Commento",
|
||||
"comment-placeholder": "Scrivi Commento",
|
||||
"comment-only": "Solo commenti",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Non sei autorizzato ad accedere a questa pagina.",
|
||||
"outgoing-webhooks": "Server esterni",
|
||||
"outgoingWebhooksPopup-title": "Server esterni",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Nuovo webhook in uscita",
|
||||
"no-name": "(Sconosciuto)",
|
||||
"Node_version": "Versione di Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Memoria totale del sistema operativo ",
|
||||
"OS_Type": "Tipo di sistema operativo ",
|
||||
"OS_Uptime": "Tempo di attività del sistema operativo. ",
|
||||
"days": "days",
|
||||
"hours": "ore",
|
||||
"minutes": "minuti",
|
||||
"seconds": "secondi",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Termina il",
|
||||
"editCardReceivedDatePopup-title": "Cambia data ricezione",
|
||||
"editCardEndDatePopup-title": "Cambia data finale",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assegnato da",
|
||||
"requested-by": "Richiesto da",
|
||||
"board-delete-notice": "L'eliminazione è permanente. Tutte le azioni, liste e schede associate a questa bacheca andranno perse.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Cancella regola",
|
||||
"r-new-rule-name": "Titolo nuova regola",
|
||||
"r-no-rules": "Nessuna regola",
|
||||
"r-when-a-card-is": "Quando la tessera è",
|
||||
"r-added-to": "Aggiunta a",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Rimosso da",
|
||||
"r-the-board": "Il cruscotto",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Aggiungi etichetta",
|
||||
"r-d-remove-label": "Rimuovi Etichetta",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Aggiungi membro",
|
||||
"r-d-remove-member": "Rimuovi membro",
|
||||
"r-d-remove-all-member": "Rimouvi tutti i membri",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "della lista di cose da fare",
|
||||
"r-d-add-checklist": "Aggiungi lista di cose da fare",
|
||||
"r-d-remove-checklist": "Rimuovi check list",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Aggiungi lista di cose da fare",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "Quando una scheda viene spostata su un'altra lista",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "Oauth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "黒",
|
||||
"color-blue": "青",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "緑",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "ライム",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "オレンジ",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "ピンク",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "紫",
|
||||
"color-red": "赤",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "空",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "黄",
|
||||
"unset-color": "Unset",
|
||||
"comment": "コメント",
|
||||
"comment-placeholder": "コメントを書く",
|
||||
"comment-only": "コメントのみ",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "このページを参照する権限がありません。",
|
||||
"outgoing-webhooks": "発信Webフック",
|
||||
"outgoingWebhooksPopup-title": "発信Webフック",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "発信Webフックの作成",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Nodeバージョン",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OSトータルメモリ",
|
||||
"OS_Type": "OS種類",
|
||||
"OS_Uptime": "OSアップタイム",
|
||||
"days": "days",
|
||||
"hours": "時",
|
||||
"minutes": "分",
|
||||
"seconds": "秒",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "終了日",
|
||||
"editCardReceivedDatePopup-title": "受付日の変更",
|
||||
"editCardEndDatePopup-title": "終了日の変更",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "リスト:",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "შავი",
|
||||
"color-blue": "ლურჯი",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "მწვანე",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "ღია ყვითელი",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "ნარინჯისფერი",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "ვარდისფერი",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "იასამნისფერი",
|
||||
"color-red": "წითელი ",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "ცისფერი",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "ყვითელი",
|
||||
"unset-color": "Unset",
|
||||
"comment": "კომენტარი",
|
||||
"comment-placeholder": "დაწერეთ კომენტარი",
|
||||
"comment-only": "მხოლოდ კომენტარები",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "თქვენ არ გაქვთ ამ გვერდის ნახვის უფლება",
|
||||
"outgoing-webhooks": "გამავალი Webhook",
|
||||
"outgoingWebhooksPopup-title": "გამავალი Webhook",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(უცნობი)",
|
||||
"Node_version": "Node ვერსია",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS მთლიანი მეხსიერება",
|
||||
"OS_Type": "OS ტიპი",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "საათები",
|
||||
"minutes": "წუთები",
|
||||
"seconds": "წამები",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "დასრულდება : ",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "შეცვალეთ საბოლოო თარიღი",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "უფლებამოსილების გამცემი ",
|
||||
"requested-by": "მომთხოვნი",
|
||||
"board-delete-notice": "წაშლის შემთხვევაში თქვენ დაკარგავთ ამ დაფასთან ასოცირებულ ყველა მონაცემს მათ შორის : ჩამონათვალს, ბარათებს და მოქმედებებს. ",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "블랙",
|
||||
"color-blue": "블루",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "그린",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "라임",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "오렌지",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "핑크",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "퍼플",
|
||||
"color-red": "레드",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "스카이",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "옐로우",
|
||||
"unset-color": "Unset",
|
||||
"comment": "댓글",
|
||||
"comment-placeholder": "댓글 입력",
|
||||
"comment-only": "댓글만 입력 가능",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "이 페이지를 볼 수있는 권한이 없습니다.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "목록에",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "zwart",
|
||||
"color-blue": "blauw",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "groen",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "Felgroen",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "Oranje",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "Roze",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "Paars",
|
||||
"color-red": "Rood",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "Lucht",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "Geel",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Reageer",
|
||||
"comment-placeholder": "Schrijf reactie",
|
||||
"comment-only": "Alleen reageren",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Je bent niet toegestaan om deze pagina te bekijken.",
|
||||
"outgoing-webhooks": "Uitgaande Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Uitgaande Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Nieuwe webhook",
|
||||
"no-name": "(Onbekend)",
|
||||
"Node_version": "Node versie",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Totaal Geheugen",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "uren",
|
||||
"minutes": "minuten",
|
||||
"seconds": "seconden",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "Będziesz w stanie przywrócić tablicę poprzez kliknięcie przycisku \"Archiwizuj\" w nagłówku strony domowej.",
|
||||
"color-black": "czarny",
|
||||
"color-blue": "niebieski",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "zielony",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "limonkowy",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "pomarańczowy",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "różowy",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "fioletowy",
|
||||
"color-red": "czerwony",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "błękitny",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "żółty",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Komentarz",
|
||||
"comment-placeholder": "Dodaj komentarz",
|
||||
"comment-only": "Tylko komentowanie",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Nie jesteś uprawniony do przeglądania tej strony.",
|
||||
"outgoing-webhooks": "Wychodzące webhooki",
|
||||
"outgoingWebhooksPopup-title": "Wychodzące webhooki",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Nowy wychodzący webhook",
|
||||
"no-name": "(nieznany)",
|
||||
"Node_version": "Wersja Node",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Dostępna pamięć RAM",
|
||||
"OS_Type": "Typ systemu",
|
||||
"OS_Uptime": "Czas działania systemu",
|
||||
"days": "days",
|
||||
"hours": "godzin",
|
||||
"minutes": "minut",
|
||||
"seconds": "sekund",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Kończy się",
|
||||
"editCardReceivedDatePopup-title": "Zmień datę odebrania",
|
||||
"editCardEndDatePopup-title": "Zmień datę ukończenia",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Przypisane przez",
|
||||
"requested-by": "Zlecone przez",
|
||||
"board-delete-notice": "Usuwanie jest permanentne. Stracisz wszystkie listy, kart oraz czynności przypisane do tej tablicy.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Usuń regułę",
|
||||
"r-new-rule-name": "Nowa nazwa reguły",
|
||||
"r-no-rules": "Brak regułę",
|
||||
"r-when-a-card-is": "Gdy karta jest",
|
||||
"r-added-to": "Dodano do",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "jest",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Usunięto z",
|
||||
"r-the-board": "tablicy",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Przeniesiono do",
|
||||
"r-moved-from": "Przeniesiono z",
|
||||
"r-archived": "Przeniesione z Archiwum",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "karta",
|
||||
"r-when-a-label-is": "Gdy etykieta jest",
|
||||
"r-when-the-label-is": "Gdy etykieta jest",
|
||||
"r-list-name": "Nazwa listy",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "Gdy członek jest",
|
||||
"r-when-the-member": "Gdy członek jest",
|
||||
"r-name": "nazwa",
|
||||
"r-is": "jest",
|
||||
"r-when-a-attach": "Gdy załącznik",
|
||||
"r-when-a-checklist": "Gdy lista zadań jest",
|
||||
"r-when-the-checklist": "Gdy lista zadań",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "etykieta",
|
||||
"r-member": "członek",
|
||||
"r-remove-all": "Usuń wszystkich członków tej karty",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "lista zadań",
|
||||
"r-check-all": "Zaznacz wszystkie",
|
||||
"r-uncheck-all": "Odznacz wszystkie",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Przywróć kartę z Archiwum",
|
||||
"r-d-add-label": "Dodaj etykietę",
|
||||
"r-d-remove-label": "Usuń etykietę",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Dodaj członka",
|
||||
"r-d-remove-member": "Usuń członka",
|
||||
"r-d-remove-all-member": "Usuń wszystkich członków",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "z listy zadań",
|
||||
"r-d-add-checklist": "Dodaj listę zadań",
|
||||
"r-d-remove-checklist": "Usuń listę zadań",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Dodaj listę zadań",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Układ strony",
|
||||
"hide-logo": "Ukryj logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+201
-166
@@ -3,8 +3,8 @@
|
||||
"act-activity-notify": "Notificação de atividade",
|
||||
"act-addAttachment": "anexo __attachment__ de __card__",
|
||||
"act-addSubtask": "Subtarefa adicionada __checklist__ ao __cartão",
|
||||
"act-addChecklist": "added checklist __checklist__ no __card__",
|
||||
"act-addChecklistItem": "adicionado __checklistitem__ para a lista de checagem __checklist__ em __card__",
|
||||
"act-addChecklist": "adicionada lista de verificação __checklist__ no __card__",
|
||||
"act-addChecklistItem": "adicionado __checklistitem__ para a lista de verificação __checklist__ em __card__",
|
||||
"act-addComment": "comentou em __card__: __comment__",
|
||||
"act-createBoard": "criou __board__",
|
||||
"act-createCard": "__card__ adicionado à __list__",
|
||||
@@ -43,25 +43,25 @@
|
||||
"activity-sent": "enviou %s de %s",
|
||||
"activity-unjoined": "saiu de %s",
|
||||
"activity-subtask-added": "Adcionar subtarefa à",
|
||||
"activity-checked-item": "checked %s in checklist %s of %s",
|
||||
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
|
||||
"activity-checklist-added": "Adicionado lista de verificação a %s",
|
||||
"activity-checklist-removed": "removed a checklist from %s",
|
||||
"activity-checklist-completed": "completed the checklist %s of %s",
|
||||
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
|
||||
"activity-checklist-item-added": "adicionado o item de checklist para '%s' em %s",
|
||||
"activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
|
||||
"activity-checked-item": "marcado %s na lista de verificação %s de %s",
|
||||
"activity-unchecked-item": "desmarcado %s na lista de verificação %s de %s",
|
||||
"activity-checklist-added": "Adicionada lista de verificação a %s",
|
||||
"activity-checklist-removed": "removida a lista de verificação de %s",
|
||||
"activity-checklist-completed": "completada a lista de verificação %s de %s",
|
||||
"activity-checklist-uncompleted": "não-completada a lista de verificação %s de %s",
|
||||
"activity-checklist-item-added": "adicionado o item de lista de verificação para '%s' em %s",
|
||||
"activity-checklist-item-removed": "removida o item de lista de verificação de '%s' na %s",
|
||||
"add": "Novo",
|
||||
"activity-checked-item-card": "checked %s in checklist %s",
|
||||
"activity-unchecked-item-card": "unchecked %s in checklist %s",
|
||||
"activity-checklist-completed-card": "completed the checklist %s",
|
||||
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
|
||||
"activity-checked-item-card": "marcaddo %s na lista de verificação %s",
|
||||
"activity-unchecked-item-card": "desmarcado %s na lista de verificação %s",
|
||||
"activity-checklist-completed-card": "completada a lista de verificação %s",
|
||||
"activity-checklist-uncompleted-card": "não-completada a lista de verificação %s",
|
||||
"add-attachment": "Adicionar Anexos",
|
||||
"add-board": "Adicionar Quadro",
|
||||
"add-card": "Adicionar Cartão",
|
||||
"add-swimlane": "Adicionar Swimlane",
|
||||
"add-swimlane": "Adicionar Raia",
|
||||
"add-subtask": "Adicionar subtarefa",
|
||||
"add-checklist": "Adicionar Checklist",
|
||||
"add-checklist": "Adicionar lista de verificação",
|
||||
"add-checklist-item": "Adicionar um item à lista de verificação",
|
||||
"add-cover": "Adicionar Capa",
|
||||
"add-label": "Adicionar Etiqueta",
|
||||
@@ -78,20 +78,20 @@
|
||||
"and-n-other-card": "E __count__ outro cartão",
|
||||
"and-n-other-card_plural": "E __count__ outros cartões",
|
||||
"apply": "Aplicar",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Move to Archive",
|
||||
"archive-all": "Move All to Archive",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
"archive-selection": "Move selection to Archive",
|
||||
"archiveBoardPopup-title": "Move Board to Archive?",
|
||||
"archived-items": "Arquivar",
|
||||
"archived-boards": "Boards in Archive",
|
||||
"app-is-offline": "Carregando, por favor espere. Atualizar a página causará perda de dados. Se a carga não funcionar, por favor verifique se o servidor não caiu.",
|
||||
"archive": "Mover para o Arquivo-morto",
|
||||
"archive-all": "Mover Tudo para o Arquivo-morto",
|
||||
"archive-board": "Mover Quadro para o Arquivo-morto",
|
||||
"archive-card": "Mover Cartão para o Arquivo-morto",
|
||||
"archive-list": "Mover Lista para o Arquivo-morto",
|
||||
"archive-swimlane": "Mover Raia para Arquivo-morto",
|
||||
"archive-selection": "Mover seleção para o Arquivo-morto",
|
||||
"archiveBoardPopup-title": "Mover Quadro para o Arquivo-morto?",
|
||||
"archived-items": "Arquivo-morto",
|
||||
"archived-boards": "Quadros no Arquivo-morto",
|
||||
"restore-board": "Restaurar Quadro",
|
||||
"no-archived-boards": "No Boards in Archive.",
|
||||
"archives": "Arquivar",
|
||||
"no-archived-boards": "Sem Quadros no Arquivo-morto.",
|
||||
"archives": "Arquivos-morto",
|
||||
"assign-member": "Atribuir Membro",
|
||||
"attached": "anexado",
|
||||
"attachment": "Anexo",
|
||||
@@ -114,16 +114,16 @@
|
||||
"boards": "Quadros",
|
||||
"board-view": "Visão de quadro",
|
||||
"board-view-cal": "Calendário",
|
||||
"board-view-swimlanes": "Swimlanes",
|
||||
"board-view-swimlanes": "Raias",
|
||||
"board-view-lists": "Listas",
|
||||
"bucket-example": "\"Bucket List\", por exemplo",
|
||||
"cancel": "Cancelar",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"card-archived": "Este cartão está Arquivado.",
|
||||
"board-archived": "Este quadro está Arquivado.",
|
||||
"card-comments-title": "Este cartão possui %s comentários.",
|
||||
"card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.",
|
||||
"card-delete-pop": "Todas as ações serão removidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-pop": "Todas as ações serão excluidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.",
|
||||
"card-delete-suggest-archive": "Você pode mover um cartão para o Arquivo-morto para removê-lo do quadro e preservar a atividade.",
|
||||
"card-due": "Data fim",
|
||||
"card-due-on": "Finaliza em",
|
||||
"card-spent": "Tempo Gasto",
|
||||
@@ -146,9 +146,9 @@
|
||||
"cards": "Cartões",
|
||||
"cards-count": "Cartões",
|
||||
"casSignIn": "Entrar com CAS",
|
||||
"cardType-card": "Card",
|
||||
"cardType-linkedCard": "Linked Card",
|
||||
"cardType-linkedBoard": "Linked Board",
|
||||
"cardType-card": "Cartão",
|
||||
"cardType-linkedCard": "Cartão ligado",
|
||||
"cardType-linkedBoard": "Quadro ligado",
|
||||
"change": "Alterar",
|
||||
"change-avatar": "Alterar Avatar",
|
||||
"change-password": "Alterar Senha",
|
||||
@@ -160,37 +160,53 @@
|
||||
"changePermissionsPopup-title": "Alterar Permissões",
|
||||
"changeSettingsPopup-title": "Altera configurações",
|
||||
"subtasks": "Subtarefas",
|
||||
"checklists": "Checklists",
|
||||
"checklists": "Listas de verificação",
|
||||
"click-to-star": "Marcar quadro como favorito.",
|
||||
"click-to-unstar": "Remover quadro dos favoritos.",
|
||||
"clipboard": "Área de Transferência ou arraste e solte",
|
||||
"close": "Fechar",
|
||||
"close-board": "Fechar Quadro",
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"close-board-pop": "Você será capaz de restaurar o quadro clicando no botão “Arquivo-morto” a partir do cabeçalho do Início.",
|
||||
"color-black": "preto",
|
||||
"color-blue": "azul",
|
||||
"color-crimson": "carmesim",
|
||||
"color-darkgreen": "verde escuro",
|
||||
"color-gold": "dourado",
|
||||
"color-gray": "cinza",
|
||||
"color-green": "verde",
|
||||
"color-indigo": "azul",
|
||||
"color-lime": "verde limão",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "rosa claro",
|
||||
"color-navy": "azul marinho",
|
||||
"color-orange": "laranja",
|
||||
"color-paleturquoise": "azul ciano",
|
||||
"color-peachpuff": "pêssego",
|
||||
"color-pink": "cor-de-rosa",
|
||||
"color-plum": "ameixa",
|
||||
"color-purple": "roxo",
|
||||
"color-red": "vermelho",
|
||||
"color-sky": "céu",
|
||||
"color-saddlebrown": "marrom",
|
||||
"color-silver": "prateado",
|
||||
"color-sky": "azul-celeste",
|
||||
"color-slateblue": "azul ardósia",
|
||||
"color-white": "branco",
|
||||
"color-yellow": "amarelo",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comentário",
|
||||
"comment-placeholder": "Escrever Comentário",
|
||||
"comment-only": "Somente comentários",
|
||||
"comment-only-desc": "Pode comentar apenas em cartões.",
|
||||
"no-comments": "Sem comentários",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"no-comments-desc": "Sem visualização de comentários e atividades.",
|
||||
"computer": "Computador",
|
||||
"confirm-subtask-delete-dialog": "Tem certeza que deseja deletar a subtarefa?",
|
||||
"confirm-checklist-delete-dialog": "Tem certeza que quer deletar o checklist?",
|
||||
"confirm-subtask-delete-dialog": "Tem certeza que deseja excluir a subtarefa?",
|
||||
"confirm-checklist-delete-dialog": "Tem certeza que quer excluir a lista de verificação?",
|
||||
"copy-card-link-to-clipboard": "Copiar link do cartão para a área de transferência",
|
||||
"linkCardPopup-title": "Link Card",
|
||||
"searchCardPopup-title": "Search Card",
|
||||
"linkCardPopup-title": "Ligar Cartão",
|
||||
"searchCardPopup-title": "Procurar Cartão",
|
||||
"copyCardPopup-title": "Copiar o cartão",
|
||||
"copyChecklistToManyCardsPopup-title": "Copiar modelo de checklist para vários cartões",
|
||||
"copyChecklistToManyCardsPopup-title": "Copiar modelo de lista de verificação para vários cartões",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Títulos e descrições do cartão de destino neste formato JSON",
|
||||
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Título do primeiro cartão\", \"description\":\"Descrição do primeiro cartão\"}, {\"title\":\"Título do segundo cartão\",\"description\":\"Descrição do segundo cartão\"},{\"title\":\"Título do último cartão\",\"description\":\"Descrição do último cartão\"} ]",
|
||||
"create": "Criar",
|
||||
@@ -200,7 +216,7 @@
|
||||
"createCustomField": "Criar campo",
|
||||
"createCustomFieldPopup-title": "Criar campo",
|
||||
"current": "atual",
|
||||
"custom-field-delete-pop": "Não existe desfazer. Isso irá remover o campo customizado de todos os cartões e destruir seu histórico",
|
||||
"custom-field-delete-pop": "Não existe desfazer. Isso irá excluir o campo customizado de todos os cartões e destruir seu histórico",
|
||||
"custom-field-checkbox": "Caixa de seleção",
|
||||
"custom-field-date": "Data",
|
||||
"custom-field-dropdown": "Lista suspensa",
|
||||
@@ -215,7 +231,7 @@
|
||||
"decline": "Rejeitar",
|
||||
"default-avatar": "Avatar padrão",
|
||||
"delete": "Excluir",
|
||||
"deleteCustomFieldPopup-title": "Deletar campo customizado?",
|
||||
"deleteCustomFieldPopup-title": "Excluir campo customizado?",
|
||||
"deleteLabelPopup-title": "Excluir Etiqueta?",
|
||||
"description": "Descrição",
|
||||
"disambiguateMultiLabelPopup-title": "Desambiguar ações de etiquetas",
|
||||
@@ -238,17 +254,17 @@
|
||||
"email": "E-mail",
|
||||
"email-enrollAccount-subject": "Uma conta foi criada para você em __siteName__",
|
||||
"email-enrollAccount-text": "Olá __user__\npara iniciar utilizando o serviço basta clicar no link abaixo.\n__url__\nMuito Obrigado.",
|
||||
"email-fail": "Falhou ao enviar email",
|
||||
"email-fail": "Falhou ao enviar e-mail",
|
||||
"email-fail-text": "Erro ao tentar enviar e-mail",
|
||||
"email-invalid": "Email inválido",
|
||||
"email-invite": "Convite via Email",
|
||||
"email-invalid": "E-mail inválido",
|
||||
"email-invite": "Convite via E-mail",
|
||||
"email-invite-subject": "__inviter__ lhe enviou um convite",
|
||||
"email-invite-text": "Caro __user__\n__inviter__ lhe convidou para ingressar no quadro \"__board__\" como colaborador.\nPor favor prossiga através do link abaixo:\n__url__\nMuito obrigado.",
|
||||
"email-resetPassword-subject": "Redefina sua senha em __siteName__",
|
||||
"email-resetPassword-text": "Olá __user__\nPara redefinir sua senha, por favor clique no link abaixo.\n__url__\nMuito obrigado.",
|
||||
"email-sent": "Email enviado",
|
||||
"email-verifyEmail-subject": "Verifique seu endereço de email em __siteName__",
|
||||
"email-verifyEmail-text": "Olá __user__\nPara verificar sua conta de email, clique no link abaixo.\n__url__\nObrigado.",
|
||||
"email-sent": "E-mail enviado",
|
||||
"email-verifyEmail-subject": "Verifique seu endereço de e-mail em __siteName__",
|
||||
"email-verifyEmail-text": "Olá __user__\nPara verificar sua conta de e-mail, clique no link abaixo.\n__url__\nObrigado.",
|
||||
"enable-wip-limit": "Ativar Limite WIP",
|
||||
"error-board-doesNotExist": "Este quadro não existe",
|
||||
"error-board-notAdmin": "Você precisa ser administrador desse quadro para fazer isto",
|
||||
@@ -265,7 +281,7 @@
|
||||
"filter": "Filtrar",
|
||||
"filter-cards": "Filtrar Cartões",
|
||||
"filter-clear": "Limpar filtro",
|
||||
"filter-no-label": "Sem labels",
|
||||
"filter-no-label": "Sem etiquetas",
|
||||
"filter-no-member": "Sem membros",
|
||||
"filter-no-custom-fields": "Não há campos customizados",
|
||||
"filter-on": "Filtro está ativo",
|
||||
@@ -279,24 +295,24 @@
|
||||
"headerBarCreateBoardPopup-title": "Criar Quadro",
|
||||
"home": "Início",
|
||||
"import": "Importar",
|
||||
"link": "Link",
|
||||
"link": "Ligação",
|
||||
"import-board": "importar quadro",
|
||||
"import-board-c": "Importar quadro",
|
||||
"import-board-title-trello": "Importar board do Trello",
|
||||
"import-board-title-wekan": "Import board from previous export",
|
||||
"import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
|
||||
"import-board-title-trello": "Importar quadro do Trello",
|
||||
"import-board-title-wekan": "Importar quadro a partir de exportação prévia",
|
||||
"import-sandstorm-backup-warning": "Não exclua os dados importados do quadro original exportado ou do Trello antes de verificar se esse item fecha e abre novamente, ou se você receber o erro Quadro não encontrado, que significa perda de dados.",
|
||||
"import-sandstorm-warning": "O quadro importado irá excluir todos os dados existentes no quadro e irá sobrescrever com o quadro importado.",
|
||||
"from-trello": "Do Trello",
|
||||
"from-wekan": "From previous export",
|
||||
"from-wekan": "A partir de exportação prévia",
|
||||
"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-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-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-map-members": "Mapear membros",
|
||||
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
|
||||
"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",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"import-user-select": "Escolha um usuário existente que você deseja usar como esse membro",
|
||||
"importMapMembersAddPopup-title": "Selecione membro",
|
||||
"info": "Versão",
|
||||
"initials": "Iniciais",
|
||||
"invalid-date": "Data inválida",
|
||||
@@ -307,27 +323,27 @@
|
||||
"keyboard-shortcuts": "Atalhos do teclado",
|
||||
"label-create": "Criar Etiqueta",
|
||||
"label-default": "%s etiqueta (padrão)",
|
||||
"label-delete-pop": "Não será possível recuperá-la. A etiqueta será removida de todos os cartões e seu histórico será destruído.",
|
||||
"label-delete-pop": "Não será possível recuperá-la. A etiqueta será excluida de todos os cartões e seu histórico será destruído.",
|
||||
"labels": "Etiquetas",
|
||||
"language": "Idioma",
|
||||
"last-admin-desc": "Você não pode alterar funções porque deve existir pelo menos um administrador.",
|
||||
"leave-board": "Sair do Quadro",
|
||||
"leave-board-pop": "Tem a certeza de que pretende sair de __boardTitle__? Você será removido de todos os cartões neste quadro.",
|
||||
"leaveBoardPopup-title": "Sair do Quadro ?",
|
||||
"leaveBoardPopup-title": "Sair do Quadro?",
|
||||
"link-card": "Vincular a este cartão",
|
||||
"list-archive-cards": "Move all cards in this list to Archive",
|
||||
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
|
||||
"list-archive-cards": "Move todos os cartões nesta lista para o Arquivo-morto",
|
||||
"list-archive-cards-pop": "Isto removerá todos os cartões desta lista para o quadro. Para visualizar cartões arquivados e trazê-los de volta para o quadro, clique em “Menu” > “Arquivo-morto”.",
|
||||
"list-move-cards": "Mover todos os cartões desta lista",
|
||||
"list-select-cards": "Selecionar todos os cartões nesta lista",
|
||||
"listActionPopup-title": "Listar Ações",
|
||||
"swimlaneActionPopup-title": "Ações de Swimlane",
|
||||
"swimlaneActionPopup-title": "Ações de Raia",
|
||||
"listImportCardPopup-title": "Importe um cartão do Trello",
|
||||
"listMorePopup-title": "Mais",
|
||||
"link-list": "Vincular a esta lista",
|
||||
"list-delete-pop": "Todas as ações serão removidas da lista de atividades e você não poderá recuperar a lista. Não há como desfazer.",
|
||||
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
|
||||
"list-delete-pop": "Todas as ações serão excluidas da lista de atividades e você não poderá recuperar a lista. Não há como desfazer.",
|
||||
"list-delete-suggest-archive": "Você pode mover uma lista para o Arquivo-morto para removê-la do quadro e preservar a atividade.",
|
||||
"lists": "Listas",
|
||||
"swimlanes": "Swimlanes",
|
||||
"swimlanes": "Raias",
|
||||
"log-out": "Sair",
|
||||
"log-in": "Entrar",
|
||||
"loginPopup-title": "Entrar",
|
||||
@@ -345,9 +361,9 @@
|
||||
"muted-info": "Você nunca receberá qualquer notificação desse board",
|
||||
"my-boards": "Meus Quadros",
|
||||
"name": "Nome",
|
||||
"no-archived-cards": "No cards in Archive.",
|
||||
"no-archived-lists": "No lists in Archive.",
|
||||
"no-archived-swimlanes": "No swimlanes in Archive.",
|
||||
"no-archived-cards": "Sem cartões no Arquivo-morto.",
|
||||
"no-archived-lists": "Sem listas no Arquivo-morto.",
|
||||
"no-archived-swimlanes": "Sem raias no Arquivo-morto.",
|
||||
"no-results": "Nenhum resultado.",
|
||||
"normal": "Normal",
|
||||
"normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.",
|
||||
@@ -359,7 +375,7 @@
|
||||
"page-maybe-private": "Esta página pode ser privada. Você poderá vê-la se estiver <a href='%s'>logado</a>.",
|
||||
"page-not-found": "Página não encontrada.",
|
||||
"password": "Senha",
|
||||
"paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para ca (somente imagens)",
|
||||
"paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para cá (somente imagens)",
|
||||
"participating": "Participando",
|
||||
"preview": "Previsualizar",
|
||||
"previewAttachedImagePopup-title": "Previsualizar",
|
||||
@@ -373,7 +389,7 @@
|
||||
"remove-cover": "Remover Capa",
|
||||
"remove-from-board": "Remover do Quadro",
|
||||
"remove-label": "Remover Etiqueta",
|
||||
"listDeletePopup-title": "Excluir Lista ?",
|
||||
"listDeletePopup-title": "Excluir Lista?",
|
||||
"remove-member": "Remover Membro",
|
||||
"remove-member-from-card": "Remover do Cartão",
|
||||
"remove-member-pop": "Remover __name__ (__username__) de __boardTitle__? O membro será removido de todos os cartões neste quadro e será notificado.",
|
||||
@@ -383,7 +399,7 @@
|
||||
"restore": "Restaurar",
|
||||
"save": "Salvar",
|
||||
"search": "Buscar",
|
||||
"rules": "Rules",
|
||||
"rules": "Regras",
|
||||
"search-cards": "Pesquisa em títulos e descrições de cartões neste quadro",
|
||||
"search-example": "Texto para procurar",
|
||||
"select-color": "Selecionar Cor",
|
||||
@@ -416,21 +432,21 @@
|
||||
"has-spenttime-cards": "Gastou cartões de tempo",
|
||||
"time": "Tempo",
|
||||
"title": "Título",
|
||||
"tracking": "Tracking",
|
||||
"tracking": "Rastreamento",
|
||||
"tracking-info": "Você será notificado se houver qualquer alteração em cards em que você é o criador ou membro",
|
||||
"type": "Tipo",
|
||||
"unassign-member": "Membro não associado",
|
||||
"unsaved-description": "Você possui uma descrição não salva",
|
||||
"unwatch": "Deixar de observar",
|
||||
"upload": "Upload",
|
||||
"upload": "Carregar",
|
||||
"upload-avatar": "Carregar um avatar",
|
||||
"uploaded-avatar": "Avatar carregado",
|
||||
"username": "Nome de usuário",
|
||||
"view-it": "Visualizar",
|
||||
"warn-list-archived": "warning: this card is in an list at Archive",
|
||||
"warn-list-archived": "aviso: este cartão está em uma lista no Arquiv-morto",
|
||||
"watch": "Observar",
|
||||
"watching": "Observando",
|
||||
"watching-info": "Você será notificado em qualquer alteração desse board",
|
||||
"watching-info": "Você será notificado de qualquer alteração neste quadro",
|
||||
"welcome-board": "Board de Boas Vindas",
|
||||
"welcome-swimlane": "Marco 1",
|
||||
"welcome-list1": "Básico",
|
||||
@@ -447,9 +463,9 @@
|
||||
"invite": "Convite",
|
||||
"invite-people": "Convide Pessoas",
|
||||
"to-boards": "Para o/os quadro(s)",
|
||||
"email-addresses": "Endereço de Email",
|
||||
"smtp-host-description": "O endereço do servidor SMTP que envia seus emails.",
|
||||
"smtp-port-description": "A porta que o servidor SMTP usa para enviar os emails.",
|
||||
"email-addresses": "Endereço de E-mail",
|
||||
"smtp-host-description": "O endereço do servidor SMTP que envia seus e-mails.",
|
||||
"smtp-port-description": "A porta que o servidor SMTP usa para enviar os e-mails.",
|
||||
"smtp-tls-description": "Habilitar suporte TLS para servidor SMTP",
|
||||
"smtp-host": "Servidor SMTP",
|
||||
"smtp-port": "Porta SMTP",
|
||||
@@ -457,16 +473,17 @@
|
||||
"smtp-password": "Senha",
|
||||
"smtp-tls": "Suporte TLS",
|
||||
"send-from": "De",
|
||||
"send-smtp-test": "Enviar um email de teste para você mesmo",
|
||||
"send-smtp-test": "Enviar um e-mail de teste para você mesmo",
|
||||
"invitation-code": "Código do Convite",
|
||||
"email-invite-register-subject": "__inviter__ lhe enviou um convite",
|
||||
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
|
||||
"email-smtp-test-subject": "SMTP Test Email",
|
||||
"email-smtp-test-text": "Você enviou um email com sucesso",
|
||||
"email-invite-register-text": "Caro __user__,\n\n__inviter__ convida você para o quadro Kanban para colaborações.\n\nPor favor, siga o link abaixo:\n__url__ \n\nE seu código de convite é: __icode__\n\nObrigado.",
|
||||
"email-smtp-test-subject": "E-mail de teste via SMTP",
|
||||
"email-smtp-test-text": "Você enviou um e-mail com sucesso",
|
||||
"error-invitation-code-not-exist": "O código do convite não existe",
|
||||
"error-notAuthorized": "Você não está autorizado à ver esta página.",
|
||||
"outgoing-webhooks": "Webhook de saída",
|
||||
"outgoingWebhooksPopup-title": "Webhook de saída",
|
||||
"boardCardTitlePopup-title": "Filtro do Título do Cartão",
|
||||
"new-outgoing-webhook": "Novo Webhook de saída",
|
||||
"no-name": "(Desconhecido)",
|
||||
"Node_version": "Versão do Node",
|
||||
@@ -479,16 +496,17 @@
|
||||
"OS_Totalmem": "Memória Total do SO",
|
||||
"OS_Type": "Tipo do SO",
|
||||
"OS_Uptime": "Disponibilidade do SO",
|
||||
"days": "dias",
|
||||
"hours": "horas",
|
||||
"minutes": "minutos",
|
||||
"seconds": "segundos",
|
||||
"show-field-on-card": "Mostrar este campo no cartão",
|
||||
"automatically-field-on-card": "Auto create field to all cards",
|
||||
"showLabel-field-on-card": "Show field label on minicard",
|
||||
"automatically-field-on-card": "Criar campo automaticamente para todos os cartões",
|
||||
"showLabel-field-on-card": "Mostrar etiqueta do campo no minicartão",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"accounts": "Contas",
|
||||
"accounts-allowEmailChange": "Permitir Mudança de Email",
|
||||
"accounts-allowEmailChange": "Permitir Mudança de e-mail",
|
||||
"accounts-allowUserNameChange": "Permitir alteração de nome de usuário",
|
||||
"createdAt": "Criado em",
|
||||
"verified": "Verificado",
|
||||
@@ -499,19 +517,20 @@
|
||||
"card-end-on": "Termina em",
|
||||
"editCardReceivedDatePopup-title": "Modificar data de recebimento",
|
||||
"editCardEndDatePopup-title": "Mudar data de fim",
|
||||
"setCardColor-title": "Definir cor",
|
||||
"assigned-by": "Atribuído por",
|
||||
"requested-by": "Solicitado por",
|
||||
"board-delete-notice": "Deletar é permanente. Você perderá todas as listas, cartões e ações associados nesse painel.",
|
||||
"delete-board-confirm-popup": "Todas as listas, cartões, etiquetas e atividades serão deletadas e você não poderá recuperar o conteúdo do painel. Não há como desfazer.",
|
||||
"boardDeletePopup-title": "Deletar painel?",
|
||||
"delete-board": "Deletar painel",
|
||||
"default-subtasks-board": "Subtarefas para __painel__ painel",
|
||||
"board-delete-notice": "Excluir é permanente. Você perderá todas as listas, cartões e ações associados nesse quadro.",
|
||||
"delete-board-confirm-popup": "Todas as listas, cartões, etiquetas e atividades serão excluidos e você não poderá recuperar o conteúdo do quadro. Não há como desfazer.",
|
||||
"boardDeletePopup-title": "Excluir quadro?",
|
||||
"delete-board": "Excluir quadro",
|
||||
"default-subtasks-board": "Subtarefas para quadro __board__",
|
||||
"default": "Padrão",
|
||||
"queue": "Fila",
|
||||
"subtask-settings": "Configurações de subtarefas",
|
||||
"boardSubtaskSettingsPopup-title": "Configurações das subtarefas do painel",
|
||||
"boardSubtaskSettingsPopup-title": "Configurações das subtarefas do quadro",
|
||||
"show-subtasks-field": "Cartões podem ter subtarefas",
|
||||
"deposit-subtasks-board": "Inserir subtarefas à este painel:",
|
||||
"deposit-subtasks-board": "Inserir subtarefas a este quadro:",
|
||||
"deposit-subtasks-list": "Listas de subtarefas inseridas aqui:",
|
||||
"show-parent-in-minicard": "Mostrar Pai do mini cartão:",
|
||||
"prefix-with-full-path": "Prefixo com caminho completo",
|
||||
@@ -520,85 +539,91 @@
|
||||
"subtext-with-parent": "Subtexto com Pai",
|
||||
"change-card-parent": "Mudar Pai do cartão",
|
||||
"parent-card": "Pai do cartão",
|
||||
"source-board": "Painel de fonte",
|
||||
"source-board": "Fonte do quadro",
|
||||
"no-parent": "Não mostrar Pai",
|
||||
"activity-added-label": "added label '%s' to %s",
|
||||
"activity-removed-label": "removed label '%s' from %s",
|
||||
"activity-delete-attach": "deleted an attachment from %s",
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "deleted an attachment",
|
||||
"r-rule": "Rule",
|
||||
"r-add-trigger": "Add trigger",
|
||||
"r-add-action": "Add action",
|
||||
"r-board-rules": "Board rules",
|
||||
"r-add-rule": "Add rule",
|
||||
"r-view-rule": "View rule",
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
"r-unarchived": "Restored from Archive",
|
||||
"activity-added-label": "adicionada etiqueta '%s' para %s",
|
||||
"activity-removed-label": "removida etiqueta '%s' de %s",
|
||||
"activity-delete-attach": "excluido um anexo de %s",
|
||||
"activity-added-label-card": "adicionada etiqueta '%s'",
|
||||
"activity-removed-label-card": "removida etiqueta '%s'",
|
||||
"activity-delete-attach-card": "excluido um anexo",
|
||||
"r-rule": "Regra",
|
||||
"r-add-trigger": "Adicionar gatilho",
|
||||
"r-add-action": "Adicionar ação",
|
||||
"r-board-rules": "Quadro de regras",
|
||||
"r-add-rule": "Adicionar regra",
|
||||
"r-view-rule": "Ver regra",
|
||||
"r-delete-rule": "Excluir regra",
|
||||
"r-new-rule-name": "Título da nova regra",
|
||||
"r-no-rules": "Sem regras",
|
||||
"r-when-a-card": "Quando um cartão",
|
||||
"r-is": "é",
|
||||
"r-is-moved": "é movido",
|
||||
"r-added-to": "adicionado à ",
|
||||
"r-removed-from": "Removido de",
|
||||
"r-the-board": "o quadro",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Inserir Filtro",
|
||||
"r-moved-to": "Movido para",
|
||||
"r-moved-from": "Movido de",
|
||||
"r-archived": "Movido para o Arquivo-morto",
|
||||
"r-unarchived": "Restaurado do Arquivo-morto",
|
||||
"r-a-card": "um cartão",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"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",
|
||||
"r-completed": "Completed",
|
||||
"r-made-incomplete": "Made incomplete",
|
||||
"r-when-a-item": "When a checklist item is",
|
||||
"r-when-the-item": "When the checklist item",
|
||||
"r-when-a-label-is": "Quando uma etiqueta é",
|
||||
"r-when-the-label-is": "Quando a etiqueta é",
|
||||
"r-list-name": "listar nome",
|
||||
"r-when-a-member": "Quando um membro é",
|
||||
"r-when-the-member": "Quando o membro",
|
||||
"r-name": "nome",
|
||||
"r-when-a-attach": "Quando um anexo",
|
||||
"r-when-a-checklist": "Quando a lista de verificação é",
|
||||
"r-when-the-checklist": "Quando a lista de verificação",
|
||||
"r-completed": "Completado",
|
||||
"r-made-incomplete": "Feito incompleto",
|
||||
"r-when-a-item": "Quando o item da lista de verificação é",
|
||||
"r-when-the-item": "Quando o item da lista de verificação",
|
||||
"r-checked": "Marcado",
|
||||
"r-unchecked": "Desmarcado",
|
||||
"r-move-card-to": "Move card to",
|
||||
"r-top-of": "Top of",
|
||||
"r-bottom-of": "Bottom of",
|
||||
"r-its-list": "its list",
|
||||
"r-archive": "Move to Archive",
|
||||
"r-unarchive": "Restore from Archive",
|
||||
"r-move-card-to": "Mover cartão para",
|
||||
"r-top-of": "Topo de",
|
||||
"r-bottom-of": "Final de",
|
||||
"r-its-list": "é lista",
|
||||
"r-archive": "Mover para Arquivo-morto",
|
||||
"r-unarchive": "Restaurar do Arquivo-morto",
|
||||
"r-card": "cartão",
|
||||
"r-add": "Novo",
|
||||
"r-remove": "Remover",
|
||||
"r-label": "etiqueta",
|
||||
"r-member": "membro",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-checklist": "checklist",
|
||||
"r-remove-all": "Remover todos os membros do cartão",
|
||||
"r-set-color": "Definir cor para",
|
||||
"r-checklist": "lista de verificação",
|
||||
"r-check-all": "Marcar todos",
|
||||
"r-uncheck-all": "Desmarcar todos",
|
||||
"r-items-check": "items of checklist",
|
||||
"r-items-check": "itens da lista de verificação",
|
||||
"r-check": "Marcar",
|
||||
"r-uncheck": "Desmarcar",
|
||||
"r-item": "item",
|
||||
"r-of-checklist": "do checklist",
|
||||
"r-of-checklist": "da lista de verificação",
|
||||
"r-send-email": "Enviar um e-mail",
|
||||
"r-to": "para",
|
||||
"r-subject": "assunto",
|
||||
"r-rule-details": "Rule details",
|
||||
"r-d-move-to-top-gen": "Move card to top of its list",
|
||||
"r-d-move-to-top-spec": "Move card to top of list",
|
||||
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
|
||||
"r-d-move-to-bottom-spec": "Move card to bottom of list",
|
||||
"r-rule-details": "Detalhes da regra",
|
||||
"r-d-move-to-top-gen": "Mover cartão para o topo da sua lista",
|
||||
"r-d-move-to-top-spec": "Mover cartão para o topo da lista",
|
||||
"r-d-move-to-bottom-gen": "Mover cartão para o final da sua lista",
|
||||
"r-d-move-to-bottom-spec": "Mover cartão para final da lista",
|
||||
"r-d-send-email": "Enviar e-mail",
|
||||
"r-d-send-email-to": "para",
|
||||
"r-d-send-email-subject": "assunto",
|
||||
"r-d-send-email-message": "mensagem",
|
||||
"r-d-archive": "Move card to Archive",
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-archive": "Mover cartão para Arquivo-morto",
|
||||
"r-d-unarchive": "Restaurar cartão do Arquivo-morto",
|
||||
"r-d-add-label": "Adicionar etiqueta",
|
||||
"r-d-remove-label": "Remover etiqueta",
|
||||
"r-create-card": "Criar novo cartão",
|
||||
"r-in-list": "na lista",
|
||||
"r-in-swimlane": "na raia",
|
||||
"r-d-add-member": "Adicionar membro",
|
||||
"r-d-remove-member": "Remover membro",
|
||||
"r-d-remove-all-member": "Remover todos os membros",
|
||||
@@ -606,18 +631,28 @@
|
||||
"r-d-uncheck-all": "Desmarcar todos os itens de uma lista",
|
||||
"r-d-check-one": "Marcar item",
|
||||
"r-d-uncheck-one": "Desmarcar item",
|
||||
"r-d-check-of-list": "do checklist",
|
||||
"r-d-add-checklist": "Adicionar checklist",
|
||||
"r-d-remove-checklist": "Remover checklist",
|
||||
"r-d-check-of-list": "da lista de verificação",
|
||||
"r-d-add-checklist": "Adicionar lista de verificação",
|
||||
"r-d-remove-checklist": "Remover lista de verificação",
|
||||
"r-by": "por",
|
||||
"r-add-checklist": "Adicionar lista de verificação",
|
||||
"r-with-items": "com os itens",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Adicionar raia",
|
||||
"r-swimlane-name": "Nome da raia",
|
||||
"r-board-note": "Nota: deixe o campo vazio para corresponder à todos os valores possíveis",
|
||||
"r-checklist-note": "Nota: itens de Checklists devem ser escritos separados por vírgulas",
|
||||
"r-when-a-card-is-moved": "Quando um cartão é movido de outra lista",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
"cas": "CAS",
|
||||
"authentication-method": "Authentication method",
|
||||
"authentication-type": "Authentication type",
|
||||
"custom-product-name": "Custom Product Name",
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"authentication-method": "Método de autenticação",
|
||||
"authentication-type": "Tipo de autenticação",
|
||||
"custom-product-name": "Nome Customizado do Produto",
|
||||
"layout": "Leiaute",
|
||||
"hide-logo": "Esconder Logo",
|
||||
"add-custom-html-after-body-start": "Adicionar HTML Customizado depois do início do <body>",
|
||||
"add-custom-html-before-body-end": "Adicionar HTML Customizado antes do fim do </body>",
|
||||
"error-undefined": "Algo deu errado",
|
||||
"error-ldap-login": "Um erro ocorreu enquanto tentava entrar"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comentário",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+44
-9
@@ -109,7 +109,7 @@
|
||||
"boardChangeColorPopup-title": "Изменить фон доски",
|
||||
"boardChangeTitlePopup-title": "Переименовать доску",
|
||||
"boardChangeVisibilityPopup-title": "Изменить настройки видимости",
|
||||
"boardChangeWatchPopup-title": "Изменить Отслеживание",
|
||||
"boardChangeWatchPopup-title": "Режимы оповещения",
|
||||
"boardMenuPopup-title": "Меню доски",
|
||||
"boards": "Доски",
|
||||
"board-view": "Вид доски",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "Вы сможете восстановить доску, нажав \"Архив\" в заголовке домашней страницы.",
|
||||
"color-black": "черный",
|
||||
"color-blue": "синий",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "зеленый",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "лимоновый",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "оранжевый",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "розовый",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "фиолетовый",
|
||||
"color-red": "красный",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "голубой",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "желтый",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Добавить комментарий",
|
||||
"comment-placeholder": "Написать комментарий",
|
||||
"comment-only": "Только комментирование",
|
||||
@@ -192,7 +208,7 @@
|
||||
"copyCardPopup-title": "Копировать карточку",
|
||||
"copyChecklistToManyCardsPopup-title": "Копировать шаблон контрольного списка в несколько карточек",
|
||||
"copyChecklistToManyCardsPopup-instructions": "Названия и описания целевых карт в формате JSON",
|
||||
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Заголовок первой карточки\", \"description\":\"Описание первой карточки\"}, {\"title\":\"Заголовок второй карточки\",\"description\":\"Описание второй карточки\"},{\"title\":\"Заголовок последней карточки\",\"description\":\"Описание последней карточки\"} ]",
|
||||
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Название первой карточки\", \"description\":\"Описание первой карточки\"}, {\"title\":\"Название второй карточки\",\"description\":\"Описание второй карточки\"},{\"title\":\"Название последней карточки\",\"description\":\"Описание последней карточки\"} ]",
|
||||
"create": "Создать",
|
||||
"createBoardPopup-title": "Создать доску",
|
||||
"chooseBoardSourcePopup-title": "Импортировать доску",
|
||||
@@ -272,7 +288,7 @@
|
||||
"filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
|
||||
"filter-to-selection": "Filter to selection",
|
||||
"advanced-filter-label": "Расширенный фильтр",
|
||||
"advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между Операторами. Вы можете фильтровать все настраиваемые поля, введя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\/), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I\\'m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i",
|
||||
"advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: == != <= >= && || ( ) Пробел используется как разделитель между операторами. Можно фильтровать все настраиваемые поля, вводя их имена и значения. Например: Поле1 == Значение1. Примечание. Если поля или значения содержат пробелы, нужно взять их в одинарные кавычки. Например: 'Поле 1' == 'Значение 1'. Для одиночных управляющих символов (' \\/), которые нужно пропустить, следует использовать \\. Например: Field1 = I\\'m. Также можно комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо, но можно изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также можно искать текстовые поля с помощью регулярных выражений: F1 == /Tes.*/i",
|
||||
"fullname": "Полное имя",
|
||||
"header-logo-title": "Вернуться к доскам.",
|
||||
"hide-system-messages": "Скрыть системные сообщения",
|
||||
@@ -341,7 +357,7 @@
|
||||
"moveSelectionPopup-title": "Переместить выделение",
|
||||
"multi-selection": "Выбрать несколько",
|
||||
"multi-selection-on": "Выбрать несколько из",
|
||||
"muted": "Заглушен",
|
||||
"muted": "Не беспокоить",
|
||||
"muted-info": "Вы НИКОГДА не будете уведомлены ни о каких изменениях в этой доске.",
|
||||
"my-boards": "Мои доски",
|
||||
"name": "Имя",
|
||||
@@ -429,7 +445,7 @@
|
||||
"view-it": "Просмотреть",
|
||||
"warn-list-archived": "внимание: эта карточка из списка, который находится в Архиве",
|
||||
"watch": "Следить",
|
||||
"watching": "Отслеживается",
|
||||
"watching": "Полный контроль",
|
||||
"watching-info": "Вы будете уведомлены об любых изменениях в этой доске.",
|
||||
"welcome-board": "Приветственная Доска",
|
||||
"welcome-swimlane": "Этап 1",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "У вас нет доступа на просмотр этой страницы.",
|
||||
"outgoing-webhooks": "Исходящие Веб-хуки",
|
||||
"outgoingWebhooksPopup-title": "Исходящие Веб-хуки",
|
||||
"boardCardTitlePopup-title": "Фильтр названий карточек",
|
||||
"new-outgoing-webhook": "Новый исходящий Веб-хук",
|
||||
"no-name": "(Неизвестный)",
|
||||
"Node_version": "Версия NodeJS",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "Общая память",
|
||||
"OS_Type": "Тип ОС",
|
||||
"OS_Uptime": "Время работы",
|
||||
"days": "days",
|
||||
"hours": "часы",
|
||||
"minutes": "минуты",
|
||||
"seconds": "секунды",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Завершится до",
|
||||
"editCardReceivedDatePopup-title": "Изменить дату получения",
|
||||
"editCardEndDatePopup-title": "Изменить дату завершения",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Поручил",
|
||||
"requested-by": "Запросил",
|
||||
"board-delete-notice": "Удаление является постоянным. Вы потеряете все списки, карты и действия, связанные с этой доской.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Удалить правило",
|
||||
"r-new-rule-name": "Имя нового правила",
|
||||
"r-no-rules": "Нет правил",
|
||||
"r-when-a-card-is": "Когда карточка",
|
||||
"r-added-to": "Добавляется в",
|
||||
"r-when-a-card": "Когда карточка",
|
||||
"r-is": " ",
|
||||
"r-is-moved": "перемещается",
|
||||
"r-added-to": "добавляется в",
|
||||
"r-removed-from": "Покидает",
|
||||
"r-the-board": "доску",
|
||||
"r-list": "список",
|
||||
"set-filter": "Установить фильтр",
|
||||
"r-moved-to": "Перемещается в",
|
||||
"r-moved-from": "Покидает",
|
||||
"r-archived": "Перемещена в архив",
|
||||
@@ -553,7 +575,6 @@
|
||||
"r-when-a-member": "Когда участник",
|
||||
"r-when-the-member": "Когда участник",
|
||||
"r-name": "имя",
|
||||
"r-is": " ",
|
||||
"r-when-a-attach": "Когда вложение",
|
||||
"r-when-a-checklist": "Когда контрольный список",
|
||||
"r-when-the-checklist": "Когда контрольный список",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "метку",
|
||||
"r-member": "участника",
|
||||
"r-remove-all": "Удалить всех участников из карточки",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "контрольный список",
|
||||
"r-check-all": "Отметить все",
|
||||
"r-uncheck-all": "Снять все",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Восстановить карточку из Архива",
|
||||
"r-d-add-label": "Добавить метку",
|
||||
"r-d-remove-label": "Удалить метку",
|
||||
"r-create-card": "Создать новую карточку",
|
||||
"r-in-list": "в списке",
|
||||
"r-in-swimlane": "в дорожке",
|
||||
"r-d-add-member": "Добавить участника",
|
||||
"r-d-remove-member": "Удалить участника",
|
||||
"r-d-remove-all-member": "Удалить всех участников",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "контрольного списка",
|
||||
"r-d-add-checklist": "Добавить контрольный список",
|
||||
"r-d-remove-checklist": "Удалить контрольный список",
|
||||
"r-by": "пользователем",
|
||||
"r-add-checklist": "Добавить контрольный список",
|
||||
"r-with-items": "с пунктами",
|
||||
"r-items-list": "пункт1,пункт2,пункт3",
|
||||
"r-add-swimlane": "Добавить дорожку",
|
||||
"r-swimlane-name": "имя",
|
||||
"r-board-note": "Примечание: пустое поле соответствует любым возможным значениям.",
|
||||
"r-checklist-note": "Примечание: пункты контрольных списков при перечислении разделяются запятыми.",
|
||||
"r-when-a-card-is-moved": "Когда карточка перемещена в другой список",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Внешний вид",
|
||||
"hide-logo": "Скрыть логотип",
|
||||
"add-custom-html-after-body-start": "Добавить HTML после начала <body> ",
|
||||
"add-custom-html-before-body-end": "Добавить HTML до завершения </body>"
|
||||
"add-custom-html-before-body-end": "Добавить HTML до завершения </body>",
|
||||
"error-undefined": "Что-то пошло не так",
|
||||
"error-ldap-login": "Ошибка при попытке авторизации"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+46
-11
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"accept": "Acceptera",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-addAttachment": "bifogade __attachment__ to __card__",
|
||||
"act-activity-notify": "Aktivitetsnotifikation",
|
||||
"act-addAttachment": "bifogade __attachment__ till __card__",
|
||||
"act-addSubtask": "lade till deluppgift __checklist__ till __card__",
|
||||
"act-addChecklist": "lade till checklist __checklist__ till __card__",
|
||||
"act-addChecklistItem": "lade till __checklistItem__ till checklistan __checklist__ on __card__",
|
||||
@@ -10,7 +10,7 @@
|
||||
"act-createCard": "lade till __card__ to __list__",
|
||||
"act-createCustomField": "skapa anpassat fält __customField__",
|
||||
"act-createList": "lade till __list__ to __board__",
|
||||
"act-addBoardMember": "lade till __member__ to __board__",
|
||||
"act-addBoardMember": "lade till __member__ till __board__",
|
||||
"act-archivedBoard": "__board__ flyttades till Arkiv",
|
||||
"act-archivedCard": "__card__ flyttades till Arkiv",
|
||||
"act-archivedList": "__list__ flyttades till Arkiv",
|
||||
@@ -23,7 +23,7 @@
|
||||
"act-removeBoardMember": "tog bort __member__ från __board__",
|
||||
"act-restoredCard": "återställde __card__ to __board__",
|
||||
"act-unjoinMember": "tog bort __member__ from __card__",
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withBoardTitle": "_tavla_",
|
||||
"act-withCardTitle": "[__board__] __card__",
|
||||
"actions": "Åtgärder",
|
||||
"activities": "Aktiviteter",
|
||||
@@ -81,7 +81,7 @@
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"archive": "Flytta till Arkiv",
|
||||
"archive-all": "Flytta alla till Arkiv",
|
||||
"archive-board": "Move Board to Archive",
|
||||
"archive-board": "Flytta Anslagstavla till Arkiv",
|
||||
"archive-card": "Move Card to Archive",
|
||||
"archive-list": "Move List to Archive",
|
||||
"archive-swimlane": "Move Swimlane to Archive",
|
||||
@@ -119,7 +119,7 @@
|
||||
"bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel",
|
||||
"cancel": "Avbryt",
|
||||
"card-archived": "This card is moved to Archive.",
|
||||
"board-archived": "This board is moved to Archive.",
|
||||
"board-archived": "Den här anslagstavlan är flyttad till Arkiv.",
|
||||
"card-comments-title": "Detta kort har %s kommentar.",
|
||||
"card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.",
|
||||
"card-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsflöde och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.",
|
||||
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "svart",
|
||||
"color-blue": "blå",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "grön",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "rosa",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "lila",
|
||||
"color-red": "röd",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "himmel",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "gul",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Kommentera",
|
||||
"comment-placeholder": "Skriv kommentar",
|
||||
"comment-only": "Kommentera endast",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "Du är inte behörig att se den här sidan.",
|
||||
"outgoing-webhooks": "Utgående Webhookar",
|
||||
"outgoingWebhooksPopup-title": "Utgående Webhookar",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "Ny utgående webhook",
|
||||
"no-name": "(Okänd)",
|
||||
"Node_version": "Nodversion",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS totalt minne",
|
||||
"OS_Type": "OS Typ",
|
||||
"OS_Uptime": "OS drifttid",
|
||||
"days": "days",
|
||||
"hours": "timmar",
|
||||
"minutes": "minuter",
|
||||
"seconds": "sekunder",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Slutar den",
|
||||
"editCardReceivedDatePopup-title": "Ändra mottagningsdatum",
|
||||
"editCardEndDatePopup-title": "Ändra slutdatum",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Tilldelad av",
|
||||
"requested-by": "Efterfrågad av",
|
||||
"board-delete-notice": "Borttagningen är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här anslagstavlan.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Ta bort regel",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "Inga regler",
|
||||
"r-when-a-card-is": "När ett kort är",
|
||||
"r-added-to": "Tillagd till",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "är",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Borttagen från",
|
||||
"r-the-board": "anslagstavlan",
|
||||
"r-list": "lista",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Flyttad till",
|
||||
"r-moved-from": "Flyttad från",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "ett kort",
|
||||
"r-when-a-label-is": "När en etikett är",
|
||||
"r-when-the-label-is": "När etiketten är",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"r-when-a-member": "När en medlem är",
|
||||
"r-when-the-member": "När medlemmen",
|
||||
"r-name": "namn",
|
||||
"r-is": "är",
|
||||
"r-when-a-attach": "When an attachment",
|
||||
"r-when-a-checklist": "When a checklist is",
|
||||
"r-when-the-checklist": "When the checklist",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "etikett",
|
||||
"r-member": "medlem",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklista",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Lägg till etikett",
|
||||
"r-d-remove-label": "Ta bort etikett",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Lägg till medlem",
|
||||
"r-d-remove-member": "Ta bort medlem",
|
||||
"r-d-remove-all-member": "Ta bort alla medlemmar",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Lägg till checklista",
|
||||
"r-d-remove-checklist": "Ta bort checklista",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Lägg till checklista",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Dölj logotypen",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "Nyeusi",
|
||||
"color-blue": "Samawati",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "Kijani",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Changia",
|
||||
"comment-placeholder": "Andika changio",
|
||||
"comment-only": "Changia pekee",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "ดำ",
|
||||
"color-blue": "น้ำเงิน",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "เขียว",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "เหลืองมะนาว",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "ส้ม",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "ชมพู",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "ม่วง",
|
||||
"color-red": "แดง",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "ฟ้า",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "เหลือง",
|
||||
"unset-color": "Unset",
|
||||
"comment": "คอมเม็นต์",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+61
-26
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"accept": "Kabul Et",
|
||||
"act-activity-notify": "Activity Notification",
|
||||
"act-activity-notify": "Etkinlik Bildirimi",
|
||||
"act-addAttachment": "__card__ kartına __attachment__ dosyasını ekledi",
|
||||
"act-addSubtask": "added subtask __checklist__ to __card__",
|
||||
"act-addChecklist": "__card__ kartında __checklist__ yapılacak listesini ekledi",
|
||||
@@ -11,10 +11,10 @@
|
||||
"act-createCustomField": "__customField__ adlı özel alan yaratıldı",
|
||||
"act-createList": "__list__ listesini __board__ panosuna ekledi",
|
||||
"act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi",
|
||||
"act-archivedBoard": "__board__ moved to Archive",
|
||||
"act-archivedCard": "__card__ moved to Archive",
|
||||
"act-archivedList": "__list__ moved to Archive",
|
||||
"act-archivedSwimlane": "__swimlane__ moved to Archive",
|
||||
"act-archivedBoard": "__board__ arşive taşındı",
|
||||
"act-archivedCard": "__card__ Arşive taşındı",
|
||||
"act-archivedList": "__list__ Arşive taşındı",
|
||||
"act-archivedSwimlane": "__swimlane__ Arşive taşındı",
|
||||
"act-importBoard": "__board__ panosunu içe aktardı",
|
||||
"act-importCard": "__card__ kartını içe aktardı",
|
||||
"act-importList": "__list__ listesini içe aktardı",
|
||||
@@ -78,7 +78,7 @@
|
||||
"and-n-other-card": "Ve __count__ diğer kart",
|
||||
"and-n-other-card_plural": "Ve __count__ diğer kart",
|
||||
"apply": "Uygula",
|
||||
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
|
||||
"app-is-offline": "Yükleniyor lütfen bekleyin. Sayfayı yenilemek veri kaybına neden olur. Yükleme çalışmıyorsa, lütfen sunucunun durmadığını kontrol edin.",
|
||||
"archive": "Arşive Taşı",
|
||||
"archive-all": "Hepsini Arşive Taşı",
|
||||
"archive-board": "Panoyu Arşive Taşı",
|
||||
@@ -123,7 +123,7 @@
|
||||
"card-comments-title": "Bu kartta %s yorum var.",
|
||||
"card-delete-notice": "Silme işlemi kalıcıdır. Bu kartla ilişkili tüm eylemleri kaybedersiniz.",
|
||||
"card-delete-pop": "Son hareketler alanındaki tüm veriler silinecek, ayrıca bu kartı yeniden açamayacaksın. Bu işlemin geri dönüşü yok.",
|
||||
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
|
||||
"card-delete-suggest-archive": "Bir kartı tahtadan çıkarmak ve etkinliği korumak için Arşive taşıyabilirsiniz.",
|
||||
"card-due": "Bitiş",
|
||||
"card-due-on": "Bitiş tarihi:",
|
||||
"card-spent": "Harcanan Zaman",
|
||||
@@ -166,17 +166,33 @@
|
||||
"clipboard": "Yapıştır veya sürükleyip bırak",
|
||||
"close": "Kapat",
|
||||
"close-board": "Panoyu kapat",
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"close-board-pop": "\n92/5000\nAna başlıktaki “Arşiv” düğmesine tıklayarak tahtayı geri yükleyebilirsiniz.",
|
||||
"color-black": "siyah",
|
||||
"color-blue": "mavi",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "yeşil",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "misket limonu",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "turuncu",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pembe",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "mor",
|
||||
"color-red": "kırmızı",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "açık mavi",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "sarı",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Yorum",
|
||||
"comment-placeholder": "Yorum Yaz",
|
||||
"comment-only": "Sadece yorum",
|
||||
@@ -295,8 +311,8 @@
|
||||
"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",
|
||||
"import-user-select": "Pick your existing user you want to use as this member",
|
||||
"importMapMembersAddPopup-title": "Select member",
|
||||
"import-user-select": "Bu üye olarak kullanmak istediğiniz mevcut kullanıcınızı seçin",
|
||||
"importMapMembersAddPopup-title": "Üye seç",
|
||||
"info": "Sürüm",
|
||||
"initials": "İlk Harfleri",
|
||||
"invalid-date": "Geçersiz tarih",
|
||||
@@ -461,12 +477,13 @@
|
||||
"invitation-code": "Davetiye kodu",
|
||||
"email-invite-register-subject": "__inviter__ size bir davetiye gönderdi",
|
||||
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
|
||||
"email-smtp-test-subject": "SMTP Test Email",
|
||||
"email-smtp-test-subject": "SMTP Test E-postası",
|
||||
"email-smtp-test-text": "E-Posta başarıyla gönderildi",
|
||||
"error-invitation-code-not-exist": "Davetiye kodu bulunamadı",
|
||||
"error-notAuthorized": "Bu sayfayı görmek için yetkiniz yok.",
|
||||
"outgoing-webhooks": "Dışarı giden bağlantılar",
|
||||
"outgoingWebhooksPopup-title": "Dışarı giden bağlantılar",
|
||||
"boardCardTitlePopup-title": "Kart Başlığı Filtresi",
|
||||
"new-outgoing-webhook": "Yeni Dışarı Giden Web Bağlantısı",
|
||||
"no-name": "(Bilinmeyen)",
|
||||
"Node_version": "Node sürümü",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "İşletim Sistemi Toplam Belleği",
|
||||
"OS_Type": "İşletim Sistemi Tipi",
|
||||
"OS_Uptime": "İşletim Sistemi Toplam Açık Kalınan Süre",
|
||||
"days": "günler",
|
||||
"hours": "saat",
|
||||
"minutes": "dakika",
|
||||
"seconds": "saniye",
|
||||
@@ -499,10 +517,11 @@
|
||||
"card-end-on": "Bitiş zamanı",
|
||||
"editCardReceivedDatePopup-title": "Giriş tarihini değiştir",
|
||||
"editCardEndDatePopup-title": "Bitiş tarihini değiştir",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Atamayı yapan",
|
||||
"requested-by": "Talep Eden",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
|
||||
"board-delete-notice": "Silme kalıcıdır. Bu kartla ilişkili tüm listeleri, kartları ve işlemleri kaybedeceksiniz.",
|
||||
"delete-board-confirm-popup": "Tüm listeler, kartlar, etiketler ve etkinlikler silinecek ve pano içeriğini kurtaramayacaksınız. Geri dönüş yok.",
|
||||
"boardDeletePopup-title": "Panoyu Sil?",
|
||||
"delete-board": "Panoyu Sil",
|
||||
"default-subtasks-board": "Subtasks for __board__ board",
|
||||
@@ -525,7 +544,7 @@
|
||||
"activity-added-label": "added label '%s' to %s",
|
||||
"activity-removed-label": "removed label '%s' from %s",
|
||||
"activity-delete-attach": "deleted an attachment from %s",
|
||||
"activity-added-label-card": "added label '%s'",
|
||||
"activity-added-label-card": "etiket eklendi '%s'",
|
||||
"activity-removed-label-card": "removed label '%s'",
|
||||
"activity-delete-attach-card": "Ek silindi",
|
||||
"r-rule": "Kural",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Kuralı sil",
|
||||
"r-new-rule-name": "Yeni kural başlığı",
|
||||
"r-no-rules": "Kural yok",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "Kart eklendiğinde",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "pano",
|
||||
"r-list": "liste",
|
||||
"set-filter": "Filtrele",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Arşive taşındı",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "Kart",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "Liste İsmi",
|
||||
"r-list-name": "liste adı",
|
||||
"r-when-a-member": "When a member is",
|
||||
"r-when-the-member": "When the member",
|
||||
"r-name": "isim",
|
||||
"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",
|
||||
@@ -572,9 +593,10 @@
|
||||
"r-card": "Kart",
|
||||
"r-add": "Ekle",
|
||||
"r-remove": "Kaldır",
|
||||
"r-label": "label",
|
||||
"r-label": "etiket",
|
||||
"r-member": "üye",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-remove-all": "Tüm üyeleri karttan çıkarın",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "Kontrol Listesi",
|
||||
"r-check-all": "Tümünü işaretle",
|
||||
"r-uncheck-all": "Tüm işaretleri kaldır",
|
||||
@@ -587,10 +609,10 @@
|
||||
"r-to": "to",
|
||||
"r-subject": "Konu",
|
||||
"r-rule-details": "Kural Detayları",
|
||||
"r-d-move-to-top-gen": "Move card to top of its list",
|
||||
"r-d-move-to-top-spec": "Move card to top of list",
|
||||
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
|
||||
"r-d-move-to-bottom-spec": "Move card to bottom of list",
|
||||
"r-d-move-to-top-gen": "Kartı listesinin en üstüne taşı",
|
||||
"r-d-move-to-top-spec": "Kartı listenin en üstüne taşı",
|
||||
"r-d-move-to-bottom-gen": "Kartı listesinin en altına taşı",
|
||||
"r-d-move-to-bottom-spec": "Kartı listenin en altına taşı",
|
||||
"r-d-send-email": "E-Posta gönder",
|
||||
"r-d-send-email-to": "to",
|
||||
"r-d-send-email-subject": "Konu",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Kartı arşivden geri yükle",
|
||||
"r-d-add-label": "Etiket ekle",
|
||||
"r-d-remove-label": "Etiketi kaldır",
|
||||
"r-create-card": "Yeni kart oluştur",
|
||||
"r-in-list": ", listesinde",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Üye Ekle",
|
||||
"r-d-remove-member": "Üye Sil",
|
||||
"r-d-remove-all-member": "Tüm Üyeleri Sil",
|
||||
@@ -609,7 +634,15 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Kontrol listesine ekle",
|
||||
"r-d-remove-checklist": "Kontrol listesini kaldır",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Kontrol listesine ekle",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Kulvar ekle",
|
||||
"r-swimlane-name": "kulvar adı",
|
||||
"r-board-note": "Not: Her olası değere uyması için bir alanı boş bırakın.",
|
||||
"r-checklist-note": "Not: kontrol listesindeki öğelerin virgülle ayrılmış değerler olarak yazılması gerekir.",
|
||||
"r-when-a-card-is-moved": "Bir kart başka bir listeye taşındığında",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "Oauth2",
|
||||
"cas": "CAS",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Düzen",
|
||||
"hide-logo": "Logoyu Gizle",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Bir şeyler yanlış gitti",
|
||||
"error-ldap-login": "Giriş yapmaya çalışırken bir hata oluştu"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "чорний",
|
||||
"color-blue": "синій",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "зелений",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "лайм",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "помаранчевий",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "рожевий",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "фіолетовий",
|
||||
"color-red": "червоний",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "жовтий",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Коментар",
|
||||
"comment-placeholder": "Написати коментар",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "black",
|
||||
"color-blue": "blue",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "green",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "lime",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "orange",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "pink",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "purple",
|
||||
"color-red": "red",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "sky",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "You are not authorized to view this page.",
|
||||
"outgoing-webhooks": "Outgoing Webhooks",
|
||||
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node version",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "OS Total Memory",
|
||||
"OS_Type": "OS Type",
|
||||
"OS_Uptime": "OS Uptime",
|
||||
"days": "days",
|
||||
"hours": "hours",
|
||||
"minutes": "minutes",
|
||||
"seconds": "seconds",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+38
-3
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "您可以通过主页头部的“归档”按钮,来恢复看板。",
|
||||
"color-black": "黑色",
|
||||
"color-blue": "蓝色",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "绿色",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "绿黄",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "橙色",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "粉红",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "紫色",
|
||||
"color-red": "红色",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "天蓝",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "黄色",
|
||||
"unset-color": "Unset",
|
||||
"comment": "评论",
|
||||
"comment-placeholder": "添加评论",
|
||||
"comment-only": "仅能评论",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "您无权查看此页面。",
|
||||
"outgoing-webhooks": "外部Web挂钩",
|
||||
"outgoingWebhooksPopup-title": "外部Web挂钩",
|
||||
"boardCardTitlePopup-title": "卡片标题过滤",
|
||||
"new-outgoing-webhook": "新建外部Web挂钩",
|
||||
"no-name": "(未知)",
|
||||
"Node_version": "Node.js版本",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "系统全部内存",
|
||||
"OS_Type": "系统类型",
|
||||
"OS_Uptime": "系统运行时间",
|
||||
"days": "天",
|
||||
"hours": "小时",
|
||||
"minutes": "分钟",
|
||||
"seconds": "秒",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "终止于",
|
||||
"editCardReceivedDatePopup-title": "修改接收日期",
|
||||
"editCardEndDatePopup-title": "修改终止日期",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "分配人",
|
||||
"requested-by": "需求人",
|
||||
"board-delete-notice": "删除时永久操作,将会丢失此看板上的所有列表、卡片和动作。",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "删除规则",
|
||||
"r-new-rule-name": "新建规则标题",
|
||||
"r-no-rules": "暂无规则",
|
||||
"r-when-a-card-is": "当卡片是",
|
||||
"r-when-a-card": "当一张卡片",
|
||||
"r-is": "是",
|
||||
"r-is-moved": "已经移动",
|
||||
"r-added-to": "添加到",
|
||||
"r-removed-from": "已移除",
|
||||
"r-the-board": "该看板",
|
||||
"r-list": "列表",
|
||||
"set-filter": "设置过滤器",
|
||||
"r-moved-to": "移至",
|
||||
"r-moved-from": "已移动",
|
||||
"r-archived": "已移动到归档",
|
||||
@@ -553,7 +575,6 @@
|
||||
"r-when-a-member": "当一个成员是",
|
||||
"r-when-the-member": "当该成员",
|
||||
"r-name": "名称",
|
||||
"r-is": "是",
|
||||
"r-when-a-attach": "当一个附件",
|
||||
"r-when-a-checklist": "当一个清单是",
|
||||
"r-when-the-checklist": "当该清单",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "标签",
|
||||
"r-member": "成员",
|
||||
"r-remove-all": "从卡片移除所有成员",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "清单",
|
||||
"r-check-all": "勾选所有",
|
||||
"r-uncheck-all": "取消勾选所有",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "从归档中恢复卡片",
|
||||
"r-d-add-label": "添加标签",
|
||||
"r-d-remove-label": "移除标签",
|
||||
"r-create-card": "创建新卡片",
|
||||
"r-in-list": "在列表中",
|
||||
"r-in-swimlane": "在泳道中",
|
||||
"r-d-add-member": "添加成员",
|
||||
"r-d-remove-member": "移除成员",
|
||||
"r-d-remove-all-member": "移除所有成员",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "清单的",
|
||||
"r-d-add-checklist": "添加待办清单",
|
||||
"r-d-remove-checklist": "移动待办清单",
|
||||
"r-by": "在",
|
||||
"r-add-checklist": "添加待办清单",
|
||||
"r-with-items": "与项目",
|
||||
"r-items-list": "项目1,项目2,项目3",
|
||||
"r-add-swimlane": "添加泳道",
|
||||
"r-swimlane-name": "泳道名",
|
||||
"r-board-note": "注意:保留一个空字段去匹配所有可能的值。",
|
||||
"r-checklist-note": "注意:清单中的项目必须用都好分割。",
|
||||
"r-when-a-card-is-moved": "当移动卡片到另一个列表时",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "布局",
|
||||
"hide-logo": "隐藏LOGO",
|
||||
"add-custom-html-after-body-start": "添加定制的HTML在开始<body>之前",
|
||||
"add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后"
|
||||
"add-custom-html-before-body-end": "添加定制的HTML在结束</body>之后",
|
||||
"error-undefined": "出了点问题",
|
||||
"error-ldap-login": "尝试登陆时出错"
|
||||
}
|
||||
+40
-5
@@ -169,14 +169,30 @@
|
||||
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
|
||||
"color-black": "黑色",
|
||||
"color-blue": "藍色",
|
||||
"color-crimson": "crimson",
|
||||
"color-darkgreen": "darkgreen",
|
||||
"color-gold": "gold",
|
||||
"color-gray": "gray",
|
||||
"color-green": "綠色",
|
||||
"color-indigo": "indigo",
|
||||
"color-lime": "綠黃",
|
||||
"color-magenta": "magenta",
|
||||
"color-mistyrose": "mistyrose",
|
||||
"color-navy": "navy",
|
||||
"color-orange": "橙色",
|
||||
"color-paleturquoise": "paleturquoise",
|
||||
"color-peachpuff": "peachpuff",
|
||||
"color-pink": "粉紅",
|
||||
"color-plum": "plum",
|
||||
"color-purple": "紫色",
|
||||
"color-red": "紅色",
|
||||
"color-saddlebrown": "saddlebrown",
|
||||
"color-silver": "silver",
|
||||
"color-sky": "天藍",
|
||||
"color-slateblue": "slateblue",
|
||||
"color-white": "white",
|
||||
"color-yellow": "黃色",
|
||||
"unset-color": "Unset",
|
||||
"comment": "留言",
|
||||
"comment-placeholder": "新增評論",
|
||||
"comment-only": "只可以發表評論",
|
||||
@@ -467,6 +483,7 @@
|
||||
"error-notAuthorized": "沒有適合的權限觀看",
|
||||
"outgoing-webhooks": "設定 Webhooks",
|
||||
"outgoingWebhooksPopup-title": "設定 Webhooks",
|
||||
"boardCardTitlePopup-title": "Card Title Filter",
|
||||
"new-outgoing-webhook": "New Outgoing Webhook",
|
||||
"no-name": "(Unknown)",
|
||||
"Node_version": "Node 版本",
|
||||
@@ -479,6 +496,7 @@
|
||||
"OS_Totalmem": "系統總記憶體",
|
||||
"OS_Type": "系統類型",
|
||||
"OS_Uptime": "系統運行時間",
|
||||
"days": "days",
|
||||
"hours": "小時",
|
||||
"minutes": "分鐘",
|
||||
"seconds": "秒",
|
||||
@@ -499,6 +517,7 @@
|
||||
"card-end-on": "Ends on",
|
||||
"editCardReceivedDatePopup-title": "Change received date",
|
||||
"editCardEndDatePopup-title": "Change end date",
|
||||
"setCardColor-title": "Set color",
|
||||
"assigned-by": "Assigned By",
|
||||
"requested-by": "Requested By",
|
||||
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
|
||||
@@ -537,11 +556,14 @@
|
||||
"r-delete-rule": "Delete rule",
|
||||
"r-new-rule-name": "New rule title",
|
||||
"r-no-rules": "No rules",
|
||||
"r-when-a-card-is": "When a card is",
|
||||
"r-added-to": "Added to",
|
||||
"r-when-a-card": "When a card",
|
||||
"r-is": "is",
|
||||
"r-is-moved": "is moved",
|
||||
"r-added-to": "added to",
|
||||
"r-removed-from": "Removed from",
|
||||
"r-the-board": "the board",
|
||||
"r-list": "list",
|
||||
"set-filter": "Set Filter",
|
||||
"r-moved-to": "Moved to",
|
||||
"r-moved-from": "Moved from",
|
||||
"r-archived": "Moved to Archive",
|
||||
@@ -549,11 +571,10 @@
|
||||
"r-a-card": "a card",
|
||||
"r-when-a-label-is": "When a label is",
|
||||
"r-when-the-label-is": "When the label is",
|
||||
"r-list-name": "List name",
|
||||
"r-list-name": "list name",
|
||||
"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",
|
||||
@@ -575,6 +596,7 @@
|
||||
"r-label": "label",
|
||||
"r-member": "member",
|
||||
"r-remove-all": "Remove all members from the card",
|
||||
"r-set-color": "Set color to",
|
||||
"r-checklist": "checklist",
|
||||
"r-check-all": "Check all",
|
||||
"r-uncheck-all": "Uncheck all",
|
||||
@@ -599,6 +621,9 @@
|
||||
"r-d-unarchive": "Restore card from Archive",
|
||||
"r-d-add-label": "Add label",
|
||||
"r-d-remove-label": "Remove label",
|
||||
"r-create-card": "Create new card",
|
||||
"r-in-list": "in list",
|
||||
"r-in-swimlane": "in swimlane",
|
||||
"r-d-add-member": "Add member",
|
||||
"r-d-remove-member": "Remove member",
|
||||
"r-d-remove-all-member": "Remove all member",
|
||||
@@ -609,6 +634,14 @@
|
||||
"r-d-check-of-list": "of checklist",
|
||||
"r-d-add-checklist": "Add checklist",
|
||||
"r-d-remove-checklist": "Remove checklist",
|
||||
"r-by": "by",
|
||||
"r-add-checklist": "Add checklist",
|
||||
"r-with-items": "with items",
|
||||
"r-items-list": "item1,item2,item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value.",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"ldap": "LDAP",
|
||||
"oauth2": "OAuth2",
|
||||
@@ -619,5 +652,7 @@
|
||||
"layout": "Layout",
|
||||
"hide-logo": "Hide Logo",
|
||||
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end"
|
||||
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
|
||||
"error-undefined": "Something went wrong",
|
||||
"error-ldap-login": "An error occurred while trying to login"
|
||||
}
|
||||
+176
-32
@@ -1,10 +1,19 @@
|
||||
Boards = new Mongo.Collection('boards');
|
||||
|
||||
/**
|
||||
* This is a Board.
|
||||
*/
|
||||
Boards.attachSchema(new SimpleSchema({
|
||||
title: {
|
||||
/**
|
||||
* The title of the board
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
slug: {
|
||||
/**
|
||||
* The title slugified.
|
||||
*/
|
||||
type: String,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
// XXX We need to improve slug management. Only the id should be necessary
|
||||
@@ -24,6 +33,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
archived: {
|
||||
/**
|
||||
* Is the board archived?
|
||||
*/
|
||||
type: Boolean,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -32,6 +44,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* Creation time of the board
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -43,6 +58,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
// XXX Inconsistent field naming
|
||||
modifiedAt: {
|
||||
/**
|
||||
* Last modification time of the board
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -55,6 +73,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
// De-normalized number of users that have starred this board
|
||||
stars: {
|
||||
/**
|
||||
* How many stars the board has
|
||||
*/
|
||||
type: Number,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -64,6 +85,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
// De-normalized label system
|
||||
'labels': {
|
||||
/**
|
||||
* List of labels attached to a board
|
||||
*/
|
||||
type: [Object],
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -78,6 +102,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
'labels.$._id': {
|
||||
/**
|
||||
* Unique id of a label
|
||||
*/
|
||||
// We don't specify that this field must be unique in the board because that
|
||||
// will cause performance penalties and is not necessary since this field is
|
||||
// always set on the server.
|
||||
@@ -86,10 +113,22 @@ Boards.attachSchema(new SimpleSchema({
|
||||
type: String,
|
||||
},
|
||||
'labels.$.name': {
|
||||
/**
|
||||
* Name of a label
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'labels.$.color': {
|
||||
/**
|
||||
* color of a label.
|
||||
*
|
||||
* Can be amongst `green`, `yellow`, `orange`, `red`, `purple`,
|
||||
* `blue`, `sky`, `lime`, `pink`, `black`,
|
||||
* `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`,
|
||||
* `slateblue`, `magenta`, `gold`, `navy`, `gray`,
|
||||
* `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`
|
||||
*/
|
||||
type: String,
|
||||
allowedValues: [
|
||||
'green', 'yellow', 'orange', 'red', 'purple',
|
||||
@@ -103,6 +142,9 @@ Boards.attachSchema(new SimpleSchema({
|
||||
// documents like de-normalized meta-data (the date the member joined the
|
||||
// board, the number of contributions, etc.).
|
||||
'members': {
|
||||
/**
|
||||
* List of members of a board
|
||||
*/
|
||||
type: [Object],
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -117,27 +159,48 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
'members.$.userId': {
|
||||
/**
|
||||
* The uniq ID of the member
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
'members.$.isAdmin': {
|
||||
/**
|
||||
* Is the member an admin of the board?
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
'members.$.isActive': {
|
||||
/**
|
||||
* Is the member active?
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
'members.$.isNoComments': {
|
||||
/**
|
||||
* Is the member not allowed to make comments
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
'members.$.isCommentOnly': {
|
||||
/**
|
||||
* Is the member only allowed to comment on the board
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
permission: {
|
||||
/**
|
||||
* visibility of the board
|
||||
*/
|
||||
type: String,
|
||||
allowedValues: ['public', 'private'],
|
||||
},
|
||||
color: {
|
||||
/**
|
||||
* The color of the board.
|
||||
*/
|
||||
type: String,
|
||||
allowedValues: [
|
||||
'belize',
|
||||
@@ -154,24 +217,45 @@ Boards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
description: {
|
||||
/**
|
||||
* The description of the board
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
subtasksDefaultBoardId: {
|
||||
/**
|
||||
* The default board ID assigned to subtasks.
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: null,
|
||||
},
|
||||
subtasksDefaultListId: {
|
||||
/**
|
||||
* The default List ID assigned to subtasks.
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: null,
|
||||
},
|
||||
allowsSubtasks: {
|
||||
/**
|
||||
* Does the board allows subtasks?
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: true,
|
||||
},
|
||||
presentParentTask: {
|
||||
/**
|
||||
* Controls how to present the parent task:
|
||||
*
|
||||
* - `prefix-with-full-path`: add a prefix with the full path
|
||||
* - `prefix-with-parent`: add a prefisx with the parent name
|
||||
* - `subtext-with-full-path`: add a subtext with the full path
|
||||
* - `subtext-with-parent`: add a subtext with the parent name
|
||||
* - `no-parent`: does not show the parent at all
|
||||
*/
|
||||
type: String,
|
||||
allowedValues: [
|
||||
'prefix-with-full-path',
|
||||
@@ -184,23 +268,38 @@ Boards.attachSchema(new SimpleSchema({
|
||||
defaultValue: 'no-parent',
|
||||
},
|
||||
startAt: {
|
||||
/**
|
||||
* Starting date of the board.
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
dueAt: {
|
||||
/**
|
||||
* Due date of the board.
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
endAt: {
|
||||
/**
|
||||
* End date of the board.
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
spentTime: {
|
||||
/**
|
||||
* Time spent in the board.
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
optional: true,
|
||||
},
|
||||
isOvertime: {
|
||||
/**
|
||||
* Is the board overtimed?
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
optional: true,
|
||||
@@ -278,10 +377,6 @@ Boards.helpers({
|
||||
return Users.find({ _id: { $in: _.pluck(this.members, 'userId') } });
|
||||
},
|
||||
|
||||
getMember(id) {
|
||||
return _.findWhere(this.members, { userId: id });
|
||||
},
|
||||
|
||||
getLabel(name, color) {
|
||||
return _.findWhere(this.labels, { name, color });
|
||||
},
|
||||
@@ -778,6 +873,14 @@ if (Meteor.isServer) {
|
||||
|
||||
//BOARDS REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_boards_from_user
|
||||
* @summary Get all boards attached to a user
|
||||
*
|
||||
* @param {string} userId the ID of the user to retrieve the data
|
||||
* @return_type [{_id: string,
|
||||
title: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/users/:userId/boards', function (req, res) {
|
||||
try {
|
||||
Authentication.checkLoggedIn(req.userId);
|
||||
@@ -808,6 +911,13 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_public_boards
|
||||
* @summary Get all public boards
|
||||
*
|
||||
* @return_type [{_id: string,
|
||||
title: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -829,6 +939,13 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_board
|
||||
* @summary Get the board with that particular ID
|
||||
*
|
||||
* @param {string} boardId the ID of the board to retrieve the data
|
||||
* @return_type Boards
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId', function (req, res) {
|
||||
try {
|
||||
const id = req.params.boardId;
|
||||
@@ -847,34 +964,31 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
JsonRoutes.add('PUT', '/api/boards/:boardId/members', function (req, res) {
|
||||
Authentication.checkUserId(req.userId);
|
||||
try {
|
||||
const boardId = req.params.boardId;
|
||||
const board = Boards.findOne({ _id: boardId });
|
||||
const userId = req.body.userId;
|
||||
const user = Users.findOne({ _id: userId });
|
||||
|
||||
if (!board.getMember(userId)) {
|
||||
user.addInvite(boardId);
|
||||
board.addMember(userId);
|
||||
JsonRoutes.sendResult(res, {
|
||||
code: 200,
|
||||
data: id,
|
||||
});
|
||||
} else {
|
||||
JsonRoutes.sendResult(res, {
|
||||
code: 200,
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
JsonRoutes.sendResult(res, {
|
||||
data: error,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_board
|
||||
* @summary Create a board
|
||||
*
|
||||
* @description This allows to create a board.
|
||||
*
|
||||
* The color has to be chosen between `belize`, `nephritis`, `pomegranate`,
|
||||
* `pumpkin`, `wisteria`, `midnight`:
|
||||
*
|
||||
* <img src="https://wekan.github.io/board-colors.png" width="40%" alt="Wekan logo" />
|
||||
*
|
||||
* @param {string} title the new title of the board
|
||||
* @param {string} owner "ABCDE12345" <= User ID in Wekan.
|
||||
* (Not username or email)
|
||||
* @param {boolean} [isAdmin] is the owner an admin of the board (default true)
|
||||
* @param {boolean} [isActive] is the board active (default true)
|
||||
* @param {boolean} [isNoComments] disable comments (default false)
|
||||
* @param {boolean} [isCommentOnly] only enable comments (default false)
|
||||
* @param {string} [permission] "private" board <== Set to "public" if you
|
||||
* want public Wekan board
|
||||
* @param {string} [color] the color of the board
|
||||
*
|
||||
* @return_type {_id: string,
|
||||
defaultSwimlaneId: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -912,6 +1026,12 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_board
|
||||
* @summary Delete a board
|
||||
*
|
||||
* @param {string} boardId the ID of the board
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -932,6 +1052,19 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation add_board_label
|
||||
* @summary Add a label to a board
|
||||
*
|
||||
* @description If the board doesn't have the name/color label, this function
|
||||
* adds the label to the board.
|
||||
*
|
||||
* @param {string} boardId the board
|
||||
* @param {string} color the color of the new label
|
||||
* @param {string} name the name of the new label
|
||||
*
|
||||
* @return_type string
|
||||
*/
|
||||
JsonRoutes.add('PUT', '/api/boards/:boardId/labels', function (req, res) {
|
||||
Authentication.checkUserId(req.userId);
|
||||
const id = req.params.boardId;
|
||||
@@ -961,6 +1094,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation set_board_member_permission
|
||||
* @tag Users
|
||||
* @summary Change the permission of a member of a board
|
||||
*
|
||||
* @param {string} boardId the ID of the board that we are changing
|
||||
* @param {string} memberId the ID of the user to change permissions
|
||||
* @param {boolean} isAdmin admin capability
|
||||
* @param {boolean} isNoComments NoComments capability
|
||||
* @param {boolean} isCommentOnly CommentsOnly capability
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/members/:memberId', function (req, res) {
|
||||
try {
|
||||
const boardId = req.params.boardId;
|
||||
|
||||
@@ -1,19 +1,34 @@
|
||||
CardComments = new Mongo.Collection('card_comments');
|
||||
|
||||
/**
|
||||
* A comment on a card
|
||||
*/
|
||||
CardComments.attachSchema(new SimpleSchema({
|
||||
boardId: {
|
||||
/**
|
||||
* the board ID
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
cardId: {
|
||||
/**
|
||||
* the card ID
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
// XXX Rename in `content`? `text` is a bit vague...
|
||||
text: {
|
||||
/**
|
||||
* the text of the comment
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
// XXX We probably don't need this information here, since we already have it
|
||||
// in the associated comment creation activity
|
||||
createdAt: {
|
||||
/**
|
||||
* when was the comment created
|
||||
*/
|
||||
type: Date,
|
||||
denyUpdate: false,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -26,6 +41,9 @@ CardComments.attachSchema(new SimpleSchema({
|
||||
},
|
||||
// XXX Should probably be called `authorId`
|
||||
userId: {
|
||||
/**
|
||||
* the author ID of the comment
|
||||
*/
|
||||
type: String,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -87,6 +105,16 @@ if (Meteor.isServer) {
|
||||
|
||||
//CARD COMMENT REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_comments
|
||||
* @summary Get all comments attached to a card
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @return_type [{_id: string,
|
||||
* comment: string,
|
||||
* authorId: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/comments', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
@@ -111,6 +139,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_comment
|
||||
* @summary Get a comment on a card
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @param {string} commentId the ID of the comment to retrieve
|
||||
* @return_type CardComments
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/comments/:commentId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
@@ -130,6 +167,16 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_comment
|
||||
* @summary Add a comment on a card
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @param {string} authorId the user who 'posted' the comment
|
||||
* @param {string} text the content of the comment
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/cards/:cardId/comments', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
@@ -160,6 +207,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_comment
|
||||
* @summary Delete a comment on a card
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @param {string} commentId the ID of the comment to delete
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/cards/:cardId/comments/:commentId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
|
||||
+215
@@ -5,11 +5,17 @@ Cards = new Mongo.Collection('cards');
|
||||
// of comments just to display the number of them in the board view.
|
||||
Cards.attachSchema(new SimpleSchema({
|
||||
title: {
|
||||
/**
|
||||
* the title of the card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
archived: {
|
||||
/**
|
||||
* is the card archived
|
||||
*/
|
||||
type: Boolean,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -18,33 +24,62 @@ Cards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
parentId: {
|
||||
/**
|
||||
* ID of the parent card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
listId: {
|
||||
/**
|
||||
* List ID where the card is
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
swimlaneId: {
|
||||
/**
|
||||
* Swimlane ID where the card is
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
// The system could work without this `boardId` information (we could deduce
|
||||
// the board identifier from the card), but it would make the system more
|
||||
// difficult to manage and less efficient.
|
||||
boardId: {
|
||||
/**
|
||||
* Board ID of the card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
coverId: {
|
||||
/**
|
||||
* Cover ID of the card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
|
||||
},
|
||||
color: {
|
||||
type: String,
|
||||
optional: true,
|
||||
allowedValues: [
|
||||
'green', 'yellow', 'orange', 'red', 'purple',
|
||||
'blue', 'sky', 'lime', 'pink', 'black',
|
||||
'silver', 'peachpuff', 'crimson', 'plum', 'darkgreen',
|
||||
'slateblue', 'magenta', 'gold', 'navy', 'gray',
|
||||
'saddlebrown', 'paleturquoise', 'mistyrose', 'indigo',
|
||||
],
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* creation date
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -55,6 +90,9 @@ Cards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
customFields: {
|
||||
/**
|
||||
* list of custom fields
|
||||
*/
|
||||
type: [Object],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
@@ -62,11 +100,17 @@ Cards.attachSchema(new SimpleSchema({
|
||||
'customFields.$': {
|
||||
type: new SimpleSchema({
|
||||
_id: {
|
||||
/**
|
||||
* the ID of the related custom field
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
value: {
|
||||
/**
|
||||
* value attached to the custom field
|
||||
*/
|
||||
type: Match.OneOf(String, Number, Boolean, Date),
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
@@ -74,59 +118,95 @@ Cards.attachSchema(new SimpleSchema({
|
||||
}),
|
||||
},
|
||||
dateLastActivity: {
|
||||
/**
|
||||
* Date of last activity
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() {
|
||||
return new Date();
|
||||
},
|
||||
},
|
||||
description: {
|
||||
/**
|
||||
* description of the card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
requestedBy: {
|
||||
/**
|
||||
* who requested the card (ID of the user)
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
assignedBy: {
|
||||
/**
|
||||
* who assigned the card (ID of the user)
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
labelIds: {
|
||||
/**
|
||||
* list of labels ID the card has
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
members: {
|
||||
/**
|
||||
* list of members (user IDs)
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
defaultValue: [],
|
||||
},
|
||||
receivedAt: {
|
||||
/**
|
||||
* Date the card was received
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
startAt: {
|
||||
/**
|
||||
* Date the card was started to be worked on
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
dueAt: {
|
||||
/**
|
||||
* Date the card is due
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
endAt: {
|
||||
/**
|
||||
* Date the card ended
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
spentTime: {
|
||||
/**
|
||||
* How much time has been spent on this
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
optional: true,
|
||||
defaultValue: 0,
|
||||
},
|
||||
isOvertime: {
|
||||
/**
|
||||
* is the card over time?
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
optional: true,
|
||||
@@ -134,6 +214,9 @@ Cards.attachSchema(new SimpleSchema({
|
||||
// XXX Should probably be called `authorId`. Is it even needed since we have
|
||||
// the `members` field?
|
||||
userId: {
|
||||
/**
|
||||
* user ID of the author of the card
|
||||
*/
|
||||
type: String,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -142,21 +225,33 @@ Cards.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
sort: {
|
||||
/**
|
||||
* Sort value
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
defaultValue: '',
|
||||
},
|
||||
subtaskSort: {
|
||||
/**
|
||||
* subtask sort value
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
defaultValue: -1,
|
||||
optional: true,
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* type of the card
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: '',
|
||||
},
|
||||
linkedId: {
|
||||
/**
|
||||
* ID of the linked card
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
defaultValue: '',
|
||||
@@ -351,7 +446,12 @@ Cards.helpers({
|
||||
definition,
|
||||
};
|
||||
});
|
||||
},
|
||||
|
||||
colorClass() {
|
||||
if (this.color)
|
||||
return this.color;
|
||||
return '';
|
||||
},
|
||||
|
||||
absoluteUrl() {
|
||||
@@ -933,6 +1033,17 @@ Cards.mutations({
|
||||
}
|
||||
},
|
||||
|
||||
setColor(newColor) {
|
||||
if (newColor === 'white') {
|
||||
newColor = null;
|
||||
}
|
||||
return {
|
||||
$set: {
|
||||
color: newColor,
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
assignMember(memberId) {
|
||||
return {
|
||||
$addToSet: {
|
||||
@@ -1128,6 +1239,7 @@ function cardMove(userId, doc, fieldNames, oldListId, oldSwimlaneId) {
|
||||
listId: doc.listId,
|
||||
boardId: doc.boardId,
|
||||
cardId: doc._id,
|
||||
swimlaneName: Swimlanes.findOne(doc.swimlaneId).title,
|
||||
swimlaneId: doc.swimlaneId,
|
||||
oldSwimlaneId,
|
||||
});
|
||||
@@ -1237,6 +1349,8 @@ function cardCreation(userId, doc) {
|
||||
listName: Lists.findOne(doc.listId).title,
|
||||
listId: doc.listId,
|
||||
cardId: doc._id,
|
||||
cardTitle:doc.title,
|
||||
swimlaneName: Swimlanes.findOne(doc.swimlaneId).title,
|
||||
swimlaneId: doc.swimlaneId,
|
||||
});
|
||||
}
|
||||
@@ -1306,6 +1420,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
//SWIMLANES REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_swimlane_cards
|
||||
* @summary get all cards attached to a swimlane
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} swimlaneId the swimlane ID
|
||||
* @return_type [{_id: string,
|
||||
* title: string,
|
||||
* description: string,
|
||||
* listId: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/swimlanes/:swimlaneId/cards', function(req, res) {
|
||||
const paramBoardId = req.params.boardId;
|
||||
const paramSwimlaneId = req.params.swimlaneId;
|
||||
@@ -1329,6 +1454,16 @@ if (Meteor.isServer) {
|
||||
}
|
||||
//LISTS REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_cards
|
||||
* @summary Get all Cards attached to a List
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} listId the list ID
|
||||
* @return_type [{_id: string,
|
||||
* title: string,
|
||||
* description: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId/cards', function(req, res) {
|
||||
const paramBoardId = req.params.boardId;
|
||||
const paramListId = req.params.listId;
|
||||
@@ -1349,6 +1484,15 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_card
|
||||
* @summary Get a Card
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} listId the list ID of the card
|
||||
* @param {string} cardId the card ID
|
||||
* @return_type Cards
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId/cards/:cardId', function(req, res) {
|
||||
const paramBoardId = req.params.boardId;
|
||||
const paramListId = req.params.listId;
|
||||
@@ -1365,6 +1509,19 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_card
|
||||
* @summary Create a new Card
|
||||
*
|
||||
* @param {string} boardId the board ID of the new card
|
||||
* @param {string} listId the list ID of the new card
|
||||
* @param {string} authorID the user ID of the person owning the card
|
||||
* @param {string} title the title of the new card
|
||||
* @param {string} description the description of the new card
|
||||
* @param {string} swimlaneId the swimlane ID of the new card
|
||||
* @param {string} [members] the member IDs list of the new card
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/lists/:listId/cards', function(req, res) {
|
||||
Authentication.checkUserId(req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -1403,6 +1560,47 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* Note for the JSDoc:
|
||||
* 'list' will be interpreted as the path parameter
|
||||
* 'listID' will be interpreted as the body parameter
|
||||
*/
|
||||
/**
|
||||
* @operation edit_card
|
||||
* @summary Edit Fields in a Card
|
||||
*
|
||||
* @description Edit a card
|
||||
*
|
||||
* The color has to be chosen between `green`, `yellow`, `orange`, `red`,
|
||||
* `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`,
|
||||
* `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`,
|
||||
* `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`:
|
||||
*
|
||||
* <img src="/card-colors.png" width="40%" alt="Wekan card colors" />
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} list the list ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @param {string} [title] the new title of the card
|
||||
* @param {string} [listId] the new list ID of the card (move operation)
|
||||
* @param {string} [description] the new description of the card
|
||||
* @param {string} [authorId] change the owner of the card
|
||||
* @param {string} [labelIds] the new list of label IDs attached to the card
|
||||
* @param {string} [swimlaneId] the new swimlane ID of the card
|
||||
* @param {string} [members] the new list of member IDs attached to the card
|
||||
* @param {string} [requestedBy] the new requestedBy field of the card
|
||||
* @param {string} [assignedBy] the new assignedBy field of the card
|
||||
* @param {string} [receivedAt] the new receivedAt field of the card
|
||||
* @param {string} [assignBy] the new assignBy field of the card
|
||||
* @param {string} [startAt] the new startAt field of the card
|
||||
* @param {string} [dueAt] the new dueAt field of the card
|
||||
* @param {string} [endAt] the new endAt field of the card
|
||||
* @param {string} [spentTime] the new spentTime field of the card
|
||||
* @param {boolean} [isOverTime] the new isOverTime field of the card
|
||||
* @param {string} [customFields] the new customFields value of the card
|
||||
* @param {string} [color] the new color of the card
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('PUT', '/api/boards/:boardId/lists/:listId/cards/:cardId', function(req, res) {
|
||||
Authentication.checkUserId(req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -1456,6 +1654,11 @@ if (Meteor.isServer) {
|
||||
},
|
||||
});
|
||||
}
|
||||
if (req.body.hasOwnProperty('color')) {
|
||||
const newColor = req.body.color;
|
||||
Cards.direct.update({_id: paramCardId, listId: paramListId, boardId: paramBoardId, archived: false},
|
||||
{$set: {color: newColor}});
|
||||
}
|
||||
if (req.body.hasOwnProperty('labelIds')) {
|
||||
let newlabelIds = req.body.labelIds;
|
||||
if (_.isString(newlabelIds)) {
|
||||
@@ -1548,6 +1751,18 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_card
|
||||
* @summary Delete a card from a board
|
||||
*
|
||||
* @description This operation **deletes** a card, and therefore the card
|
||||
* is not put in the recycle bin.
|
||||
*
|
||||
* @param {string} boardId the board ID of the card
|
||||
* @param {string} list the list ID of the card
|
||||
* @param {string} cardId the ID of the card
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/lists/:listId/cards/:cardId', function(req, res) {
|
||||
Authentication.checkUserId(req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
|
||||
@@ -1,21 +1,39 @@
|
||||
ChecklistItems = new Mongo.Collection('checklistItems');
|
||||
|
||||
/**
|
||||
* An item in a checklist
|
||||
*/
|
||||
ChecklistItems.attachSchema(new SimpleSchema({
|
||||
title: {
|
||||
/**
|
||||
* the text of the item
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
sort: {
|
||||
/**
|
||||
* the sorting field of the item
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
},
|
||||
isFinished: {
|
||||
/**
|
||||
* Is the item checked?
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
},
|
||||
checklistId: {
|
||||
/**
|
||||
* the checklist ID the item is attached to
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
cardId: {
|
||||
/**
|
||||
* the card ID the item is attached to
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
}));
|
||||
@@ -193,6 +211,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_checklist_item
|
||||
* @tag Checklists
|
||||
* @summary Get a checklist item
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} checklistId the checklist ID
|
||||
* @param {string} itemId the ID of the item
|
||||
* @return_type ChecklistItems
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramItemId = req.params.itemId;
|
||||
@@ -209,6 +238,19 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation edit_checklist_item
|
||||
* @tag Checklists
|
||||
* @summary Edit a checklist item
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} checklistId the checklist ID
|
||||
* @param {string} itemId the ID of the item
|
||||
* @param {string} [isFinished] is the item checked?
|
||||
* @param {string} [title] the new text of the item
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('PUT', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
|
||||
@@ -229,6 +271,19 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_checklist_item
|
||||
* @tag Checklists
|
||||
* @summary Delete a checklist item
|
||||
*
|
||||
* @description Note: this operation can't be reverted.
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} checklistId the checklist ID
|
||||
* @param {string} itemId the ID of the item to be removed
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId/items/:itemId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramItemId = req.params.itemId;
|
||||
|
||||
@@ -1,18 +1,33 @@
|
||||
Checklists = new Mongo.Collection('checklists');
|
||||
|
||||
/**
|
||||
* A Checklist
|
||||
*/
|
||||
Checklists.attachSchema(new SimpleSchema({
|
||||
cardId: {
|
||||
/**
|
||||
* The ID of the card the checklist is in
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
title: {
|
||||
/**
|
||||
* the title of the checklist
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: 'Checklist',
|
||||
},
|
||||
finishedAt: {
|
||||
/**
|
||||
* When was the checklist finished
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* Creation date of the checklist
|
||||
*/
|
||||
type: Date,
|
||||
denyUpdate: false,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -24,6 +39,9 @@ Checklists.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
sort: {
|
||||
/**
|
||||
* sorting value of the checklist
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
},
|
||||
@@ -128,6 +146,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_checklists
|
||||
* @summary Get the list of checklists attached to a card
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @return_type [{_id: string,
|
||||
* title: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramCardId = req.params.cardId;
|
||||
@@ -149,6 +176,22 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_checklist
|
||||
* @summary Get a checklist
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} checklistId the ID of the checklist
|
||||
* @return_type {cardId: string,
|
||||
* title: string,
|
||||
* finishedAt: string,
|
||||
* createdAt: string,
|
||||
* sort: number,
|
||||
* items: [{_id: string,
|
||||
* title: string,
|
||||
* isFinished: boolean}]}
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramChecklistId = req.params.checklistId;
|
||||
@@ -173,6 +216,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_checklist
|
||||
* @summary create a new checklist
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} title the title of the new checklist
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/cards/:cardId/checklists', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
|
||||
@@ -204,6 +256,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_checklist
|
||||
* @summary Delete a checklist
|
||||
*
|
||||
* @description The checklist will be removed, not put in the recycle bin.
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} cardId the card ID
|
||||
* @param {string} checklistId the ID of the checklist to remove
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/cards/:cardId/checklists/:checklistId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramChecklistId = req.params.checklistId;
|
||||
|
||||
@@ -1,40 +1,73 @@
|
||||
CustomFields = new Mongo.Collection('customFields');
|
||||
|
||||
/**
|
||||
* A custom field on a card in the board
|
||||
*/
|
||||
CustomFields.attachSchema(new SimpleSchema({
|
||||
boardId: {
|
||||
/**
|
||||
* the ID of the board
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
name: {
|
||||
/**
|
||||
* name of the custom field
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* type of the custom field
|
||||
*/
|
||||
type: String,
|
||||
allowedValues: ['text', 'number', 'date', 'dropdown'],
|
||||
},
|
||||
settings: {
|
||||
/**
|
||||
* settings of the custom field
|
||||
*/
|
||||
type: Object,
|
||||
},
|
||||
'settings.dropdownItems': {
|
||||
/**
|
||||
* list of drop down items objects
|
||||
*/
|
||||
type: [Object],
|
||||
optional: true,
|
||||
},
|
||||
'settings.dropdownItems.$': {
|
||||
type: new SimpleSchema({
|
||||
_id: {
|
||||
/**
|
||||
* ID of the drop down item
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
name: {
|
||||
/**
|
||||
* name of the drop down item
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
}),
|
||||
},
|
||||
showOnCard: {
|
||||
/**
|
||||
* should we show on the cards this custom field
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
automaticallyOnCard: {
|
||||
/**
|
||||
* should the custom fields automatically be added on cards?
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
showLabelOnMiniCard: {
|
||||
/**
|
||||
* should the label of the custom field be shown on minicards?
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
}));
|
||||
@@ -88,6 +121,15 @@ if (Meteor.isServer) {
|
||||
|
||||
//CUSTOM FIELD REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_custom_fields
|
||||
* @summary Get the list of Custom Fields attached to a board
|
||||
*
|
||||
* @param {string} boardID the ID of the board
|
||||
* @return_type [{_id: string,
|
||||
* name: string,
|
||||
* type: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -103,6 +145,14 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_custom_field
|
||||
* @summary Get a Custom Fields attached to a board
|
||||
*
|
||||
* @param {string} boardID the ID of the board
|
||||
* @param {string} customFieldId the ID of the custom field
|
||||
* @return_type CustomFields
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -113,6 +163,19 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_custom_field
|
||||
* @summary Create a Custom Field
|
||||
*
|
||||
* @param {string} boardID the ID of the board
|
||||
* @param {string} name the name of the custom field
|
||||
* @param {string} type the type of the custom field
|
||||
* @param {string} settings the settings object of the custom field
|
||||
* @param {boolean} showOnCard should we show the custom field on cards?
|
||||
* @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards?
|
||||
* @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards?
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/custom-fields', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -137,6 +200,16 @@ if (Meteor.isServer) {
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_custom_field
|
||||
* @summary Delete a Custom Fields attached to a board
|
||||
*
|
||||
* @description The Custom Field can't be retrieved after this operation
|
||||
*
|
||||
* @param {string} boardID the ID of the board
|
||||
* @param {string} customFieldId the ID of the custom field
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/custom-fields/:customFieldId', function (req, res) {
|
||||
Authentication.checkUserId( req.userId);
|
||||
const paramBoardId = req.params.boardId;
|
||||
|
||||
+15
-6
@@ -6,25 +6,34 @@ if (Meteor.isServer) {
|
||||
// `ApiRoutes.path('boards/export', boardId)``
|
||||
// on the client instead of copy/pasting the route path manually between the
|
||||
// client and the server.
|
||||
/*
|
||||
* This route is used to export the board FROM THE APPLICATION.
|
||||
* If user is already logged-in, pass loginToken as param "authToken":
|
||||
* '/api/boards/:boardId/export?authToken=:token'
|
||||
/**
|
||||
* @operation export
|
||||
* @tag Boards
|
||||
*
|
||||
* @summary This route is used to export the board.
|
||||
*
|
||||
* @description If user is already logged-in, pass loginToken as param
|
||||
* "authToken": '/api/boards/:boardId/export?authToken=:token'
|
||||
*
|
||||
* See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/
|
||||
* for detailed explanations
|
||||
*
|
||||
* @param {string} boardId the ID of the board we are exporting
|
||||
* @param {string} authToken the loginToken
|
||||
*/
|
||||
JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) {
|
||||
const boardId = req.params.boardId;
|
||||
let user = null;
|
||||
// todo XXX for real API, first look for token in Authentication: header
|
||||
// then fallback to parameter
|
||||
|
||||
const loginToken = req.query.authToken;
|
||||
if (loginToken) {
|
||||
const hashToken = Accounts._hashLoginToken(loginToken);
|
||||
user = Meteor.users.findOne({
|
||||
'services.resume.loginTokens.hashedToken': hashToken,
|
||||
});
|
||||
} else {
|
||||
Authentication.checkUserId(req.userId);
|
||||
user = Users.findOne({ _id: req.userId, isAdmin: true });
|
||||
}
|
||||
|
||||
const exporter = new Exporter(boardId);
|
||||
|
||||
+92
-7
@@ -1,33 +1,60 @@
|
||||
Integrations = new Mongo.Collection('integrations');
|
||||
|
||||
/**
|
||||
* Integration with third-party applications
|
||||
*/
|
||||
Integrations.attachSchema(new SimpleSchema({
|
||||
enabled: {
|
||||
/**
|
||||
* is the integration enabled?
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: true,
|
||||
},
|
||||
title: {
|
||||
/**
|
||||
* name of the integration
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
type: {
|
||||
/**
|
||||
* type of the integratation (Default to 'outgoing-webhooks')
|
||||
*/
|
||||
type: String,
|
||||
defaultValue: 'outgoing-webhooks',
|
||||
},
|
||||
activities: {
|
||||
/**
|
||||
* activities the integration gets triggered (list)
|
||||
*/
|
||||
type: [String],
|
||||
defaultValue: ['all'],
|
||||
},
|
||||
url: { // URL validation regex (https://mathiasbynens.be/demo/url-regex)
|
||||
/**
|
||||
* URL validation regex (https://mathiasbynens.be/demo/url-regex)
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
token: {
|
||||
/**
|
||||
* token of the integration
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
boardId: {
|
||||
/**
|
||||
* Board ID of the integration
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* Creation date of the integration
|
||||
*/
|
||||
type: Date,
|
||||
denyUpdate: false,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -39,6 +66,9 @@ Integrations.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
userId: {
|
||||
/**
|
||||
* user ID who created the interation
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
}));
|
||||
@@ -58,7 +88,13 @@ Integrations.allow({
|
||||
|
||||
//INTEGRATIONS REST API
|
||||
if (Meteor.isServer) {
|
||||
// Get all integrations in board
|
||||
/**
|
||||
* @operation get_all_integrations
|
||||
* @summary Get all integrations in board
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @return_type [Integrations]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/integrations', function(req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -78,7 +114,14 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Get a single integration in board
|
||||
/**
|
||||
* @operation get_integration
|
||||
* @summary Get a single integration in board
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} intId the integration ID
|
||||
* @return_type Integrations
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/integrations/:intId', function(req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -98,7 +141,14 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Create a new integration
|
||||
/**
|
||||
* @operation new_integration
|
||||
* @summary Create a new integration
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} url the URL of the integration
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/integrations', function(req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -125,7 +175,19 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Edit integration data
|
||||
/**
|
||||
* @operation edit_integration
|
||||
* @summary Edit integration data
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} intId the integration ID
|
||||
* @param {string} [enabled] is the integration enabled?
|
||||
* @param {string} [title] new name of the integration
|
||||
* @param {string} [url] new URL of the integration
|
||||
* @param {string} [token] new token of the integration
|
||||
* @param {string} [activities] new list of activities of the integration
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('PUT', '/api/boards/:boardId/integrations/:intId', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -173,7 +235,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Delete subscribed activities
|
||||
/**
|
||||
* @operation delete_integration_activities
|
||||
* @summary Delete subscribed activities
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} intId the integration ID
|
||||
* @param {string} newActivities the activities to remove from the integration
|
||||
* @return_type Integrations
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/integrations/:intId/activities', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -197,7 +267,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Add subscribed activities
|
||||
/**
|
||||
* @operation new_integration_activities
|
||||
* @summary Add subscribed activities
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} intId the integration ID
|
||||
* @param {string} newActivities the activities to add to the integration
|
||||
* @return_type Integrations
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/integrations/:intId/activities', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -221,7 +299,14 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
// Delete integration
|
||||
/**
|
||||
* @operation delete_integration
|
||||
* @summary Delete integration
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} intId the integration ID
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/integrations/:intId', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
Lists = new Mongo.Collection('lists');
|
||||
|
||||
/**
|
||||
* A list (column) in the Wekan board.
|
||||
*/
|
||||
Lists.attachSchema(new SimpleSchema({
|
||||
title: {
|
||||
/**
|
||||
* the title of the list
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
archived: {
|
||||
/**
|
||||
* is the list archived
|
||||
*/
|
||||
type: Boolean,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -13,9 +22,15 @@ Lists.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
boardId: {
|
||||
/**
|
||||
* the board associated to this list
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* creation date
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -26,12 +41,18 @@ Lists.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
sort: {
|
||||
/**
|
||||
* is the list sorted
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
// XXX We should probably provide a default
|
||||
optional: true,
|
||||
},
|
||||
updatedAt: {
|
||||
/**
|
||||
* last update of the list
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -43,19 +64,31 @@ Lists.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
wipLimit: {
|
||||
/**
|
||||
* WIP object, see below
|
||||
*/
|
||||
type: Object,
|
||||
optional: true,
|
||||
},
|
||||
'wipLimit.value': {
|
||||
/**
|
||||
* value of the WIP
|
||||
*/
|
||||
type: Number,
|
||||
decimal: false,
|
||||
defaultValue: 1,
|
||||
},
|
||||
'wipLimit.enabled': {
|
||||
/**
|
||||
* is the WIP enabled
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
},
|
||||
'wipLimit.soft': {
|
||||
/**
|
||||
* is the WIP a soft or hard requirement
|
||||
*/
|
||||
type: Boolean,
|
||||
defaultValue: false,
|
||||
},
|
||||
@@ -212,6 +245,14 @@ if (Meteor.isServer) {
|
||||
|
||||
//LISTS REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_lists
|
||||
* @summary Get the list of Lists attached to a board
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @return_type [{_id: string,
|
||||
* title: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/lists', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -235,6 +276,14 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_list
|
||||
* @summary Get a List attached to a board
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} listId the List ID
|
||||
* @return_type Lists
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/lists/:listId', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -253,6 +302,14 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_list
|
||||
* @summary Add a List to a board
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} title the title of the List
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/lists', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
@@ -276,6 +333,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_list
|
||||
* @summary Delete a List
|
||||
*
|
||||
* @description This **deletes** a list from a board.
|
||||
* The list is not put in the recycle bin.
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} listId the ID of the list to remove
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/lists/:listId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
|
||||
@@ -260,5 +260,9 @@ if (Meteor.isServer) {
|
||||
cas: isCasEnabled(),
|
||||
};
|
||||
},
|
||||
|
||||
getDefaultAuthenticationMethod() {
|
||||
return process.env.DEFAULT_AUTHENTICATION_METHOD;
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -1,10 +1,19 @@
|
||||
Swimlanes = new Mongo.Collection('swimlanes');
|
||||
|
||||
/**
|
||||
* A swimlane is an line in the kaban board.
|
||||
*/
|
||||
Swimlanes.attachSchema(new SimpleSchema({
|
||||
title: {
|
||||
/**
|
||||
* the title of the swimlane
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
archived: {
|
||||
/**
|
||||
* is the swimlane archived?
|
||||
*/
|
||||
type: Boolean,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert && !this.isSet) {
|
||||
@@ -13,9 +22,15 @@ Swimlanes.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
boardId: {
|
||||
/**
|
||||
* the ID of the board the swimlane is attached to
|
||||
*/
|
||||
type: String,
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* creation date of the swimlane
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -26,12 +41,18 @@ Swimlanes.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
sort: {
|
||||
/**
|
||||
* the sort value of the swimlane
|
||||
*/
|
||||
type: Number,
|
||||
decimal: true,
|
||||
// XXX We should probably provide a default
|
||||
optional: true,
|
||||
},
|
||||
updatedAt: {
|
||||
/**
|
||||
* when was the swimlane last edited
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -131,6 +152,15 @@ if (Meteor.isServer) {
|
||||
|
||||
//SWIMLANE REST API
|
||||
if (Meteor.isServer) {
|
||||
/**
|
||||
* @operation get_all_swimlanes
|
||||
*
|
||||
* @summary Get the list of swimlanes attached to a board
|
||||
*
|
||||
* @param {string} boardId the ID of the board
|
||||
* @return_type [{_id: string,
|
||||
* title: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/swimlanes', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -154,6 +184,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_swimlane
|
||||
*
|
||||
* @summary Get a swimlane
|
||||
*
|
||||
* @param {string} boardId the ID of the board
|
||||
* @param {string} swimlaneId the ID of the swimlane
|
||||
* @return_type Swimlanes
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/boards/:boardId/swimlanes/:swimlaneId', function (req, res) {
|
||||
try {
|
||||
const paramBoardId = req.params.boardId;
|
||||
@@ -172,6 +211,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_swimlane
|
||||
*
|
||||
* @summary Add a swimlane to a board
|
||||
*
|
||||
* @param {string} boardId the ID of the board
|
||||
* @param {string} title the new title of the swimlane
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/swimlanes', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
@@ -195,6 +243,17 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_swimlane
|
||||
*
|
||||
* @summary Delete a swimlane
|
||||
*
|
||||
* @description The swimlane will be deleted, not moved to the recycle bin
|
||||
*
|
||||
* @param {string} boardId the ID of the board
|
||||
* @param {string} swimlaneId the ID of the swimlane
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/boards/:boardId/swimlanes/:swimlaneId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId( req.userId);
|
||||
|
||||
+172
@@ -4,8 +4,14 @@ const isSandstorm = Meteor.settings && Meteor.settings.public &&
|
||||
Meteor.settings.public.sandstorm;
|
||||
Users = Meteor.users;
|
||||
|
||||
/**
|
||||
* A User in wekan
|
||||
*/
|
||||
Users.attachSchema(new SimpleSchema({
|
||||
username: {
|
||||
/**
|
||||
* the username of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -18,17 +24,29 @@ Users.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
emails: {
|
||||
/**
|
||||
* the list of emails attached to a user
|
||||
*/
|
||||
type: [Object],
|
||||
optional: true,
|
||||
},
|
||||
'emails.$.address': {
|
||||
/**
|
||||
* The email address
|
||||
*/
|
||||
type: String,
|
||||
regEx: SimpleSchema.RegEx.Email,
|
||||
},
|
||||
'emails.$.verified': {
|
||||
/**
|
||||
* Has the email been verified
|
||||
*/
|
||||
type: Boolean,
|
||||
},
|
||||
createdAt: {
|
||||
/**
|
||||
* creation date of the user
|
||||
*/
|
||||
type: Date,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
if (this.isInsert) {
|
||||
@@ -39,6 +57,9 @@ Users.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
profile: {
|
||||
/**
|
||||
* profile settings
|
||||
*/
|
||||
type: Object,
|
||||
optional: true,
|
||||
autoValue() { // eslint-disable-line consistent-return
|
||||
@@ -50,50 +71,86 @@ Users.attachSchema(new SimpleSchema({
|
||||
},
|
||||
},
|
||||
'profile.avatarUrl': {
|
||||
/**
|
||||
* URL of the avatar of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'profile.emailBuffer': {
|
||||
/**
|
||||
* list of email buffers of the user
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.fullname': {
|
||||
/**
|
||||
* full name of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'profile.hiddenSystemMessages': {
|
||||
/**
|
||||
* does the user wants to hide system messages?
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
'profile.initials': {
|
||||
/**
|
||||
* initials of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'profile.invitedBoards': {
|
||||
/**
|
||||
* board IDs the user has been invited to
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.language': {
|
||||
/**
|
||||
* language of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'profile.notifications': {
|
||||
/**
|
||||
* enabled notifications for the user
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.showCardsCountAt': {
|
||||
/**
|
||||
* showCardCountAt field of the user
|
||||
*/
|
||||
type: Number,
|
||||
optional: true,
|
||||
},
|
||||
'profile.starredBoards': {
|
||||
/**
|
||||
* list of starred board IDs
|
||||
*/
|
||||
type: [String],
|
||||
optional: true,
|
||||
},
|
||||
'profile.icode': {
|
||||
/**
|
||||
* icode
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
},
|
||||
'profile.boardView': {
|
||||
/**
|
||||
* boardView field of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: true,
|
||||
allowedValues: [
|
||||
@@ -103,27 +160,45 @@ Users.attachSchema(new SimpleSchema({
|
||||
],
|
||||
},
|
||||
services: {
|
||||
/**
|
||||
* services field of the user
|
||||
*/
|
||||
type: Object,
|
||||
optional: true,
|
||||
blackbox: true,
|
||||
},
|
||||
heartbeat: {
|
||||
/**
|
||||
* last time the user has been seen
|
||||
*/
|
||||
type: Date,
|
||||
optional: true,
|
||||
},
|
||||
isAdmin: {
|
||||
/**
|
||||
* is the user an admin of the board?
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
createdThroughApi: {
|
||||
/**
|
||||
* was the user created through the API?
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
loginDisabled: {
|
||||
/**
|
||||
* loginDisabled field of the user
|
||||
*/
|
||||
type: Boolean,
|
||||
optional: true,
|
||||
},
|
||||
'authenticationMethod': {
|
||||
/**
|
||||
* authentication method of the user
|
||||
*/
|
||||
type: String,
|
||||
optional: false,
|
||||
defaultValue: 'password',
|
||||
@@ -681,6 +756,12 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_current_user
|
||||
*
|
||||
* @summary returns the current user
|
||||
* @return_type Users
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/user', function(req, res) {
|
||||
try {
|
||||
Authentication.checkLoggedIn(req.userId);
|
||||
@@ -699,6 +780,15 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_all_users
|
||||
*
|
||||
* @summary return all the users
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
* @return_type [{ _id: string,
|
||||
* username: string}]
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/users', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -717,6 +807,16 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation get_user
|
||||
*
|
||||
* @summary get a given user
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* @param {string} userId the user ID
|
||||
* @return_type Users
|
||||
*/
|
||||
JsonRoutes.add('GET', '/api/users/:userId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -734,6 +834,23 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation edit_user
|
||||
*
|
||||
* @summary edit a given user
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* Possible values for *action*:
|
||||
* - `takeOwnership`: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on.
|
||||
* - `disableLogin`: Disable a user (the user is not allowed to login and his login tokens are purged)
|
||||
* - `enableLogin`: Enable a user
|
||||
*
|
||||
* @param {string} userId the user ID
|
||||
* @param {string} action the action
|
||||
* @return_type {_id: string,
|
||||
* title: string}
|
||||
*/
|
||||
JsonRoutes.add('PUT', '/api/users/:userId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -777,6 +894,25 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation add_board_member
|
||||
* @tag Boards
|
||||
*
|
||||
* @summary Add New Board Member with Role
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* **Note**: see [Boards.set_board_member_permission](#set_board_member_permission)
|
||||
* to later change the permissions.
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} userId the user ID
|
||||
* @param {boolean} isAdmin is the user an admin of the board
|
||||
* @param {boolean} isNoComments disable comments
|
||||
* @param {boolean} isCommentOnly only enable comments
|
||||
* @return_type {_id: string,
|
||||
* title: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/members/:userId/add', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -817,6 +953,20 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation remove_board_member
|
||||
* @tag Boards
|
||||
*
|
||||
* @summary Remove Member from Board
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* @param {string} boardId the board ID
|
||||
* @param {string} userId the user ID
|
||||
* @param {string} action the action (needs to be `remove`)
|
||||
* @return_type {_id: string,
|
||||
* title: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/members/:userId/remove', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -852,6 +1002,18 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation new_user
|
||||
*
|
||||
* @summary Create a new user
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* @param {string} username the new username
|
||||
* @param {string} email the email of the new user
|
||||
* @param {string} password the password of the new user
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/users/', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
@@ -876,6 +1038,16 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation delete_user
|
||||
*
|
||||
* @summary Delete a user
|
||||
*
|
||||
* @description Only the admin user (the first user) can call the REST API.
|
||||
*
|
||||
* @param {string} userId the ID of the user to delete
|
||||
* @return_type {_id: string}
|
||||
*/
|
||||
JsonRoutes.add('DELETE', '/api/users/:userId', function (req, res) {
|
||||
try {
|
||||
Authentication.checkUserId(req.userId);
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
user www-data;
|
||||
worker_processes 1;
|
||||
|
||||
error_log /var/log/nginx/error.log warn;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||
'$status $body_bytes_sent "$http_referer" '
|
||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||
|
||||
access_log /var/log/nginx/access.log main;
|
||||
|
||||
sendfile on;
|
||||
#tcp_nopush on;
|
||||
|
||||
keepalive_timeout 65;
|
||||
|
||||
map $http_host $this_host {
|
||||
"" $host;
|
||||
default $http_host;
|
||||
}
|
||||
|
||||
map $http_x_forwarded_proto $the_scheme {
|
||||
default $http_x_forwarded_proto;
|
||||
"" $scheme;
|
||||
}
|
||||
|
||||
map $http_x_forwarded_host $the_host {
|
||||
default $http_x_forwarded_host;
|
||||
"" $this_host;
|
||||
}
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen 443 ssl;
|
||||
|
||||
if ($scheme = http) {
|
||||
rewrite ^ https://$host$request_uri? permanent;
|
||||
}
|
||||
|
||||
|
||||
ssl_certificate /etc/nginx/ssl/server.crt;
|
||||
ssl_certificate_key /etc/nginx/ssl/server.key;
|
||||
|
||||
|
||||
ssl_protocols TLSv1.2;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_ciphers EECDH+AESGCM:EECDH+CHACHA20:EECDH+AES;
|
||||
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_timeout 10m;
|
||||
|
||||
ssl_ecdh_curve sect571r1:secp521r1:brainpoolP512r1:secp384r1;
|
||||
add_header Strict-Transport-Security "max-age=31536000; preload";
|
||||
|
||||
# Add headers to serve security related headers
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Robots-Tag none;
|
||||
add_header X-Download-Options noopen;
|
||||
add_header X-Permitted-Cross-Domain-Policies none;
|
||||
|
||||
add_header Referrer-Policy "same-origin";
|
||||
|
||||
root /var/www/html;
|
||||
client_max_body_size 10G; # 0=unlimited - set max upload size
|
||||
fastcgi_buffers 64 4K;
|
||||
|
||||
gzip off;
|
||||
|
||||
location / {
|
||||
proxy_pass http://wekan:8080;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
PLACE YOUR SSL Certificates in this folder
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
# OpenAPI tools and doc generation
|
||||
|
||||
## Open API generation
|
||||
|
||||
This folder contains a script (`generate_openapi.py`) that extracts
|
||||
the REST API of Wekan and exports it under the OpenAPI 2.0 specification
|
||||
(Swagger 2.0).
|
||||
|
||||
### dependencies
|
||||
- python3
|
||||
- [esprima-python](https://github.com/Kronuz/esprima-python)
|
||||
|
||||
### calling the tool
|
||||
|
||||
python3 generate_openapi.py --release v1.65 > ../public/wekan_api.yml
|
||||
|
||||
## Generating docs
|
||||
Now that we have the OpenAPI, it's easy enough to convert the YAML file into some nice Markdown with
|
||||
[shins](https://github.com/Mermade/shins) and [api2html](https://github.com/tobilg/api2html),
|
||||
or even [ReDoc](https://github.com/Rebilly/ReDoc):
|
||||
|
||||
api2html -c ../public/wekan-logo-header.png -o api.html ../public/wekan_api.yml
|
||||
|
||||
or
|
||||
|
||||
redoc-cli serve ../public/wekan_api.yml
|
||||
@@ -0,0 +1,915 @@
|
||||
#!/bin/env python3
|
||||
|
||||
import argparse
|
||||
import esprima
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
def get_req_body_elems(obj, elems):
|
||||
if obj.type == 'FunctionExpression':
|
||||
get_req_body_elems(obj.body, elems)
|
||||
elif obj.type == 'BlockStatement':
|
||||
for s in obj.body:
|
||||
get_req_body_elems(s, elems)
|
||||
elif obj.type == 'TryStatement':
|
||||
get_req_body_elems(obj.block, elems)
|
||||
elif obj.type == 'ExpressionStatement':
|
||||
get_req_body_elems(obj.expression, elems)
|
||||
elif obj.type == 'MemberExpression':
|
||||
left = get_req_body_elems(obj.object, elems)
|
||||
right = obj.property.name
|
||||
if left == 'req.body' and right not in elems:
|
||||
elems.append(right)
|
||||
return '{}.{}'.format(left, right)
|
||||
elif obj.type == 'VariableDeclaration':
|
||||
for s in obj.declarations:
|
||||
get_req_body_elems(s, elems)
|
||||
elif obj.type == 'VariableDeclarator':
|
||||
if obj.id.type == 'ObjectPattern':
|
||||
# get_req_body_elems() can't be called directly here:
|
||||
# const {isAdmin, isNoComments, isCommentOnly} = req.body;
|
||||
right = get_req_body_elems(obj.init, elems)
|
||||
if right == 'req.body':
|
||||
for p in obj.id.properties:
|
||||
name = p.key.name
|
||||
if name not in elems:
|
||||
elems.append(name)
|
||||
else:
|
||||
get_req_body_elems(obj.init, elems)
|
||||
elif obj.type == 'Property':
|
||||
get_req_body_elems(obj.value, elems)
|
||||
elif obj.type == 'ObjectExpression':
|
||||
for s in obj.properties:
|
||||
get_req_body_elems(s, elems)
|
||||
elif obj.type == 'CallExpression':
|
||||
for s in obj.arguments:
|
||||
get_req_body_elems(s, elems)
|
||||
elif obj.type == 'ArrayExpression':
|
||||
for s in obj.elements:
|
||||
get_req_body_elems(s, elems)
|
||||
elif obj.type == 'IfStatement':
|
||||
get_req_body_elems(obj.test, elems)
|
||||
if obj.consequent is not None:
|
||||
get_req_body_elems(obj.consequent, elems)
|
||||
if obj.alternate is not None:
|
||||
get_req_body_elems(obj.alternate, elems)
|
||||
elif obj.type in ('LogicalExpression', 'BinaryExpression', 'AssignmentExpression'):
|
||||
get_req_body_elems(obj.left, elems)
|
||||
get_req_body_elems(obj.right, elems)
|
||||
elif obj.type in ('ReturnStatement', 'UnaryExpression'):
|
||||
get_req_body_elems(obj.argument, elems)
|
||||
elif obj.type == 'Literal':
|
||||
pass
|
||||
elif obj.type == 'Identifier':
|
||||
return obj.name
|
||||
elif obj.type == 'FunctionDeclaration':
|
||||
pass
|
||||
else:
|
||||
print(obj)
|
||||
return ''
|
||||
|
||||
|
||||
def cleanup_jsdocs(jsdoc):
|
||||
# remove leading spaces before the first '*'
|
||||
doc = [s.lstrip() for s in jsdoc.value.split('\n')]
|
||||
|
||||
# remove leading stars
|
||||
doc = [s.lstrip('*') for s in doc]
|
||||
|
||||
# remove leading empty lines
|
||||
while len(doc) and not doc[0].strip():
|
||||
doc.pop(0)
|
||||
|
||||
# remove terminating empty lines
|
||||
while len(doc) and not doc[-1].strip():
|
||||
doc.pop(-1)
|
||||
|
||||
return doc
|
||||
|
||||
|
||||
class JS2jsonDecoder(json.JSONDecoder):
|
||||
def decode(self, s):
|
||||
result = super().decode(s) # result = super(Decoder, self).decode(s) for Python 2.x
|
||||
return self._decode(result)
|
||||
|
||||
def _decode(self, o):
|
||||
if isinstance(o, str) or isinstance(o, unicode):
|
||||
try:
|
||||
return int(o)
|
||||
except ValueError:
|
||||
return o
|
||||
elif isinstance(o, dict):
|
||||
return {k: self._decode(v) for k, v in o.items()}
|
||||
elif isinstance(o, list):
|
||||
return [self._decode(v) for v in o]
|
||||
else:
|
||||
return o
|
||||
|
||||
|
||||
def load_return_type_jsdoc_json(data):
|
||||
regex_replace = [(r'\n', r' '), # replace new lines by spaces
|
||||
(r'([\{\s,])(\w+)(:)', r'\1"\2"\3'), # insert double quotes in keys
|
||||
(r'(:)\s*([^:\},\]]+)\s*([\},\]])', r'\1"\2"\3'), # insert double quotes in values
|
||||
(r'(\[)\s*([^{].+)\s*(\])', r'\1"\2"\3'), # insert double quotes in array items
|
||||
(r'^\s*([^\[{].+)\s*', r'"\1"')] # insert double quotes in single item
|
||||
for r, s in regex_replace:
|
||||
data = re.sub(r, s, data)
|
||||
return json.loads(data)
|
||||
|
||||
|
||||
class EntryPoint(object):
|
||||
def __init__(self, schema, statements):
|
||||
self.schema = schema
|
||||
self.method, self._path, self.body = statements
|
||||
self._jsdoc = None
|
||||
self._doc = {}
|
||||
self._raw_doc = None
|
||||
self.path = self.compute_path()
|
||||
self.method_name = self.method.value.lower()
|
||||
self.body_params = []
|
||||
if self.method_name in ('post', 'put'):
|
||||
get_req_body_elems(self.body, self.body_params)
|
||||
|
||||
# replace the :parameter in path by {parameter}
|
||||
self.url = re.sub(r':([^/]*)Id', r'{\1}', self.path)
|
||||
self.url = re.sub(r':([^/]*)', r'{\1}', self.url)
|
||||
|
||||
# reduce the api name
|
||||
# get_boards_board_cards() should be get_board_cards()
|
||||
tokens = self.url.split('/')
|
||||
reduced_function_name = []
|
||||
for i, token in enumerate(tokens):
|
||||
if token in ('api'):
|
||||
continue
|
||||
if (i < len(tokens) - 1 and # not the last item
|
||||
tokens[i + 1].startswith('{')): # and the next token is a parameter
|
||||
continue
|
||||
reduced_function_name.append(token.strip('{}'))
|
||||
self.reduced_function_name = '_'.join(reduced_function_name)
|
||||
|
||||
# mark the schema as used
|
||||
schema.used = True
|
||||
|
||||
def compute_path(self):
|
||||
return self._path.value.rstrip('/')
|
||||
|
||||
def error(self, message):
|
||||
if self._raw_doc is None:
|
||||
sys.stderr.write('in {},\n'.format(self.schema.name))
|
||||
sys.stderr.write('{}\n'.format(message))
|
||||
return
|
||||
sys.stderr.write('in {}, lines {}-{}\n'.format(self.schema.name,
|
||||
self._raw_doc.loc.start.line,
|
||||
self._raw_doc.loc.end.line))
|
||||
sys.stderr.write('{}\n'.format(self._raw_doc.value))
|
||||
sys.stderr.write('{}\n'.format(message))
|
||||
|
||||
@property
|
||||
def doc(self):
|
||||
return self._doc
|
||||
|
||||
@doc.setter
|
||||
def doc(self, doc):
|
||||
'''Parse the JSDoc attached to an entry point.
|
||||
`jsdoc` will not get these right as they are not attached to a method.
|
||||
So instead, we do our custom parsing here (yes, subject to errors).
|
||||
|
||||
The expected format is the following (empty lines between entries
|
||||
are ignored):
|
||||
/**
|
||||
* @operation name_of_entry_point
|
||||
* @tag: a_tag_to_add
|
||||
* @tag: an_other_tag_to_add
|
||||
* @summary A nice summary, better in one line.
|
||||
*
|
||||
* @description This is a quite long description.
|
||||
* We can use *mardown* as the final rendering is done
|
||||
* by slate.
|
||||
*
|
||||
* indentation doesn't matter.
|
||||
*
|
||||
* @param param_0 description of param 0
|
||||
* @param {string} param_1 we can also put the type of the parameter
|
||||
* before its name, like in JSDoc
|
||||
* @param {boolean} [param_2] we can also tell if the parameter is
|
||||
* optional by adding square brackets around its name
|
||||
*
|
||||
* @return Documents a return value
|
||||
*/
|
||||
|
||||
Notes:
|
||||
- name_of_entry_point will be referenced in the ToC of the generated
|
||||
document. This is also the operationId used in the resulting openapi
|
||||
file. It needs to be uniq in the namesapce (the current schema.js
|
||||
file)
|
||||
- tags are appended to the current Schema attached to the file
|
||||
'''
|
||||
|
||||
self._raw_doc = doc
|
||||
|
||||
self._jsdoc = cleanup_jsdocs(doc)
|
||||
|
||||
def store_tag(tag, data):
|
||||
# check that there is something to store first
|
||||
if not data.strip():
|
||||
return
|
||||
|
||||
# remove terminating whitespaces and empty lines
|
||||
data = data.rstrip()
|
||||
|
||||
# parameters are handled specially
|
||||
if tag == 'param':
|
||||
if 'params' not in self._doc:
|
||||
self._doc['params'] = {}
|
||||
params = self._doc['params']
|
||||
|
||||
param_type = None
|
||||
try:
|
||||
name, desc = data.split(maxsplit=1)
|
||||
except ValueError:
|
||||
desc = ''
|
||||
|
||||
if name.startswith('{'):
|
||||
param_type = name.strip('{}')
|
||||
if param_type not in ['string', 'number', 'boolean', 'integer', 'array', 'file']:
|
||||
self.error('Warning, unknown type {}\n allowed values: string, number, boolean, integer, array, file'.format(param_type))
|
||||
try:
|
||||
name, desc = desc.split(maxsplit=1)
|
||||
except ValueError:
|
||||
desc = ''
|
||||
|
||||
optional = name.startswith('[') and name.endswith(']')
|
||||
|
||||
if optional:
|
||||
name = name[1:-1]
|
||||
|
||||
# we should not have 2 identical parameter names
|
||||
if tag in params:
|
||||
self.error('Warning, overwriting parameter {}'.format(name))
|
||||
|
||||
params[name] = (param_type, optional, desc)
|
||||
|
||||
if name.endswith('Id'):
|
||||
# we strip out the 'Id' from the form parameters, we need
|
||||
# to keep the actual description around
|
||||
name = name[:-2]
|
||||
if name not in params:
|
||||
params[name] = (param_type, optional, desc)
|
||||
|
||||
return
|
||||
|
||||
# 'tag' can be set several times
|
||||
if tag == 'tag':
|
||||
if tag not in self._doc:
|
||||
self._doc[tag] = []
|
||||
self._doc[tag].append(data)
|
||||
|
||||
return
|
||||
|
||||
# 'return' tag is json
|
||||
if tag == 'return_type':
|
||||
try:
|
||||
data = load_return_type_jsdoc_json(data)
|
||||
except json.decoder.JSONDecodeError:
|
||||
pass
|
||||
|
||||
# we should not have 2 identical tags but @param or @tag
|
||||
if tag in self._doc:
|
||||
self.error('Warning, overwriting tag {}'.format(tag))
|
||||
|
||||
self._doc[tag] = data
|
||||
|
||||
# reset the current doc fields
|
||||
self._doc = {}
|
||||
|
||||
# first item is supposed to be the description
|
||||
current_tag = 'description'
|
||||
current_data = ''
|
||||
|
||||
for line in self._jsdoc:
|
||||
if line.lstrip().startswith('@'):
|
||||
tag, data = line.lstrip().split(maxsplit=1)
|
||||
|
||||
if tag in ['@operation', '@summary', '@description', '@param', '@return_type', '@tag']:
|
||||
# store the current data
|
||||
store_tag(current_tag, current_data)
|
||||
|
||||
current_tag = tag.lstrip('@')
|
||||
current_data = ''
|
||||
line = data
|
||||
else:
|
||||
self.error('Unknown tag {}, ignoring'.format(tag))
|
||||
|
||||
current_data += line + '\n'
|
||||
|
||||
store_tag(current_tag, current_data)
|
||||
|
||||
@property
|
||||
def summary(self):
|
||||
if 'summary' in self._doc:
|
||||
# new lines are not allowed
|
||||
return self._doc['summary'].replace('\n', ' ')
|
||||
|
||||
return None
|
||||
|
||||
def doc_param(self, name):
|
||||
if 'params' in self._doc and name in self._doc['params']:
|
||||
return self._doc['params'][name]
|
||||
return None, None, None
|
||||
|
||||
def print_openapi_param(self, name, indent):
|
||||
ptype, poptional, pdesc = self.doc_param(name)
|
||||
if pdesc is not None:
|
||||
print('{}description: |'.format(' ' * indent))
|
||||
print('{}{}'.format(' ' * (indent + 2), pdesc))
|
||||
else:
|
||||
print('{}description: the {} value'.format(' ' * indent, name))
|
||||
if ptype is not None:
|
||||
print('{}type: {}'.format(' ' * indent, ptype))
|
||||
else:
|
||||
print('{}type: string'.format(' ' * indent))
|
||||
if poptional:
|
||||
print('{}required: false'.format(' ' * indent))
|
||||
else:
|
||||
print('{}required: true'.format(' ' * indent))
|
||||
|
||||
@property
|
||||
def operationId(self):
|
||||
if 'operation' in self._doc:
|
||||
return self._doc['operation']
|
||||
return '{}_{}'.format(self.method_name, self.reduced_function_name)
|
||||
|
||||
@property
|
||||
def description(self):
|
||||
if 'description' in self._doc:
|
||||
return self._doc['description']
|
||||
return None
|
||||
|
||||
@property
|
||||
def returns(self):
|
||||
if 'return_type' in self._doc:
|
||||
return self._doc['return_type']
|
||||
return None
|
||||
|
||||
@property
|
||||
def tags(self):
|
||||
tags = []
|
||||
if self.schema.fields is not None:
|
||||
tags.append(self.schema.name)
|
||||
if 'tag' in self._doc:
|
||||
tags.extend(self._doc['tag'])
|
||||
return tags
|
||||
|
||||
def print_openapi_return(self, obj, indent):
|
||||
if isinstance(obj, dict):
|
||||
print('{}type: object'.format(' ' * indent))
|
||||
print('{}properties:'.format(' ' * indent))
|
||||
for k, v in obj.items():
|
||||
print('{}{}:'.format(' ' * (indent + 2), k))
|
||||
self.print_openapi_return(v, indent + 4)
|
||||
|
||||
elif isinstance(obj, list):
|
||||
if len(obj) > 1:
|
||||
self.error('Error while parsing @return tag, an array should have only one type')
|
||||
print('{}type: array'.format(' ' * indent))
|
||||
print('{}items:'.format(' ' * indent))
|
||||
self.print_openapi_return(obj[0], indent + 2)
|
||||
|
||||
elif isinstance(obj, str) or isinstance(obj, unicode):
|
||||
rtype = 'type: ' + obj
|
||||
if obj == self.schema.name:
|
||||
rtype = '$ref: "#/definitions/{}"'.format(obj)
|
||||
print('{}{}'.format(' ' * indent, rtype))
|
||||
|
||||
def print_openapi(self):
|
||||
parameters = [token[1:-2] if token.endswith('Id') else token[1:]
|
||||
for token in self.path.split('/')
|
||||
if token.startswith(':')]
|
||||
|
||||
print(' {}:'.format(self.method_name))
|
||||
|
||||
print(' operationId: {}'.format(self.operationId))
|
||||
|
||||
if self.summary is not None:
|
||||
print(' summary: {}'.format(self.summary))
|
||||
|
||||
if self.description is not None:
|
||||
print(' description: |')
|
||||
for line in self.description.split('\n'):
|
||||
if line.strip():
|
||||
print(' {}'.format(line))
|
||||
else:
|
||||
print('')
|
||||
|
||||
if len(self.tags) > 0:
|
||||
print(' tags:')
|
||||
for tag in self.tags:
|
||||
print(' - {}'.format(tag))
|
||||
|
||||
# export the parameters
|
||||
if self.method_name in ('post', 'put'):
|
||||
print(''' consumes:
|
||||
- multipart/form-data
|
||||
- application/json''')
|
||||
if len(parameters) > 0 or self.method_name in ('post', 'put'):
|
||||
print(' parameters:')
|
||||
if self.method_name in ('post', 'put'):
|
||||
for f in self.body_params:
|
||||
print(''' - name: {}
|
||||
in: formData'''.format(f))
|
||||
self.print_openapi_param(f, 10)
|
||||
for p in parameters:
|
||||
if p in self.body_params:
|
||||
self.error(' '.join((p, self.path, self.method_name)))
|
||||
print(''' - name: {}
|
||||
in: path'''.format(p))
|
||||
self.print_openapi_param(p, 10)
|
||||
print(''' produces:
|
||||
- application/json
|
||||
security:
|
||||
- UserSecurity: []
|
||||
responses:
|
||||
'200':
|
||||
description: |-
|
||||
200 response''')
|
||||
if self.returns is not None:
|
||||
print(' schema:')
|
||||
self.print_openapi_return(self.returns, 12)
|
||||
|
||||
|
||||
class SchemaProperty(object):
|
||||
def __init__(self, statement, schema):
|
||||
self.schema = schema
|
||||
self.statement = statement
|
||||
self.name = statement.key.name or statement.key.value
|
||||
self.type = 'object'
|
||||
self.blackbox = False
|
||||
self.required = True
|
||||
for p in statement.value.properties:
|
||||
if p.key.name == 'type':
|
||||
if p.value.type == 'Identifier':
|
||||
self.type = p.value.name.lower()
|
||||
elif p.value.type == 'ArrayExpression':
|
||||
self.type = 'array'
|
||||
self.elements = [e.name.lower() for e in p.value.elements]
|
||||
|
||||
elif p.key.name == 'allowedValues':
|
||||
self.type = 'enum'
|
||||
self.enum = [e.value.lower() for e in p.value.elements]
|
||||
|
||||
elif p.key.name == 'blackbox':
|
||||
self.blackbox = True
|
||||
|
||||
elif p.key.name == 'optional' and p.value.value:
|
||||
self.required = False
|
||||
|
||||
self._doc = None
|
||||
self._raw_doc = None
|
||||
|
||||
@property
|
||||
def doc(self):
|
||||
return self._doc
|
||||
|
||||
@doc.setter
|
||||
def doc(self, jsdoc):
|
||||
self._raw_doc = jsdoc
|
||||
self._doc = cleanup_jsdocs(jsdoc)
|
||||
|
||||
def process_jsdocs(self, jsdocs):
|
||||
start = self.statement.key.loc.start.line
|
||||
for index, doc in enumerate(jsdocs):
|
||||
if start + 1 == doc.loc.start.line:
|
||||
self.doc = doc
|
||||
jsdocs.pop(index)
|
||||
return
|
||||
|
||||
def __repr__(self):
|
||||
return 'SchemaProperty({}{}, {})'.format(self.name,
|
||||
'*' if self.required else '',
|
||||
self.doc)
|
||||
|
||||
def print_openapi(self, indent, current_schema, required_properties):
|
||||
schema_name = self.schema.name
|
||||
name = self.name
|
||||
|
||||
# deal with subschemas
|
||||
if '.' in name:
|
||||
if name.endswith('$'):
|
||||
# reference in reference
|
||||
subschema = ''.join([n.capitalize() for n in self.name.split('.')[:-1]])
|
||||
subschema = self.schema.name + subschema
|
||||
if current_schema != subschema:
|
||||
if required_properties is not None and required_properties:
|
||||
print(' required:')
|
||||
for f in required_properties:
|
||||
print(' - {}'.format(f))
|
||||
required_properties.clear()
|
||||
|
||||
print(''' {}:
|
||||
type: object'''.format(subschema))
|
||||
return current_schema
|
||||
|
||||
subschema = name.split('.')[0]
|
||||
schema_name = self.schema.name + subschema.capitalize()
|
||||
name = name.split('.')[-1]
|
||||
|
||||
if current_schema != schema_name:
|
||||
if required_properties is not None and required_properties:
|
||||
print(' required:')
|
||||
for f in required_properties:
|
||||
print(' - {}'.format(f))
|
||||
required_properties.clear()
|
||||
|
||||
print(''' {}:
|
||||
type: object
|
||||
properties:'''.format(schema_name))
|
||||
|
||||
if required_properties is not None and self.required:
|
||||
required_properties.append(name)
|
||||
|
||||
print('{}{}:'.format(' ' * indent, name))
|
||||
|
||||
if self.doc is not None:
|
||||
print('{} description: |'.format(' ' * indent))
|
||||
for line in self.doc:
|
||||
if line.strip():
|
||||
print('{} {}'.format(' ' * indent, line))
|
||||
else:
|
||||
print('')
|
||||
|
||||
ptype = self.type
|
||||
if ptype in ('enum', 'date'):
|
||||
ptype = 'string'
|
||||
if ptype != 'object':
|
||||
print('{} type: {}'.format(' ' * indent, ptype))
|
||||
|
||||
if self.type == 'array':
|
||||
print('{} items:'.format(' ' * indent))
|
||||
for elem in self.elements:
|
||||
if elem == 'object':
|
||||
print('{} $ref: "#/definitions/{}"'.format(' ' * indent, schema_name + name.capitalize()))
|
||||
else:
|
||||
print('{} type: {}'.format(' ' * indent, elem))
|
||||
if not self.required:
|
||||
print('{} x-nullable: true'.format(' ' * indent))
|
||||
|
||||
elif self.type == 'object':
|
||||
if self.blackbox:
|
||||
print('{} type: object'.format(' ' * indent))
|
||||
else:
|
||||
print('{} $ref: "#/definitions/{}"'.format(' ' * indent, schema_name + name.capitalize()))
|
||||
|
||||
elif self.type == 'enum':
|
||||
print('{} enum:'.format(' ' * indent))
|
||||
for enum in self.enum:
|
||||
print('{} - {}'.format(' ' * indent, enum))
|
||||
|
||||
if '.' not in self.name and not self.required:
|
||||
print('{} x-nullable: true'.format(' ' * indent))
|
||||
|
||||
return schema_name
|
||||
|
||||
|
||||
class Schemas(object):
|
||||
def __init__(self, data=None, jsdocs=None, name=None):
|
||||
self.name = name
|
||||
self._data = data
|
||||
self.fields = None
|
||||
self.used = False
|
||||
|
||||
if data is not None:
|
||||
if self.name is None:
|
||||
self.name = data.expression.callee.object.name
|
||||
|
||||
content = data.expression.arguments[0].arguments[0]
|
||||
self.fields = [SchemaProperty(p, self) for p in content.properties]
|
||||
|
||||
self._doc = None
|
||||
self._raw_doc = None
|
||||
|
||||
if jsdocs is not None:
|
||||
self.process_jsdocs(jsdocs)
|
||||
|
||||
@property
|
||||
def doc(self):
|
||||
if self._doc is None:
|
||||
return None
|
||||
return ' '.join(self._doc)
|
||||
|
||||
@doc.setter
|
||||
def doc(self, jsdoc):
|
||||
self._raw_doc = jsdoc
|
||||
self._doc = cleanup_jsdocs(jsdoc)
|
||||
|
||||
def process_jsdocs(self, jsdocs):
|
||||
start = self._data.loc.start.line
|
||||
end = self._data.loc.end.line
|
||||
|
||||
for doc in jsdocs:
|
||||
if doc.loc.end.line + 1 == start:
|
||||
self.doc = doc
|
||||
|
||||
docs = [doc
|
||||
for doc in jsdocs
|
||||
if doc.loc.start.line >= start and doc.loc.end.line <= end]
|
||||
|
||||
for field in self.fields:
|
||||
field.process_jsdocs(docs)
|
||||
|
||||
def print_openapi(self):
|
||||
# empty schemas are skipped
|
||||
if self.fields is None:
|
||||
return
|
||||
|
||||
print(' {}:'.format(self.name))
|
||||
print(' type: object')
|
||||
if self.doc is not None:
|
||||
print(' description: {}'.format(self.doc))
|
||||
|
||||
print(' properties:')
|
||||
|
||||
# first print out the object itself
|
||||
properties = [field for field in self.fields if '.' not in field.name]
|
||||
for prop in properties:
|
||||
prop.print_openapi(6, None, None)
|
||||
|
||||
required_properties = [f.name for f in properties if f.required]
|
||||
if required_properties:
|
||||
print(' required:')
|
||||
for f in required_properties:
|
||||
print(' - {}'.format(f))
|
||||
|
||||
# then print the references
|
||||
current = None
|
||||
required_properties = []
|
||||
properties = [f for f in self.fields if '.' in f.name and not f.name.endswith('$')]
|
||||
for prop in properties:
|
||||
current = prop.print_openapi(6, current, required_properties)
|
||||
|
||||
if required_properties:
|
||||
print(' required:')
|
||||
for f in required_properties:
|
||||
print(' - {}'.format(f))
|
||||
|
||||
required_properties = []
|
||||
# then print the references in the references
|
||||
for prop in [f for f in self.fields if '.' in f.name and f.name.endswith('$')]:
|
||||
current = prop.print_openapi(6, current, required_properties)
|
||||
|
||||
if required_properties:
|
||||
print(' required:')
|
||||
for f in required_properties:
|
||||
print(' - {}'.format(f))
|
||||
|
||||
|
||||
def parse_schemas(schemas_dir):
|
||||
|
||||
schemas = {}
|
||||
entry_points = []
|
||||
|
||||
for root, dirs, files in os.walk(schemas_dir):
|
||||
files.sort()
|
||||
for filename in files:
|
||||
path = os.path.join(root, filename)
|
||||
with open(path) as f:
|
||||
data = ''.join(f.readlines())
|
||||
try:
|
||||
# if the file failed, it's likely it doesn't contain a schema
|
||||
program = esprima.parseScript(data, options={'comment': True, 'loc': True})
|
||||
except:
|
||||
continue
|
||||
|
||||
current_schema = None
|
||||
jsdocs = [c for c in program.comments
|
||||
if c.type == 'Block' and c.value.startswith('*\n')]
|
||||
|
||||
for statement in program.body:
|
||||
|
||||
# find the '<ITEM>.attachSchema(new SimpleSchema(<data>)'
|
||||
# those are the schemas
|
||||
if (statement.type == 'ExpressionStatement' and
|
||||
statement.expression.callee is not None and
|
||||
statement.expression.callee.property is not None and
|
||||
statement.expression.callee.property.name == 'attachSchema' and
|
||||
statement.expression.arguments[0].type == 'NewExpression' and
|
||||
statement.expression.arguments[0].callee.name == 'SimpleSchema'):
|
||||
|
||||
schema = Schemas(statement, jsdocs)
|
||||
current_schema = schema.name
|
||||
schemas[current_schema] = schema
|
||||
|
||||
# find all the 'if (Meteor.isServer) { JsonRoutes.add('
|
||||
# those are the entry points of the API
|
||||
elif (statement.type == 'IfStatement' and
|
||||
statement.test.type == 'MemberExpression' and
|
||||
statement.test.object.name == 'Meteor' and
|
||||
statement.test.property.name == 'isServer'):
|
||||
data = [s.expression.arguments
|
||||
for s in statement.consequent.body
|
||||
if (s.type == 'ExpressionStatement' and
|
||||
s.expression.type == 'CallExpression' and
|
||||
s.expression.callee.object.name == 'JsonRoutes')]
|
||||
|
||||
# we found at least one entry point, keep them
|
||||
if len(data) > 0:
|
||||
if current_schema is None:
|
||||
current_schema = filename
|
||||
schemas[current_schema] = Schemas(name=current_schema)
|
||||
|
||||
schema_entry_points = [EntryPoint(schemas[current_schema], d)
|
||||
for d in data]
|
||||
entry_points.extend(schema_entry_points)
|
||||
|
||||
# try to match JSDoc to the operations
|
||||
for entry_point in schema_entry_points:
|
||||
operation = entry_point.method # POST/GET/PUT/DELETE
|
||||
jsdoc = [j for j in jsdocs
|
||||
if j.loc.end.line + 1 == operation.loc.start.line]
|
||||
if bool(jsdoc):
|
||||
entry_point.doc = jsdoc[0]
|
||||
|
||||
return schemas, entry_points
|
||||
|
||||
|
||||
def generate_openapi(schemas, entry_points, version):
|
||||
print('''swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: {0}
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
If you are an end-user and not a dev or a tester, [create an issue](https://github.com/wekan/wekan/issues/new) to request new APIs.
|
||||
|
||||
> All API calls in the documentation are made using `curl`. However, you are free to use Java / Python / PHP / Golang / Ruby / Swift / Objective-C / Rust / Scala / C# or any other programming languages.
|
||||
|
||||
# Production Security Concerns
|
||||
When calling a production Wekan server, ensure it is running via HTTPS and has a valid SSL Certificate. The login method requires you to post your username and password in plaintext, which is why we highly suggest only calling the REST login api over HTTPS. Also, few things to note:
|
||||
|
||||
* Only call via HTTPS
|
||||
* Implement a timed authorization token expiration strategy
|
||||
* Ensure the calling user only has permissions for what they are calling and no more
|
||||
|
||||
schemes:
|
||||
- http
|
||||
|
||||
securityDefinitions:
|
||||
UserSecurity:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: Authorization
|
||||
|
||||
paths:
|
||||
/users/login:
|
||||
post:
|
||||
operationId: login
|
||||
summary: Login with REST API
|
||||
consumes:
|
||||
- application/x-www-form-urlencoded
|
||||
- application/json
|
||||
tags:
|
||||
- Login
|
||||
parameters:
|
||||
- name: username
|
||||
in: formData
|
||||
required: true
|
||||
description: |
|
||||
Your username
|
||||
type: string
|
||||
- name: password
|
||||
in: formData
|
||||
required: true
|
||||
description: |
|
||||
Your password
|
||||
type: string
|
||||
format: password
|
||||
responses:
|
||||
200:
|
||||
description: |-
|
||||
Successful authentication
|
||||
schema:
|
||||
items:
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
token:
|
||||
type: string
|
||||
tokenExpires:
|
||||
type: string
|
||||
400:
|
||||
description: |
|
||||
Error in authentication
|
||||
schema:
|
||||
items:
|
||||
properties:
|
||||
error:
|
||||
type: number
|
||||
reason:
|
||||
type: string
|
||||
default:
|
||||
description: |
|
||||
Error in authentication
|
||||
/users/register:
|
||||
post:
|
||||
operationId: register
|
||||
summary: Register with REST API
|
||||
description: |
|
||||
Notes:
|
||||
- You will need to provide the token for any of the authenticated methods.
|
||||
consumes:
|
||||
- application/x-www-form-urlencoded
|
||||
- application/json
|
||||
tags:
|
||||
- Login
|
||||
parameters:
|
||||
- name: username
|
||||
in: formData
|
||||
required: true
|
||||
description: |
|
||||
Your username
|
||||
type: string
|
||||
- name: password
|
||||
in: formData
|
||||
required: true
|
||||
description: |
|
||||
Your password
|
||||
type: string
|
||||
format: password
|
||||
- name: email
|
||||
in: formData
|
||||
required: true
|
||||
description: |
|
||||
Your email
|
||||
type: string
|
||||
responses:
|
||||
200:
|
||||
description: |-
|
||||
Successful registration
|
||||
schema:
|
||||
items:
|
||||
properties:
|
||||
id:
|
||||
type: string
|
||||
token:
|
||||
type: string
|
||||
tokenExpires:
|
||||
type: string
|
||||
400:
|
||||
description: |
|
||||
Error in registration
|
||||
schema:
|
||||
items:
|
||||
properties:
|
||||
error:
|
||||
type: number
|
||||
reason:
|
||||
type: string
|
||||
default:
|
||||
description: |
|
||||
Error in registration
|
||||
'''.format(version))
|
||||
|
||||
# GET and POST on the same path are valid, we need to reshuffle the paths
|
||||
# with the path as the sorting key
|
||||
methods = {}
|
||||
for ep in entry_points:
|
||||
if ep.path not in methods:
|
||||
methods[ep.path] = []
|
||||
methods[ep.path].append(ep)
|
||||
|
||||
sorted_paths = list(methods.keys())
|
||||
sorted_paths.sort()
|
||||
|
||||
for path in sorted_paths:
|
||||
print(' {}:'.format(methods[path][0].url))
|
||||
|
||||
for ep in methods[path]:
|
||||
ep.print_openapi()
|
||||
|
||||
print('definitions:')
|
||||
for schema in schemas.values():
|
||||
# do not export the objects if there is no API attached
|
||||
if not schema.used:
|
||||
continue
|
||||
|
||||
schema.print_openapi()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Generate an OpenAPI 2.0 from the given JS schemas.')
|
||||
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
parser.add_argument('--release', default='git-master', nargs=1,
|
||||
help='the current version of the API, can be retrieved by running `git describe --tags --abbrev=0`')
|
||||
parser.add_argument('dir', default='{}/../models'.format(script_dir), nargs='?',
|
||||
help='the directory where to look for schemas')
|
||||
|
||||
args = parser.parse_args()
|
||||
schemas, entry_points = parse_schemas(args.dir)
|
||||
generate_openapi(schemas, entry_points, args.release[0])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v1.94.0",
|
||||
"version": "v2.02.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
+6
-31
@@ -4,7 +4,9 @@ echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally
|
||||
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
|
||||
echo " You can still use any other locale as your main locale."
|
||||
|
||||
X64NODE="https://nodejs.org/dist/v8.14.0/node-v8.14.0-linux-x64.tar.gz"
|
||||
#Below script installs newest node 8.x for Debian/Ubuntu/Mint.
|
||||
#NODE_VERSION=8.14.1
|
||||
#X64NODE="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz"
|
||||
|
||||
function pause(){
|
||||
read -p "$*"
|
||||
@@ -69,31 +71,9 @@ do
|
||||
|
||||
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||
echo "Linux";
|
||||
|
||||
if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then
|
||||
sudo apt install -y build-essential git curl wget
|
||||
# sudo apt -y install nodejs npm
|
||||
# npm_call -g install n
|
||||
# sudo n 8.14.0
|
||||
fi
|
||||
|
||||
# if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
|
||||
# sudo apt install -y build-essential git curl wget
|
||||
# echo "Debian, or Debian on Windows Subsystem for Linux"
|
||||
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||
# sudo apt install -y nodejs
|
||||
# fi
|
||||
|
||||
# TODO: Add Sandstorm for version of Node.js install
|
||||
#MACHINE_TYPE=`uname -m`
|
||||
#if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||
# # 64-bit stuff here
|
||||
# wget ${X64NODE}
|
||||
# sudo tar -C /usr/local --strip-components 1 -xzf ${X64NODE}
|
||||
#elif [ ${MACHINE_TYPE} == '32bit' ]; then
|
||||
# echo "TODO: 32-bit Linux install here"
|
||||
# exit
|
||||
#fi
|
||||
# Debian, Ubuntu, Mint
|
||||
sudo apt-get install -y build-essential git curl wget
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "macOS";
|
||||
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
|
||||
@@ -125,11 +105,6 @@ do
|
||||
npm_call -g install fibers@2.0.0
|
||||
# Install Meteor, if it's not yet installed
|
||||
curl https://install.meteor.com | bash
|
||||
# mkdir ~/repos
|
||||
# cd ~/repos
|
||||
# git clone https://github.com/wekan/wekan.git
|
||||
# cd wekan
|
||||
# git checkout devel
|
||||
break
|
||||
;;
|
||||
"Build Wekan")
|
||||
|
||||
@@ -4,7 +4,7 @@ echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally
|
||||
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
|
||||
echo " You can still use any other locale as your main locale."
|
||||
|
||||
X64NODE="https://releases.wekan.team/node-v8.14.0-linux-x64.tar.gz"
|
||||
#X64NODE="https://nodejs.org/dist/v8.14.1/node-v8.14.1-linux-x64.tar.gz"
|
||||
|
||||
function pause(){
|
||||
read -p "$*"
|
||||
@@ -20,31 +20,9 @@ do
|
||||
|
||||
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||
echo "Linux";
|
||||
|
||||
if [ "$(grep -Ei 'buntu|mint' /etc/*release)" ]; then
|
||||
sudo apt install -y build-essential git curl wget
|
||||
sudo apt -y install nodejs npm
|
||||
sudo npm -g install n
|
||||
sudo n 8.14.0
|
||||
fi
|
||||
|
||||
if [ "$(grep -Ei 'debian' /etc/*release)" ]; then
|
||||
sudo apt install -y build-essential git curl wget
|
||||
echo "Debian, or Debian on Windows Subsystem for Linux"
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||
sudo apt install -y nodejs
|
||||
fi
|
||||
|
||||
# TODO: Add Sandstorm for version of Node.js install
|
||||
#MACHINE_TYPE=`uname -m`
|
||||
#if [ ${MACHINE_TYPE} == 'x86_64' ]; then
|
||||
# # 64-bit stuff here
|
||||
# wget ${X64NODE}
|
||||
# sudo tar -C /usr/local --strip-components 1 -xzf ${X64NODE}
|
||||
#elif [ ${MACHINE_TYPE} == '32bit' ]; then
|
||||
# echo "TODO: 32-bit Linux install here"
|
||||
# exit
|
||||
#fi
|
||||
echo "Ubuntu, Mint, Debian, or Debian on Windows Subsystem for Linux";
|
||||
sudo apt-get install -y build-essential git curl wget;
|
||||
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -;
|
||||
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
echo "macOS";
|
||||
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
|
||||
|
||||
Loaded 100 of 107 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user