Browse Source

Merge branch 'master' of https://github.com/wekan/wekan into search

John R. Supplee 4 years ago
parent
commit
a647768368
86 changed files with 2878 additions and 409 deletions
  1. 1 1
      .meteor/packages
  2. 1 1
      .meteor/release
  3. 2 2
      .meteor/versions
  4. 64 0
      CHANGELOG.md
  5. 1 1
      Stackerfile.yml
  6. 41 0
      client/components/main/brokenCards.jade
  7. 28 0
      client/components/main/brokenCards.js
  8. 31 0
      client/components/main/brokenCards.styl
  9. 1 0
      client/components/main/dueCards.jade
  10. 7 7
      client/components/main/dueCards.js
  11. 4 1
      client/components/main/editor.js
  12. 2 12
      client/components/main/layouts.js
  13. 1 0
      client/components/main/myCards.jade
  14. 1 1
      client/components/main/myCards.js
  15. 4 4
      client/components/sidebar/sidebar.js
  16. 4 0
      client/components/users/userHeader.jade
  17. 16 0
      client/components/users/userHeader.js
  18. 19 1
      config/router.js
  19. 12 4
      i18n/ar.i18n.json
  20. 71 63
      i18n/bg.i18n.json
  21. 11 3
      i18n/br.i18n.json
  22. 11 3
      i18n/ca.i18n.json
  23. 11 3
      i18n/cs.i18n.json
  24. 11 3
      i18n/da.i18n.json
  25. 41 33
      i18n/de.i18n.json
  26. 40 32
      i18n/el.i18n.json
  27. 11 3
      i18n/en-GB.i18n.json
  28. 3 0
      i18n/en.i18n.json
  29. 11 3
      i18n/eo.i18n.json
  30. 11 3
      i18n/es-AR.i18n.json
  31. 11 3
      i18n/es-CL.i18n.json
  32. 868 0
      i18n/es-MX.i18n.json
  33. 26 18
      i18n/es-PE.i18n.json
  34. 868 0
      i18n/es-PY.i18n.json
  35. 11 3
      i18n/es.i18n.json
  36. 11 3
      i18n/eu.i18n.json
  37. 11 3
      i18n/fa.i18n.json
  38. 11 3
      i18n/fi.i18n.json
  39. 11 3
      i18n/fr.i18n.json
  40. 11 3
      i18n/gl.i18n.json
  41. 11 3
      i18n/he.i18n.json
  42. 11 3
      i18n/hi.i18n.json
  43. 11 3
      i18n/hr.i18n.json
  44. 11 3
      i18n/hu.i18n.json
  45. 11 3
      i18n/hy.i18n.json
  46. 11 3
      i18n/id.i18n.json
  47. 11 3
      i18n/ig.i18n.json
  48. 11 3
      i18n/it.i18n.json
  49. 11 3
      i18n/ja.i18n.json
  50. 11 3
      i18n/ka.i18n.json
  51. 11 3
      i18n/km.i18n.json
  52. 11 3
      i18n/ko.i18n.json
  53. 11 3
      i18n/lt.i18n.json
  54. 11 3
      i18n/lv.i18n.json
  55. 11 3
      i18n/mk.i18n.json
  56. 11 3
      i18n/mn.i18n.json
  57. 9 3
      i18n/nb.i18n.json
  58. 11 3
      i18n/nl.i18n.json
  59. 11 3
      i18n/oc.i18n.json
  60. 11 3
      i18n/pa.i18n.json
  61. 13 5
      i18n/pl.i18n.json
  62. 11 3
      i18n/pt-BR.i18n.json
  63. 11 3
      i18n/pt.i18n.json
  64. 11 3
      i18n/ro.i18n.json
  65. 11 3
      i18n/ru.i18n.json
  66. 11 3
      i18n/sk.i18n.json
  67. 11 3
      i18n/sl.i18n.json
  68. 11 3
      i18n/sr.i18n.json
  69. 11 3
      i18n/sv.i18n.json
  70. 11 3
      i18n/sw.i18n.json
  71. 11 3
      i18n/ta.i18n.json
  72. 11 3
      i18n/th.i18n.json
  73. 19 11
      i18n/tr.i18n.json
  74. 11 3
      i18n/uk.i18n.json
  75. 11 3
      i18n/vi.i18n.json
  76. 11 3
      i18n/zh-CN.i18n.json
  77. 11 3
      i18n/zh-HK.i18n.json
  78. 40 32
      i18n/zh-TW.i18n.json
  79. 1 1
      package-lock.json
  80. 1 1
      package.json
  81. 20 15
      packages/markdown/src/template-integration.js
  82. 2 2
      public/api/wekan.html
  83. 1 1
      public/api/wekan.yml
  84. 5 4
      releases/translations/pull-translations.sh
  85. 2 2
      sandstorm-pkgdef.capnp
  86. 80 7
      server/publications/cards.js

+ 1 - 1
.meteor/packages

@@ -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
.meteor/release

@@ -1 +1 @@
-METEOR@1.12
+METEOR@1.12.1

+ 2 - 2
.meteor/versions

@@ -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

+ 64 - 0
CHANGELOG.md

@@ -1,3 +1,67 @@
+# Upcoming 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:

+ 1 - 1
Stackerfile.yml

@@ -1,5 +1,5 @@
 appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v4.72.0"
+appVersion: "v4.75.0"
 files:
   userUploads:
     - README.md

+ 41 - 0
client/components/main/brokenCards.jade

@@ -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 - 0
client/components/main/brokenCards.js

@@ -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 - 0
client/components/main/brokenCards.styl

@@ -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

+ 1 - 0
client/components/main/dueCards.jade

@@ -56,6 +56,7 @@ template(name="dueCardsViewChangePopup")
           | {{_ 'dueCardsViewChange-choice-me'}}
           if $eq Utils.dueCardsView "me"
             i.fa.fa-check
+    hr
     li
       with "dueCardsViewChange-choice-all"
         a.js-due-cards-view-all

+ 7 - 7
client/components/main/dueCards.js

@@ -82,14 +82,14 @@ BlazeComponent.extendComponent({
     let selector = {
       archived: false,
     };
-    // if user is not an admin allow her to see cards only from public boards
+    // 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 } } },
-      ];
-    }
+    //if (!user.isAdmin) {
+    selector.$or = [
+      { permission: 'public' },
+      { members: { $elemMatch: { userId: user._id, isActive: true } } },
+    ];
+    //}
     Boards.find(selector).forEach(board => {
       permiitedBoards.push(board._id);
     });

+ 4 - 1
client/components/main/editor.js

@@ -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 {

+ 2 - 12
client/components/main/layouts.js

@@ -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') {

+ 1 - 0
client/components/main/myCards.jade

@@ -78,6 +78,7 @@ template(name="myCardsSortChangePopup")
           | {{_ '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

+ 1 - 1
client/components/main/myCards.js

@@ -59,7 +59,7 @@ BlazeComponent.extendComponent({
 
   myCardsSort() {
     // eslint-disable-next-line no-console
-    console.log('sort:', Utils.myCardsSort());
+    //console.log('sort:', Utils.myCardsSort());
     return Utils.myCardsSort();
   },
 

+ 4 - 4
client/components/sidebar/sidebar.js

@@ -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');
 

+ 4 - 0
client/components/users/userHeader.jade

@@ -21,6 +21,10 @@ template(name="memberMenuPopup")
         a.js-due-cards(href="{{pathFor 'due-cards'}}")
           i.fa.fa-calendar
           | {{_ 'dueCards-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

+ 16 - 0
client/components/users/userHeader.js

@@ -170,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 === '繁体中文(台湾)') {

+ 19 - 1
config/router.js

@@ -163,7 +163,25 @@ FlowRouter.route('/global-search', {
       headerBar: 'globalSearchHeaderBar',
       content: 'globalSearch',
     });
-    // }
+  },
+});
+
+FlowRouter.route('/broken-cards', {
+  name: 'broken-cards',
+  action() {
+    const brokenCardsTemplate = 'brokenCards';
+
+    Filter.reset();
+    // EscapeActions.executeAll();
+    EscapeActions.executeUpTo('popup-close');
+
+    Utils.manageCustomUI();
+    Utils.manageMatomo();
+
+    BlazeLayout.render('defaultLayout', {
+      headerBar: 'brokenCardsHeaderBar',
+      content: brokenCardsTemplate,
+    });
   },
 });
 

+ 12 - 4
i18n/ar.i18n.json

@@ -89,7 +89,7 @@
   "add-cover": "إضافة غلاف",
   "add-label": "إضافة ملصق",
   "add-list": "إضافة قائمة",
-  "add-members": "تعيين أعضاء",
+  "add-members": "إضافة أعضاء",
   "added": "أُضيف",
   "addMemberPopup-title": "الأعضاء",
   "admin": "المدير",
@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 71 - 63
i18n/bg.i18n.json

@@ -1,25 +1,25 @@
 {
   "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-activity-notify": "Известия за Активност",
+  "act-addAttachment": "добавен е прикачен файл __attachment__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-deleteAttachment": "изтрит е прикачен файл __attachment__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addSubtask": "добавена е под-задача __subtask__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addLabel": "Добавено е име __label__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addedLabel": "Добавено е име __label__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-removeLabel": "Премахнато е име __label__ от карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-removedLabel": "Премахнато е име __label__ от карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addChecklist": "добавен списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addChecklistItem": "добавен елемент от списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-removeChecklist": "премахнат елемент от списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-removeChecklistItem": "премахнат елемент __checklistItem__ от списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-checkedItem": "отметнат елемент __checklistItem__ от списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-uncheckedItem": "неотметнат е елемент __checklistItem__ от списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-completeChecklist": "изпълнен е списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-uncompleteChecklist": "неизпълнен списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
+  "act-addComment": "коментирано на карта __card__: __comment__ в списък __list__ от лента __swimlane__ към дъска __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-createBoard": "създадена е дъска __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__",
@@ -71,7 +71,7 @@
   "add": "Добави",
   "activity-checked-item-card": "отбеляза %s в чеклист %s",
   "activity-unchecked-item-card": "размаркира %s в чеклист %s",
-  "activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+  "activity-checklist-completed-card": "изпълнен е списък със задачи __checklist__ към карта __card__ в списък __list__ в лента __swimlane__ към дъска __board__",
   "activity-checklist-uncompleted-card": "\"отзавърши\" чеклистта %s",
   "activity-editComment": "edited comment %s",
   "activity-deleteComment": "deleted comment %s",
@@ -566,25 +566,25 @@
   "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-subject": "Тестов SMTP e-mail",
   "email-smtp-test-text": "Успешно изпратихте имейл",
-  "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)",
+  "error-invitation-code-not-exist": "Кода от покана не съществува",
+  "error-notAuthorized": "Нямате право да видите тази страница.",
+  "webhook-title": "Име на Webhook",
+  "webhook-token": "Жетон (незадължителен за идентификация)",
+  "outgoing-webhooks": "Изходящи Webhooks",
+  "bidirectional-webhooks": "Двупосочни Webhooks",
+  "outgoingWebhooksPopup-title": "Изходящи Webhooks",
+  "boardCardTitlePopup-title": "Филтър на Име на Карта",
+  "disable-webhook": "Изключи този Webhook",
+  "global-webhook": "Глобални Webhooks",
+  "new-outgoing-webhook": "Нов Изходящ Webhook",
+  "no-name": "(Непознат)",
   "Node_version": "Версия на Node",
-  "Meteor_version": "Meteor version",
-  "MongoDB_version": "MongoDB version",
-  "MongoDB_storage_engine": "MongoDB storage engine",
-  "MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
+  "Meteor_version": "Версия на Meteor",
+  "MongoDB_version": "Версия на MongoDB",
+  "MongoDB_storage_engine": "MongoDB енджин за данни",
+  "MongoDB_Oplog_enabled": "MongoDB Oplog включен",
   "OS_Arch": "Архитектура на ОС",
   "OS_Cpus": "Брой CPU ядра",
   "OS_Freemem": "Свободна памет",
@@ -599,13 +599,13 @@
   "minutes": "минути",
   "seconds": "секунди",
   "show-field-on-card": "Покажи това поле в картата",
-  "automatically-field-on-card": "Auto create field to all cards",
-  "showLabel-field-on-card": "Show field label on minicard",
+  "automatically-field-on-card": "Създай автоматично поле към всички карти",
+  "showLabel-field-on-card": "Покажи име на поле на мини-картата",
   "yes": "Да",
   "no": "Не",
   "accounts": "Профили",
   "accounts-allowEmailChange": "Разреши промяна на имейла",
-  "accounts-allowUserNameChange": "Allow Username Change",
+  "accounts-allowUserNameChange": "Позволи смяна на потребителско име",
   "createdAt": "Създаден на",
   "verified": "Потвърден",
   "active": "Активен",
@@ -615,33 +615,33 @@
   "card-end-on": "Завършена на",
   "editCardReceivedDatePopup-title": "Промени датата на получаване",
   "editCardEndDatePopup-title": "Промени датата на завършване",
-  "setCardColorPopup-title": "Set color",
-  "setCardActionsColorPopup-title": "Choose a color",
-  "setSwimlaneColorPopup-title": "Choose a color",
-  "setListColorPopup-title": "Choose a color",
+  "setCardColorPopup-title": "Задай цвят",
+  "setCardActionsColorPopup-title": "Избери цвят",
+  "setSwimlaneColorPopup-title": "Избери цвят",
+  "setListColorPopup-title": "Избери цвят",
   "assigned-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.",
+  "board-delete-notice": "Изтриването е перманентно. Ще загубите всички списъци, карти и действия асоциирани с тази дъска.",
+  "delete-board-confirm-popup": "Всички списъци, карти, имена и действия ще бъдат изтрити и няма да можете да възстановите съдържанието на дъската. Няма връщане назад.",
   "boardDeletePopup-title": "Изтриване на Таблото?",
   "delete-board": "Изтрий таблото",
   "default-subtasks-board": "Подзадачи за табло __board__",
   "default": "по подразбиране",
   "queue": "Опашка",
   "subtask-settings": "Настройки на Подзадачите",
-  "card-settings": "Card Settings",
+  "card-settings": "Настройки на Карта",
   "boardSubtaskSettingsPopup-title": "Настройки за Подзадачите за това Табло",
-  "boardCardSettingsPopup-title": "Card Settings",
-  "deposit-subtasks-board": "Deposit subtasks to this board:",
+  "boardCardSettingsPopup-title": "Настройки на Карта",
+  "deposit-subtasks-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",
+  "show-parent-in-minicard": "Покажи източника в мини-картата:",
+  "prefix-with-full-path": "Представка с пълен път",
+  "prefix-with-parent": "Представка с източник",
+  "subtext-with-full-path": "Под-текст с пълен път",
+  "subtext-with-parent": "Под-текст с източник",
   "change-card-parent": "Промени източника на картата",
   "parent-card": "Карта-източник",
-  "source-board": "Source board",
+  "source-board": "Дъска-източник",
   "no-parent": "Не показвай източника",
   "activity-added-label": "добави етикет '%s' към %s",
   "activity-removed-label": "премахна етикет '%s' от %s",
@@ -660,18 +660,18 @@
   "r-delete-rule": "Изтрий правилото",
   "r-new-rule-name": "Заглавие за новото правило",
   "r-no-rules": "Няма правила",
-  "r-trigger": "Trigger",
-  "r-action": "Action",
+  "r-trigger": "Добави спусък",
+  "r-action": "Действие",
   "r-when-a-card": "Когато карта",
   "r-is": "е",
   "r-is-moved": "преместена",
-  "r-added-to": "Added to",
+  "r-added-to": "Добавено към",
   "r-removed-from": "премахната от",
   "r-the-board": "таблото",
   "r-list": "списък",
-  "set-filter": "Set Filter",
-  "r-moved-to": "Moved to",
-  "r-moved-from": "Moved from",
+  "set-filter": "Задай филтър",
+  "r-moved-to": "Преместено в",
+  "r-moved-from": "Преместено от",
   "r-archived": "Преместено в Архива",
   "r-unarchived": "Възстановено от Архива",
   "r-a-card": "карта",
@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/br.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ca.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/cs.i18n.json

@@ -854,7 +854,15 @@
   "list": "Seznam",
   "board": "Tablo",
   "context-separator": "/",
-  "my-cards-sort": "Pořadí mých karet",
-  "my-cards-sort-board": "Podle tabla",
-  "my-cards-sort-dueat": "Podle termínu"
+  "myCardsSortChange-title": "Pořadí mých karet",
+  "myCardsSortChangePopup-title": "Pořadí mých karet",
+  "myCardsSortChange-choice-board": "Podle tabla",
+  "myCardsSortChange-choice-dueat": "Podle termínu",
+  "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"
 }

+ 11 - 3
i18n/da.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 41 - 33
i18n/de.i18n.json

@@ -73,12 +73,12 @@
   "activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt",
   "activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
   "activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s",
-  "activity-editComment": "editierte Kommentar",
-  "activity-deleteComment": "löschte Kommentar",
-  "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",
+  "activity-editComment": "editierte Kommentar %s",
+  "activity-deleteComment": "löschte Kommentar %s",
+  "activity-receivedDate": "hat Empfangsdatum zu %s geändert auf %s",
+  "activity-startDate": "hat Startdatum zu %s geändert auf %s",
+  "activity-dueDate": "hat Fälligkeitsdatum zu %s geändert auf %s",
+  "activity-endDate": "hat Enddatum zu %s geändert auf %s",
   "add-attachment": "Datei anhängen",
   "add-board": "neues Board",
   "add-card": "Karte hinzufügen",
@@ -124,7 +124,7 @@
   "attachmentDeletePopup-title": "Anhang löschen?",
   "attachments": "Anhänge",
   "auto-watch": "Neue Boards nach Erstellung automatisch beobachten",
-  "avatar-too-big": "The avatar is too large (520KB max)",
+  "avatar-too-big": "Das Profilbild ist zu groß (520KB max)",
   "back": "Zurück",
   "board-change-color": "Farbe ändern",
   "board-nb-stars": "%s Sterne",
@@ -364,7 +364,7 @@
   "headerBarCreateBoardPopup-title": "Board erstellen",
   "home": "Home",
   "import": "Importieren",
-  "impersonate-user": "Impersonate user",
+  "impersonate-user": "als Benutzer ausgeben",
   "link": "Verknüpfung",
   "import-board": "Board importieren",
   "import-board-c": "Board importieren",
@@ -479,9 +479,9 @@
   "search": "Suchen",
   "rules": "Regeln",
   "search-cards": "Suche nach Karten-/Listentiteln, Beschreibungen und personalisierten Feldern auf diesem Brett ",
-  "search-example": "Write text you search and press Enter",
+  "search-example": "Suchtext eingeben und Enter drücken",
   "select-color": "Farbe auswählen",
-  "select-board": "Select Board",
+  "select-board": "Board auswählen",
   "set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
   "setWipLimitPopup-title": "WIP-Limit setzen",
   "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
@@ -492,7 +492,7 @@
   "shortcut-filter-my-cards": "Meine Karten filtern",
   "shortcut-show-shortcuts": "Liste der Tastaturkürzel anzeigen",
   "shortcut-toggle-filterbar": "Filter-Seitenleiste ein-/ausblenden",
-  "shortcut-toggle-searchbar": "Toggle Search Sidebar",
+  "shortcut-toggle-searchbar": "Such-Seitenleiste ein-/ausblenden",
   "shortcut-toggle-sidebar": "Seitenleiste ein-/ausblenden",
   "show-cards-minimum-count": "Zeigt die Kartenanzahl an, wenn die Liste mehr enthält als",
   "sidebar-open": "Seitenleiste öffnen",
@@ -521,11 +521,11 @@
   "upload": "Upload",
   "upload-avatar": "Profilbild hochladen",
   "uploaded-avatar": "Profilbild hochgeladen",
-  "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",
+  "custom-top-left-corner-logo-image-url": "Benutzerdefiniertes Logo oben links Bild URL",
+  "custom-top-left-corner-logo-link-url": "Benutzerdefiniertes Logo oben links Link URL",
+  "custom-top-left-corner-logo-height": "Benutzerdefiniertes Logo oben links Höhe. Voreinstellung: 27",
+  "custom-login-logo-image-url": "Benutzerdefiniertes Login Logo Bild URL",
+  "custom-login-logo-link-url": "Benutzerdefiniertes Login Logo Link URL",
   "text-below-custom-login-logo": "Text unterhalb benutzerdefiniertem Login Logo",
   "username": "Benutzername",
   "view-it": "Ansehen",
@@ -774,8 +774,8 @@
   "display-authentication-method": "Anzeige Authentifizierungsverfahren",
   "default-authentication-method": "Standardauthentifizierungsverfahren",
   "duplicate-board": "Board duplizieren",
-  "org-number": "The number of organizations is:",
-  "team-number": "The number of teams is:",
+  "org-number": "Die Anzahl an Organisationen ist:",
+  "team-number": "Die Anzahl an Teams ist:",
   "people-number": "Anzahl der Personen:",
   "swimlaneDeletePopup-title": "Swimlane löschen?",
   "swimlane-delete-pop": "Alle Aktionen werden aus dem Aktivitätenfeed entfernt und die Swimlane kann nicht wiederhergestellt werden. Die Aktion kann nicht rückgängig gemacht werden.",
@@ -809,10 +809,10 @@
   "addmore-detail": "Eine detailliertere Beschreibung hinzufügen",
   "show-on-card": "Zeige auf Karte",
   "new": "Neu",
-  "editOrgPopup-title": "Edit Organization",
-  "newOrgPopup-title": "New Organization",
-  "editTeamPopup-title": "Edit Team",
-  "newTeamPopup-title": "New Team",
+  "editOrgPopup-title": "Organisation bearbeiten",
+  "newOrgPopup-title": "Neue Organisation",
+  "editTeamPopup-title": "Team bearbeiten",
+  "newTeamPopup-title": "Neues Team",
   "editUserPopup-title": "Benutzer ändern",
   "newUserPopup-title": "Neuer Benutzer",
   "notifications": "Benachrichtigungen",
@@ -840,21 +840,29 @@
   "delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.",
   "delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
   "hide-checked-items": "Erledigte ausblenden",
-  "task": "Task",
-  "create-task": "Create Task",
+  "task": "Aufgabe",
+  "create-task": "Aufgabe erstellen",
   "ok": "OK",
-  "organizations": "Organizations",
+  "organizations": "Organisationen",
   "teams": "Teams",
-  "displayName": "Display Name",
-  "shortName": "Short Name",
-  "website": "Website",
+  "displayName": "Anzeigename",
+  "shortName": "Kurzname",
+  "website": "Webseite",
   "person": "Person",
-  "my-cards": "My Cards",
+  "my-cards": "Meine Karten",
   "card": "Karte",
-  "list": "List",
+  "list": "Liste",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "myCardsSortChange-title": "Meine Karten Sortierung",
+  "myCardsSortChangePopup-title": "Meine Karten Sortierung",
+  "myCardsSortChange-choice-board": "nach Board",
+  "myCardsSortChange-choice-dueat": "nach Fälligkeitsdatum",
+  "dueCards-title": "Fällige Karten",
+  "dueCardsViewChange-title": "Fällige Karten Ansicht",
+  "dueCardsViewChangePopup-title": "Fällige Karten Ansicht",
+  "dueCardsViewChange-choice-me": "Ich",
+  "dueCardsViewChange-choice-all": "alle Benutzer",
+  "dueCardsViewChange-choice-all-description": "Zeigt alle unvollständigen Karten mit einem *Fälligkeits*-Datum auf Boards, für die der Benutzer Berechtigungen hat.",
+  "broken-cards": "Fehlerhafte Karten"
 }

+ 40 - 32
i18n/el.i18n.json

@@ -18,14 +18,14 @@
   "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-deleteComment": "διεγράφη σχόλιο στην κάρτα __card__: __comment__ στη λίστα __list__ στη λωρίδα __swimlane__ στον πίνακα __board__",
+  "act-createBoard": "δημιουργήθηκε ο πίνακας __board__",
+  "act-createSwimlane": "δημιουργήθηκε η λωρίδα __swimlane__ στον πίνακα __board__",
+  "act-createCard": "δημιουργήθηκε η κάρτα __card__ στη λίστα __list__ στη λωρίδα __swimlane__ στον πίνακα __board__",
+  "act-createCustomField": "δημιουργήθηκε το προσαρμοσμένο πεδίο __customField__ στον πίνακα __board__",
+  "act-deleteCustomField": "διεγράφη το προσαρμοσμένο πεδίο __customField__ στον πίνακα __board__",
+  "act-setCustomField": "υπέστη επεξεργασία η τιμή του προσαρμοσμένου πεδίου __customField__: __customFieldValue__ στην κάρτα __card__ στη λίστα __list__ στη λωρίδα __swimlane__ στον πίνακα __board__",
+  "act-createList": "προστέθηκε η λίστα __list__ στον πίνακα __board__",
   "act-addBoardMember": "προστέθηκε το μέλος __member__ στον πίνακα __board__",
   "act-archivedBoard": "Ο πίνακας __board__ μεταφέρθηκε στο Αρχείο",
   "act-archivedCard": "Η κάρτα __card__ στη λίστα __list__ στη λωρίδα __swimlane__ στον πίνακα __board__ μεταφέρθηκε στο Αρχείο",
@@ -69,8 +69,8 @@
   "activity-checklist-item-added": "προστέθηκε ένα στοιχείο λίστας ελέγου στη '%s' στο %s",
   "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
   "add": "Προσθήκη",
-  "activity-checked-item-card": "checked %s in checklist %s",
-  "activity-unchecked-item-card": "unchecked %s in checklist %s",
+  "activity-checked-item-card": "επιλέχθηκε το %s στη λίστα ελέγχου - checklist %s",
+  "activity-unchecked-item-card": "αποεπιλέχθηκε το %s στη λίστα ελέγχου - 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": "επεξεργασία σχολίου %s",
@@ -156,7 +156,7 @@
   "card-due-on": "Έως τις",
   "card-spent": "Δαπανηθείς Χρόνος",
   "card-edit-attachments": "Επεξεργασία συνημμένων",
-  "card-edit-custom-fields": "Edit custom fields",
+  "card-edit-custom-fields": "Επεξεργασία προσαρμοσμένων πεδίων",
   "card-edit-labels": "Επεξεργασία ετικετών",
   "card-edit-members": "Επεξεργασία μελών",
   "card-labels-title": "Αλλαγή ετικετών για την κάρτα.",
@@ -165,13 +165,13 @@
   "card-start-on": "Αρχίζει σε",
   "cardAttachmentsPopup-title": "Συνημμένο Από",
   "cardCustomField-datePopup-title": "Αλλαγή ημερομηνίας",
-  "cardCustomFieldsPopup-title": "Edit custom fields",
+  "cardCustomFieldsPopup-title": "Επεξεργασία προσαρμοσμένων πεδίων",
   "cardStartVotingPopup-title": "Έναρξη ψηφοφορίας",
   "positiveVoteMembersPopup-title": "Υποστηρικτές",
   "negativeVoteMembersPopup-title": "Αντιτιθέμενοι",
   "card-edit-voting": "Επεξεργασία ψηφοφορίας",
   "editVoteEndDatePopup-title": "Αλλαγή της ημερομηνίας λήξης ψηφοφορίας",
-  "allowNonBoardMembers": "Allow all logged in users",
+  "allowNonBoardMembers": "Επίτρεψε όλους τους συνδεδεμένους χρήστες",
   "vote-question": "Ερώτηση ψηφοφορίας",
   "vote-public": "Εμφάνισε ποιός ψήφισε τι",
   "vote-for-it": "για αυτό",
@@ -204,7 +204,7 @@
   "checklists": "Λίστες Ελέγχου - Checklists",
   "click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα",
   "click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα",
-  "clipboard": "Clipboard or drag & drop",
+  "clipboard": "Clipboard ή drag & drop",
   "close": "Κλείσιμο",
   "close-board": "Κλείσιμο Πίνακα",
   "close-board-pop": "Μελλοντικά μπορείτε να επαναφέρετε τον πίνακα κάνοντας κλικ στο κουμπί \"Αρχειοθέτηση\" από την αρχική επικεφαλίδα.  ",
@@ -264,19 +264,19 @@
   "custom-field-currency": "Νόμισμα",
   "custom-field-currency-option": "Κωδικός Νομίσματος",
   "custom-field-date": "Ημερομηνία",
-  "custom-field-dropdown": "Dropdown List",
-  "custom-field-dropdown-none": "(none)",
-  "custom-field-dropdown-options": "List Options",
-  "custom-field-dropdown-options-placeholder": "Press enter to add more options",
-  "custom-field-dropdown-unknown": "(unknown)",
+  "custom-field-dropdown": "Λίστα επιλογών",
+  "custom-field-dropdown-none": "(κανένα)",
+  "custom-field-dropdown-options": "Επιλογές Λίστας",
+  "custom-field-dropdown-options-placeholder": "Πιέστε enter για να προσθέσετε περισσότερες επιλογές",
+  "custom-field-dropdown-unknown": "(άγνωστο)",
   "custom-field-number": "Αριθμός",
   "custom-field-text": "Κείμενο",
-  "custom-fields": "Custom Fields",
+  "custom-fields": "Προσαρμοσμένα Πεδία",
   "date": "Ημερομηνία",
   "decline": "Απόρριψη",
   "default-avatar": "Default avatar",
   "delete": "Διαγραφή",
-  "deleteCustomFieldPopup-title": "Delete Custom Field?",
+  "deleteCustomFieldPopup-title": "Διαγραφή Προσαρμοσμένου Πεδίου;",
   "deleteLabelPopup-title": "Διαγραφή Ετικέτας;",
   "description": "Περιγραφή",
   "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
@@ -289,22 +289,22 @@
   "edit-profile": "Επεξεργασία Προφίλ",
   "edit-wip-limit": "Edit WIP Limit",
   "soft-wip-limit": "Soft WIP Limit",
-  "editCardStartDatePopup-title": "Change start date",
-  "editCardDueDatePopup-title": "Change due date",
+  "editCardStartDatePopup-title": "Αλλαγή ημερομηνίας έναρξης",
+  "editCardDueDatePopup-title": "Αλλαγή ημερομηνίας λήξης προθεσμίας",
   "editCustomFieldPopup-title": "Επεξεργασία Πεδίου",
-  "editCardSpentTimePopup-title": "Change spent time",
+  "editCardSpentTimePopup-title": "Αλλαγή δαπανηθέντος χρόνου",
   "editLabelPopup-title": "Αλλαγή Ετικέτας",
   "editNotificationPopup-title": "Επεξεργασία Ειδοποίησης",
   "editProfilePopup-title": "Επεξεργασία Προφίλ",
   "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-enrollAccount-subject": "Ένας λογαριασμός δημιουργήθηκε για εσάς στο __siteName__",
+  "email-enrollAccount-text": "Χαίρετε __user__,\n\nΓια να ξεκινήσετε να χρησιμοποιείτε αυτή την υπηρεσία, απλώς κάνετε κλικ στον παρακάτω σύνδεσμο.\n\n__url__\n\nΕυχαριστούμε.",
+  "email-fail": "Η αποστολή του email απέτυχε",
   "email-fail-text": "Σφάλμα κατά την αποστολή του email",
-  "email-invalid": "Invalid email",
+  "email-invalid": "Μη έγκυρο email",
   "email-invite": "Πρόσκληση μέσω Email",
   "email-invite-subject": "__inviter__ σας έστειλε μια πρόσκληση",
-  "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": "Αγαπητέ/ή __user__,\n\n__inviter__ σας προσκαλεί να λάβετε μέρος στον πίνακα \"__board__\" για να συνεργαστείτε.\n\nΠαρακαλούμε επιλέξτε τον παρακάτω σύνδεσμο:\n\n__url__\n\nΕυχαριστούμε.",
   "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",
@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/en-GB.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 3 - 0
i18n/en.i18n.json

@@ -855,13 +855,16 @@
   "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.",

+ 11 - 3
i18n/eo.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/es-AR.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/es-CL.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 868 - 0
i18n/es-MX.i18n.json

@@ -0,0 +1,868 @@
+{
+  "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"
+}

+ 26 - 18
i18n/es-PE.i18n.json

@@ -774,8 +774,8 @@
   "display-authentication-method": "Mostrar el método de autenticación",
   "default-authentication-method": "Método de autenticación por defecto",
   "duplicate-board": "Duplicar tablero",
-  "org-number": "The number of organizations is:",
-  "team-number": "The number of teams is:",
+  "org-number": "El número de organizaciones es:",
+  "team-number": "El número de equipos es:",
   "people-number": "El número de personas es:",
   "swimlaneDeletePopup-title": "¿Eliminar el carril «swimlane»?",
   "swimlane-delete-pop": "Todas las acciones serán eliminadas de la fuente de actividades y no se podrá recuperar el carril «swimlane». Esta acción no puede deshacerse.",
@@ -809,10 +809,10 @@
   "addmore-detail": "Agregar una descripción detallada",
   "show-on-card": "Mostrar en la tarjeta",
   "new": "Nuevo",
-  "editOrgPopup-title": "Edit Organization",
-  "newOrgPopup-title": "New Organization",
-  "editTeamPopup-title": "Edit Team",
-  "newTeamPopup-title": "New Team",
+  "editOrgPopup-title": "Editar organización",
+  "newOrgPopup-title": "Nueva organización",
+  "editTeamPopup-title": "Editar equipo",
+  "newTeamPopup-title": "Nuevo equipo",
   "editUserPopup-title": "Editar el usuario",
   "newUserPopup-title": "Nuevo usuario",
   "notifications": "Notificaciones",
@@ -843,18 +843,26 @@
   "task": "Tarea",
   "create-task": "Crear tarea",
   "ok": "OK",
-  "organizations": "Organizations",
-  "teams": "Teams",
-  "displayName": "Display Name",
-  "shortName": "Short Name",
-  "website": "Website",
-  "person": "Person",
-  "my-cards": "My Cards",
+  "organizations": "Organizaciones",
+  "teams": "Equipos",
+  "displayName": "Nombre para mostrar",
+  "shortName": "Nombre corto",
+  "website": "Sitio web",
+  "person": "Persona",
+  "my-cards": "Mis tarjetas",
   "card": "Tarjeta",
-  "list": "List",
-  "board": "Board",
+  "list": "Lista",
+  "board": "Tablero",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "myCardsSortChange-title": "Orden de mis tarjetas",
+  "myCardsSortChangePopup-title": "Orden de mis tarjetas",
+  "myCardsSortChange-choice-board": "Por tablero",
+  "myCardsSortChange-choice-dueat": "Por fecha de vencimiento",
+  "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"
 }

+ 868 - 0
i18n/es-PY.i18n.json

@@ -0,0 +1,868 @@
+{
+  "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"
+}

+ 11 - 3
i18n/es.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/eu.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/fa.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/fi.i18n.json

@@ -854,7 +854,15 @@
   "list": "Lista",
   "board": "Taulu",
   "context-separator": "/",
-  "my-cards-sort": "Korttini järjestys",
-  "my-cards-sort-board": "Taulun mukaan",
-  "my-cards-sort-dueat": "Eräpäivän mukaan"
+  "myCardsSortChange-title": "Korttini järjestys",
+  "myCardsSortChangePopup-title": "Korttini järjestys",
+  "myCardsSortChange-choice-board": "Taulun mukaan",
+  "myCardsSortChange-choice-dueat": "Eräpäivän mukaan",
+  "dueCards-title": "Eräpäivä kortit",
+  "dueCardsViewChange-title": "Eräpäivä kortit näkymä",
+  "dueCardsViewChangePopup-title": "Eräpäivä kortit näkymä",
+  "dueCardsViewChange-choice-me": "Minä",
+  "dueCardsViewChange-choice-all": "Kaikki käyttäjät",
+  "dueCardsViewChange-choice-all-description": "Näyttää kaikki keskeneräiset kortit joilla on *eräpäivä* tauluilta joihin käyttäjällä on oikeudet.",
+  "broken-cards": "Rikkinäiset kortit"
 }

+ 11 - 3
i18n/fr.i18n.json

@@ -854,7 +854,15 @@
   "list": "Liste",
   "board": "Tableau",
   "context-separator": "/",
-  "my-cards-sort": "Trier Mes Cartes",
-  "my-cards-sort-board": "Par tableau",
-  "my-cards-sort-dueat": "Par date d'échéance"
+  "myCardsSortChange-title": "Trier Mes Cartes",
+  "myCardsSortChangePopup-title": "Trier Mes Cartes",
+  "myCardsSortChange-choice-board": "Par tableau",
+  "myCardsSortChange-choice-dueat": "Par date d'échéance",
+  "dueCards-title": "Cartes Échues",
+  "dueCardsViewChange-title": "Vue des Cartes Échues",
+  "dueCardsViewChangePopup-title": "Vue des Cartes Échues",
+  "dueCardsViewChange-choice-me": "Moi",
+  "dueCardsViewChange-choice-all": "Tous les utilisateurs",
+  "dueCardsViewChange-choice-all-description": "Visualise toutes les cartes incomplètes avec une date *échue* pour lesquelles l'utilisateur possède les droits",
+  "broken-cards": "Cartes en erreur"
 }

+ 11 - 3
i18n/gl.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/he.i18n.json

@@ -854,7 +854,15 @@
   "list": "רשימה",
   "board": "לוח",
   "context-separator": "/",
-  "my-cards-sort": "סידור הכרטיסים שלי",
-  "my-cards-sort-board": "הלוח שלי",
-  "my-cards-sort-dueat": "לפי מועד סיום"
+  "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": "כרטיסים פגומים"
 }

+ 11 - 3
i18n/hi.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/hr.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/hu.i18n.json

@@ -854,7 +854,15 @@
   "list": "Lista",
   "board": "Tábla",
   "context-separator": "/",
-  "my-cards-sort": "Kártyáim rendezése",
-  "my-cards-sort-board": "Tábla szerint",
-  "my-cards-sort-dueat": "Határidő szerint"
+  "myCardsSortChange-title": "Kártyáim rendezése",
+  "myCardsSortChangePopup-title": "Kártyáim rendezése",
+  "myCardsSortChange-choice-board": "Tábla szerint",
+  "myCardsSortChange-choice-dueat": "Határidő szerint",
+  "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"
 }

+ 11 - 3
i18n/hy.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/id.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ig.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/it.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ja.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ka.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/km.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ko.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/lt.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/lv.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/mk.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/mn.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 9 - 3
i18n/nb.i18n.json

@@ -854,7 +854,13 @@
   "list": "Liste",
   "board": "Tavle",
   "context-separator": "/",
-  "my-cards-sort": "Sortering mine Kort",
-  "my-cards-sort-board": "På Tavle",
-  "my-cards-sort-dueat": "På dato Varighet"
+  "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"
 }

+ 11 - 3
i18n/nl.i18n.json

@@ -854,7 +854,15 @@
   "list": "Lijst",
   "board": "Bord",
   "context-separator": "/",
-  "my-cards-sort": "Mijn kaarten sortering",
-  "my-cards-sort-board": "Naar bord",
-  "my-cards-sort-dueat": "Naar vervaldatum"
+  "myCardsSortChange-title": "Mijn kaarten sortering",
+  "myCardsSortChangePopup-title": "Mijn kaarten sortering",
+  "myCardsSortChange-choice-board": "Naar bord",
+  "myCardsSortChange-choice-dueat": "Naar vervaldatum",
+  "dueCards-title": "Achterstallige kaarten",
+  "dueCardsViewChange-title": "Achterstallige kaart view",
+  "dueCardsViewChangePopup-title": "Achterstallige kaart view",
+  "dueCardsViewChange-choice-me": "Mij",
+  "dueCardsViewChange-choice-all": "Alle gebruikers",
+  "dueCardsViewChange-choice-all-description": "Toon incomplete kaarten met een *achterstallige* datum van borden waarvoor de gebruiker toegang heeft.",
+  "broken-cards": "Defecte kaarten"
 }

+ 11 - 3
i18n/oc.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/pa.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 13 - 5
i18n/pl.i18n.json

@@ -458,10 +458,10 @@
   "preview": "Podgląd",
   "previewAttachedImagePopup-title": "Podgląd",
   "previewClipboardImagePopup-title": "Podgląd",
-  "private": "Prywatny",
+  "private": "Prywatna",
   "private-desc": "Ta tablica jest prywatna. Tylko osoby dodane do tej tablicy mogą ją zobaczyć i edytować.",
   "profile": "Profil",
-  "public": "Publiczny",
+  "public": "Publiczna",
   "public-desc": "Ta tablica jest publiczna. Jest widoczna dla wszystkich, którzy mają do niej odnośnik i będzie wynikiem silników wyszukiwania takich jak Google. Tylko użytkownicy dodani do tablicy mogą ją edytować.",
   "quick-access-description": "Odznacz tablicę aby dodać skrót na tym pasku.",
   "remove-cover": "Usuń okładkę",
@@ -854,7 +854,15 @@
   "list": "Lista",
   "board": "Tablica",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "myCardsSortChange-title": "Moje karty sortuj",
+  "myCardsSortChangePopup-title": "Moje karty sortuj",
+  "myCardsSortChange-choice-board": "według tablic",
+  "myCardsSortChange-choice-dueat": "według terminów",
+  "dueCards-title": "Karty oczekujące",
+  "dueCardsViewChange-title": "Lista kart oczekujących",
+  "dueCardsViewChangePopup-title": "Lista kart oczekujących",
+  "dueCardsViewChange-choice-me": "Moje",
+  "dueCardsViewChange-choice-all": "Wszystkich użytkowników",
+  "dueCardsViewChange-choice-all-description": "Wyświetla wszystkie nieukończone karty z ustawioną datą wykonania ze wszystkich tablic, do których użytkownik ma dostęp.",
+  "broken-cards": "Karty wadliwe"
 }

+ 11 - 3
i18n/pt-BR.i18n.json

@@ -854,7 +854,15 @@
   "list": "Lista",
   "board": "Quadro",
   "context-separator": "/",
-  "my-cards-sort": "Ordenar Meus Cartões",
-  "my-cards-sort-board": "por Quadro",
-  "my-cards-sort-dueat": "Por Prazo Final"
+  "myCardsSortChange-title": "Ordenar Meus Cartões",
+  "myCardsSortChangePopup-title": "Ordenar Meus Cartões",
+  "myCardsSortChange-choice-board": "por Quadro",
+  "myCardsSortChange-choice-dueat": "Por Prazo Final",
+  "dueCards-title": "Cartões com prazo final",
+  "dueCardsViewChange-title": "Visão de Cartões com prazo final",
+  "dueCardsViewChangePopup-title": "Visão de Cartões com prazo final",
+  "dueCardsViewChange-choice-me": "Eu",
+  "dueCardsViewChange-choice-all": "Todos os usuários",
+  "dueCardsViewChange-choice-all-description": "Mostrar todos os cartões incompletos com *Prazo Final* nos quadros em que o usuário tem permissão",
+  "broken-cards": "Cartões quebrados"
 }

+ 11 - 3
i18n/pt.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ro.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ru.i18n.json

@@ -854,7 +854,15 @@
   "list": "Список",
   "board": "Доска",
   "context-separator": "/",
-  "my-cards-sort": "Сортировать мои карточки",
-  "my-cards-sort-board": "По доскам",
-  "my-cards-sort-dueat": "По сроку выполнения"
+  "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": "Просроченные карточки"
 }

+ 11 - 3
i18n/sk.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/sl.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/sr.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/sv.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/sw.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/ta.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/th.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 19 - 11
i18n/tr.i18n.json

@@ -481,7 +481,7 @@
   "search-cards": "Bu panodaki kart / liste başlıkları, açıklamalar ve özel alanlarda arama yapın",
   "search-example": "Aradığınız metni yazın ve Enter tuşuna basın",
   "select-color": "Renk Seç",
-  "select-board": "Select Board",
+  "select-board": "Panoyu Seçin",
   "set-wip-limit-value": "Bu listedeki en fazla öğe sayısı için bir sınır belirleyin",
   "setWipLimitPopup-title": "Devam Eden İş Sınırı Belirle",
   "shortcut-assign-self": "Kendini karta ata",
@@ -523,7 +523,7 @@
   "uploaded-avatar": "Avatar yüklendi",
   "custom-top-left-corner-logo-image-url": "Özel Sol Üst Köşe Logo Resmi URL'si",
   "custom-top-left-corner-logo-link-url": "Özel Sol Üst Köşe Logo Bağlantı URL'si",
-  "custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
+  "custom-top-left-corner-logo-height": "Özel Üst Sol Köşe Logo Yüksekliği. Varsayılan: 27",
   "custom-login-logo-image-url": "Özel Oturum Açma Logosu Resmi URL'si",
   "custom-login-logo-link-url": "Özel Oturum Açma Logosu Bağlantı URL'si",
   "text-below-custom-login-logo": "Özel Oturum Açma Logosunun altındaki metin",
@@ -710,7 +710,7 @@
   "r-check": "işaretle",
   "r-uncheck": "İşareti Kaldır",
   "r-item": "öge",
-  "r-of-checklist": "of checklist",
+  "r-of-checklist": "kontrol listesi",
   "r-send-email": "E-Posta Gönder",
   "r-to": "to",
   "r-of": "of",
@@ -738,7 +738,7 @@
   "r-d-uncheck-all": "Listedeki tüm öğelerin işaretini kaldır",
   "r-d-check-one": "Ögeyi kontrol et",
   "r-d-uncheck-one": "Öğenin işaretini kaldır",
-  "r-d-check-of-list": "of checklist",
+  "r-d-check-of-list": "kontrol listesi",
   "r-d-add-checklist": "Kontrol listesine ekle",
   "r-d-remove-checklist": "Kontrol listesini kaldır",
   "r-by": "tarafından",
@@ -847,14 +847,22 @@
   "teams": "Teams",
   "displayName": "Display Name",
   "shortName": "Short Name",
-  "website": "Website",
-  "person": "Person",
+  "website": "Web Site",
+  "person": "Kişi",
   "my-cards": "My Cards",
   "card": "Kart",
-  "list": "List",
-  "board": "Board",
+  "list": "Liste",
+  "board": "Pano",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "myCardsSortChange-title": "Kartlarımı Sırala",
+  "myCardsSortChangePopup-title": "Kartlarımı Sırala",
+  "myCardsSortChange-choice-board": "Pano Tarafından",
+  "myCardsSortChange-choice-dueat": "Son Tarihe Göre",
+  "dueCards-title": "Son Kartlar",
+  "dueCardsViewChange-title": "Son Kart Görünümü",
+  "dueCardsViewChangePopup-title": "Son Kart Görünümü",
+  "dueCardsViewChange-choice-me": "Ben mi",
+  "dueCardsViewChange-choice-all": "Tüm Kullanıcılar",
+  "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
+  "broken-cards": "Broken Cards"
 }

+ 11 - 3
i18n/uk.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/vi.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/zh-CN.i18n.json

@@ -854,7 +854,15 @@
   "list": "列表",
   "board": "看板",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 11 - 3
i18n/zh-HK.i18n.json

@@ -854,7 +854,15 @@
   "list": "List",
   "board": "Board",
   "context-separator": "/",
-  "my-cards-sort": "My Cards Sort",
-  "my-cards-sort-board": "By Board",
-  "my-cards-sort-dueat": "By Due Date"
+  "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"
 }

+ 40 - 32
i18n/zh-TW.i18n.json

@@ -64,8 +64,8 @@
   "activity-unchecked-item": "未勾選 %s  於清單 %s 共 %s",
   "activity-checklist-added": "已新增待辦清單 %s",
   "activity-checklist-removed": "已刪除%s的待辦清單",
-  "activity-checklist-completed": "已完成清單 %s 共 %s 項",
-  "activity-checklist-uncompleted": "未完成清單 %s 共 %s 項",
+  "activity-checklist-completed": "已完成待辦清單 %s 共 %s 項",
+  "activity-checklist-uncompleted": "未完成待辦清單 %s 共 %s 項",
   "activity-checklist-item-added": "新增待辦清單項目從 %s 到 %s",
   "activity-checklist-item-removed": "已從 '%s' 於 %s中 移除一個清單項",
   "add": "新增",
@@ -107,7 +107,7 @@
   "archive-board": "將看板封存",
   "archive-card": "將卡片封存",
   "archive-list": "將清單封存",
-  "archive-swimlane": "將泳道封存",
+  "archive-swimlane": "將泳道流程圖封存",
   "archive-selection": "將選擇封存",
   "archiveBoardPopup-title": "是否封存看板?",
   "archived-items": "封存",
@@ -169,15 +169,15 @@
   "cardStartVotingPopup-title": "建立投票",
   "positiveVoteMembersPopup-title": "支持",
   "negativeVoteMembersPopup-title": "反對",
-  "card-edit-voting": "Edit voting",
-  "editVoteEndDatePopup-title": "Change vote end date",
-  "allowNonBoardMembers": "Allow all logged in users",
+  "card-edit-voting": "編輯投票",
+  "editVoteEndDatePopup-title": "更改投票截止日期",
+  "allowNonBoardMembers": "允許所有已登入用戶",
   "vote-question": "投票題目",
-  "vote-public": "Show who voted what",
+  "vote-public": "記名投票",
   "vote-for-it": "同意",
   "vote-against": "反對",
-  "deleteVotePopup-title": "Delete vote?",
-  "vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
+  "deleteVotePopup-title": "刪除投票?",
+  "vote-delete-pop": "永久刪除是無法復原的,你將會失去這張卡片的所有相關操作記錄。",
   "cardDeletePopup-title": "徹底刪除卡片?",
   "cardDetailsActionsPopup-title": "卡片操作",
   "cardLabelsPopup-title": "標籤",
@@ -316,7 +316,7 @@
   "error-board-notAMember": "需要成為看板成員才能執行此操作",
   "error-json-malformed": "不是有效的 JSON",
   "error-json-schema": "JSON 資料沒有用正確的格式包含合適的資訊",
-  "error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format",
+  "error-csv-schema": "CSV(Comma Separated Values)或TSV (Tab Separated Values)資料沒有用正確的格式包含合適的資訊",
   "error-list-doesNotExist": "不存在此列表",
   "error-user-doesNotExist": "該使用者不存在",
   "error-user-notAllowSelf": "不允許對自己執行此操作",
@@ -324,10 +324,10 @@
   "error-username-taken": "這個使用者名稱已被使用",
   "error-email-taken": "Email 已被使用",
   "export-board": "匯出看板",
-  "export-board-json": "Export board to JSON",
-  "export-board-csv": "Export board to CSV",
-  "export-board-tsv": "Export board to TSV",
-  "export-board-html": "Export board to HTML",
+  "export-board-json": "匯出看板為JSON格式",
+  "export-board-csv": "匯出看板為CSV格式",
+  "export-board-tsv": "匯出看板為TSV格式\n ",
+  "export-board-html": "匯出看板為HTML格式\n ",
   "exportBoardPopup-title": "匯出看板",
   "sort": "排序",
   "sort-desc": "點選排序清單",
@@ -346,7 +346,7 @@
   "filter-no-label": "沒有標籤",
   "filter-member-label": "篩選: 成員",
   "filter-no-member": "沒有成員",
-  "filter-assignee-label": "篩選: 受讓人",
+  "filter-assignee-label": "篩選: 代理人",
   "filter-no-assignee": "沒有代理人",
   "filter-custom-fields-label": "篩選: 自訂欄位",
   "filter-no-custom-fields": "沒有自訂欄位",
@@ -370,16 +370,16 @@
   "import-board-c": "匯入看板",
   "import-board-title-trello": "匯入在 Trello 的看板",
   "import-board-title-wekan": "從上次的匯出檔匯入看板",
-  "import-board-title-csv": "Import board from CSV/TSV",
+  "import-board-title-csv": "從 CSV/TSV 匯入看板",
   "from-trello": "來自 Trello",
   "from-wekan": "從上次的匯出檔",
-  "from-csv": "From CSV/TSV",
+  "from-csv": "來自 CSV/TSV",
   "import-board-instruction-trello": "在你的Trello看板中,點選“功能表”,然後選擇“更多”,“列印與匯出”,“匯出為 JSON” 並拷貝結果文本",
-  "import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
+  "import-board-instruction-csv": "貼上你的 CSV(Comma Separated Values)/TSV(Tab Separated Values) 資料",
   "import-board-instruction-wekan": "在您的看板,點擊“選單”,然後“匯出看板”,複製下載文件中的文本。",
   "import-board-instruction-about-errors": "如果在匯入看板時出現錯誤,匯入工作可能仍然在進行中,並且看板已經出現在全部看板頁。",
   "import-json-placeholder": "貼上您有效的 JSON 資料至此",
-  "import-csv-placeholder": "Paste your valid CSV/TSV data here",
+  "import-csv-placeholder": "貼上您有效的 CSV/TSV 資料至此",
   "import-map-members": "複製成員",
   "import-members-map": "您匯入的看板有一些成員,請複製這些成員到您匯入的用戶。",
   "import-show-user-mapping": "核對複製的成員",
@@ -413,7 +413,7 @@
   "swimlaneActionPopup-title": "泳道動作",
   "swimlaneAddPopup-title": "在下面新增泳道",
   "listImportCardPopup-title": "匯入 Trello 卡片",
-  "listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
+  "listImportCardsTsvPopup-title": "匯入 Excel CSV/TSV",
   "listMorePopup-title": "更多",
   "link-list": "連結到這個清單",
   "list-delete-pop": "所有的動作都將從活動動態中被移除且您將無法再開啟該清單\b。此操作無法復原。",
@@ -665,7 +665,7 @@
   "r-when-a-card": "當一張卡片",
   "r-is": "是",
   "r-is-moved": "已經移動",
-  "r-added-to": "Added to",
+  "r-added-to": "新增至",
   "r-removed-from": "已移除",
   "r-the-board": "該看板",
   "r-list": "清單",
@@ -713,7 +713,7 @@
   "r-of-checklist": "清單的",
   "r-send-email": "寄送郵件",
   "r-to": "收件人",
-  "r-of": "of",
+  "r-of": "",
   "r-subject": "主旨",
   "r-rule-details": "詳細規則",
   "r-d-move-to-top-gen": "將卡片移到所屬清單頂部",
@@ -794,12 +794,12 @@
   "almostdue": "當前到期時間%s即將到來",
   "pastdue": "當前到期時間%s已過",
   "duenow": "當前到期時間%s為今天",
-  "act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
-  "act-withDue": "__list__/__card__ due reminders [__board__]",
+  "act-newDue": "__list__/__card__ 包含第1個到期提醒 [__board__]",
+  "act-withDue": "__list__/__card__ 到期提醒 [__board__]",
   "act-almostdue": "__card__ 的當前到期提醒(__timeValue__) 正在接近",
   "act-pastdue": "__card__ 的當前到期提醒(__timeValue__) 已經過去了",
   "act-duenow": "__card__ 的當前到期提醒(__timeValue__) 現在到期",
-  "act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
+  "act-atUserComment": "你在 [__board__] __list__/__card__ 被提到",
   "delete-user-confirm-popup": "確定要刪除此帳戶嗎?此操作無法還原。",
   "accounts-allowUserDelete": "允許用戶自行刪除其帳戶",
   "hide-minicard-label-text": "隱藏迷你卡片標籤內文",
@@ -831,14 +831,14 @@
   "saturday": "週六",
   "sunday": "週日",
   "status": "狀態",
-  "swimlane": "Swimlane",
+  "swimlane": "泳道流程圖",
   "owner": "擁有者",
   "last-modified-at": "最後修改時間",
   "last-activity": "最後活動",
   "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",
+  "archived": "封存",
+  "delete-linked-card-before-this-card": "在刪除指向此卡片的鏈結卡之前,您不能刪除此卡片",
+  "delete-linked-cards-before-this-list": "在刪除指向該清單中卡片的鏈結卡之前,您不能刪除此清單",
   "hide-checked-items": "隱藏已勾選項目",
   "task": "任務",
   "create-task": "建立任務",
@@ -854,7 +854,15 @@
   "list": "清單",
   "board": "看板",
   "context-separator": "/",
-  "my-cards-sort": "我的卡片排序",
-  "my-cards-sort-board": "依看板",
-  "my-cards-sort-dueat": "依到期日"
+  "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": "損毀卡片"
 }

+ 1 - 1
package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v4.72.0",
+  "version": "v4.75.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v4.72.0",
+  "version": "v4.75.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

+ 20 - 15
packages/markdown/src/template-integration.js

@@ -2,8 +2,8 @@ import sanitizeXss from 'xss';
 var Markdown = require('markdown-it')({
   html: true,
   linkify: true,
-	typographer: true,
-	breaks: true,
+  typographer: true,
+  breaks: true,
 });
 
 // Additional  safeAttrValue function to allow for other specific protocols
@@ -13,7 +13,12 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
   // then use your custom function
   if (tag === 'a' && name === 'href') {
     // only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
-    if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
+    if (/^thunderlink:/ig.test(value) ||
+        /^cbthunderlink:/ig.test(value) ||
+        /^aodroplink:/ig.test(value) ||
+        /^onenote:/ig.test(value) ||
+        /^file:/ig.test(value) ||
+        /^mailspring:/ig.test(value)) {
       return value;
     }
     else {
@@ -30,18 +35,18 @@ var emoji = require('markdown-it-emoji');
 Markdown.use(emoji);
 
 if (Package.ui) {
-	const Template = Package.templating.Template;
-	const UI = Package.ui.UI;
-	const HTML = Package.htmljs.HTML;
-	const Blaze = Package.blaze.Blaze; // implied by `ui`
+  const Template = Package.templating.Template;
+  const UI = Package.ui.UI;
+  const HTML = Package.htmljs.HTML;
+  const Blaze = Package.blaze.Blaze; // implied by `ui`
 
-	UI.registerHelper('markdown', new Template('markdown', function () {
-		const self = this;
-		let text = '';
-		if (self.templateContentBlock) {
-			text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING);
-		}
+  UI.registerHelper('markdown', new Template('markdown', function () {
+    const self = this;
+    let text = '';
+    if (self.templateContentBlock) {
+      text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING);
+    }
 
-			return HTML.Raw(sanitizeXss(Markdown.render(text), { safeAttrValue: mySafeAttrValue }));
-	}));
+    return HTML.Raw(sanitizeXss(Markdown.render(text), { safeAttrValue: mySafeAttrValue }));
+  }));
 }

+ 2 - 2
public/api/wekan.html

@@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
 	  	<ul class="toc-list-h1">
         
           <li>
-            <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.72">Wekan REST API v4.72</a>
+            <a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.75">Wekan REST API v4.75</a>
             
           </li>
         
@@ -2032,7 +2032,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
     <div class="page-wrapper">
       <div class="dark-box"></div>
       <div class="content">
-        <h1 id="wekan-rest-api">Wekan REST API v4.72</h1>
+        <h1 id="wekan-rest-api">Wekan REST API v4.74</h1>
 <blockquote>
 <p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
 </blockquote>

+ 1 - 1
public/api/wekan.yml

@@ -1,7 +1,7 @@
 swagger: '2.0'
 info:
   title: Wekan REST API
-  version: v4.72
+  version: v4.75
   description: |
     The REST API allows you to control and extend Wekan with ease.
 

+ 5 - 4
releases/translations/pull-translations.sh

@@ -105,8 +105,9 @@ tx pull -f -l mk
 echo "Mongolian (Mongolia):"
 tx pull -f -l mn_MN
 
-echo "Norwegian:"
-tx pull -f -l no
+#echo "Norwegian:"
+#tx pull -f -l no
+# This is same as no below
 
 echo "Norwegian Bokmål:"
 tx pull -f -l nb
@@ -145,10 +146,10 @@ echo "Spanish (Chile):"
 tx pull -f -l es_CL
 
 echo "Spanish (Mexico)":
-tx pull -f -l ex_MX
+tx pull -f -l es_MX
 
 echo "Spanish (Paraguay):"
-tx pull -f -l ex_PY
+tx pull -f -l es_PY
 
 echo "Spanish (Peru):"
 tx pull -f -l es_PE

+ 2 - 2
sandstorm-pkgdef.capnp

@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
     appTitle = (defaultText = "Wekan"),
     # The name of the app as it is displayed to the user.
 
-    appVersion = 472,
+    appVersion = 475,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "4.72.0~2021-01-09"),
+    appMarketingVersion = (defaultText = "4.75.0~2021-01-11"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 80 - 7
server/publications/cards.js

@@ -93,14 +93,14 @@ Meteor.publish('dueCards', function(allUsers = false) {
   let selector = {
     archived: false,
   };
-  // if user is not an admin allow her to see cards only from boards where
+  // for admins and users, allow her to see cards only from boards where
   // she is a member
-  if (!user.isAdmin) {
-    selector.$or = [
-      { permission: 'public' },
-      { members: { $elemMatch: { userId: user._id, isActive: true } } },
-    ];
-  }
+  //if (!user.isAdmin) {
+  selector.$or = [
+    { permission: 'public' },
+    { members: { $elemMatch: { userId: user._id, isActive: true } } },
+  ];
+  //}
   Boards.find(selector).forEach(board => {
     permiitedBoards.push(board._id);
   });
@@ -212,3 +212,76 @@ Meteor.publish('globalSearch', function(queryParams) {
     Users.find({ _id: { $in: users } }),
   ];
 });
+
+Meteor.publish('brokenCards', function() {
+  const user = Users.findOne(this.userId);
+
+  const permiitedBoards = [null];
+  let selector = {};
+  // for admins and users, if user is not an admin allow her to see cards only from boards 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);
+  });
+
+  selector = {
+    boardId: { $in: permiitedBoards },
+    $or: [
+      { boardId: { $in: [null, ''] } },
+      { swimlaneId: { $in: [null, ''] } },
+      { listId: { $in: [null, ''] } },
+    ],
+  };
+
+  const cards = Cards.find(selector, {
+    fields: {
+      _id: 1,
+      archived: 1,
+      boardId: 1,
+      swimlaneId: 1,
+      listId: 1,
+      title: 1,
+      type: 1,
+      sort: 1,
+      members: 1,
+      assignees: 1,
+      colors: 1,
+      dueAt: 1,
+    },
+  });
+
+  const boards = [];
+  const swimlanes = [];
+  const lists = [];
+  const users = [];
+
+  cards.forEach(card => {
+    if (card.boardId) boards.push(card.boardId);
+    if (card.swimlaneId) swimlanes.push(card.swimlaneId);
+    if (card.listId) lists.push(card.listId);
+    if (card.members) {
+      card.members.forEach(userId => {
+        users.push(userId);
+      });
+    }
+    if (card.assignees) {
+      card.assignees.forEach(userId => {
+        users.push(userId);
+      });
+    }
+  });
+
+  return [
+    cards,
+    Boards.find({ _id: { $in: boards } }),
+    Swimlanes.find({ _id: { $in: swimlanes } }),
+    Lists.find({ _id: { $in: lists } }),
+    Users.find({ _id: { $in: users } }),
+  ];
+});