Compare commits

...
114 Commits
Author SHA1 Message Date
Lauri Ojansivu ab183acac3 v4.78 2021-01-16 05:08:10 +02:00
Lauri Ojansivu d9b967a74d Updated translations. 2021-01-16 05:03:07 +02:00
Lauri Ojansivu 4180224fd9 Limit visibility of Global Search, My Cards and Due Cards to logged in users, because they do not work without logging in.
Thanks to xet7 !
2021-01-16 04:59:17 +02:00
Lauri Ojansivu aa34da61fe Fixed Display issues with assignee on minicard.
Thanks to bronger and xet7 !

Fixes #3434
2021-01-16 04:54:54 +02:00
Lauri Ojansivu 058b95f4eb Update ChangeLog. 2021-01-16 03:13:00 +02:00
Lauri Ojansivu 4115d62bac Limit amount of data in publications where possible.
Thanks to xet7 !
2021-01-16 03:10:20 +02:00
Lauri Ojansivu 3d72c82bca Update translations. 2021-01-16 02:43:45 +02:00
Lauri Ojansivu 4bed5059c2 Update translations. 2021-01-15 18:10:25 +02:00
Lauri Ojansivu ac57df409e Update translations. 2021-01-15 17:25:07 +02:00
Lauri Ojansivu e242e2b137 Update ChangeLog. 2021-01-15 17:08:52 +02:00
Lauri Ojansivu 94cb33a0ce Merge pull request #3433 from jrsupplee/search
Search
2021-01-15 16:50:59 +02:00
Lauri Ojansivu a2894bf0cb HTML is not needed in Rules translations, so disabled it.
Thanks to jrsuplee and xet7 !
2021-01-15 16:47:52 +02:00
John R. Supplee a56d47c768 Global search fixes
* use @ and # as the abbrevs for the user and list operators
* comment out debug code
* Modify display of card result counts
* Fix bug with publication not returning current user document
2021-01-15 00:33:24 +02:00
John R. Supplee 3214800741 Global search display total hits
* modify User model to store some session data for searches
* Display total hits in search results
2021-01-14 16:54:44 +02:00
John R. Supplee c11c3f9a88 code cleanup 2021-01-14 12:53:45 +02:00
John R. Supplee 81d120ac50 Update search instructions 2021-01-14 12:47:23 +02:00
John R. Supplee 50b25572f1 Make search operators translatable 2021-01-14 12:46:52 +02:00
John R. Supplee 39ac19db20 Fix search returning data for all users 2021-01-14 00:42:10 +02:00
John R. Supplee 5dbbaae6fd Merge branch 'master' of https://github.com/wekan/wekan into search 2021-01-13 21:55:13 +02:00
John R. Supplee 423480903f Fix bug in displaying results count 2021-01-13 21:54:15 +02:00
John R. Supplee f00395a6b6 Add resultCard component for standard display of a card search result 2021-01-13 21:46:18 +02:00
John R. Supplee 391c0606d1 Comment out debug statements 2021-01-13 20:34:20 +02:00
John R. Supplee a27aaca918 Global search instructions edits 2021-01-13 20:31:41 +02:00
John R. Supplee 03e5d84e0e Edit search operator help text 2021-01-13 18:12:21 +02:00
John R. Supplee 8f21c86737 Add global search to user menu
* Add an entry to the user menu to access the global search page
* remove some useless code
2021-01-13 17:05:02 +02:00
John R. Supplee 25dc779a73 Global search development
* Add translation tags
* Use translation tags for showing result count
* Add logic for selecting cards by labels
* Readd code for searching card text that was mistakenly deleted
2021-01-13 16:52:56 +02:00
Lauri Ojansivu 4396d7cfd5 v4.77 2021-01-13 16:17:54 +02:00
Lauri Ojansivu 4700ed52da Update translations. 2021-01-13 16:12:55 +02:00
Lauri Ojansivu 115d2c5fe9 Update ChangeLog. 2021-01-13 16:09:55 +02:00
Lauri Ojansivu afd5d1d0c0 Show membertype (admin, normal etc) in avatar/initials tooltip for board members.
Thanks to bronger and xet7 !

Fixes #3430
2021-01-13 16:05:22 +02:00
John R. Supplee a647768368 Merge branch 'master' of https://github.com/wekan/wekan into search 2021-01-13 01:29:46 +02:00
Lauri Ojansivu a9eddbbe9d v4.76 2021-01-13 01:19:03 +02:00
John R. Supplee 80b23e5cc1 Global search - add error messages for terms that are not found 2021-01-13 01:14:49 +02:00
Lauri Ojansivu 8cb4945617 Update translations. 2021-01-13 01:12:15 +02:00
Lauri Ojansivu f384e3d066 Updated ChangeLog. 2021-01-13 00:07:58 +02:00
Lauri Ojansivu 3977f2187a Try to allow links to onenote, mailspring and file.
Thanks to lime918, rgalonso, ocdtrekkie, gkarachuk and xet7 !

Fixes #1615
2021-01-13 00:02:17 +02:00
John R. Supplee 4ab1a04814 Global search add swimlane functionality
* streamline code
* fix bug in swimlane lookup
2021-01-12 17:35:01 +02:00
John R. Supplee 2e17f2b4b9 Global search development
* Add text query ability
* limit results to 50
* display results count
2021-01-12 16:48:29 +02:00
Lauri Ojansivu 4b3270e82a Update ChangeLog. 2021-01-12 01:05:44 +02:00
Lauri Ojansivu de27be0911 Removed wekan- from export filenames for whitelabeling.
Thanks to xet7 !
2021-01-12 01:01:10 +02:00
John R. Supplee 34000ad159 Move global search to cards model
* add some explanation of the operators
2021-01-12 00:48:43 +02:00
John R. Supplee bbcb236a46 Add methods to models for archived entities 2021-01-11 18:18:26 +02:00
Lauri Ojansivu d29f0eb5b6 v4.75 2021-01-11 05:50:31 +02:00
Lauri Ojansivu b480c82f86 Update ChangeLog. 2021-01-11 05:40:18 +02:00
Lauri Ojansivu 3105548c98 Upgrade to Meteor 1.12.1
Thanks to Meteor developers !
2021-01-11 05:38:53 +02:00
Lauri Ojansivu 118635facb Update translations. 2021-01-11 05:36:53 +02:00
Lauri Ojansivu 4746b7c361 Update ChangeLog. 2021-01-11 05:33:50 +02:00
Lauri Ojansivu 801d0aacf0 Due Cards and Broken Cards: In All Users view, fixed to show cards only from other users Public Boards. Not anymore from private boards.
Thanks to xet7 !

Related #1667
2021-01-11 05:23:11 +02:00
Lauri Ojansivu 82236484bc v4.74 2021-01-10 23:32:48 +02:00
Lauri Ojansivu 9a7cd8ae69 Update translations. 2021-01-10 23:23:23 +02:00
Lauri Ojansivu c330a47aac Update ChangeLog. 2021-01-10 23:21:19 +02:00
Lauri Ojansivu 9293de541b My Cards and Broken Cards: Added popup title and horizontal line between menu options.
Thanks to xet7 !
2021-01-10 23:18:03 +02:00
John R. Supplee 01bd94d2b3 Global search limited working prototype
* added publication
* need to filter cards on client side
2021-01-10 22:58:29 +02:00
John R. Supplee 5913a4af1b Global search development
* search input
* parse query with operators
2021-01-10 21:52:25 +02:00
Lauri Ojansivu 72e5cb00b3 v4.73 2021-01-10 21:12:37 +02:00
Lauri Ojansivu 1d866093f1 Update translations. 2021-01-10 21:04:08 +02:00
Lauri Ojansivu 0252591564 Update ChangeLog. 2021-01-10 21:01:28 +02:00
Lauri Ojansivu 9ec1904119 Fixed language names to lowercase español.
Thanks to xet7 !
2021-01-10 20:58:46 +02:00
Lauri Ojansivu f46243d943 Update translations. 2021-01-10 20:40:18 +02:00
Lauri Ojansivu dbcab96eea Update translations. 2021-01-10 20:18:40 +02:00
Lauri Ojansivu 059191702b Update translations. 2021-01-10 20:02:09 +02:00
Lauri Ojansivu 4f6cc96466 Update ChangeLog. 2021-01-10 19:46:15 +02:00
Lauri Ojansivu b98df8ef87 Added Broken Cards to User Settings menu.
Thanks to xet7 !
2021-01-10 19:40:56 +02:00
Lauri Ojansivu d09e448fbd Translate "Broken Cards". 2021-01-10 19:31:38 +02:00
Lauri Ojansivu fa00b797ee Merge pull request #3426 from jrsupplee/broken
Broken Cards page
2021-01-10 19:28:13 +02:00
Lauri Ojansivu 508ce6088e Update ChangeLog. 2021-01-10 19:26:14 +02:00
Lauri Ojansivu 4d71848360 Merge pull request #3425 from jrsupplee/master
My Cards and Due Cards
2021-01-10 19:17:27 +02:00
John R. Supplee 4ebad9efc1 Merge branch 'master' into broken 2021-01-10 18:19:33 +02:00
John R. Supplee 4e8ee8eb86 Merge branch 'master' of https://github.com/wekan/wekan 2021-01-10 18:15:02 +02:00
John R. Supplee ecc3558987 My Cards and Due Cards development
* add spinner while pages are loading
* use a single publication for My Cards
* add Due Cards to the user menu
* add description to the All Users option for Due Cards
* some code clean-up
2021-01-10 18:08:03 +02:00
John R. Supplee 986ab29676 Broken Cards development
* fix CSS and formatting
* refine selection criteria
2021-01-10 15:35:16 +02:00
John R. Supplee 4679db6ec4 New Broken Cards page 2021-01-10 00:17:59 +02:00
Lauri Ojansivu 35a7925a21 v4.72 2021-01-09 21:04:48 +02:00
Lauri Ojansivu 5ab449eb7e Update translations. 2021-01-09 21:03:33 +02:00
Lauri Ojansivu 5ba1d6f880 Update ChangeLog. 2021-01-09 20:59:01 +02:00
John R. Supplee 734c56a6b6 Merge branch 'master' of supplee.net:wekan 2021-01-09 20:39:45 +02:00
Lauri Ojansivu 103d03d4c8 Changed Sandstorm menus to be more similar like other Wekan versions, make Export visible, etc.
Thanks to PizzaProgram and xet7 !

Related #3423
2021-01-09 19:49:58 +02:00
John R. Supplee 55b121e0d3 Development and fixes to My Cards and Due Cards 2021-01-09 18:36:27 +02:00
John R. Supplee 0e1c510948 My Cards: fix bug when null board, swimlane, or list
* Add new functions to model card for retrieving associated board,
swimlane, or list with default values
* Use new card model methods
2021-01-08 21:51:28 +02:00
John R. Supplee b79ee281ec Merge branch 'master' of https://github.com/wekan/wekan 2021-01-08 21:06:14 +02:00
Lauri Ojansivu 758b829a3c Merge pull request #3421 from kuchengrab/patch-1
fixed badges
2021-01-08 21:00:32 +02:00
kuchengrab adc7846aff fixed badges 2021-01-08 14:37:49 +01:00
John R. Supplee 2e955cff54 Fix name of Due Cards in router 2021-01-08 12:18:05 +02:00
Lauri Ojansivu aeeea2281c v4.71 2021-01-08 11:50:17 +02:00
Lauri Ojansivu fa3af68836 Update translations. 2021-01-08 11:40:39 +02:00
John R. Supplee 1abdd5177d Initial work on due cards page 2021-01-07 22:36:10 +02:00
Lauri Ojansivu d62d890183 Update translations. 2021-01-07 14:15:02 +02:00
Lauri Ojansivu 62a8602b2b Update ChangeLog. 2021-01-07 13:22:52 +02:00
Lauri Ojansivu 1698b5cafb Merge pull request #3419 from jrsupplee/master
My Cards add Due Date sort
2021-01-07 12:17:24 +02:00
John R. Supplee 108d01ee35 Merge branch 'master' of https://github.com/wekan/wekan 2021-01-07 12:04:54 +02:00
John R. Supplee e55b50bc5a My Cards development
* Popup.open() not working so simply toggle between board sort and 'due by'
* clean-up CSS classes
* code clean-up
2021-01-07 12:04:14 +02:00
Lauri Ojansivu 4649553c5e Try to fix Color picker of lists is empty. Part 6.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 22:15:06 +02:00
John R. Supplee 1ea99a5dc8 My Cards development
* Add cards due view
* Add input for selecting sort (not working)
* Add methods to `Utils` to save sort to local browser storage
*  CSS updates to make lists display horizontally within swimlanes
2021-01-06 20:13:36 +02:00
Lauri Ojansivu ff8d899266 Try to fix Color picker of lists is empty. Part 5, reverting part 4.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 20:08:12 +02:00
Lauri Ojansivu 2e6064ce5c Try to fix Color picker of lists is empty. Part 4.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 16:55:17 +02:00
Lauri Ojansivu c7f260d030 Fix lint errors. 2021-01-06 16:49:20 +02:00
Lauri Ojansivu f7e85ac86c Docker builds at Docker Hub seem to work OK. 2021-01-06 16:48:39 +02:00
Lauri Ojansivu 5f647fd2ab Try to fix Color picker of lists is empty. Part 3.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 15:47:21 +02:00
Lauri Ojansivu 6007fe263e Try to fix Color picker of lists is empty. Part 2.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 15:43:46 +02:00
Lauri Ojansivu 26921a9c36 Try to fix Color picker of lists is empty.
Thanks to bronger and xet7 !

Related #3418
2021-01-06 15:32:47 +02:00
Lauri Ojansivu 94a3c1dc21 Update CHANGELOG.md 2021-01-05 10:03:07 +02:00
Lauri Ojansivu 5f0cb23f52 Merge pull request #3417 from mfilser/cards_custom_fields_alphabetic_order
Cards, custom fields are displayed in alphabetic order
2021-01-05 09:56:16 +02:00
Lauri Ojansivu b1910d4300 Update CHANGELOG.md 2021-01-05 09:55:31 +02:00
Martin Filser 163e4c8060 Cards, custom fields are displayed in alphabetic order
- until now the order is undefined, it's different from card to card,
  it's the order in which the custom fields were added to the card.
2021-01-05 07:47:02 +01:00
Lauri Ojansivu 87e848beae Merge pull request #3416 from jrsupplee/master
Update to My Cards
2021-01-05 06:42:04 +02:00
John R. Supplee febc020cd3 Merge with main repository 2021-01-05 00:00:45 +02:00
John R. Supplee 1733162df8 My Cards development
* add default color for swimlane with no color
2021-01-04 23:58:29 +02:00
John R. Supplee 5e68362352 My Cards page development
* rename `findCards()` to `myBoards()`
* return model objects for Boards, Swimlanes, Lists, and Cards.
Previously created a data structure with limited properties.
* Sort the myBoards data structure according to the `sort` property
* add a `swimlane()` method in the cards model
2021-01-04 22:08:09 +02:00
John R. Supplee 0497d38c1d Fix bug with new return value for swimlane colorClass() 2021-01-04 22:04:24 +02:00
John R. Supplee 89c68d1987 Merge branch 'master' of supplee.net:wekan 2021-01-04 21:11:27 +02:00
John Supplee 70803f31d4 Merge branch 'master' of https://github.com/wekan/wekan 2021-01-04 20:42:27 +02:00
John Supplee db2497424d Merge branch 'master' of supplee.net:wekan
# Conflicts:
#	client/components/main/myCards.jade
2021-01-04 20:40:58 +02:00
John R. Supplee e8e733184e Merge branch 'master' of https://github.com/wekan/wekan 2021-01-04 13:53:58 +02:00
John R. Supplee e793e71163 Reformat My Cards page
* make the page more visually pleasing
* user +viewer to display Markdown in titles
* modify `colorClass()` in Lists model to return 'list-header-{color}'
* modify `colorClass()` of Swimlanes model to return 'swimlane-{color}'
2021-01-04 13:53:08 +02:00
118 changed files with 53021 additions and 47534 deletions

No files matched your search

+1 -1
View File
@@ -72,7 +72,7 @@ simple:rest-accounts-password
useraccounts:core
email@2.0.0
horka:swipebox
dynamic-import@0.5.4
dynamic-import@0.5.5
accounts-password@1.6.3
cfs:gridfs
+1 -1
View File
@@ -1 +1 @@
METEOR@1.12
METEOR@1.12.1
+2 -2
View File
@@ -11,7 +11,7 @@ allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.6.0
babel-compiler@7.5.4
babel-compiler@7.5.5
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
@@ -55,7 +55,7 @@ ddp-rate-limiter@1.0.9
ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.4
dynamic-import@0.5.5
easylogic:summernote@0.8.8
ecmascript@0.14.4
ecmascript-runtime@0.7.0
+126
View File
@@ -1,3 +1,129 @@
# v4.78 2021-01-16 Wekan release
This release adds the following new features:
- [Search All Boards](https://github.com/wekan/wekan/pull/3433). Currently limited to 50 results. Will be improved later.
Thanks to jrsuplee and xet7.
and fixes the following bugs:
- [HTML is not needed in Rules translations, so disabled it](https://github.com/wekan/wekan/commit/a2894bf0cb11161f2f9382e900ffbae2a1570d38).
Thanks to jrsuplee and xet7.
- [Limit amount of data in publications where possible](https://github.com/wekan/wekan/commit/4115d62bac882ceaaec531b1f9df2666097be51a).
Thanks to xet7.
- [Fixed Display issues with assignee on minicard](https://github.com/wekan/wekan/commit/aa34da61fe80a2ab2a87b6413b3b9c25fb8ea96f).
Thanks to bronger and xet7.
- [Limit visibility of Global Search, My Cards and Due Cards to logged in users, because they do not work without
logging in](https://github.com/wekan/wekan/commit/4180224fd9841a3e6cab9eacb1447978482e1e91).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.77 2021-01-13 Wekan release
This release adds the following new features:
- [Show membertype (admin, normal etc) in avatar/initials tooltip for board members](https://github.com/wekan/wekan/commit/afd5d1d0c0a14702a2ea6960a58b78153975dc0d).
Thanks to bronger and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.76 2021-01-13 Wekan release
This release adds the following new features:
- [Try to allow links to onenote, mailspring and file](https://github.com/wekan/wekan/commit/3977f2187aa4dc0bd9ddfcd02065437df0f1a5c0).
Thanks to lime918, rgalonso, ocdtrekkie, gkarachuk and xet7.
and adds the following improvements:
- [Removed wekan- from export filenames for whitelabeling](https://github.com/wekan/wekan/commit/de27be0911053195838d6d0d4f1b6eae8a1d773a).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.75 2021-01-11 Wekan release
This release adds the following CRITICAL SECURITY FIXES:
- [Due Cards and Broken Cards: In All Users view, fixed to show cards only from other users Public Boards. Not anymore from private
boards](https://github.com/wekan/wekan/commit/801d0aacf00eace05ec70d6f0229f2a752f119cd).
Thanks to xet7.
and adds the following updates:
- [Upgrade to Meteor 1.12.1](https://github.com/wekan/wekan/commit/3105548c98091773e86e4556c2980d5f533e98f1).
Thanks to Meteor developers.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.74 2021-01-10 Wekan release
This release adds the following improvements:
- [My Cards and Due Cards: Added popup title and horizontal line between menu
options](https://github.com/wekan/wekan/commit/9293de541b3fcccee52751808f0e95b04986c1bb).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.73 2021-01-10 Wekan release
This release adds the following new features:
- [Broken Cards](https://github.com/wekan/wekan/pull/3426) for debugging.
Thanks to jrsupplee.
- ["Broken Cards" to be translatable](https://github.com/wekan/wekan/commit/d09e448fbd37ae84419aa3909b9a4594cd7ddb92).
Thanks to xet7.
- [Added Broken Cards to User Settings menu](https://github.com/wekan/wekan/commit/b98df8ef87fc0c501d4f06e3e5af292605bd21cf).
Thanks to xet7.
and adds the following improvements:
- [My Cards: Make code forgiving of possible null values for a card's board, swimlane, or list.
Added a new Due Cards page that displays cards with a Due date for either just the user or all
users](https://github.com/wekan/wekan/pull/3425).
Thanks to jrsupplee.
and fixes the following bugs:
- [Fixed Spanish language names to lowercase español](https://github.com/wekan/wekan/commit/9ec1904119e6bec4c00600cb8ea81c28e631ae2e).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.72 2021-01-09 Wekan release
This release fixes the following bugs:
- [Fixed badges at readme](https://github.com/wekan/wekan/pull/3421).
Thanks to kuchengrab.
- [Changed Sandstorm menus to be more similar like other Wekan versions, make Export visible, etc](https://github.com/wekan/wekan/commit/103d03d4c86df445b9d28d506f7d3098ab56368b).
Thanks to PizzaProgram and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.71 2021-01-08 Wekan release
This release adds the following new features:
- [My Cards add Due Date sort](https://github.com/wekan/wekan/pull/3419).
Thanks to jrsupplee.
and adds the following improvements:
- [Update to My Cards](https://github.com/wekan/wekan/pulls/3416).
Thanks to jrsupplee.
- [Cards, custom fields are displayed in alphabetic order](https://github.com/wekan/wekan/pulls/3417).
Thanks to mfilser.
and fixes the following bugs:
- [Fixed Color picker of lists is empty. Fixed error about existing file at Wekan Docker version](https://github.com/wekan/wekan/issues/3418).
Thanks to bronger and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.70 2021-01-04 Wekan release
This release adds the following CRITICAL SECURITY FIXES:
+2 -6
View File
@@ -4,6 +4,8 @@
[![Contributors](https://img.shields.io/github/contributors/wekan/wekan.svg "Contributors")](https://github.com/wekan/wekan/graphs/contributors)
[![Docker Repository on Quay](https://quay.io/repository/wekan/wekan/status "Docker Repository on Quay")](https://quay.io/repository/wekan/wekan)
[![Docker Hub container status](https://img.shields.io/docker/build/wekanteam/wekan.svg "Docker Hub container status")](https://hub.docker.com/r/wekanteam/wekan)
[![Docker Hub pulls](https://img.shields.io/docker/pulls/wekanteam/wekan.svg "Docker Hub Pulls")](https://hub.docker.com/r/wekanteam/wekan)
[![Wekan Build Status][travis_badge]][travis_status]
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/02137ecec4e34c5aa303f57637196a93 "Codacy Badge")](https://www.codacy.com/app/xet7/wekan?utm_source=github.com&utm_medium=referral&utm_content=wekan/wekan&utm_campaign=Badge_Grade)
[![Code Climate](https://codeclimate.com/github/wekan/wekan/badges/gpa.svg "Code Climate")](https://codeclimate.com/github/wekan/wekan)
@@ -11,12 +13,6 @@
[![Code analysis at Open Hub](https://img.shields.io/badge/code%20analysis-at%20Open%20Hub-brightgreen.svg "Code analysis at Open Hub")](https://www.openhub.net/p/wekan)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fwekan%2Fwekan.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
NOTE: Docker Hub builds are broken with error ENOMEM. Only Quay works, see docker-compose.yml .
<!--
[![Docker Hub container status](https://img.shields.io/docker/build/wekanteam/wekan.svg "Docker Hub container sta>
[![Docker Hub pulls](https://img.shields.io/docker/pulls/wekanteam/wekan.svg "Docker Hub Pulls")](https://hub.doc>
-->
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v4.70.0"
appVersion: "v4.78.0"
files:
userUploads:
- README.md
+1
View File
@@ -85,6 +85,7 @@ template(name="minicard")
.minicard-assignees.js-minicard-assignees
each getAssignees
+userAvatar(userId=this)
hr(class="assigneehr" title="{{_ 'assignee'}}")
if getMembers
.minicard-members.js-minicard-members
+6 -2
View File
@@ -165,7 +165,11 @@
.minicard-members,
.minicard-assignees
float: right
margin: 2px -8px 2px 0
margin-left: 5px
.assigneehr
border-top: 1px solid red
margin-bottom: 4px
.member
float: right
@@ -180,7 +184,7 @@
width: @height
+ .badges
margin-top: 10px
margin-top: 5px
.minicard-members:empty,
.minicard-assignees:empty
+23
View File
@@ -0,0 +1,23 @@
template(name="resultCard")
.result-card-wrapper
a.minicard-wrapper.card-title(href=card.absoluteUrl)
+minicard(this)
//= card.title
ul.result-card-context-list
li.result-card-context(title="{{_ 'board'}}")
+viewer
= getBoard.title
li.result-card-context.result-card-context-separator
= ' '
| {{_ 'context-separator'}}
= ' '
li.result-card-context(title="{{_ 'swimlane'}}")
+viewer
= getSwimlane.title
li.result-card-context.result-card-context-separator
= ' '
| {{_ 'context-separator'}}
= ' '
li.result-card-context(title="{{_ 'list'}}")
+viewer
= getList.title
+11
View File
@@ -0,0 +1,11 @@
Template.resultCard.helpers({
userId() {
return Meteor.userId();
},
});
BlazeComponent.extendComponent({
events() {
return [{}];
},
}).register('resultCard');
+21
View File
@@ -0,0 +1,21 @@
.result-card-list-wrapper
margin: 1rem
border-radius: 5px
padding: 1.5rem
padding-top: 0.75rem
display: inline-block
min-width: 250px
max-width: 350px
.result-card-wrapper
margin-top: 0
margin-bottom: 10px
.result-card-context
display: inline-block
.result-card-context-separator
font-weight: bold
.result-card-context-list
margin-bottom: 0.7rem
+2 -2
View File
@@ -1,7 +1,7 @@
template(name="listHeader")
.list-header.js-list-header(
class="{{#if limitToShowCardsCount}}list-header-card-count{{/if}}"
class="{{#if colorClass}}list-header-{{colorClass}}{{/if}}")
class=colorClass)
+inlinedForm
+editListTitleForm
else
@@ -153,7 +153,7 @@ template(name="setListColorPopup")
form.edit-label
.palette-colors: each colors
// note: we use the swimlane palette to have more than just the border
span.card-label.palette-color.js-palette-color(class="swimlane-{{color}}")
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'}}
+5 -1
View File
@@ -279,7 +279,11 @@ BlazeComponent.extendComponent({
},
isSelected(color) {
return this.currentColor.get() === color;
if (this.currentColor.get() === null) {
return color === 'white';
} else {
return this.currentColor.get() === color;
}
},
events() {
+41
View File
@@ -0,0 +1,41 @@
template(name="brokenCardsHeaderBar")
h1
| {{_ 'broken-cards'}}
template(name="brokenCards")
.wrapper
.broken-cards-wrapper
each card in brokenCardsList
.broken-cards-card-wrapper
.broken-cards-card-title
= card.title
ul.broken-cards-context-list
li.broken-cards-context(title="{{_ 'board'}}")
if card.boardId
+viewer
= card.getBoard.title
else
.broken-cards-null
| NULL
li.broken-cards-context.broken-cards-context-separator
= ' '
| {{_ 'context-separator'}}
= ' '
li.broken-cards-context(title="{{_ 'swimlane'}}")
if card.swimlaneId
+viewer
= card.getSwimlane.title
else
.broken-cards-null
| NULL
li.broken-cards-context
= ' '
| {{_ 'context-separator'}}
= ' '
li.broken-cards-context(title="{{_ 'list'}}")
if card.listId
+viewer
= card.getList.title
else
.broken-cards-null
| NULL
+28
View File
@@ -0,0 +1,28 @@
BlazeComponent.extendComponent({}).register('brokenCardsHeaderBar');
Template.brokenCards.helpers({
userId() {
return Meteor.userId();
},
});
BlazeComponent.extendComponent({
onCreated() {
Meteor.subscribe('setting');
Meteor.subscribe('brokenCards');
},
brokenCardsList() {
const selector = {
$or: [
{ boardId: { $in: [null, ''] } },
{ swimlaneId: { $in: [null, ''] } },
{ listId: { $in: [null, ''] } },
{ permission: 'public' },
{ members: { $elemMatch: { userId: user._id, isActive: true } } },
],
};
return Cards.find(selector);
},
}).register('brokenCards');
+31
View File
@@ -0,0 +1,31 @@
.broken-cards-card-wrapper
margin-top: 0
margin-bottom: 10px
border-width: 3px !important
border-color: grey !important
border-style: solid
border-radius: 5px
padding: 1.5rem
background-color: white
.broken-cards-wrapper
max-width: 500px
margin-right: auto
margin-left: auto
.broken-cards-card-title
font-weight: bold
//padding: 10px
.broken-cards-context
display: inline-block
.broken-cards-context-separator
font-weight: bold
.broken-cards-context-list
//margin-bottom: 0.7rem
.broken-cards-null
color: darkred
font-style: italic
+73
View File
@@ -0,0 +1,73 @@
template(name="dueCardsHeaderBar")
if currentUser
h1
i.fa.fa-calendar
| {{_ 'dueCards-title'}}
.board-header-btns.left
a.board-header-btn.js-due-cards-view-change(title="{{_ 'dueCardsViewChange-title'}}")
i.fa.fa-caret-down
if $eq dueCardsView 'me'
i.fa.fa-user
| {{_ 'dueCardsViewChange-choice-me'}}
if $eq dueCardsView 'all'
i.fa.fa-users
| {{_ 'dueCardsViewChange-choice-all'}}
template(name="dueCardsModalTitle")
if currentUser
h2
i.fa.fa-keyboard-o
| {{_ 'dueCards-title'}}
template(name="dueCards")
if currentUser
if isPageReady.get
.wrapper
.due-cards-dueat-list-wrapper
each card in dueCardsList
.due-cards-card-wrapper
a.minicard-wrapper.card-title(href=card.absoluteUrl)
+minicard(card)
ul.due-cards-context-list
li.due-cards-context(title="{{_ 'board'}}")
+viewer
= card.getBoard.title
li.due-cards-context.due-cards-context-separator
= ' '
| {{_ 'context-separator'}}
= ' '
li.due-cards-context(title="{{_ 'swimlane'}}")
+viewer
= card.getSwimlane.title
li.due-cards-context
= ' '
| {{_ 'context-separator'}}
= ' '
li.due-cards-context(title="{{_ 'list'}}")
+viewer
= card.getList.title
else
+spinner
template(name="dueCardsViewChangePopup")
if currentUser
ul.pop-over-list
li
with "dueCardsViewChange-choice-me"
a.js-due-cards-view-me
i.fa.fa-user.colorful
| {{_ 'dueCardsViewChange-choice-me'}}
if $eq Utils.dueCardsView "me"
i.fa.fa-check
hr
li
with "dueCardsViewChange-choice-all"
a.js-due-cards-view-all
i.fa.fa-users.colorful
| {{_ 'dueCardsViewChange-choice-all'}}
span.sub-name
+viewer
| {{_ 'dueCardsViewChange-choice-all-description' }}
if $eq Utils.dueCardsView "all"
i.fa.fa-check
+154
View File
@@ -0,0 +1,154 @@
const subManager = new SubsManager();
BlazeComponent.extendComponent({
dueCardsView() {
// eslint-disable-next-line no-console
// console.log('sort:', Utils.dueCardsView());
return Utils.dueCardsView();
},
events() {
return [
{
'click .js-due-cards-view-change': Popup.open('dueCardsViewChange'),
},
];
},
}).register('dueCardsHeaderBar');
Template.dueCards.helpers({
userId() {
return Meteor.userId();
},
});
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-due-cards-view-me'() {
Utils.setDueCardsView('me');
Popup.close();
},
'click .js-due-cards-view-all'() {
Utils.setDueCardsView('all');
Popup.close();
},
},
];
},
}).register('dueCardsViewChangePopup');
BlazeComponent.extendComponent({
onCreated() {
this.isPageReady = new ReactiveVar(false);
this.autorun(() => {
const handle = subManager.subscribe(
'dueCards',
Utils.dueCardsView() === 'all',
);
Tracker.nonreactive(() => {
Tracker.autorun(() => {
this.isPageReady.set(handle.ready());
});
});
});
Meteor.subscribe('setting');
},
dueCardsView() {
// eslint-disable-next-line no-console
console.log('sort:', Utils.dueCardsView());
return Utils.dueCardsView();
},
sortByBoard() {
return this.dueCardsView() === 'board';
},
dueCardsList() {
const allUsers = Utils.dueCardsView() === 'all';
const user = Meteor.user();
const archivedBoards = [];
Boards.find({ archived: true }).forEach(board => {
archivedBoards.push(board._id);
});
const permiitedBoards = [];
let selector = {
archived: false,
};
// for every user including admin allow her to see cards only from public boards
// or those where she is a member
//if (!user.isAdmin) {
selector.$or = [
{ permission: 'public' },
{ members: { $elemMatch: { userId: user._id, isActive: true } } },
];
//}
Boards.find(selector).forEach(board => {
permiitedBoards.push(board._id);
});
const archivedSwimlanes = [];
Swimlanes.find({ archived: true }).forEach(swimlane => {
archivedSwimlanes.push(swimlane._id);
});
const archivedLists = [];
Lists.find({ archived: true }).forEach(list => {
archivedLists.push(list._id);
});
selector = {
archived: false,
boardId: {
$nin: archivedBoards,
$in: permiitedBoards,
},
swimlaneId: { $nin: archivedSwimlanes },
listId: { $nin: archivedLists },
dueAt: { $ne: null },
endAt: null,
};
if (!allUsers) {
selector.$or = [{ members: user._id }, { assignees: user._id }];
}
const cards = [];
// eslint-disable-next-line no-console
// console.log('cards selector:', selector);
Cards.find(selector).forEach(card => {
cards.push(card);
// eslint-disable-next-line no-console
// console.log(
// 'board:',
// card.board(),
// 'swimlane:',
// card.swimlane(),
// 'list:',
// card.list(),
// );
});
cards.sort((a, b) => {
const x = a.dueAt === null ? Date('2100-12-31') : a.dueAt;
const y = b.dueAt === null ? Date('2100-12-31') : b.dueAt;
if (x > y) return 1;
else if (x < y) return -1;
return 0;
});
// eslint-disable-next-line no-console
// console.log('cards:', cards);
return cards;
},
}).register('dueCards');
+69
View File
@@ -0,0 +1,69 @@
.due-cards-board-wrapper
border-radius: 8px
//padding: 0.5rem
min-width: 400px
border-width: 8px
border-color: grey
border-style: solid
margin-bottom: 2rem
margin-right: auto
margin-left: auto
.due-cards-board-title
font-size: 1.4rem
font-weight: bold
padding: 0.5rem
background-color: grey
color: white
.due-cards-swimlane-title
font-size: 1.1rem
font-weight: bold
padding: 0.5rem
padding-bottom: 0.4rem
margin-top: 0
margin-bottom: 0.5rem
//border-top: black 1px solid
//border-bottom: black 1px solid
text-align: center
.swimlane-default-color
background-color: lightgrey
.due-cards-list-title
font-weight: bold
font-size: 1.1rem
//padding-bottom: 0
//margin-bottom: 0
text-align: center
margin-bottom: 0.7rem
.due-cards-list-wrapper
margin: 1rem
border-radius: 5px
padding: 1.5rem
padding-top: 0.75rem
display: inline-block
min-width: 250px
max-width: 350px
.due-cards-card-wrapper
margin-top: 0
margin-bottom: 10px
.due-cards-dueat-list-wrapper
max-width: 500px
margin-right: auto
margin-left: auto
.due-cards-field-name
font-weight: bold
.due-cards-context
display: inline-block
.due-cards-context-separator
font-weight: bold
.due-cards-context-list
margin-bottom: 0.7rem
+4 -1
View File
@@ -275,7 +275,10 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
if (
/^thunderlink:/gi.test(value) ||
/^cbthunderlink:/gi.test(value) ||
/^aodroplink:/gi.test(value)
/^aodroplink:/gi.test(value) ||
/^onenote:/gi.test(value) ||
/^file:/gi.test(value) ||
/^mailspring:/gi.test(value)
) {
return value;
} else {
+82
View File
@@ -0,0 +1,82 @@
template(name="globalSearchHeaderBar")
if currentUser
h1
i.fa.fa-search
| {{_ 'globalSearch-title'}}
template(name="globalSearchModalTitle")
if currentUser
h2
i.fa.fa-keyboard-o
| {{_ 'globalSearch-title'}}
template(name="globalSearch")
if currentUser
.wrapper
form.global-search-instructions.js-search-query-form
input.global-search-query-input(type="text" name="searchQuery" placeholder="{{_ 'search-example'}}" autofocus dir="auto")
if searching.get
+spinner
else if hasResults.get
.global-search-dueat-list-wrapper
h1
if $eq resultsCount.get 0
| {{_ 'no-cards-found' }}
else if $eq resultsCount.get 1
| {{_ 'one-card-found' }}
else if $eq resultsCount.get totalHits.get
| {{_ 'n-cards-found' resultsCount.get }}
else
| {{_ 'n-n-of-n-cards-found' 1 resultsCount.get totalHits.get }}
if queryErrors.get
div
each msg in errorMessages
span.global-search-error-messages
| {{_ msg.tag msg.value }}
each card in results
+resultCard(card)
else
.global-search-instructions
h1 Search Operators
+viewer
= 'Searches can include operators to refine the search. Operators are specified by writing the operator'
= 'name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search'
= 'to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters'
= 'it must be enclosed in quotation marks (e.g. `list:"To Review"`).\n'
= 'Available operators are:\n'
= '* `board:title` - cards in boards matching the specified title\n'
= '* `list:title` - cards in lists matching the specified title\n'
= '* `swimlane:title` - cards in swimlanes matching the specified title\n'
= '* `label:color` - cards that have a label matching the given color\n'
= '* `label:name` - cards that have a label matching the given name\n'
= '* `user:username` - cards where the specified user is a member or assignee\n'
= '* `@username` - shorthand for `user:username`\n'
= '* `#label` - shorthand for `label:color-or-name`\n'
= '## Notes\n'
= '* Multiple operators may be specified.\n'
= '* Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n'
= ' `list:Available list:Blocked` would return cards contained in any list named *Blocked* or *Available*.\n'
= '* Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned.\n'
= '`list:Available label:red` returns only cards in the list *Available* with a *red* label.\n'
= '* Text searches are case insensitive.\n'
template(name="globalSearchViewChangePopup")
if currentUser
ul.pop-over-list
li
with "globalSearchViewChange-choice-me"
a.js-global-search-view-me
i.fa.fa-user.colorful
| {{_ 'globalSearchViewChange-choice-me'}}
if $eq Utils.globalSearchView "me"
i.fa.fa-check
li
with "globalSearchViewChange-choice-all"
a.js-global-search-view-all
i.fa.fa-users.colorful
| {{_ 'globalSearchViewChange-choice-all'}}
span.sub-name
+viewer
| {{_ 'globalSearchViewChange-choice-all-description' }}
if $eq Utils.globalSearchView "all"
i.fa.fa-check
+201
View File
@@ -0,0 +1,201 @@
const subManager = new SubsManager();
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-due-cards-view-change': Popup.open('globalSearchViewChange'),
},
];
},
}).register('globalSearchHeaderBar');
Template.globalSearch.helpers({
userId() {
return Meteor.userId();
},
});
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-due-cards-view-me'() {
Utils.setDueCardsView('me');
Popup.close();
},
'click .js-due-cards-view-all'() {
Utils.setDueCardsView('all');
Popup.close();
},
},
];
},
}).register('globalSearchViewChangePopup');
BlazeComponent.extendComponent({
onCreated() {
this.isPageReady = new ReactiveVar(true);
this.searching = new ReactiveVar(false);
this.hasResults = new ReactiveVar(false);
this.query = new ReactiveVar('');
this.queryParams = null;
this.resultsCount = new ReactiveVar(0);
this.totalHits = new ReactiveVar(0);
this.queryErrors = new ReactiveVar(null);
Meteor.subscribe('setting');
},
results() {
if (this.queryParams) {
const results = Cards.globalSearch(this.queryParams);
// eslint-disable-next-line no-console
// console.log('user:', Meteor.user());
// eslint-disable-next-line no-console
// console.log('user:', Meteor.user().sessionData);
// console.log('errors:', results.errors);
this.totalHits.set(Meteor.user().sessionData.totalHits);
this.resultsCount.set(results.cards.count());
this.queryErrors.set(results.errors);
return results.cards;
}
this.resultsCount.set(0);
return [];
},
errorMessages() {
const errors = this.queryErrors.get();
const messages = [];
errors.notFound.boards.forEach(board => {
messages.push({ tag: 'board-title-not-found', value: board });
});
errors.notFound.swimlanes.forEach(swim => {
messages.push({ tag: 'swimlane-title-not-found', value: swim });
});
errors.notFound.lists.forEach(list => {
messages.push({ tag: 'list-title-not-found', value: list });
});
errors.notFound.users.forEach(user => {
messages.push({ tag: 'user-username-not-found', value: user });
});
return messages;
},
events() {
return [
{
'submit .js-search-query-form'(evt) {
evt.preventDefault();
this.query.set(evt.target.searchQuery.value);
this.queryErrors.set(null);
if (!this.query.get()) {
this.searching.set(false);
this.hasResults.set(false);
return;
}
this.searching.set(true);
this.hasResults.set(false);
let query = this.query.get();
// eslint-disable-next-line no-console
// console.log('query:', query);
const reOperator1 = /^((?<operator>\w+):|(?<abbrev>[#@]))(?<value>\w+)(\s+|$)/;
const reOperator2 = /^((?<operator>\w+):|(?<abbrev>[#@]))(?<quote>["']*)(?<value>.*?)\k<quote>(\s+|$)/;
const reText = /^(?<text>\S+)(\s+|$)/;
const reQuotedText = /^(?<quote>["'])(?<text>\w+)\k<quote>(\s+|$)/;
const operatorMap = {};
operatorMap[TAPi18n.__('operator-board')] = 'boards';
operatorMap[TAPi18n.__('operator-board-abbrev')] = 'boards';
operatorMap[TAPi18n.__('operator-swimlane')] = 'swimlanes';
operatorMap[TAPi18n.__('operator-swimlane-abbrev')] = 'swimlanes';
operatorMap[TAPi18n.__('operator-list')] = 'lists';
operatorMap[TAPi18n.__('operator-list-abbrev')] = 'lists';
operatorMap[TAPi18n.__('operator-label')] = 'labels';
operatorMap[TAPi18n.__('operator-label-abbrev')] = 'labels';
operatorMap[TAPi18n.__('operator-user')] = 'users';
operatorMap[TAPi18n.__('operator-user-abbrev')] = 'users';
operatorMap[TAPi18n.__('operator-is')] = 'is';
// eslint-disable-next-line no-console
// console.log('operatorMap:', operatorMap);
const params = {
boards: [],
swimlanes: [],
lists: [],
users: [],
labels: [],
is: [],
};
let text = '';
while (query) {
m = query.match(reOperator1);
if (!m) {
m = query.match(reOperator2);
if (m) {
query = query.replace(reOperator2, '');
}
} else {
query = query.replace(reOperator1, '');
}
if (m) {
let op;
if (m.groups.operator) {
op = m.groups.operator.toLowerCase();
} else {
op = m.groups.abbrev;
}
if (op in operatorMap) {
params[operatorMap[op]].push(m.groups.value);
}
continue;
}
m = query.match(reQuotedText);
if (!m) {
m = query.match(reText);
if (m) {
query = query.replace(reText, '');
}
} else {
query = query.replace(reQuotedText, '');
}
if (m) {
text += (text ? ' ' : '') + m.groups.text;
}
}
// eslint-disable-next-line no-console
// console.log('text:', text);
params.text = text;
// eslint-disable-next-line no-console
// console.log('params:', params);
this.queryParams = params;
this.autorun(() => {
const handle = subManager.subscribe('globalSearch', params);
Tracker.nonreactive(() => {
Tracker.autorun(() => {
// eslint-disable-next-line no-console
// console.log('ready:', handle.ready());
if (handle.ready()) {
this.searching.set(false);
this.hasResults.set(true);
}
});
});
});
},
},
];
},
}).register('globalSearch');
+97
View File
@@ -0,0 +1,97 @@
.global-search-board-wrapper
border-radius: 8px
//padding: 0.5rem
min-width: 400px
border-width: 8px
border-color: grey
border-style: solid
margin-bottom: 2rem
margin-right: auto
margin-left: auto
.global-search-board-title
font-size: 1.4rem
font-weight: bold
padding: 0.5rem
background-color: grey
color: white
.global-search-swimlane-title
font-size: 1.1rem
font-weight: bold
padding: 0.5rem
padding-bottom: 0.4rem
margin-top: 0
margin-bottom: 0.5rem
//border-top: black 1px solid
//border-bottom: black 1px solid
text-align: center
.swimlane-default-color
background-color: lightgrey
.global-search-list-title
font-weight: bold
font-size: 1.1rem
//padding-bottom: 0
//margin-bottom: 0
text-align: center
margin-bottom: 0.7rem
.global-search-list-wrapper
margin: 1rem
border-radius: 5px
padding: 1.5rem
padding-top: 0.75rem
display: inline-block
min-width: 250px
max-width: 350px
.global-search-card-wrapper
margin-top: 0
margin-bottom: 10px
.global-search-dueat-list-wrapper
max-width: 500px
margin-right: auto
margin-left: auto
.global-search-field-name
font-weight: bold
.global-search-context
display: inline-block
.global-search-context-separator
font-weight: bold
.global-search-context-list
margin-bottom: 0.7rem
.global-search-error-messages
color: darkred
.global-search-instructions
width: 40%
min-width: 400px
margin-right: auto
margin-left: auto
line-height: 150%
.global-search-query-input
width: 90% !important
margin-right: auto
margin-left: auto
.global-search-operator
font-family: Courier
.global-search-value
font-family: Courier
font-style: italic
code
color: white
background-color: grey
padding: 0.1rem !important
font-size: 0.7rem !important
+2 -12
View File
@@ -74,18 +74,8 @@ Template.userFormsLayout.helpers({
let name = lang.name;
if (lang.name === 'br') {
name = 'Brezhoneg';
} else if (lang.name === 'Español') {
name = 'español';
} else if (lang.name === 'Español de Argentina') {
name = 'español de Argentina';
} else if (lang.name === 'Español de Chile') {
name = 'español de Chile';
} else if (lang.name === 'Español de Colombia') {
name = 'español de Colombia';
} else if (lang.name === 'Español de México') {
name = 'español de México';
} else if (lang.name === 'Español de Puerto Rico') {
name = 'español de Puerto Rico';
} else if (lang.name === 'es-PY') {
name = 'Español de Paraguayo';
} else if (lang.name === 'fr-BE') {
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {
+87 -26
View File
@@ -1,31 +1,92 @@
template(name="myCardsHeaderBar")
h1
a.back-btn(href="{{pathFor 'home'}}")
i.fa.fa-chevron-left
| {{_ 'my-cards'}}
if currentUser
h1
//a.back-btn(href="{{pathFor 'home'}}")
// i.fa.fa-chevron-left
i.fa.fa-list
| {{_ 'my-cards'}}
.board-header-btns.left
a.board-header-btn.js-toggle-my-cards-choose-sort(title="{{_ 'myCardsSortChange-title'}}")
i.fa.fa-caret-down
if $eq myCardsSort 'board'
i.fa.fa-th-large
| {{_ 'myCardsSortChange-choice-board'}}
if $eq myCardsSort 'dueAt'
i.fa.fa-calendar
| {{_ 'myCardsSortChange-choice-dueat'}}
template(name="myCardsModalTitle")
h2
i.fa.fa-keyboard-o
| {{_ 'my-cards'}}
if currentUser
h2
i.fa.fa-keyboard-o
| {{_ 'my-cards'}}
template(name="myCards")
.wrapper
each board in cardsFind
.board-title
| {{_ 'board' }}:
+viewer
= board.title
each swimlane in board.swimlanes
.swimlane-title
| {{_ 'swimlane' }}:
+viewer
= swimlane.title
each list in swimlane.lists
.list-title
| {{_ 'list' }}:
+viewer
= list.title
each card in list.cards
a.minicard-wrapper.card-title(href="{{pathFor 'card' boardId=board.id slug=board.slug cardId=card._id }}")
+minicard(card)
if currentUser
if isPageReady.get
.wrapper
if $eq myCardsSort 'board'
each board in myCardsList
.my-cards-board-wrapper
.my-cards-board-title
+viewer
= board.title
each swimlane in board.mySwimlanes
.my-cards-swimlane-title(class="{{#if swimlane.colorClass}}{{ swimlane.colorClass }}{{else}}swimlane-default-color{{/if}}")
+viewer
= swimlane.title
each list in swimlane.myLists
.my-cards-list-wrapper
.my-cards-list-title(class=list.colorClass)
+viewer
= list.title
each card in list.myCards
.my-cards-card-wrapper
a.minicard-wrapper(href=card.absoluteUrl)
+minicard(card)
else
.my-cards-dueat-list-wrapper
each card in myDueCardsList
.my-cards-card-wrapper
a.minicard-wrapper.card-title(href=card.absoluteUrl)
+minicard(card)
ul.my-cards-context-list
li.my-cards-context(title="{{_ 'board'}}")
+viewer
= card.getBoard.title
li.my-cards-context.my-cards-context-separator
= ' '
| {{_ 'context-separator'}}
= ' '
li.my-cards-context(title="{{_ 'swimlane'}}")
+viewer
= card.getSwimlane.title
li.my-cards-context
= ' '
| {{_ 'context-separator'}}
= ' '
li.my-cards-context(title="{{_ 'list'}}")
+viewer
= card.getList.title
else
+spinner
template(name="myCardsSortChangePopup")
if currentUser
ul.pop-over-list
li
with "my-cards-sort-board"
a.js-my-cards-sort-board
i.fa.fa-th-large.colorful
| {{_ 'myCardsSortChange-choice-board'}}
if $eq Utils.myCardsSort "board"
i.fa.fa-check
hr
li
with "my-cards-sort-dueat"
a.js-my-cards-sort-dueat
i.fa.fa-calendar.colorful
| {{_ 'myCardsSortChange-choice-dueat'}}
if $eq Utils.myCardsSort "dueAt"
i.fa.fa-check
+165 -69
View File
@@ -1,22 +1,22 @@
const subManager = new SubsManager();
Meteor.subscribe('myCards');
Meteor.subscribe('mySwimlanes');
Meteor.subscribe('myLists');
Template.myCardsHeaderBar.events({
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
BlazeComponent.extendComponent({
myCardsSort() {
// eslint-disable-next-line no-console
// console.log('sort:', Utils.myCardsSort());
return Utils.myCardsSort();
},
});
Template.myCardsHeaderBar.helpers({
title() {
return FlowRouter.getRouteName() === 'home' ? 'my-boards' : 'public';
events() {
return [
{
'click .js-toggle-my-cards-choose-sort': Popup.open(
'myCardsSortChange',
),
},
];
},
templatesUser() {
return Meteor.user();
},
});
}).register('myCardsHeaderBar');
Template.myCards.helpers({
userId() {
@@ -24,13 +24,50 @@ Template.myCards.helpers({
},
});
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-my-cards-sort-board'() {
Utils.setMyCardsSort('board');
Popup.close();
},
'click .js-my-cards-sort-dueat'() {
Utils.setMyCardsSort('dueAt');
Popup.close();
},
},
];
},
}).register('myCardsSortChangePopup');
BlazeComponent.extendComponent({
onCreated() {
this.isPageReady = new ReactiveVar(false);
this.autorun(() => {
const handle = subManager.subscribe('myCards');
Tracker.nonreactive(() => {
Tracker.autorun(() => {
this.isPageReady.set(handle.ready());
});
});
});
Meteor.subscribe('setting');
// subManager.subscribe('myCards');
},
cardsFind() {
myCardsSort() {
// eslint-disable-next-line no-console
//console.log('sort:', Utils.myCardsSort());
return Utils.myCardsSort();
},
sortByBoard() {
return this.myCardsSort() === 'board';
},
myCardsList() {
const userId = Meteor.userId();
const boards = [];
let board = null;
@@ -39,8 +76,8 @@ BlazeComponent.extendComponent({
const cursor = Cards.find(
{
archived: false,
$or: [{ members: userId }, { assignees: userId }],
archived: false,
},
{
sort: {
@@ -51,8 +88,6 @@ BlazeComponent.extendComponent({
},
},
);
// eslint-disable-next-line no-console
// console.log('cursor:', cursor);
let newBoard = false;
let newSwimlane = false;
@@ -61,67 +96,50 @@ BlazeComponent.extendComponent({
cursor.forEach(card => {
// eslint-disable-next-line no-console
// console.log('card:', card.title);
if (list === null || list.id !== card.listId) {
if (list === null || card.listId !== list._id) {
// eslint-disable-next-line no-console
// console.log('new list');
let l = Lists.findOne(card.listId);
if (!l) {
l = {
_id: card.listId,
title: 'undefined list',
};
list = card.getList();
if (list.archived) {
list = null;
return;
}
// eslint-disable-next-line no-console
// console.log('list:', l);
list = {
id: l._id,
title: l.title,
cards: [card],
};
list.myCards = [card];
newList = true;
}
if (swimlane === null || card.swimlaneId !== swimlane.id) {
if (swimlane === null || card.swimlaneId !== swimlane._id) {
// eslint-disable-next-line no-console
// console.log('new swimlane');
let s = Swimlanes.findOne(card.swimlaneId);
if (!s) {
s = {
_id: card.swimlaneId,
title: 'undefined swimlane',
};
swimlane = card.getSwimlane();
if (swimlane.archived) {
swimlane = null;
return;
}
// eslint-disable-next-line no-console
// console.log('swimlane:', s);
swimlane = {
id: s._id,
title: s.title,
lists: [list],
};
swimlane.myLists = [list];
newSwimlane = true;
}
if (board === null || card.boardId !== board.id) {
if (board === null || card.boardId !== board._id) {
// eslint-disable-next-line no-console
// console.log('new board');
const b = Boards.findOne(card.boardId);
board = card.getBoard();
if (board.archived) {
board = null;
return;
}
// eslint-disable-next-line no-console
// console.log('board:', b, b._id, b.title);
board = {
id: b._id,
title: b.title,
slug: b.slug,
swimlanes: [swimlane],
};
board.mySwimlanes = [swimlane];
newBoard = true;
}
if (newBoard) {
boards.push(board);
} else if (newSwimlane) {
board.swimlanes.push(swimlane);
board.mySwimlanes.push(swimlane);
} else if (newList) {
swimlane.lists.push(list);
swimlane.myLists.push(list);
} else {
list.cards.push(card);
list.myCards.push(card);
}
newBoard = false;
@@ -129,25 +147,103 @@ BlazeComponent.extendComponent({
newList = false;
});
// sort the data structure
boards.forEach(board => {
board.mySwimlanes.forEach(swimlane => {
swimlane.myLists.forEach(list => {
list.myCards.sort((a, b) => {
return a.sort - b.sort;
});
});
swimlane.myLists.sort((a, b) => {
return a.sort - b.sort;
});
});
board.mySwimlanes.sort((a, b) => {
return a.sort - b.sort;
});
});
boards.sort((a, b) => {
let x = a.sort;
let y = b.sort;
// show the template board last
if (a.type === 'template-container') {
x = 99999999;
} else if (b.type === 'template-container') {
y = 99999999;
}
return x - y;
});
// eslint-disable-next-line no-console
// console.log('boards:', boards);
return boards;
},
myDueCardsList() {
const userId = Meteor.userId();
const cursor = Cards.find(
{
$or: [{ members: userId }, { assignees: userId }],
archived: false,
},
{
sort: {
dueAt: -1,
boardId: 1,
swimlaneId: 1,
listId: 1,
sort: 1,
},
},
);
// eslint-disable-next-line no-console
// console.log('cursor:', cursor);
const cards = [];
cursor.forEach(card => {
if (
!card.getBoard().archived &&
!card.getSwimlane().archived &&
!card.getList().archived
) {
cards.push(card);
}
});
cards.sort((a, b) => {
const x = a.dueAt === null ? Date('2100-12-31') : a.dueAt;
const y = b.dueAt === null ? Date('2100-12-31') : b.dueAt;
if (x > y) return 1;
else if (x < y) return -1;
return 0;
});
// eslint-disable-next-line no-console
// console.log('cursor:', cards);
return cards;
},
events() {
return [
{
'click .js-my-card'(evt) {
const card = this.currentData().card;
// eslint-disable-next-line no-console
console.log('currentData():', this.currentData());
// eslint-disable-next-line no-console
console.log('card:', card);
if (card) {
Utils.goCardId(card._id);
}
evt.preventDefault();
},
// 'click .js-my-card'(evt) {
// const card = this.currentData().card;
// // eslint-disable-next-line no-console
// console.log('currentData():', this.currentData());
// // eslint-disable-next-line no-console
// console.log('card:', card);
// if (card) {
// Utils.goCardId(card._id);
// }
// evt.preventDefault();
// },
},
];
},
+61 -32
View File
@@ -1,40 +1,69 @@
.my-cards-list
.my-cards-list-item
border-bottom: 1px solid darken(white, 25%)
padding: 10px 5px
.my-cards-board-wrapper
border-radius: 8px
//padding: 0.5rem
min-width: 400px
border-width: 8px
border-color: grey
border-style: solid
margin-bottom: 2rem
margin-right: auto
margin-left: auto
&:last-child
border-bottom: none
.my-cards-list-item-keys
margin-top: 5px
float: right
kbd
padding: 5px 8px
margin: 5px
font-size: 18px
.my-cards-list-item-action
font-size: 1.4em
margin: 5px
.board-title
.my-cards-board-title
font-size: 1.4rem
font-weight: bold
padding: 0.5rem
background-color: grey
color: white
.swimlane-title
font-size: 1.2rem
.my-cards-swimlane-title
font-size: 1.1rem
font-weight: bold
margin-left: 1em
margin-top: 10px
padding: 0.5rem
padding-bottom: 0.4rem
margin-top: 0
margin-bottom: 0.5rem
//border-top: black 1px solid
//border-bottom: black 1px solid
text-align: center
.list-title
margin-top: 5px
.swimlane-default-color
background-color: lightgrey
.my-cards-list-title
font-weight: bold
margin-left: 1.6rem
font-size: 1.1rem
//padding-bottom: 0
//margin-bottom: 0
text-align: center
margin-bottom: 0.7rem
.card-title
margin-top: 5px
margin-left: 1.8rem
max-width: 350px;
.my-cards-list-wrapper
margin: 1rem
border-radius: 5px
padding: 1.5rem
padding-top: 0.75rem
display: inline-block
min-width: 250px
max-width: 350px
.my-cards-card-wrapper
margin-top: 0
margin-bottom: 10px
.my-cards-dueat-list-wrapper
max-width: 500px
margin-right: auto
margin-left: auto
.my-cards-field-name
font-weight: bold
.my-cards-context
display: inline-block
.my-cards-context-separator
font-weight: bold
.my-cards-context-list
margin-bottom: 0.7rem
@@ -3,32 +3,32 @@ template(name="cardActions")
div.trigger-content
div.trigger-dropdown
select(id="setdate-action")
option(value="setDate") {{{_'r-set'}}}
option(value="updateDate") {{{_'r-update'}}}
option(value="setDate") {{_'r-set'}}
option(value="updateDate") {{_'r-update'}}
div.trigger-text
| {{{_'r-datefield'}}}
| {{_'r-datefield'}}
div.trigger-dropdown
select(id="setdate-datefield")
option(value="startAt") {{{_'r-df-start-at'}}}
option(value="dueAt") {{{_'r-df-due-at'}}}
option(value="endAt") {{{_'r-df-end-at'}}}
option(value="receivedAt") {{{_'r-df-received-at'}}}
option(value="startAt") {{_'r-df-start-at'}}
option(value="dueAt") {{_'r-df-due-at'}}
option(value="endAt") {{_'r-df-end-at'}}
option(value="receivedAt") {{_'r-df-received-at'}}
div.trigger-text
| {{{_'r-to-current-datetime'}}}
| {{_'r-to-current-datetime'}}
div.trigger-button.js-set-date-action.js-goto-rules
i.fa.fa-plus
div.trigger-item
div.trigger-content
div.trigger-text
| {{{_'r-remove-value-from'}}}
| {{{_'r-datefield'}}}
| {{_'r-remove-value-from'}}
| {{_'r-datefield'}}
div.trigger-dropdown
select(id="setdate-removedatefieldvalue")
option(value="startAt") {{{_'r-df-start-at'}}}
option(value="dueAt") {{{_'r-df-due-at'}}}
option(value="endAt") {{{_'r-df-end-at'}}}
option(value="receivedAt") {{{_'r-df-received-at'}}}
option(value="startAt") {{_'r-df-start-at'}}
option(value="dueAt") {{_'r-df-due-at'}}
option(value="endAt") {{_'r-df-end-at'}}
option(value="receivedAt") {{_'r-df-received-at'}}
div.trigger-button.js-remove-datevalue-action.js-goto-rules
i.fa.fa-plus
@@ -36,10 +36,10 @@ template(name="cardActions")
div.trigger-content
div.trigger-dropdown
select(id="label-action")
option(value="add") {{{_'r-add'}}}
option(value="remove") {{{_'r-remove'}}}
option(value="add") {{_'r-add'}}
option(value="remove") {{_'r-remove'}}
div.trigger-text
| {{{_'r-label'}}}
| {{_'r-label'}}
div.trigger-dropdown
select(id="label-id")
each labels
@@ -52,26 +52,26 @@ template(name="cardActions")
div.trigger-content
div.trigger-dropdown
select(id="member-action")
option(value="add") {{{_'r-add'}}}
option(value="remove") {{{_'r-remove'}}}
option(value="add") {{_'r-add'}}
option(value="remove") {{_'r-remove'}}
div.trigger-text
| {{{_'r-member'}}}
| {{_'r-member'}}
div.trigger-dropdown
input(id="member-name",type=text,placeholder="{{{_'r-name'}}}")
input(id="member-name",type=text,placeholder="{{_'r-name'}}")
div.trigger-button.js-add-member-action.js-goto-rules
i.fa.fa-plus
div.trigger-item
div.trigger-content
div.trigger-text
| {{{_'r-remove-all'}}}
| {{_'r-remove-all'}}
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'}}}
| {{_'r-set-color'}}
button.trigger-button.trigger-button-color.js-show-color-palette(
id="color-action"
class="card-details-{{cardColorButton}}")
@@ -3,12 +3,12 @@ template(name="checklistActions")
div.trigger-content
div.trigger-dropdown
select(id="check-action")
option(value="add") {{{_'r-add'}}}
option(value="remove") {{{_'r-remove'}}}
option(value="add") {{_'r-add'}}
option(value="remove") {{_'r-remove'}}
div.trigger-text
| {{{_'r-checklist'}}}
| {{_'r-checklist'}}
div.trigger-dropdown
input(id="checklist-name",type=text,placeholder="{{{_'r-name'}}}")
input(id="checklist-name",type=text,placeholder="{{_'r-name'}}")
div.trigger-button.js-add-checklist-action.js-goto-rules
i.fa.fa-plus
@@ -16,12 +16,12 @@ template(name="checklistActions")
div.trigger-content
div.trigger-dropdown
select(id="checkall-action")
option(value="check") {{{_'r-check-all'}}}
option(value="uncheck") {{{_'r-uncheck-all'}}}
option(value="check") {{_'r-check-all'}}
option(value="uncheck") {{_'r-uncheck-all'}}
div.trigger-text
| {{{_'r-items-check'}}}
| {{_'r-items-check'}}
div.trigger-dropdown
input(id="checklist-name2",type=text,placeholder="{{{_'r-name'}}}")
input(id="checklist-name2",type=text,placeholder="{{_'r-name'}}")
div.trigger-button.js-add-checkall-action.js-goto-rules
i.fa.fa-plus
@@ -30,36 +30,36 @@ template(name="checklistActions")
div.trigger-content
div.trigger-dropdown
select(id="check-item-action")
option(value="check") {{{_'r-check'}}}
option(value="uncheck") {{{_'r-uncheck'}}}
option(value="check") {{_'r-check'}}
option(value="uncheck") {{_'r-uncheck'}}
div.trigger-text
| {{{_'r-item'}}}
| {{_'r-item'}}
div.trigger-dropdown
input(id="checkitem-name",type=text,placeholder="{{{_'r-name'}}}")
input(id="checkitem-name",type=text,placeholder="{{_'r-name'}}")
div.trigger-text
| {{{_'r-of-checklist'}}}
| {{_'r-of-checklist'}}
div.trigger-dropdown
input(id="checklist-name3",type=text,placeholder="{{{_'r-name'}}}")
input(id="checklist-name3",type=text,placeholder="{{_'r-name'}}")
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'}}}
| {{_'r-add-checklist'}}
div.trigger-dropdown
input(id="checklist-name-3",type=text,placeholder="{{{_'r-name'}}}")
input(id="checklist-name-3",type=text,placeholder="{{_'r-name'}}")
div.trigger-text
| {{{_'r-with-items'}}}
| {{_'r-with-items'}}
div.trigger-dropdown
input(id="checklist-items",type=text,placeholder="{{{_'r-items-list'}}}")
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'}}}
| {{_'r-checklist-note'}}
+2 -2
View File
@@ -2,7 +2,7 @@ template(name="ruleDetails")
.rules
h2
i.fa.fa-magic
| {{{_ 'r-rule-details' }}}
| {{_ 'r-rule-details' }}
.triggers-content
.triggers-body
.triggers-main-body
@@ -21,4 +21,4 @@ template(name="ruleDetails")
div.rules-back
button.js-goback
i.fa.fa-chevron-left
| {{{_ 'back'}}}
| {{_ 'back'}}
+2 -2
View File
@@ -1,7 +1,7 @@
template(name="rulesActions")
h2
i.fa.fa-magic
| {{{_ 'r-rule' }}} "#{data.ruleName.get}" - {{{_ 'r-add-action'}}}
| {{_ 'r-rule' }} "#{data.ruleName.get}" - {{_ 'r-add-action'}}
.triggers-content
.triggers-body
.triggers-side-menu
@@ -26,4 +26,4 @@ template(name="rulesActions")
div.rules-back
button.js-goback
i.fa.fa-chevron-left
| {{{_ 'back'}}}
| {{_ 'back'}}
+9 -9
View File
@@ -2,7 +2,7 @@ template(name="rulesList")
.rules
h2
i.fa.fa-magic
| {{{_ 'r-board-rules' }}}
| {{_ 'r-board-rules' }}
ul.rules-list
each rules
@@ -12,26 +12,26 @@ template(name="rulesList")
div.rules-btns-group
button.js-goto-details
i.fa.fa-eye
| {{{_ 'r-view-rule'}}}
| {{_ 'r-view-rule'}}
if currentUser.isAdmin
button.js-delete-rule
i.fa.fa-trash-o
| {{{_ 'r-delete-rule'}}}
| {{_ 'r-delete-rule'}}
else if currentUser.isBoardAdmin
button.js-delete-rule
i.fa.fa-trash-o
| {{{_ 'r-delete-rule'}}}
| {{_ 'r-delete-rule'}}
else
li.no-items-message {{{_ 'r-no-rules' }}}
li.no-items-message {{_ 'r-no-rules' }}
if currentUser.isAdmin
div.rules-add
button.js-goto-trigger
i.fa.fa-plus
| {{{_ 'r-add-rule'}}}
input(type=text,placeholder="{{{_ 'r-new-rule-name' }}}",id="ruleTitle")
| {{_ 'r-add-rule'}}
input(type=text,placeholder="{{_ 'r-new-rule-name' }}",id="ruleTitle")
else if currentUser.isBoardAdmin
div.rules-add
button.js-goto-trigger
i.fa.fa-plus
| {{{_ 'r-add-rule'}}}
input(type=text,placeholder="{{{_ 'r-new-rule-name' }}}",id="ruleTitle")
| {{_ 'r-add-rule'}}
input(type=text,placeholder="{{_ 'r-new-rule-name' }}",id="ruleTitle")
+2 -2
View File
@@ -1,7 +1,7 @@
template(name="rulesTriggers")
h2
i.fa.fa-magic
| {{{_ 'r-rule' }}} "#{data.ruleName.get}" - {{{_ 'r-add-trigger'}}}
| {{_ 'r-rule' }} "#{data.ruleName.get}" - {{_ 'r-add-trigger'}}
.triggers-content
.triggers-body
.triggers-side-menu
@@ -22,4 +22,4 @@ template(name="rulesTriggers")
div.rules-back
button.js-goback
i.fa.fa-chevron-left
| {{{_ 'back'}}}
| {{_ 'back'}}
@@ -100,7 +100,7 @@ template(name="boardTriggers")
div.trigger-item
div.trigger-content
div.trigger-text
| {{{_'r-board-note'}}}
| {{_'r-board-note'}}
template(name="boardCardTitlePopup")
form
@@ -109,8 +109,3 @@ template(name="boardCardTitlePopup")
input.js-card-filter-name(type="text" value=title autofocus)
input.js-card-filter-button.primary.wide(type="submit" value="{{_ 'set-filter'}}")
+23 -70
View File
@@ -288,82 +288,35 @@ template(name="boardMenuPopup")
a.js-change-board-color
i.fa.fa-paint-brush
| {{_ 'board-change-color'}}
//-
XXX Language should be handled by sandstorm, but for now display a
language selection link in the board menu. This link is normally present
in the header bar that is not displayed on sandstorm.
if isSandstorm
hr
ul.pop-over-list
if withApi
li
a.js-change-language
i.fa.fa-flag
| {{_ 'language'}}
unless isSandstorm
hr
ul.pop-over-list
if withApi
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
if currentUser.isBoardAdmin
li
a.js-outgoing-webhooks
i.fa.fa-globe
| {{_ 'outgoing-webhooks'}}
li
a.js-card-settings
i.fa.fa-id-card-o
| {{_ 'card-settings'}}
li
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
unless currentBoard.isTemplatesBoard
if currentUser.isBoardAdmin
hr
ul.pop-over-list
li
a.js-archive-board
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-board'}}
if isSandstorm
hr
ul.pop-over-list
if currentUser.isMember
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
li
a.js-import-board
i.fa.fa-share-alt
i.fa.fa-sign-in
| {{_ 'import-board-c'}}
if currentUser.isBoardAdmin
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
if currentUser.isBoardAdmin
li
a.js-outgoing-webhooks
i.fa.fa-globe
| {{_ 'outgoing-webhooks'}}
li
a.js-card-settings
i.fa.fa-id-card-o
| {{_ 'card-settings'}}
li
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
unless currentBoard.isTemplatesBoard
if currentUser.isBoardAdmin
hr
ul.pop-over-list
li
a.js-archive-board
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-board'}}
li
a.js-outgoing-webhooks
i.fa.fa-globe
| {{_ 'outgoing-webhooks'}}
hr
ul.pop-over-list
li
a.js-card-settings
i.fa.fa-id-card-o
| {{_ 'card-settings'}}
hr
ul.pop-over-list
li
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
template(name="exportBoard")
ul.pop-over-list
+4 -4
View File
@@ -244,7 +244,7 @@ Template.boardMenuPopup.helpers({
},
exportFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.json`;
return `export-board-${boardId}.json`;
},
});
@@ -464,15 +464,15 @@ BlazeComponent.extendComponent({
},
exportJsonFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.json`;
return `export-board-${boardId}.json`;
},
exportCsvFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.csv`;
return `export-board-${boardId}.csv`;
},
exportTsvFilename() {
const boardId = Session.get('currentBoard');
return `wekan-export-board-${boardId}.tsv`;
return `export-board-${boardId}.tsv`;
},
}).register('exportBoardPopup');
@@ -1,5 +1,5 @@
template(name="swimlaneHeader")
.swimlane-header-wrap.js-swimlane-header(class='{{#if colorClass}}swimlane-{{colorClass}}{{/if}}')
.swimlane-header-wrap.js-swimlane-header(class=colorClass)
if this.isTemplateContainer
+swimlaneFixedHeader(this)
else
+1 -1
View File
@@ -1,5 +1,5 @@
template(name="userAvatar")
a.member.js-member(title="{{userData.profile.fullname}} ({{userData.username}})")
a.member.js-member(title="{{userData.profile.fullname}} ({{userData.username}}) {{_ memberType}}")
if userData.profile.avatarUrl
img.avatar.avatar-image(src="{{userData.profile.avatarUrl}}")
else
+16 -4
View File
@@ -17,6 +17,18 @@ template(name="memberMenuPopup")
a.js-my-cards(href="{{pathFor 'my-cards'}}")
i.fa.fa-list
| {{_ 'my-cards'}}
li
a.js-due-cards(href="{{pathFor 'due-cards'}}")
i.fa.fa-calendar
| {{_ 'dueCards-title'}}
li
a.js-global-search(href="{{pathFor 'global-search'}}")
i.fa.fa-search
| {{_ 'globalSearch-title'}}
li
a.js-broken-cards(href="{{pathFor 'broken-cards'}}")
i.fa.fa-chain-broken
| {{_ 'broken-cards'}}
li
a(href="{{pathFor 'home'}}")
span.fa.fa-home
@@ -58,10 +70,10 @@ template(name="memberMenuPopup")
a.js-change-password
i.fa.fa-key
| {{_ 'changePasswordPopup-title'}}
li
a.js-change-language
i.fa.fa-flag
| {{_ 'changeLanguagePopup-title'}}
li
a.js-change-language
i.fa.fa-flag
| {{_ 'changeLanguagePopup-title'}}
unless isSandstorm
hr
ul.pop-over-list
+19
View File
@@ -28,6 +28,9 @@ Template.memberMenuPopup.events({
'click .js-my-cards'() {
Popup.close();
},
'click .js-due-cards'() {
Popup.close();
},
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
@@ -167,6 +170,22 @@ Template.changeLanguagePopup.helpers({
name = 'Brezhoneg';
} else if (lang.name === 'ig') {
name = 'Igbo';
} else if (lang.name === 'Español') {
name = 'español';
} else if (lang.name === 'Español de Argentina') {
name = 'español de Argentina';
} else if (lang.name === 'Español de Chile') {
name = 'español de Chile';
} else if (lang.name === 'Español de Colombia') {
name = 'español de Colombia';
} else if (lang.name === 'Español de México') {
name = 'español de México';
} else if (lang.name === 'es-PY') {
name = 'español de Paraguayo';
} else if (lang.name === 'Español de Perú') {
name = 'español de Perú';
} else if (lang.name === 'Español de Puerto Rico') {
name = 'español de Puerto Rico';
} else if (lang.name === 'oc') {
name = 'Occitan';
} else if (lang.name === '繁体中文(台湾)') {
+50
View File
@@ -44,6 +44,56 @@ Utils = {
}
},
myCardsSort() {
let sort = window.localStorage.getItem('myCardsSort');
if (!sort || !['board', 'dueAt'].includes(sort)) {
window.localStorage.setItem('myCardsSort', 'board');
location.reload();
sort = 'board';
}
return sort;
},
myCardsSortToggle() {
if (this.myCardsSort() === 'board') {
this.setMyCardsSort('dueAt');
} else {
this.setMyCardsSort('board');
}
},
setMyCardsSort(sort) {
window.localStorage.setItem('myCardsSort', sort);
location.reload();
},
archivedBoardIds() {
const archivedBoards = [];
Boards.find({ archived: false }).forEach(board => {
archivedBoards.push(board._id);
});
return archivedBoards;
},
dueCardsView() {
let view = window.localStorage.getItem('dueCardsView');
if (!view || !['me', 'all'].includes(view)) {
window.localStorage.setItem('dueCardsView', 'me');
location.reload();
view = 'me';
}
return view;
},
setDueCardsView(view) {
window.localStorage.setItem('dueCardsView', view);
location.reload();
},
// XXX We should remove these two methods
goBoardId(_id) {
const board = Boards.findOne(_id);
+56 -10
View File
@@ -116,7 +116,60 @@ FlowRouter.route('/shortcuts', {
FlowRouter.route('/my-cards', {
name: 'my-cards',
action() {
const myCardsTemplate = 'myCards';
Filter.reset();
// EscapeActions.executeAll();
EscapeActions.executeUpTo('popup-close');
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
headerBar: 'myCardsHeaderBar',
content: 'myCards',
});
// }
},
});
FlowRouter.route('/due-cards', {
name: 'due-cards',
action() {
Filter.reset();
// EscapeActions.executeAll();
EscapeActions.executeUpTo('popup-close');
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
headerBar: 'dueCardsHeaderBar',
content: 'dueCards',
});
// }
},
});
FlowRouter.route('/global-search', {
name: 'global-search',
action() {
Filter.reset();
// EscapeActions.executeAll();
EscapeActions.executeUpTo('popup-close');
Utils.manageCustomUI();
Utils.manageMatomo();
BlazeLayout.render('defaultLayout', {
headerBar: 'globalSearchHeaderBar',
content: 'globalSearch',
});
},
});
FlowRouter.route('/broken-cards', {
name: 'broken-cards',
action() {
const brokenCardsTemplate = 'brokenCards';
Filter.reset();
// EscapeActions.executeAll();
@@ -125,17 +178,10 @@ FlowRouter.route('/my-cards', {
Utils.manageCustomUI();
Utils.manageMatomo();
// if (previousPath) {
// Modal.open(myCardsTemplate, {
// header: 'myCardsModalTitle',
// onCloseGoTo: previousPath,
// });
// } else {
BlazeLayout.render('defaultLayout', {
headerBar: 'myCardsHeaderBar',
content: myCardsTemplate,
headerBar: 'brokenCardsHeaderBar',
content: brokenCardsTemplate,
});
// }
},
});
+1 -1
View File
@@ -118,7 +118,7 @@ services:
image: quay.io/wekan/wekan
# b) Using specific version tag:
# image: quay.io/wekan/wekan:v4.52
# c) Docker Hub builds are broken with error ENOMEM https://hub.docker.com/r/wekanteam/wekan
# c) Docker Hub builds work https://hub.docker.com/r/wekanteam/wekan
# image: wekanteam/wekan
#-------------------------------------------------------------------------------------
container_name: wekan-app
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+33 -1
View File
@@ -852,5 +852,37 @@
"my-cards": "My Cards",
"card": "Card",
"list": "List",
"board": "Board"
"board": "Board",
"context-separator": "/",
"myCardsSortChange-title": "My Cards Sort",
"myCardsSortChangePopup-title": "My Cards Sort",
"myCardsSortChange-choice-board": "By Board",
"myCardsSortChange-choice-dueat": "By Due Date",
"dueCards-title": "Due Cards",
"dueCardsViewChange-title": "Due Cards View",
"dueCardsViewChangePopup-title": "Due Cards View",
"dueCardsViewChange-choice-me": "Me",
"dueCardsViewChange-choice-all": "All Users",
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
"broken-cards": "Broken Cards",
"board-title-not-found": "Board '%s' not found.",
"swimlane-title-not-found": "Swimlane '%s' not found.",
"list-title-not-found": "List '%s' not found.",
"user-username-not-found": "Username '%s' not found.",
"globalSearch-title": "Search All Boards",
"no-cards-found": "No Cards Found",
"one-card-found": "One Card Found",
"n-cards-found": "%s Cards Found",
"n-n-of-n-cards-found": "%s-%s of %s Cards Found",
"operator-board": "board",
"operator-board-abbrev": "b",
"operator-swimlane": "swimlane",
"operator-swimlane-abbrev": "s",
"operator-list": "list",
"operator-list-abbrev": "l",
"operator-label": "label",
"operator-label-abbrev": "#",
"operator-user": "user",
"operator-user-abbrev": "@",
"operator-is": "is"
}
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+888
View File
@@ -0,0 +1,888 @@
{
"accept": "Aceptar",
"act-activity-notify": "Notificación de actividad",
"act-addAttachment": "adjunto agregado __attachment__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-deleteAttachment": "adjunto eliminado __attachment__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addSubtask": "subtarea agregada __subtask__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addLabel": "Etiqueta agregada __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addedLabel": "Etiqueta agregada __label__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-removeLabel": "Etiqueta eliminada __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-removedLabel": "Etiqueta eliminada __label__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addChecklist": "lista de verificación agregada __checklist__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addChecklistItem": "elemento agregado __checklistItem__ a la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-removeChecklist": "lista de verificación eliminada __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-removeChecklistItem": "elemento eliminado __checklistItem__ de la lista de verificación __checkList__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-checkedItem": "elemento marcado __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-uncheckedItem": "elemento desmarcado __checklistItem__ de la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-completeChecklist": "lista de verificación completada __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-uncompleteChecklist": "lista de verificación no completada __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-addComment": "comentario en la tarjeta__card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-editComment": "comentario editado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-deleteComment": "comentario eliminado en la tarjeta __card__: __comment__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-createBoard": "tablero creado __board__",
"act-createSwimlane": "carril de flujo creado __swimlane__ en el tablero __board__",
"act-createCard": "tarjeta creada __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-createCustomField": "campo personalizado creado __customField__ en el tablero __board__",
"act-deleteCustomField": "campo personalizado eliminado __customField__ del tablero __board__",
"act-setCustomField": "campo personalizado editado __customField__: __customFieldValue__ en la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-createList": "la lista agregada __list__ al tablero __board__",
"act-addBoardMember": "miembro agregado __member__ al tablero __board__",
"act-archivedBoard": "El tablero __board__ se ha archivado",
"act-archivedCard": "La tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__ se ha archivado",
"act-archivedList": "La lista __list__ del carril __swimlane__ del tablero __board__ se ha archivado",
"act-archivedSwimlane": "El carril __swimlane__ del tablero __board__ se ha archivado",
"act-importBoard": "tablero importado __board__",
"act-importCard": "tarjeta importada __card__ a la lista __list__ del carrril __swimlane__ del tablero __board__",
"act-importList": "lista importada __list__ al carril __swimlane__ del tablero __board__",
"act-joinMember": "miembro agregado __member__ a la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-moveCard": "tarjeta movida __card__ del tablero __board__ de la lista __oldList__ del carril __oldSwimlane__ a la lista __list__ del carril __swimlane__",
"act-moveCardToOtherBoard": "tarjeta movida __card__ de la lista __oldList__ del carril __oldSwimlane__ del tablero __oldBoard__ a la lista __list__ del carril __swimlane__ del tablero __board__",
"act-removeBoardMember": "miembro eliminado __member__ del tablero __board__",
"act-restoredCard": "tarjeta restaurada __card__ a la lista __list__ del carril __swimlane__ del tablero __board__",
"act-unjoinMember": "miembro eliminado __member__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Acciones",
"activities": "Actividades",
"activity": "Actividad",
"activity-added": "ha agregado %s a %s",
"activity-archived": "%s archivado",
"activity-attached": "ha adjuntado %s de %s",
"activity-created": "ha creado %s",
"activity-customfield-created": "campo personalizado creado %s",
"activity-excluded": "ha excluido %s de %s",
"activity-imported": "ha importado %s a %s desde %s",
"activity-imported-board": "ha importado %s desde %s",
"activity-joined": "se ha unido %s",
"activity-moved": "ha movido %s de %s a %s",
"activity-on": "en %s",
"activity-removed": "ha eliminado %s de %s",
"activity-sent": "ha enviado %s a %s",
"activity-unjoined": "se ha desvinculado de %s",
"activity-subtask-added": "ha agregado la subtarea a %s",
"activity-checked-item": "marcado %s en la lista de verificación %s de %s",
"activity-unchecked-item": "desmarcado %s en lista de verificación %s de %s",
"activity-checklist-added": "ha agregado una lista de verificación a %s",
"activity-checklist-removed": "ha eliminado una lista de verificación de %s",
"activity-checklist-completed": "lista de verificación completada %s de %s",
"activity-checklist-uncompleted": "no completado la lista de verificación %s de %s",
"activity-checklist-item-added": "ha agregado el elemento de la lista de verificación a '%s' en %s",
"activity-checklist-item-removed": "elemento de la lista de verificación eliminado desde '%s' en %s",
"add": "Agregar",
"activity-checked-item-card": "marcado %s en la lista de verificación %s",
"activity-unchecked-item-card": "desmarcado %s en la lista de verificación %s",
"activity-checklist-completed-card": "lista de verificación completada __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
"activity-checklist-uncompleted-card": "no completó la lista de verificación %s",
"activity-editComment": "comentario editado %s",
"activity-deleteComment": "comentario eliminado %s",
"activity-receivedDate": "fecha de recepción editada para %s de %s",
"activity-startDate": "fecha de inicio editada a %s de %s",
"activity-dueDate": "fecha de vencimiento editada a %s de %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
"add-members": "Add Members",
"added": "Added",
"addMemberPopup-title": "Members",
"admin": "Admin",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"apply": "Apply",
"app-is-offline": "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": "Archive",
"archived-boards": "Boards in Archive",
"restore-board": "Restore Board",
"no-archived-boards": "No Boards in Archive.",
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
"attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (520KB max)",
"back": "Back",
"board-change-color": "Change color",
"board-nb-stars": "%s stars",
"board-not-found": "Board not found",
"board-private-info": "This board will be <strong>private</strong>.",
"board-public-info": "This board will be <strong>public</strong>.",
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Rename Board",
"boardChangeVisibilityPopup-title": "Change Visibility",
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Settings",
"boardChangeViewPopup-title": "Board View",
"boards": "Boards",
"board-view": "Board View",
"board-view-cal": "Calendar",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-gantt": "Gantt",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-comments-title": "This card has %s comment.",
"card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
"card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
"card-members-title": "Add or remove members of the board from the card.",
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
"cardCustomField-datePopup-title": "Change date",
"cardCustomFieldsPopup-title": "Edit custom fields",
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
"card-edit-voting": "Edit voting",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
"deleteVotePopup-title": "Delete vote?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
"cardMembersPopup-title": "Members",
"cardMorePopup-title": "More",
"cardTemplatePopup-title": "Create template",
"cards": "Cards",
"cards-count": "Cards",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"change": "Change",
"change-avatar": "Change Avatar",
"change-password": "Change Password",
"change-permissions": "Change permissions",
"change-settings": "Change Settings",
"changeAvatarPopup-title": "Change Avatar",
"changeLanguagePopup-title": "Change Language",
"changePasswordPopup-title": "Change Password",
"changePermissionsPopup-title": "Change Permissions",
"changeSettingsPopup-title": "Change Settings",
"subtasks": "Subtasks",
"checklists": "Checklists",
"click-to-star": "Click to star this board.",
"click-to-unstar": "Click to unstar this board.",
"clipboard": "Clipboard or drag & drop",
"close": "Close",
"close-board": "Close Board",
"close-board-pop": "You will be able to restore the board by clicking the “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",
"comment-only-desc": "Can comment on cards only.",
"no-comments": "No comments",
"no-comments-desc": "Can not see comments and activities.",
"worker": "Worker",
"worker-desc": "Can only move cards, assign itself to card and comment.",
"computer": "Computer",
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"linkCardPopup-title": "Link Card",
"searchElementPopup-title": "Search",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Create",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"current": "current",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"custom-field-checkbox": "Checkbox",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-date": "Date",
"custom-field-dropdown": "Dropdown List",
"custom-field-dropdown-none": "(none)",
"custom-field-dropdown-options": "List Options",
"custom-field-dropdown-options-placeholder": "Press enter to add more options",
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-number": "Number",
"custom-field-text": "Text",
"custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
"deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
"disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
"discard": "Discard",
"done": "Done",
"download": "Download",
"edit": "Edit",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
"email": "Email",
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
"email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
"email-resetPassword-subject": "Reset your password on __siteName__",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
"error-user-notCreated": "This user is not created",
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
"export-board-json": "Export board to JSON",
"export-board-csv": "Export board to CSV",
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "Name of the List",
"list-label-sort": "Your Manual Order",
"list-label-short-modifiedAt": "(L)",
"list-label-short-title": "(N)",
"list-label-short-sort": "(M)",
"filter": "Filter",
"filter-cards": "Filter Cards or Lists",
"list-filter-label": "Filter List by Title",
"filter-clear": "Clear filter",
"filter-labels-label": "Filter by label",
"filter-no-label": "No label",
"filter-member-label": "Filter by member",
"filter-no-member": "No member",
"filter-assignee-label": "Filter by assignee",
"filter-no-assignee": "No assignee",
"filter-custom-fields-label": "Filter by Custom Fields",
"filter-no-custom-fields": "No Custom Fields",
"filter-show-archive": "Show archived lists",
"filter-hide-empty": "Hide empty lists",
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
"filter-to-selection": "Filter to selection",
"other-filters-label": "Other Filters",
"advanced-filter-label": "Advanced Filter",
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. 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": "Full Name",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",
"headerBarCreateBoardPopup-title": "Create Board",
"home": "Home",
"import": "Import",
"impersonate-user": "Impersonate user",
"link": "Link",
"import-board": "import board",
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
"import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
"from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
"import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
"label-create": "Create Label",
"label-default": "%s label (default)",
"label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
"labels": "Labels",
"language": "Language",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Move all cards in this list to 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-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"set-color-list": "Set Color",
"listActionPopup-title": "List Actions",
"settingsUserPopup-title": "User Settings",
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
"listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"lists": "Lists",
"swimlanes": "Swimlanes",
"log-out": "Log Out",
"log-in": "Log In",
"loginPopup-title": "Log In",
"memberMenuPopup-title": "Member Settings",
"members": "Members",
"menu": "Menu",
"move-selection": "Move selection",
"moveCardPopup-title": "Move Card",
"moveCardToBottom-title": "Move to Bottom",
"moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Move selection",
"multi-selection": "Multi-Selection",
"multi-selection-label": "Set label for selection",
"multi-selection-member": "Set member for selection",
"multi-selection-on": "Multi-Selection is on",
"muted": "Muted",
"muted-info": "You will never be notified of any changes in this board",
"my-boards": "My Boards",
"name": "Name",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "No results",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
"not-accepted-yet": "Invitation not accepted yet",
"notify-participate": "Receive updates to any cards you participate as creater or member",
"notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
"optional": "optional",
"or": "or",
"page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.",
"page-not-found": "Page not found.",
"password": "Password",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
"participating": "Participating",
"preview": "Preview",
"previewAttachedImagePopup-title": "Preview",
"previewClipboardImagePopup-title": "Preview",
"private": "Private",
"private-desc": "This board is private. Only people added to the board can view and edit it.",
"profile": "Profile",
"public": "Public",
"public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"remove-cover": "Remove Cover",
"remove-from-board": "Remove from Board",
"remove-label": "Remove Label",
"listDeletePopup-title": "Delete List ?",
"remove-member": "Remove Member",
"remove-member-from-card": "Remove from Card",
"remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
"removeMemberPopup-title": "Remove Member?",
"rename": "Rename",
"rename-board": "Rename Board",
"restore": "Restore",
"save": "Save",
"search": "Search",
"rules": "Rules",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "Select Color",
"select-board": "Select Board",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
"shortcut-clear-filters": "Clear all filters",
"shortcut-close-dialog": "Close Dialog",
"shortcut-filter-my-cards": "Filter my cards",
"shortcut-show-shortcuts": "Bring up this shortcuts list",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
"show-cards-minimum-count": "Show cards count if list contains more than",
"sidebar-open": "Open Sidebar",
"sidebar-close": "Close Sidebar",
"signupPopup-title": "Create an Account",
"star-board-title": "Click to star this board. It will show up at top of your boards list.",
"starred-boards": "Starred Boards",
"starred-boards-description": "Starred boards show up at the top of your boards list.",
"subscribe": "Subscribe",
"team": "Team",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Upload an avatar",
"uploaded-avatar": "Uploaded an avatar",
"custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
"custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
"custom-login-logo-image-url": "Custom Login Logo Image URL",
"custom-login-logo-link-url": "Custom Login Logo Link URL",
"text-below-custom-login-logo": "Text below Custom Login Logo",
"username": "Username",
"view-it": "View it",
"warn-list-archived": "warning: this card is in an list at Archive",
"watch": "Watch",
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
"wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
"admin-panel": "Admin Panel",
"settings": "Settings",
"people": "People",
"registration": "Registration",
"disable-self-registration": "Disable Self-Registration",
"invite": "Invite",
"invite-people": "Invite People",
"to-boards": "To board(s)",
"email-addresses": "Email Addresses",
"smtp-host-description": "The address of the SMTP server that handles your emails.",
"smtp-port-description": "The port your SMTP server uses for outgoing emails.",
"smtp-tls-description": "Enable TLS support for SMTP server",
"smtp-host": "SMTP Host",
"smtp-port": "SMTP Port",
"smtp-username": "Username",
"smtp-password": "Password",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to 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": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Free Memory",
"OS_Loadavg": "OS Load Average",
"OS_Platform": "OS Platform",
"OS_Release": "OS Release",
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"days": "days",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"show-field-on-card": "Show this field on card",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change",
"accounts-allowUserNameChange": "Allow Username Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active",
"card-received": "Received",
"card-received-on": "Received on",
"card-end": "End",
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
"setCardColorPopup-title": "Set color",
"setCardActionsColorPopup-title": "Choose a color",
"setSwimlaneColorPopup-title": "Choose a color",
"setListColorPopup-title": "Choose a 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.",
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
"boardDeletePopup-title": "Delete Board?",
"delete-board": "Delete Board",
"default-subtasks-board": "Subtasks for __board__ board",
"default": "Default",
"queue": "Queue",
"subtask-settings": "Subtasks Settings",
"card-settings": "Card Settings",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
"boardCardSettingsPopup-title": "Card Settings",
"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",
"source-board": "Source board",
"no-parent": "Don't show parent",
"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-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"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-trigger": "Trigger",
"r-action": "Action",
"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",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-when-a-label-is": "When a label is",
"r-when-the-label": "When the label",
"r-list-name": "list name",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"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-checked": "Checked",
"r-unchecked": "Unchecked",
"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-card": "card",
"r-add": "Agregar",
"r-remove": "Remove",
"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",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-to": "to",
"r-of": "of",
"r-subject": "subject",
"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-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"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",
"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-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",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"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",
"error-undefined": "Something went wrong",
"error-ldap-login": "An error occurred while trying to login",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
"duplicate-board": "Duplicate Board",
"org-number": "The number of organizations is:",
"team-number": "The number of teams is:",
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
"a-dueAt": "modified due time to be",
"a-endAt": "modified ending time to be",
"a-startAt": "modified starting time to be",
"a-receivedAt": "modified received time to be",
"almostdue": "current due time %s is approaching",
"pastdue": "current due time %s is past",
"duenow": "current due time %s is today",
"act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
"act-withDue": "__list__/__card__ due reminders [__board__]",
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
"hide-minicard-label-text": "Hide minicard label text",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"new": "New",
"editOrgPopup-title": "Edit Organization",
"newOrgPopup-title": "New Organization",
"editTeamPopup-title": "Edit Team",
"newTeamPopup-title": "New Team",
"editUserPopup-title": "Edit User",
"newUserPopup-title": "New User",
"notifications": "Notifications",
"view-all": "View All",
"filter-by-unread": "Filter by Unread",
"mark-all-as-read": "Mark all as read",
"remove-all-read": "Remove all read",
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items",
"task": "Task",
"create-task": "Create Task",
"ok": "OK",
"organizations": "Organizations",
"teams": "Teams",
"displayName": "Display Name",
"shortName": "Short Name",
"website": "Website",
"person": "Person",
"my-cards": "My Cards",
"card": "Card",
"list": "List",
"board": "Board",
"context-separator": "/",
"myCardsSortChange-title": "My Cards Sort",
"myCardsSortChangePopup-title": "My Cards Sort",
"myCardsSortChange-choice-board": "By Board",
"myCardsSortChange-choice-dueat": "By Due Date",
"dueCards-title": "Due Cards",
"dueCardsViewChange-title": "Due Cards View",
"dueCardsViewChangePopup-title": "Due Cards View",
"dueCardsViewChange-choice-me": "Me",
"dueCardsViewChange-choice-all": "All Users",
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
"broken-cards": "Broken Cards",
"board-title-not-found": "Board '%s' not found.",
"swimlane-title-not-found": "Swimlane '%s' not found.",
"list-title-not-found": "List '%s' not found.",
"user-username-not-found": "Username '%s' not found.",
"globalSearch-title": "Search All Boards",
"no-cards-found": "No Cards Found",
"one-card-found": "One Card Found",
"n-cards-found": "%s Cards Found",
"n-n-of-n-cards-found": "%s-%s of %s Cards Found",
"operator-board": "board",
"operator-board-abbrev": "b",
"operator-swimlane": "swimlane",
"operator-swimlane-abbrev": "s",
"operator-list": "list",
"operator-list-abbrev": "l",
"operator-label": "label",
"operator-label-abbrev": "#",
"operator-user": "user",
"operator-user-abbrev": "@",
"operator-is": "is"
}
+887 -855
View File
File diff suppressed because it is too large. Load diff
+888
View File
@@ -0,0 +1,888 @@
{
"accept": "Accept",
"act-activity-notify": "Activity Notification",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncheckedItem": "unchecked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createBoard": "created board __board__",
"act-createSwimlane": "created swimlane __swimlane__ to board __board__",
"act-createCard": "created card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-createCustomField": "created custom field __customField__ at board __board__",
"act-deleteCustomField": "deleted custom field __customField__ at board __board__",
"act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createList": "added list __list__ to board __board__",
"act-addBoardMember": "added member __member__ to board __board__",
"act-archivedBoard": "Board __board__ moved to Archive",
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
"act-importBoard": "imported board __board__",
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-removeBoardMember": "removed member __member__ from board __board__",
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Actions",
"activities": "Activities",
"activity": "Activity",
"activity-added": "added %s to %s",
"activity-archived": "%s moved to Archive",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
"activity-customfield-created": "created custom field %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
"activity-joined": "joined %s",
"activity-moved": "moved %s from %s to %s",
"activity-on": "on %s",
"activity-removed": "removed %s from %s",
"activity-sent": "sent %s to %s",
"activity-unjoined": "unjoined %s",
"activity-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-checklist-added": "added checklist to %s",
"activity-checklist-removed": "removed a checklist from %s",
"activity-checklist-completed": "completed 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",
"add": "Add",
"activity-checked-item-card": "checked %s in checklist %s",
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
"add-members": "Add Members",
"added": "Added",
"addMemberPopup-title": "Members",
"admin": "Admin",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"apply": "Apply",
"app-is-offline": "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": "Archive",
"archived-boards": "Boards in Archive",
"restore-board": "Restore Board",
"no-archived-boards": "No Boards in Archive.",
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
"attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (520KB max)",
"back": "Back",
"board-change-color": "Change color",
"board-nb-stars": "%s stars",
"board-not-found": "Board not found",
"board-private-info": "This board will be <strong>private</strong>.",
"board-public-info": "This board will be <strong>public</strong>.",
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Rename Board",
"boardChangeVisibilityPopup-title": "Change Visibility",
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Settings",
"boardChangeViewPopup-title": "Board View",
"boards": "Boards",
"board-view": "Board View",
"board-view-cal": "Calendar",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-gantt": "Gantt",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-comments-title": "This card has %s comment.",
"card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
"card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-custom-fields": "Edit custom fields",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
"card-members-title": "Add or remove members of the board from the card.",
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
"cardCustomField-datePopup-title": "Change date",
"cardCustomFieldsPopup-title": "Edit custom fields",
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
"card-edit-voting": "Edit voting",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
"deleteVotePopup-title": "Delete vote?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Labels",
"cardMembersPopup-title": "Members",
"cardMorePopup-title": "More",
"cardTemplatePopup-title": "Create template",
"cards": "Cards",
"cards-count": "Cards",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"change": "Change",
"change-avatar": "Change Avatar",
"change-password": "Change Password",
"change-permissions": "Change permissions",
"change-settings": "Change Settings",
"changeAvatarPopup-title": "Change Avatar",
"changeLanguagePopup-title": "Change Language",
"changePasswordPopup-title": "Change Password",
"changePermissionsPopup-title": "Change Permissions",
"changeSettingsPopup-title": "Change Settings",
"subtasks": "Subtasks",
"checklists": "Checklists",
"click-to-star": "Click to star this board.",
"click-to-unstar": "Click to unstar this board.",
"clipboard": "Clipboard or drag & drop",
"close": "Close",
"close-board": "Close Board",
"close-board-pop": "You will be able to restore the board by clicking the “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",
"comment-only-desc": "Can comment on cards only.",
"no-comments": "No comments",
"no-comments-desc": "Can not see comments and activities.",
"worker": "Worker",
"worker-desc": "Can only move cards, assign itself to card and comment.",
"computer": "Computer",
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"linkCardPopup-title": "Link Card",
"searchElementPopup-title": "Search",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Create",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"current": "current",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"custom-field-checkbox": "Checkbox",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-date": "Date",
"custom-field-dropdown": "Dropdown List",
"custom-field-dropdown-none": "(none)",
"custom-field-dropdown-options": "List Options",
"custom-field-dropdown-options-placeholder": "Press enter to add more options",
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-number": "Number",
"custom-field-text": "Text",
"custom-fields": "Custom Fields",
"date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
"deleteCustomFieldPopup-title": "Delete Custom Field?",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
"disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
"discard": "Discard",
"done": "Done",
"download": "Download",
"edit": "Edit",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
"email": "Email",
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
"email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
"email-resetPassword-subject": "Reset your password on __siteName__",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
"error-user-notCreated": "This user is not created",
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
"export-board-json": "Export board to JSON",
"export-board-csv": "Export board to CSV",
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"exportBoardPopup-title": "Export board",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "Name of the List",
"list-label-sort": "Your Manual Order",
"list-label-short-modifiedAt": "(L)",
"list-label-short-title": "(N)",
"list-label-short-sort": "(M)",
"filter": "Filter",
"filter-cards": "Filter Cards or Lists",
"list-filter-label": "Filter List by Title",
"filter-clear": "Clear filter",
"filter-labels-label": "Filter by label",
"filter-no-label": "No label",
"filter-member-label": "Filter by member",
"filter-no-member": "No member",
"filter-assignee-label": "Filter by assignee",
"filter-no-assignee": "No assignee",
"filter-custom-fields-label": "Filter by Custom Fields",
"filter-no-custom-fields": "No Custom Fields",
"filter-show-archive": "Show archived lists",
"filter-hide-empty": "Hide empty lists",
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
"filter-to-selection": "Filter to selection",
"other-filters-label": "Other Filters",
"advanced-filter-label": "Advanced Filter",
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. 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": "Full Name",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",
"headerBarCreateBoardPopup-title": "Create Board",
"home": "Home",
"import": "Import",
"impersonate-user": "Impersonate user",
"link": "Link",
"import-board": "import board",
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from previous export",
"import-board-title-csv": "Import board from CSV/TSV",
"from-trello": "From Trello",
"from-wekan": "From previous export",
"from-csv": "From CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Paste your valid JSON data here",
"import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
"label-create": "Create Label",
"label-default": "%s label (default)",
"label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
"labels": "Labels",
"language": "Language",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Move all cards in this list to 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-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"set-color-list": "Set Color",
"listActionPopup-title": "List Actions",
"settingsUserPopup-title": "User Settings",
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import a Trello card",
"listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"lists": "Lists",
"swimlanes": "Swimlanes",
"log-out": "Log Out",
"log-in": "Log In",
"loginPopup-title": "Log In",
"memberMenuPopup-title": "Member Settings",
"members": "Members",
"menu": "Menu",
"move-selection": "Move selection",
"moveCardPopup-title": "Move Card",
"moveCardToBottom-title": "Move to Bottom",
"moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Move selection",
"multi-selection": "Multi-Selection",
"multi-selection-label": "Set label for selection",
"multi-selection-member": "Set member for selection",
"multi-selection-on": "Multi-Selection is on",
"muted": "Muted",
"muted-info": "You will never be notified of any changes in this board",
"my-boards": "My Boards",
"name": "Name",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "No results",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
"not-accepted-yet": "Invitation not accepted yet",
"notify-participate": "Receive updates to any cards you participate as creater or member",
"notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
"optional": "optional",
"or": "or",
"page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.",
"page-not-found": "Page not found.",
"password": "Password",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
"participating": "Participating",
"preview": "Preview",
"previewAttachedImagePopup-title": "Preview",
"previewClipboardImagePopup-title": "Preview",
"private": "Private",
"private-desc": "This board is private. Only people added to the board can view and edit it.",
"profile": "Profile",
"public": "Public",
"public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"remove-cover": "Remove Cover",
"remove-from-board": "Remove from Board",
"remove-label": "Remove Label",
"listDeletePopup-title": "Delete List ?",
"remove-member": "Remove Member",
"remove-member-from-card": "Remove from Card",
"remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
"removeMemberPopup-title": "Remove Member?",
"rename": "Rename",
"rename-board": "Rename Board",
"restore": "Restore",
"save": "Save",
"search": "Search",
"rules": "Rules",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "Select Color",
"select-board": "Select Board",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
"shortcut-clear-filters": "Clear all filters",
"shortcut-close-dialog": "Close Dialog",
"shortcut-filter-my-cards": "Filter my cards",
"shortcut-show-shortcuts": "Bring up this shortcuts list",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
"show-cards-minimum-count": "Show cards count if list contains more than",
"sidebar-open": "Open Sidebar",
"sidebar-close": "Close Sidebar",
"signupPopup-title": "Create an Account",
"star-board-title": "Click to star this board. It will show up at top of your boards list.",
"starred-boards": "Starred Boards",
"starred-boards-description": "Starred boards show up at the top of your boards list.",
"subscribe": "Subscribe",
"team": "Team",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Title",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"type": "Type",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Upload an avatar",
"uploaded-avatar": "Uploaded an avatar",
"custom-top-left-corner-logo-image-url": "Custom Top Left Corner Logo Image URL",
"custom-top-left-corner-logo-link-url": "Custom Top Left Corner Logo Link URL",
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
"custom-login-logo-image-url": "Custom Login Logo Image URL",
"custom-login-logo-link-url": "Custom Login Logo Link URL",
"text-below-custom-login-logo": "Text below Custom Login Logo",
"username": "Username",
"view-it": "View it",
"warn-list-archived": "warning: this card is in an list at Archive",
"watch": "Watch",
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
"wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
"admin-panel": "Admin Panel",
"settings": "Settings",
"people": "People",
"registration": "Registration",
"disable-self-registration": "Disable Self-Registration",
"invite": "Invite",
"invite-people": "Invite People",
"to-boards": "To board(s)",
"email-addresses": "Email Addresses",
"smtp-host-description": "The address of the SMTP server that handles your emails.",
"smtp-port-description": "The port your SMTP server uses for outgoing emails.",
"smtp-tls-description": "Enable TLS support for SMTP server",
"smtp-host": "SMTP Host",
"smtp-port": "SMTP Port",
"smtp-username": "Username",
"smtp-password": "Password",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to 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": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"boardCardTitlePopup-title": "Card Title Filter",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Free Memory",
"OS_Loadavg": "OS Load Average",
"OS_Platform": "OS Platform",
"OS_Release": "OS Release",
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"days": "days",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"show-field-on-card": "Show this field on card",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change",
"accounts-allowUserNameChange": "Allow Username Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active",
"card-received": "Received",
"card-received-on": "Received on",
"card-end": "End",
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
"setCardColorPopup-title": "Set color",
"setCardActionsColorPopup-title": "Choose a color",
"setSwimlaneColorPopup-title": "Choose a color",
"setListColorPopup-title": "Choose a 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.",
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
"boardDeletePopup-title": "Delete Board?",
"delete-board": "Delete Board",
"default-subtasks-board": "Subtasks for __board__ board",
"default": "Default",
"queue": "Queue",
"subtask-settings": "Subtasks Settings",
"card-settings": "Card Settings",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
"boardCardSettingsPopup-title": "Card Settings",
"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",
"source-board": "Source board",
"no-parent": "Don't show parent",
"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-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"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-trigger": "Trigger",
"r-action": "Action",
"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",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-when-a-label-is": "When a label is",
"r-when-the-label": "When the label",
"r-list-name": "list name",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"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-checked": "Checked",
"r-unchecked": "Unchecked",
"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-card": "card",
"r-add": "Add",
"r-remove": "Remove",
"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",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-to": "to",
"r-of": "of",
"r-subject": "subject",
"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-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"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",
"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-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",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"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",
"error-undefined": "Something went wrong",
"error-ldap-login": "An error occurred while trying to login",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
"duplicate-board": "Duplicate Board",
"org-number": "The number of organizations is:",
"team-number": "The number of teams is:",
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
"a-dueAt": "modified due time to be",
"a-endAt": "modified ending time to be",
"a-startAt": "modified starting time to be",
"a-receivedAt": "modified received time to be",
"almostdue": "current due time %s is approaching",
"pastdue": "current due time %s is past",
"duenow": "current due time %s is today",
"act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
"act-withDue": "__list__/__card__ due reminders [__board__]",
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
"hide-minicard-label-text": "Hide minicard label text",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"new": "New",
"editOrgPopup-title": "Edit Organization",
"newOrgPopup-title": "New Organization",
"editTeamPopup-title": "Edit Team",
"newTeamPopup-title": "New Team",
"editUserPopup-title": "Edit User",
"newUserPopup-title": "New User",
"notifications": "Notifications",
"view-all": "View All",
"filter-by-unread": "Filter by Unread",
"mark-all-as-read": "Mark all as read",
"remove-all-read": "Remove all read",
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items",
"task": "Task",
"create-task": "Create Task",
"ok": "OK",
"organizations": "Organizations",
"teams": "Teams",
"displayName": "Display Name",
"shortName": "Short Name",
"website": "Website",
"person": "Person",
"my-cards": "My Cards",
"card": "Card",
"list": "List",
"board": "Board",
"context-separator": "/",
"myCardsSortChange-title": "My Cards Sort",
"myCardsSortChangePopup-title": "My Cards Sort",
"myCardsSortChange-choice-board": "By Board",
"myCardsSortChange-choice-dueat": "By Due Date",
"dueCards-title": "Due Cards",
"dueCardsViewChange-title": "Due Cards View",
"dueCardsViewChangePopup-title": "Due Cards View",
"dueCardsViewChange-choice-me": "Me",
"dueCardsViewChange-choice-all": "All Users",
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
"broken-cards": "Broken Cards",
"board-title-not-found": "Board '%s' not found.",
"swimlane-title-not-found": "Swimlane '%s' not found.",
"list-title-not-found": "List '%s' not found.",
"user-username-not-found": "Username '%s' not found.",
"globalSearch-title": "Search All Boards",
"no-cards-found": "No Cards Found",
"one-card-found": "One Card Found",
"n-cards-found": "%s Cards Found",
"n-n-of-n-cards-found": "%s-%s of %s Cards Found",
"operator-board": "board",
"operator-board-abbrev": "b",
"operator-swimlane": "swimlane",
"operator-swimlane-abbrev": "s",
"operator-list": "list",
"operator-list-abbrev": "l",
"operator-label": "label",
"operator-label-abbrev": "#",
"operator-user": "user",
"operator-user-abbrev": "@",
"operator-is": "is"
}
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+95 -85
View File
@@ -1,45 +1,45 @@
{
"accept": "Godta",
"accept": "Godkjenn",
"act-activity-notify": "Aktivitetsvarsel",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addAttachment": "Lagt til vedlegg __subtask__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-deleteAttachment": "Slettet vedlegg __subtask__ fra kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addSubtask": "lagt til underoppgave __subtask__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncheckedItem": "ikke sjekket __checklistItem__ av sjekkliseten __checklist__ på kort __card__ i listen __list__ i svømmebane __swimlane__ på tavle __board__",
"act-completeChecklist": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-uncompleteChecklist": "uncompleted checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addComment": "commented on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-editComment": "edited comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteComment": "deleted comment on card __card__: __comment__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addLabel": "Lagt til etikett __label__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addedLabel": "Lagt til etikett __label__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-removeLabel": "Fjernet etikett __label__ fra kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-removedLabel": "Fjernet etikett __label__ fra kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addChecklist": "Lagt til sjekkliste __subtask__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addChecklistItem": "Lagt til sjekklistepunkt __checklistItem__ til sjekklisten __checklist__ på kort __card__ i listen __list__ i svømmebane __swimlane__ på tavle __board__",
"act-removeChecklist": "Fjernet sjekkliste __subtask__ fra kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-removeChecklistItem": "Fjernet sjekklistepunkt __checklistItem__ fra sjekklisten __checklist__ på kort __card__ i listen __list__ i svømmebane __swimlane__ på tavle __board__",
"act-checkedItem": "avmerket __checklistItem__ av sjekklisten __checklist__ på kort __card__ i listen __list__ i svømmebane __swimlane__ på tavle __board__",
"act-uncheckedItem": "fjernet avmerking __checklistItem__ av sjekklisten __checklist__ på kort __card__ i listen __list__ i svømmebane __swimlane__ på tavle __board__",
"act-completeChecklist": "Komplettert sjekkliste __checklist__ på kort __card__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-uncompleteChecklist": "Ikke komplettert sjekkliste __checklist__ på kort __card__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-addComment": "Kommentert på kort __card__: __comment__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-editComment": "Redigert på kort __card__: __comment__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-deleteComment": "Slettet kommentar på kort __card__: __comment__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-createBoard": "opprettet tavle __board__",
"act-createSwimlane": "opprettet svømmebane __swimlane__ på tavlen __board__",
"act-createCard": "opprettet kort __card__ til liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-createCustomField": "opprettet tilpasset felt __customField__ på tavlen __board__",
"act-deleteCustomField": "deleted custom field __customField__ at board __board__",
"act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createList": "added list __list__ to board __board__",
"act-addBoardMember": "added member __member__ to board __board__",
"act-deleteCustomField": "slettet tilpasset felt __customField__ på tavlen __board__",
"act-setCustomField": "Redigert tilpasset felt __customField__: __customFieldValue__ på kort __card__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-createList": "opprettet liste __list__ til tavlen __board__",
"act-addBoardMember": "Opprettet Medlem __member__ til tavlen __board__",
"act-archivedBoard": "Tavle __board__ flyttet til Arkiv",
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedList": "List __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
"act-archivedSwimlane": "Swimlane __swimlane__ at board __board__ moved to Archive",
"act-importBoard": "imported board __board__",
"act-importCard": "imported card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-importList": "imported list __list__ to swimlane __swimlane__ at board __board__",
"act-joinMember": "added member __member__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-moveCard": "moved card __card__ at board __board__ from list __oldList__ at swimlane __oldSwimlane__ to list __list__ at swimlane __swimlane__",
"act-moveCardToOtherBoard": "moved card __card__ from list __oldList__ at swimlane __oldSwimlane__ at board __oldBoard__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-removeBoardMember": "removed member __member__ from board __board__",
"act-restoredCard": "restored card __card__ to list __list__ at swimlane __swimlane__ at board __board__",
"act-unjoinMember": "removed member __member__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-archivedCard": "Kort __card__ på liste __list__ i svømmebane __swimlane__ på tavle __board__ flyttet til Arkiv",
"act-archivedList": "Liste __list__ i svømmebane __swimlane__ på tavle __board__ flyttet til arkiv",
"act-archivedSwimlane": "Svømmebane __swimlane__ på tavlen __board__ flyttet til Arkiv",
"act-importBoard": "importert tavle __board__",
"act-importCard": "importert kort __card__ til liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-importList": "importert liste __list__ til svømmebane __swimlane__ på tavle __board__",
"act-joinMember": "Lagt til Medlem __label__ til kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-moveCard": "flyttet kort __card__ på tavle __board__ fra liste __oldList__ i svømmebane __oldSwimlane__ til liste __list__ i svømmebane __swimlane__",
"act-moveCardToOtherBoard": "flyttet kort __card__ fra liste __oldList__ i svømmebane __oldSwimlane__ på tavle __oldBoard__ til liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-removeBoardMember": "Fjernet Medlem __member__ fra tavlen __board__",
"act-restoredCard": "Gjenopprettet kort __card__ til liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-unjoinMember": "Fjernet Medlem __label__ fra kort __card__ i liste __list__ i svømmebane __swimlane__ på tavle __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Aksjon",
@@ -71,7 +71,7 @@
"add": "Legg til",
"activity-checked-item-card": "sjekket %s i sjekkliste %s",
"activity-unchecked-item-card": "ikke sjekket %s i sjekkliste %s",
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"activity-checklist-completed-card": "Komplettert sjekkliste __checklist__ på kort __card__ på liste __list__ i svømmebane __swimlane__ på tavle __board__",
"activity-checklist-uncompleted-card": "ikke ferdigstilt sjekkliste %s",
"activity-editComment": "redigert kommentar %s",
"activity-deleteComment": "slettet kommentar %s",
@@ -93,7 +93,7 @@
"added": "Lagt til",
"addMemberPopup-title": "Medlemmer",
"admin": "Admin",
"admin-desc": "Kan se og redigere kort, fjerne medlemmer, og endre innstillingene for tavlen.",
"admin-desc": "Kan se og redigere kort, fjerne medlemmer og endre innstillingene for tavlen.",
"admin-announcement": "Kunngjøring",
"admin-announcement-active": "Aktiv systemkunngjøring",
"admin-announcement-title": "Kunngjøring fra Administrator",
@@ -101,7 +101,7 @@
"and-n-other-card": "Og __count__ andre kort",
"and-n-other-card_plural": "Og __count__ andre kort",
"apply": "Lagre",
"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": "Laster, vennligst vent. Oppdatering av siden vil forårsake datatap. Dersom oppdatering ikke hjelper, vennligst sjekk at servertjenesten ikke har stoppet opp.",
"archive": "Flytt til Arkiv",
"archive-all": "Flytt alt til Arkiv",
"archive-board": "Flytt Tavle til Arkiv",
@@ -117,7 +117,7 @@
"archives": "Arkiv",
"template": "Mal",
"templates": "Maler",
"assign-member": "Tildel medlem",
"assign-member": "Tildel Medlem",
"attached": "la ved",
"attachment": "Vedlegg",
"attachment-delete-pop": "Sletting av vedlegg er permanent og kan ikke angres",
@@ -160,7 +160,7 @@
"card-edit-labels": "Rediger etiketter",
"card-edit-members": "Endre medlemmer",
"card-labels-title": "Endre etiketter for kortet.",
"card-members-title": "Legg til eller fjern tavle-medlemmer fra dette kortet.",
"card-members-title": "Legg til eller fjern medlemmer på tavlen fra dette kortet.",
"card-start": "Start",
"card-start-on": "Starter på",
"cardAttachmentsPopup-title": "Legg ved fra",
@@ -171,7 +171,7 @@
"negativeVoteMembersPopup-title": "Motstandere",
"card-edit-voting": "Redigere avstemming",
"editVoteEndDatePopup-title": "Endre sluttdato avstemming",
"allowNonBoardMembers": "Tillat alle innloggede brukere",
"allowNonBoardMembers": "Tillat alle innloggede Brukere",
"vote-question": "Spørsmål avstemming",
"vote-public": "Se hvem som stemte på hva",
"vote-for-it": "for",
@@ -207,7 +207,7 @@
"clipboard": "Utklippstavle eller Dra og Slipp",
"close": "Lukk",
"close-board": "Lukk Tavle",
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"close-board-pop": "Du vil ha muligheten til å gjenopprette Tavle ved å klikke på \"Arkiv\"-knappen i hjem-menyen.",
"color-black": "svart",
"color-blue": "blå",
"color-crimson": "høyrød",
@@ -250,8 +250,8 @@
"searchElementPopup-title": "Søk",
"copyCardPopup-title": "Kopier Kort",
"copyChecklistToManyCardsPopup-title": "Kopier Sjekklistemal til mange Kort",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"copyChecklistToManyCardsPopup-instructions": "Mottakende korttitler og beskivelse i dette JSON-formatet",
"copyChecklistToManyCardsPopup-format": "[ {\"Tittel\": \"Tittel første kort\", \"Beskrivelse\":\"Beskrivelse første kort\"}, {\"Tittel\":\"Tittel andre kort\",\"Beskrivelse\":\"Beskrivelse andre kort\"},{\"Tittel\":\"Tittel siste kort\",\"Beskrivelse\":\"Beskrivelse siste kort\"} ]",
"create": "Opprett",
"createBoardPopup-title": "Opprett Tavle",
"chooseBoardSourcePopup-title": "Importer tavle",
@@ -280,7 +280,7 @@
"deleteLabelPopup-title": "Slett Etikett?",
"description": "Beskrivelse",
"disambiguateMultiLabelPopup-title": "Tvetydig Etikett-aksjon",
"disambiguateMultiMemberPopup-title": "Tvetydig Medlems-aksjon",
"disambiguateMultiMemberPopup-title": "Tvetydig aksjon av Medlem",
"discard": "Forkast",
"done": "Utført",
"download": "Last ned",
@@ -298,29 +298,29 @@
"editProfilePopup-title": "Endre profil",
"email": "E-post",
"email-enrollAccount-subject": "En brukerkonto er opprettet for deg på __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-enrollAccount-text": "Hei __user__,\n\nFor å ta i bruk tjenesten, klikk på linken under.\n\n__url__\n\nTakk.",
"email-fail": "Sending av epost feilet",
"email-fail-text": "Feil ved forsøk på sending av e-post",
"email-invalid": "Ugyldig e-post",
"email-invite": "Inviter via e-post",
"email-invite-subject": "__inviter__ sendte en invitasjon til deg",
"email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
"email-invite-text": "Hei __user__,\n\n__inviter__ inviterer det til å delta på Tavlen \"__board__\" for samhandling.\n\nVennligst følg lenken under:\n\n__url__\n\nTakk.",
"email-resetPassword-subject": "Resett passord på __siteName__",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-resetPassword-text": "Hei __user__,\n\nFor gjenoppretting av ditt passord, klikk på lenken under.\n\n__url__\n\nTakk.",
"email-sent": "E-post sendt",
"email-verifyEmail-subject": "Verifiser din e-postadresse på __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"email-verifyEmail-text": "Hei __user__,\n\nFor å verifisere e-postsdressen din, klikk på lenken under.\n\n__url__\n\nTakk.",
"enable-wip-limit": "Aktiver WIP-begrensning",
"error-board-doesNotExist": "Denne tavlen finnes ikke",
"error-board-notAdmin": "Du må være administrator for denne tavlen for å gjøre dette",
"error-board-notAMember": "Du må være medlem av denne tavlen for å gjøre dette",
"error-board-notAMember": "Du må være Medlem på denne tavlen for å gjøre dette",
"error-json-malformed": "Denne teksten er ikke gyldig JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
"error-json-schema": "Dine JSON-data inneholder ikke informasjon i korrekt format",
"error-csv-schema": "Dine CSV- (kommaseparerte verdier) / TSV-(Tab-separerte verdier) inneholder ikke informasjon i korrekt format",
"error-list-doesNotExist": "Denne listen finnes ikke",
"error-user-doesNotExist": "Brukeren eksisterer ikke",
"error-user-doesNotExist": "Denne Brukeren eksisterer ikke",
"error-user-notAllowSelf": "Du kan ikke invitere deg selv",
"error-user-notCreated": "Denne brukeren er ikke opprettet",
"error-user-notCreated": "Denne Brukeren er ikke opprettet",
"error-username-taken": "Brukernavn allerede i bruk",
"error-email-taken": "E-postadressen er allerede i bruk",
"export-board": "Eksporter tavle",
@@ -357,14 +357,14 @@
"filter-to-selection": "Filtrering til selektering",
"other-filters-label": "Andre filtre",
"advanced-filter-label": "Avanserte filter",
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. 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",
"advanced-filter-description": "Avansert filter tillater skriving av søkestrenger med følgende operatorer:\n== != <= >= && || ( ) der et mellomrom benyttes som separatorer mellom operatorer.\nDu kan filtrere på alle tilpassede felt ved å skrive navn og verdier, for eksempel: Felt1 == Verdi1. \nMerknad: Dersom felt eller verdier inneholder mellomrom må disse inkluderes innenfor fnuffer, for eksempel; 'Felt 1' == 'Verdi 1'.\nFor å utelate enkelte karakterer (' \\ /), kan du benytte \\. For eksempel: Field1 == I\\'m.\nI tillegg kan du kombinere forskjellige operatorer, for eksempel: F1 == V1 || F1 == V2.\nNormalt tolkes alle operatorene fra venstre til høyre. Du kan endre dette ved bruk av paranteser, for eksempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Videre kan du søke etter tekstfelt ved bruk av Regex, for eksempel: F1 == /Tes.*/i",
"fullname": "Fullt navn",
"header-logo-title": "Tilbake til dine tavler",
"hide-system-messages": "Skjul systemmeldinger",
"headerBarCreateBoardPopup-title": "Opprett Tavle",
"home": "Hjem",
"import": "Importer",
"impersonate-user": "Anonymiser bruker",
"impersonate-user": "Anonymiser Bruker",
"link": "Link",
"import-board": "Importer Tavle",
"import-board-c": "Importer Tavle",
@@ -374,17 +374,17 @@
"from-trello": "Fra Trello",
"from-wekan": "Fra tidligere eksport",
"from-csv": "Fra CSV/TSV",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-board-instruction-trello": "I din Trello-tavle, gå til 'Menu' -> 'More' -> 'Print og Eksporter' -> 'Eksport JSON' og kopier tekst fra eksport.",
"import-board-instruction-csv": "Lim inn kommaseparerte verdier (CSV) / tabulatorseparerte verdier (TSV).",
"import-board-instruction-wekan": "I Tavlen din, gå til 'Meny' -> 'Eksport Tavle' og kopier teksten fra den nedlastede filen.",
"import-board-instruction-about-errors": "Dersom du får feilmelding ved import av Tavle, vil importen noen ganger likevel være intakt og Tavlen finnes på 'Alle Tavler'-siden.",
"import-json-placeholder": "Lim inn gyldig JSON-datasett her",
"import-csv-placeholder": "Lim inn gyldig CSV/TSV-data her",
"import-map-members": "Tilknytt medlemmer",
"import-members-map": "Importert Tavle har medlemmer. Vennligst tilknytt medlemmer som skal importeres til dine brukere.",
"import-members-map": "Importert Tavle har medlemmer. Vennligst tilknytt medlemmer som skal importeres til dine Brukere.",
"import-show-user-mapping": "Gjennomgang tilknytning medlemmer",
"import-user-select": "Velg eksisterende bruker som skal tilknyttes dette medlemmet",
"importMapMembersAddPopup-title": "Velg medlem",
"import-user-select": "Velg eksisterende Bruker som skal tilknyttes dette Medlemmet",
"importMapMembersAddPopup-title": "Velg Medlem",
"info": "Versjon",
"initials": "Initialer",
"invalid-date": "Ugyldig dato",
@@ -416,14 +416,14 @@
"listImportCardsTsvPopup-title": "Importer Excel CSV/TSV",
"listMorePopup-title": "Mer",
"link-list": "Link til denne listen",
"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.",
"list-delete-pop": "Alle aksjoner vil fjernes fra aktivitetsstrømmen og du vil ikke kunne gjenopprette listen. Det finnes ingen angremulighet.",
"list-delete-suggest-archive": "Du kan flytte en liste til Arkiv for å fjerne den fra Tavlen og bevare aktivitetene.",
"lists": "Lister",
"swimlanes": "Svømmebaner",
"log-out": "Logg ut",
"log-in": "Logg inn",
"loginPopup-title": "Logg inn",
"memberMenuPopup-title": "Medlemsinnstillinger",
"memberMenuPopup-title": "Innstillinger Medlem",
"members": "Medlemmer",
"menu": "Meny",
"move-selection": "Flytt valgte",
@@ -433,7 +433,7 @@
"moveSelectionPopup-title": "Flytt valgte",
"multi-selection": "Velg flere",
"multi-selection-label": "Sett Etikett for valgte",
"multi-selection-member": "Sett medlem for valgte",
"multi-selection-member": "Sett Medlem for valgte",
"multi-selection-on": "Valg av flere er aktivert",
"muted": "Dempet",
"muted-info": "Du vil ikke bli varslet om endringer på denne Tavlen",
@@ -446,7 +446,7 @@
"normal": "Normal",
"normal-desc": "Kan se og redigere Kort. Kan ikke endre innstillinger.",
"not-accepted-yet": "Invitasjon foreløpig ikke akseptert",
"notify-participate": "Motta oppdateringer av alle kort du bidrar som oppretter eller medlem",
"notify-participate": "Motta oppdateringer på alle kort du bidrar til som Oppretter eller Medlem",
"notify-watch": "Motta oppdatering av alle tavler, lister eller kort som du overvåker",
"optional": "valgfritt",
"or": "eller",
@@ -470,7 +470,7 @@
"listDeletePopup-title": "Slett Liste?",
"remove-member": "Fjern Medlem",
"remove-member-from-card": "Fjern fra Kort",
"remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
"remove-member-pop": "Fjern __name__ (__username__) fra __boardTitle__? Medlemmet vil bli fjernet fra alle kort på denne tavlen. Varsel vil bli sendt til medlemmet.",
"removeMemberPopup-title": "Fjern Medlem?",
"rename": "Omdøp",
"rename-board": "Endre navn på tavlen",
@@ -513,9 +513,9 @@
"time": "Tid",
"title": "Tittel",
"tracking": "Sporing",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"tracking-info": "Du vil bli varslet om alle endringer på kortene du er du er involvert i som Oppretter eller Medlem.",
"type": "Type",
"unassign-member": "Fjern tildelt medlem",
"unassign-member": "Fjern tildelt Medlem",
"unsaved-description": "Beskrivelsen er ikke lagret.",
"unwatch": "Fjern overvåkning",
"upload": "Last opp",
@@ -565,7 +565,7 @@
"send-smtp-test": "Send en test e-post til deg selv",
"invitation-code": "Invitasjonskode",
"email-invite-register-subject": "__inviter__ sendte en invitasjon til deg",
"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-invite-register-text": "Hei __user__,\n\n__inviter__ har invitert deg til KanBan-tavlen for samarbeid.\n\nVennligst følg lenken under:\n__url__\n\nAktiveringskoden er: __icode__\n\nTakk.",
"email-smtp-test-subject": "SMTP test-e-post",
"email-smtp-test-text": "Vellykket sending av e-post",
"error-invitation-code-not-exist": "Invitasjonskode eksisterer ikke",
@@ -678,8 +678,8 @@
"r-when-a-label-is": "Når en etikett er",
"r-when-the-label": "Når en etikett",
"r-list-name": "list navn",
"r-when-a-member": "Når en medlem er",
"r-when-the-member": "Når medlemmet",
"r-when-a-member": "Når et Medlem er",
"r-when-the-member": "Når Medlemmet",
"r-name": "navn",
"r-when-a-attach": "Når et vedlegg",
"r-when-a-checklist": "Når en sjekkliste er",
@@ -700,7 +700,7 @@
"r-add": "Legg til",
"r-remove": "Fjern",
"r-label": "etikett",
"r-member": "medlem",
"r-member": "Medlem",
"r-remove-all": "Fjern alle medlemmer fra kortet",
"r-set-color": "Angi farge til",
"r-checklist": "sjekkliste",
@@ -731,8 +731,8 @@
"r-create-card": "Opprett nytt kort",
"r-in-list": "i liste",
"r-in-swimlane": "i svømmebane",
"r-d-add-member": "Legg til medlem",
"r-d-remove-member": "Fjern medlem",
"r-d-add-member": "Legg til Medlem",
"r-d-remove-member": "Fjern Medlem",
"r-d-remove-all-member": "Fjern alle medlemmer",
"r-d-check-all": "Merk alle oppgaver i listen",
"r-d-uncheck-all": "Fjern merking alle oppgaver i listen",
@@ -746,7 +746,7 @@
"r-with-items": "med oppgave",
"r-items-list": "oppgave1,oppgave2,oppgave3",
"r-add-swimlane": "Legg til svømmebane",
"r-swimlane-name": "Navn på Svømmebane",
"r-swimlane-name": "Navn Svømmebane",
"r-board-note": "Merk: La feltet stå tomt for å treffe alle mulige verdier.",
"r-checklist-note": "Merk: sjekklistens oppgaver må skrives som kommaseparerte verdier.",
"r-when-a-card-is-moved": "Når et kort flyttes til en annen liste",
@@ -783,10 +783,10 @@
"delete-all": "Slett alt",
"loading": "Laster pågår, vennligst vent.",
"previous_as": "siste tidspunkt var",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
"act-a-receivedAt": "modified received time to __timeValue__ from (__timeOldValue__)",
"act-a-dueAt": "Endret forfallstid til \nNår: __timeValue__\nHvor: __card__\nForrige forfallstid var __timeOldValue__",
"act-a-endAt": "Endret slutt-tid til __timeValue__ fra (__timeOldValue__)",
"act-a-startAt": "Endret start tid til __timeValue__ fra (__timeOldValue__)",
"act-a-receivedAt": "Endret mottatt-tid til __timeValue__ fra (__timeOldValue__)",
"a-dueAt": "redigert forfallstid til",
"a-endAt": "redigert slutt-tid til",
"a-startAt": "redigert starttid til",
@@ -796,9 +796,9 @@
"duenow": "Nåværende forfallstid %s er i dag",
"act-newDue": "__list__/__card__ har 1. forfallspåminnelse [__board__]",
"act-withDue": "__list__/__card__ forfallspåminnelse [__board__]",
"act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching",
"act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past",
"act-duenow": "was reminding the current due (__timeValue__) of __card__ is now",
"act-almostdue": "minnet om at nåværende forfallstid (__timeValue__) for __card__ nærmer seg",
"act-pastdue": "minnet om at nåværende forfallstid (__timeValue__) for __card__ er passert",
"act-duenow": "minnet om at nåværende forfallstid (__timeValue__) for __card__ er nå",
"act-atUserComment": "Du ble nevnt i [__board__] __list__/__card__",
"delete-user-confirm-popup": "Er du sikker på at du vil slette denne kontoen?",
"accounts-allowUserDelete": "Tillat brukere å slette egen konto",
@@ -852,5 +852,15 @@
"my-cards": "Mine Kort",
"card": "Kort",
"list": "Liste",
"board": "Tavle"
"board": "Tavle",
"context-separator": "/",
"myCardsSortChange-title": "Sortering mine Kort",
"myCardsSortChange-choice-board": "På Tavle",
"myCardsSortChange-choice-dueat": "På dato Varighet",
"dueCards-title": "Due Cards",
"dueCardsViewChange-title": "Due Cards View",
"dueCardsViewChange-choice-me": "Me",
"dueCardsViewChange-choice-all": "All Users",
"dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
"broken-cards": "Broken Cards"
}
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+33 -1
View File
@@ -852,5 +852,37 @@
"my-cards": "Мои карточки",
"card": "Карточка",
"list": "Список",
"board": "Доска"
"board": "Доска",
"context-separator": "/",
"myCardsSortChange-title": "Сортировать мои карточки",
"myCardsSortChangePopup-title": "Сортировать мои карточки",
"myCardsSortChange-choice-board": "По доскам",
"myCardsSortChange-choice-dueat": "По сроку выполнения",
"dueCards-title": "Карточки с установленным сроком",
"dueCardsViewChange-title": "Просмотр карточки с установленным сроком",
"dueCardsViewChangePopup-title": "Просмотр карточки с установленным сроком",
"dueCardsViewChange-choice-me": "Мне",
"dueCardsViewChange-choice-all": "Все пользователи",
"dueCardsViewChange-choice-all-description": "Показать все незавершенные карточки с установленным сроком с досок для которых у пользователя есть разрешения.",
"broken-cards": "Просроченные карточки",
"board-title-not-found": "Доска '%s' не найдена.",
"swimlane-title-not-found": "Дорожка '%s' не найдена.",
"list-title-not-found": "Список '%s' не найден.",
"user-username-not-found": "Имя пользователя '%s' не найдено.",
"globalSearch-title": "Искать на всех досках",
"no-cards-found": "Ни одной карточки не найдено",
"one-card-found": "Найдена одна карточка",
"n-cards-found": "Карточек найдено %s",
"n-n-of-n-cards-found": "Карточки %s - %s из %s найденных",
"operator-board": "доска",
"operator-board-abbrev": "д",
"operator-swimlane": "дорожка",
"operator-swimlane-abbrev": "дор.",
"operator-list": "список",
"operator-list-abbrev": "l",
"operator-label": "метку",
"operator-label-abbrev": "#",
"operator-user": "пользователь",
"operator-user-abbrev": "@",
"operator-is": " "
}
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
+887 -855
View File
File diff suppressed because it is too large. Load diff
Loaded 100 of 118 files, more files were not shown because too many files have changed in this diff. Show more