Bladeren bron

Merge branch 'devel' into nested-tasks

Nicu Tofan 7 jaren geleden
bovenliggende
commit
3eba6ef285
64 gewijzigde bestanden met toevoegingen van 791 en 103 verwijderingen
  1. 2 1
      .meteor/packages
  2. 2 1
      .meteor/versions
  3. 43 0
      CHANGELOG.md
  4. 1 2
      Dockerfile
  5. 2 0
      client/components/boards/boardBody.jade
  6. 62 0
      client/components/boards/boardBody.js
  7. 3 1
      client/components/boards/boardHeader.js
  8. 36 21
      client/components/cards/cardDate.js
  9. 2 2
      client/components/cards/minicard.styl
  10. 4 7
      client/components/lists/listBody.js
  11. 1 1
      client/components/settings/invitationCode.js
  12. 2 0
      client/components/swimlanes/swimlanes.js
  13. 1 1
      client/components/users/userAvatar.jade
  14. 11 1
      client/lib/inlinedform.js
  15. 2 1
      i18n/ar.i18n.json
  16. 2 1
      i18n/bg.i18n.json
  17. 2 1
      i18n/br.i18n.json
  18. 2 1
      i18n/ca.i18n.json
  19. 2 1
      i18n/cs.i18n.json
  20. 1 0
      i18n/de.i18n.json
  21. 2 1
      i18n/el.i18n.json
  22. 2 1
      i18n/en-GB.i18n.json
  23. 2 1
      i18n/en.i18n.json
  24. 2 1
      i18n/eo.i18n.json
  25. 2 1
      i18n/es-AR.i18n.json
  26. 1 0
      i18n/es.i18n.json
  27. 2 1
      i18n/eu.i18n.json
  28. 2 1
      i18n/fa.i18n.json
  29. 2 1
      i18n/fi.i18n.json
  30. 1 0
      i18n/fr.i18n.json
  31. 2 1
      i18n/gl.i18n.json
  32. 2 1
      i18n/he.i18n.json
  33. 2 1
      i18n/hu.i18n.json
  34. 2 1
      i18n/hy.i18n.json
  35. 2 1
      i18n/id.i18n.json
  36. 2 1
      i18n/ig.i18n.json
  37. 2 1
      i18n/it.i18n.json
  38. 9 8
      i18n/ja.i18n.json
  39. 479 0
      i18n/ka.i18n.json
  40. 2 1
      i18n/km.i18n.json
  41. 2 1
      i18n/ko.i18n.json
  42. 2 1
      i18n/lv.i18n.json
  43. 2 1
      i18n/mn.i18n.json
  44. 2 1
      i18n/nb.i18n.json
  45. 2 1
      i18n/nl.i18n.json
  46. 2 1
      i18n/pl.i18n.json
  47. 2 1
      i18n/pt-BR.i18n.json
  48. 2 1
      i18n/pt.i18n.json
  49. 2 1
      i18n/ro.i18n.json
  50. 2 1
      i18n/ru.i18n.json
  51. 2 1
      i18n/sr.i18n.json
  52. 14 13
      i18n/sv.i18n.json
  53. 2 1
      i18n/ta.i18n.json
  54. 2 1
      i18n/th.i18n.json
  55. 2 1
      i18n/tr.i18n.json
  56. 2 1
      i18n/uk.i18n.json
  57. 2 1
      i18n/vi.i18n.json
  58. 2 1
      i18n/zh-CN.i18n.json
  59. 2 1
      i18n/zh-TW.i18n.json
  60. 27 0
      meta/t9n-changelog/fr.md
  61. 5 0
      models/users.js
  62. 1 1
      package.json
  63. 2 2
      sandstorm-pkgdef.capnp
  64. 1 2
      snapcraft.yaml

+ 2 - 1
.meteor/packages

@@ -77,10 +77,11 @@ email@1.2.3
 horka:swipebox
 dynamic-import@0.2.0
 staringatlights:fast-render
-staringatlights:flow-router
 
 mixmax:smart-disconnect
 accounts-password@1.5.0
 cfs:gridfs
 browser-policy
 eluck:accounts-lockout
+rzymek:fullcalendar
+momentjs:moment@2.22.2

+ 2 - 1
.meteor/versions

@@ -103,6 +103,7 @@ mixmax:smart-disconnect@0.0.4
 mobile-status-bar@1.0.14
 modules@0.11.0
 modules-runtime@0.9.1
+momentjs:moment@2.22.2
 mongo@1.3.1
 mongo-dev-server@1.1.0
 mongo-id@1.0.6
@@ -139,6 +140,7 @@ reactive-var@1.0.11
 reload@1.1.11
 retry@1.0.9
 routepolicy@1.0.12
+rzymek:fullcalendar@3.8.0
 service-configuration@1.0.11
 session@1.1.7
 sha@1.0.9
@@ -155,7 +157,6 @@ srp@1.0.10
 standard-minifier-css@1.3.5
 standard-minifier-js@2.2.3
 staringatlights:fast-render@2.16.5
-staringatlights:flow-router@2.12.2
 staringatlights:inject-data@2.0.5
 stylus@2.513.13
 tap:i18n@1.8.2

+ 43 - 0
CHANGELOG.md

@@ -1,3 +1,46 @@
+# v1.10 2018-06-28 Wekan release
+
+This release fixes the following bugs:
+
+* Fix migration error "TypeError: Checklists.foreach" at [Snap](https://github.com/wekan/wekan-snap/issues/51),
+  [Docker](https://github.com/wekan/wekan/issues/1736) etc.
+
+Thanks to GitHub users Jubi94, kestrelhawk and xet7 for their contributions.
+
+# v1.09 2018-06-28 Wekan release
+
+This release adds the following new features:
+
+* [Calendar](https://github.com/wekan/wekan/pull/1728). Click Lists / Swimlanes / Calendar.
+
+and fixes the following bugs:
+
+* To fix ["title is required"](https://github.com/wekan/wekan/issues/1576) fix only
+  [add-checklist-items and revert all other migration changes](https://github.com/wekan/wekan/issues/1734);
+* [Restore invitation code logic](https://github.com/wekan/wekan/pull/1732). Please test and add comment
+  to those invitation code issues that this fixes. 
+
+Thanks to GitHub users TNick and xet7 for their contributions.
+
+# v1.08 2018-06-27 Wekan release
+
+This release adds the following new features:
+
+* [Add more card inner shadow](https://github.com/wekan/wekan/commit/6a587299b80a49fce0789628ff65885b5ed2c837);
+* [Less margin-bottom after minicard](https://github.com/wekan/wekan/pull/1713);
+* Updated newest node fork binary from Sandstorm to Wekan, see https://releases.wekan.team/node.txt
+* Add Georgian language.
+
+and fixes the following bugs:
+
+* [Fix typo in English translation](https://github.com/wekan/wekan/pull/1710);
+* [Fix vertical align of user avatar initials](https://github.com/wekan/wekan/pull/1714);
+* [Submit inline form on click outside](https://github.com/wekan/wekan/pull/1717), fixes
+  ["You have an unsaved description" doesn't go away after saving](https://github.com/wekan/wekan/issues/1287);
+* [Fix "Error: title is required" by removing find() from all of migrations](https://github.com/wekan/wekan/commit/97922c90cb42be6c6615639bb164173748982f56).
+
+Thanks to GitHub users pravdomil, xet7 and zypA13510 for their contributions.
+
 # v1.07 2018-06-14 Wekan release
 
 This release adds the following new features:

+ 1 - 2
Dockerfile

@@ -47,9 +47,8 @@ RUN \
     #   Fiber.poolSize = 1e9;
     # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm
     # Description at https://releases.wekan.team/node.txt
-    # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d
     wget https://releases.wekan.team/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
-    echo "509e79f1bfccc849b65bd3f207a56095dfa608f17502997e844fa9c9d01e6c20  node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \
+    echo "308d0caaef0a1da3e98d1a1615016aad9659b3caf31d0f09ced20cabedb8acbf  node-v8.11.1-linux-x64.tar.gz" >> SHASUMS256.txt.asc && \
     \
     # Verify nodejs authenticity
     grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \

+ 2 - 0
client/components/boards/boardBody.jade

@@ -25,3 +25,5 @@ template(name="boardBody")
           +swimlane(this)
       if isViewLists
         +listsGroup
+      if isViewCalendar
+        +fullcalendar(calendarOptions)

+ 62 - 0
client/components/boards/boardBody.js

@@ -98,6 +98,12 @@ BlazeComponent.extendComponent({
     return (currentUser.profile.boardView === 'board-view-lists');
   },
 
+  isViewCalendar() {
+    const currentUser = Meteor.user();
+    if (!currentUser) return true;
+    return (currentUser.profile.boardView === 'board-view-cal');
+  },
+
   openNewListForm() {
     if (this.isViewSwimlanes()) {
       this.childComponents('swimlane')[0]
@@ -108,6 +114,62 @@ BlazeComponent.extendComponent({
     }
   },
 
+  calendarOptions() {
+    return {
+      id: 'calendar-view',
+      defaultView: 'basicWeek',
+      header: {
+        left: 'title',
+        center: 'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,timelineMonth timelineYear',
+        right: 'today prev,next',
+      },
+      views: {
+        basic: {
+          // options apply to basicWeek and basicDay views
+        },
+        agenda: {
+          // options apply to agendaWeek and agendaDay views
+        },
+        week: {
+          // options apply to basicWeek and agendaWeek views
+        },
+        day: {
+          // options apply to basicDay and agendaDay views
+        },
+      },
+      themeSystem: 'jquery-ui',
+      height: 'parent',
+      /* TODO: lists as resources: https://fullcalendar.io/docs/vertical-resource-view */
+      navLinks: true,
+      nowIndicator: true,
+      businessHours: {
+        // days of week. an array of zero-based day of week integers (0=Sunday)
+        dow: [ 1, 2, 3, 4, 5 ], // Monday - Thursday
+        start: '8:00',
+        end: '18:00',
+      },
+      locale: TAPi18n.getLanguage(),
+      events(start, end, timezone, callback) {
+        const currentBoard = Boards.findOne(Session.get('currentBoard'));
+        const events = [];
+        currentBoard.cardsInInterval(start.toDate(), end.toDate()).forEach(function(card){
+          events.push({
+            id: card.id,
+            title: card.title,
+            start: card.startAt,
+            end: card.endAt,
+            url: FlowRouter.url('card', {
+              boardId: currentBoard._id,
+              slug: currentBoard.slug,
+              cardId: card._id,
+            }),
+          });
+        });
+        callback(events);
+      },
+    };
+  },
+
   events() {
     return [{
       // XXX The board-overlay div should probably be moved to the parent

+ 3 - 1
client/components/boards/boardHeader.js

@@ -90,9 +90,11 @@ BlazeComponent.extendComponent({
       'click .js-toggle-board-view'() {
         const currentUser = Meteor.user();
         if (currentUser.profile.boardView === 'board-view-swimlanes') {
-          currentUser.setBoardView('board-view-lists');
+          currentUser.setBoardView('board-view-cal');
         } else if (currentUser.profile.boardView === 'board-view-lists') {
           currentUser.setBoardView('board-view-swimlanes');
+        } else if (currentUser.profile.boardView === 'board-view-cal') {
+          currentUser.setBoardView('board-view-lists');
         }
       },
       'click .js-open-filter-view'() {

+ 36 - 21
client/components/cards/cardDate.js

@@ -218,10 +218,13 @@ class CardReceivedDate extends CardDate {
   }
 
   classes() {
-    let classes = 'received-date' + ' ';
-    if (this.date.get().isBefore(this.now.get(), 'minute') &&
-        this.now.get().isBefore(this.data().dueAt)) {
-      classes += 'current';
+    let classes = 'received-date ';
+    const dueAt = this.data().dueAt;
+    if (dueAt) {
+      if (this.date.get().isBefore(this.now.get(), 'minute') &&
+          this.now.get().isBefore(dueAt)) {
+        classes += 'current';
+      }
     }
     return classes;
   }
@@ -249,9 +252,12 @@ class CardStartDate extends CardDate {
 
   classes() {
     let classes = 'start-date' + ' ';
-    if (this.date.get().isBefore(this.now.get(), 'minute') &&
-        this.now.get().isBefore(this.data().dueAt)) {
-      classes += 'current';
+    const dueAt = this.data().dueAt;
+    if (dueAt) {
+      if (this.date.get().isBefore(this.now.get(), 'minute') &&
+          this.now.get().isBefore(dueAt)) {
+        classes += 'current';
+      }
     }
     return classes;
   }
@@ -279,18 +285,23 @@ class CardDueDate extends CardDate {
 
   classes() {
     let classes = 'due-date' + ' ';
+
     // if endAt exists & is < dueAt, dueAt doesn't need to be flagged
-    if ((this.data().endAt !== 0) &&
-       (this.data().endAt !== null) &&
-       (this.data().endAt !== '') &&
-       (this.data().endAt !== undefined) &&
-       (this.date.get().isBefore(this.data().endAt)))
+    const endAt = this.data().endAt;
+    const theDate = this.date.get();
+    const now = this.now.get();
+
+    if ((endAt !== 0) &&
+       (endAt !== null) &&
+       (endAt !== '') &&
+       (endAt !== undefined) &&
+       (theDate.isBefore(endAt)))
       classes += 'current';
-    else if (this.now.get().diff(this.date.get(), 'days') >= 2)
+    else if (now.diff(theDate, 'days') >= 2)
       classes += 'long-overdue';
-    else if (this.now.get().diff(this.date.get(), 'minute') >= 0)
+    else if (now.diff(theDate, 'minute') >= 0)
       classes += 'due';
-    else if (this.now.get().diff(this.date.get(), 'days') >= -1)
+    else if (now.diff(theDate, 'days') >= -1)
       classes += 'almost-due';
     return classes;
   }
@@ -318,12 +329,16 @@ class CardEndDate extends CardDate {
 
   classes() {
     let classes = 'end-date' + ' ';
-    if (this.data.dueAt.diff(this.date.get(), 'days') >= 2)
-      classes += 'long-overdue';
-    else if (this.data.dueAt.diff(this.date.get(), 'days') > 0)
-      classes += 'due';
-    else if (this.data.dueAt.diff(this.date.get(), 'days') <= 0)
-      classes += 'current';
+    const dueAt = this.data.dueAt;
+    if (dueAt) {
+      const diff = dueAt.diff(this.date.get(), 'days');
+      if (diff >= 2)
+        classes += 'long-overdue';
+      else if (diff > 0)
+        classes += 'due';
+      else if (diff <= 0)
+        classes += 'current';
+    }
     return classes;
   }
 

+ 2 - 2
client/components/cards/minicard.styl

@@ -5,7 +5,7 @@
   position: relative
   display: flex
   align-items: center
-  margin-bottom: 9px
+  margin-bottom: 2px
 
   &.placeholder
     background: darken(white, 20%)
@@ -37,7 +37,7 @@
   flex-wrap: wrap
   background-color: #fff
   min-height: 20px
-  box-shadow: 0 1px 2px rgba(0,0,0,.15)
+  box-shadow: 0 0px 16px rgba(0,0,0,0.15) inset
   border-radius: 2px
   color: #4d4d4d
   overflow: hidden

+ 4 - 7
client/components/lists/listBody.js

@@ -36,17 +36,14 @@ BlazeComponent.extendComponent({
     const members = formComponent.members.get();
     const labelIds = formComponent.labels.get();
     const customFields = formComponent.customFields.get();
-    //console.log('members', members);
-    //console.log('labelIds', labelIds);
-    //console.log('customFields', customFields);
 
-    const boardId = this.data().board()._id;
+    const boardId = this.data().board();
     let swimlaneId = '';
     const boardView = Meteor.user().profile.boardView;
     if (boardView === 'board-view-swimlanes')
       swimlaneId = this.parentComponent().parentComponent().data()._id;
-    else if (boardView === 'board-view-lists')
-      swimlaneId = this.data().board().getDefaultSwimline()._id;
+    else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal'))
+      swimlaneId = boardId.getDefaultSwimline()._id;
 
     if (title) {
       const _id = Cards.insert({
@@ -55,7 +52,7 @@ BlazeComponent.extendComponent({
         labelIds,
         customFields,
         listId: this.data()._id,
-        boardId: this.data().board()._id,
+        boardId: boardId._id,
         sort: sortIndex,
         swimlaneId,
       });

+ 1 - 1
client/components/settings/invitationCode.js

@@ -1,6 +1,6 @@
 Template.invitationCode.onRendered(() => {
   const setting = Settings.findOne();
-  if (setting || setting.disableRegistration) {
+  if (!setting || !setting.disableRegistration) {
     $('#invitationcode').hide();
   }
 });

+ 2 - 0
client/components/swimlanes/swimlanes.js

@@ -7,6 +7,8 @@ function currentCardIsInThisList(listId, swimlaneId) {
     return currentCard && currentCard.listId === listId;
   else if (currentUser.profile.boardView === 'board-view-swimlanes')
     return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId;
+  else if (currentUser.profile.boardView === 'board-view-cal')
+    return currentCard;
   else
     return false;
 }

+ 1 - 1
client/components/users/userAvatar.jade

@@ -17,7 +17,7 @@ template(name="userAvatar")
 
 template(name="userAvatarInitials")
   svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15")
-    text(x="50%" y="13" text-anchor="middle")= initials
+    text(x="50%" y="50%" text-anchor="middle" alignment-baseline="central")= initials
 
 template(name="userPopup")
   .board-member-menu

+ 11 - 1
client/lib/inlinedform.js

@@ -75,6 +75,16 @@ InlinedForm = BlazeComponent.extendComponent({
 EscapeActions.register('inlinedForm',
   () => { currentlyOpenedForm.get().close(); },
   () => { return currentlyOpenedForm.get() !== null; }, {
-    noClickEscapeOn: '.js-inlined-form',
+    enabledOnClick: false,
   }
 );
+
+// submit on click outside
+document.addEventListener('click', function(evt) {
+  const openedForm = currentlyOpenedForm.get();
+  const isClickOutside = $(evt.target).closest('.js-inlined-form').length === 0;
+  if (openedForm && isClickOutside) {
+    $('.js-inlined-form button[type=submit]').click();
+    openedForm.close();
+  }
+}, true);

+ 2 - 1
i18n/ar.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "قائمة اللوحة",
     "boards": "لوحات",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "القائمات",
     "bucket-example": "مثل « todo list » على سبيل المثال",
@@ -247,7 +248,7 @@
     "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.",
     "filter-to-selection": "تصفية بالتحديد",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "الإسم الكامل",
     "header-logo-title": "الرجوع إلى صفحة اللوحات",
     "hide-system-messages": "إخفاء رسائل النظام",

+ 2 - 1
i18n/bg.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Меню на Таблото",
     "boards": "Табла",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Коридори",
     "board-view-lists": "Списъци",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "В момента филтрирате картите в това табло. Моля, натиснете тук, за да промените филтъра.",
     "filter-to-selection": "Филтрирай избраните",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Име",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Скриване на системните съобщения",

+ 2 - 1
i18n/br.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/ca.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menú del tauler",
     "boards": "Taulers",
     "board-view": "Visió del tauler",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Carrils de Natació",
     "board-view-lists": "Llistes",
     "bucket-example": "Igual que “Bucket List”,  per exemple",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
     "filter-to-selection": "Filtra selecció",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
     "fullname": "Nom complet",
     "header-logo-title": "Torna a la teva pàgina de taulers",
     "hide-system-messages": "Oculta missatges del sistema",

+ 2 - 1
i18n/cs.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu tabla",
     "boards": "Tabla",
     "board-view": "Náhled tabla",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Seznamy",
     "bucket-example": "Například \"Než mě odvedou\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.",
     "filter-to-selection": "Filtrovat výběr",
     "advanced-filter-label": "Pokročilý filtr",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Celé jméno",
     "header-logo-title": "Jit zpět na stránku s tably.",
     "hide-system-messages": "Skrýt systémové zprávy",

+ 1 - 0
i18n/de.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Boardmenü",
     "boards": "Boards",
     "board-view": "Boardansicht",
+    "board-view-cal": "Kalender",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listen",
     "bucket-example": "z.B. \"Löffelliste\"",

+ 2 - 1
i18n/el.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Λίστες",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Πλήρες Όνομα",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 1
i18n/en-GB.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/en.i18n.json

@@ -103,6 +103,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -252,7 +253,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/eo.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listoj",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/es-AR.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menú del Tablero",
     "boards": "Tableros",
     "board-view": "Vista de Tablero",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Calles",
     "board-view-lists": "Listas",
     "bucket-example": "Como \"Lista de Contenedores\" por ejemplo",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Estás filtrando cartas en este tablero. Clickeá acá para editar el filtro.",
     "filter-to-selection": "Filtrar en la selección",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Nombre Completo",
     "header-logo-title": "Retroceder a tu página de tableros.",
     "hide-system-messages": "Esconder mensajes del sistema",

+ 1 - 0
i18n/es.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menú del tablero",
     "boards": "Tableros",
     "board-view": "Vista del tablero",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Carriles",
     "board-view-lists": "Listas",
     "bucket-example": "Como “Cosas por hacer” por ejemplo",

+ 2 - 1
i18n/eu.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Arbelaren menua",
     "boards": "Arbelak",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Zerrendak",
     "bucket-example": "Esaterako \"Pertz zerrenda\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Arbel honetako txartela iragazten ari zara. Egin klik hemen iragazkia editatzeko.",
     "filter-to-selection": "Iragazketa aukerara",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Izen abizenak",
     "header-logo-title": "Itzuli zure arbelen orrira.",
     "hide-system-messages": "Ezkutatu sistemako mezuak",

+ 2 - 1
i18n/fa.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "منوی تخته",
     "boards": "تخته‌ها",
     "board-view": "نمایش تخته",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "فهرست‌ها",
     "bucket-example": "برای مثال چیزی شبیه \"لیست سبدها\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "شما صافی ـFilterـ برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.",
     "filter-to-selection": "صافی ـFilterـ برای موارد انتخابی",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "نام و نام خانوادگی",
     "header-logo-title": "بازگشت به صفحه تخته.",
     "hide-system-messages": "عدم نمایش پیامهای سیستمی",

+ 2 - 1
i18n/fi.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Taulu valikko",
     "boards": "Taulut",
     "board-view": "Taulu näkymä",
+    "board-view-cal": "Kalenteri",
     "board-view-swimlanes": "Swimlanet",
     "board-view-lists": "Listat",
     "bucket-example": "Kuten “Laatikko lista” esimerkiksi",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Suodatat kortteja tällä taululla. Klikkaa tästä muokataksesi suodatinta.",
     "filter-to-selection": "Suodata valintaan",
     "advanced-filter-label": "Edistynyt suodatin",
-    "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: == != <= >= && || ( ) Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huom: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit hypätä yksittäisen kontrollimerkkien (' \\/) yli käyttämällä \\. Esimerkki: Field1 = I\\'m. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 = V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 && (F2 == V2 || F2 == V3). Voit myös etsiä tekstikentistä regexillä: F1 == /Tes.*/i",
+    "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: == != <= >= && || ( ) Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huom: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit hypätä yksittäisen kontrollimerkkien (' \\/) yli käyttämällä \\. Esimerkki: Field1 = I\\'m. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 == V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 && (F2 == V2 || F2 == V3). Voit myös etsiä tekstikentistä regexillä: F1 == /Tes.*/i",
     "fullname": "Koko nimi",
     "header-logo-title": "Palaa taulut sivullesi.",
     "hide-system-messages": "Piilota järjestelmäviestit",

+ 1 - 0
i18n/fr.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu du tableau",
     "boards": "Tableaux",
     "board-view": "Vue du tableau",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Couloirs",
     "board-view-lists": "Listes",
     "bucket-example": "Comme « todo list » par exemple",

+ 2 - 1
i18n/gl.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Taboleiros",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listas",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Nome completo",
     "header-logo-title": "Retornar á páxina dos seus taboleiros.",
     "hide-system-messages": "Agochar as mensaxes do sistema",

+ 2 - 1
i18n/he.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "תפריט לוח",
     "boards": "לוחות",
     "board-view": "תצוגת לוח",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "מסלולים",
     "board-view-lists": "רשימות",
     "bucket-example": "כמו למשל „רשימת המשימות“",
@@ -247,7 +248,7 @@
     "filter-on-desc": "מסנן כרטיסים פעיל בלוח זה. יש ללחוץ כאן לעריכת המסנן.",
     "filter-to-selection": "סינון לבחירה",
     "advanced-filter-label": "מסנן מתקדם",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "המסנן המתקדם מאפשר לך לכתוב מחרוזת שמכילה את הפעולות הבאות: == != <= >= && || ( ) רווח מכהן כמפריד בין הפעולות. ניתן לסנן את כל השדות המותאמים אישית על ידי הקלדת שמם והערך שלהם. למשל: שדה1 == ערך1. לתשומת לבך: אם שדות או ערכים מכילים רווח, יש לעטוף אותם במירכא מכל צד. למשל: 'שדה 1' == 'ערך 1'. ניתן גם לשלב מגוון תנאים. למשל: F1 == V1 || F1 == V2. על פי רוב כל הפעולות מפוענחות משמאל לימין. ניתן לשנות את הסדר על ידי הצבת סוגריים. למשל: ( F1 == V1 && ( F2 == V2 || F2 == V3 ",
     "fullname": "שם מלא",
     "header-logo-title": "חזרה לדף הלוחות שלך.",
     "hide-system-messages": "הסתרת הודעות מערכת",

+ 2 - 1
i18n/hu.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Tábla menü",
     "boards": "Táblák",
     "board-view": "Tábla nézet",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listák",
     "bucket-example": "Mint például „Bakancslista”",
@@ -247,7 +248,7 @@
     "filter-on-desc": "A kártyaszűrés be van kapcsolva ezen a táblán. Kattintson ide a szűrő szerkesztéséhez.",
     "filter-to-selection": "Szűrés a kijelöléshez",
     "advanced-filter-label": "Speciális szűrő",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Teljes név",
     "header-logo-title": "Vissza a táblák oldalára.",
     "hide-system-messages": "Rendszerüzenetek elrejtése",

+ 2 - 1
i18n/hy.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/id.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu Panel",
     "boards": "Panel",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Daftar",
     "bucket-example": "Contohnya seperti “Bucket List” ",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Anda memfilter kartu di panel ini. Klik di sini untuk menyunting filter",
     "filter-to-selection": "Saring berdasarkan yang dipilih",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Nama Lengkap",
     "header-logo-title": "Kembali ke laman panel anda",
     "hide-system-messages": "Sembunyikan pesan-pesan sistem",

+ 2 - 1
i18n/ig.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/it.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu bacheca",
     "boards": "Bacheche",
     "board-view": "Visualizza bacheca",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Corsie",
     "board-view-lists": "Liste",
     "bucket-example": "Per esempio come \"una lista di cose da fare\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,",
     "filter-to-selection": "Seleziona",
     "advanced-filter-label": "Filtro avanzato",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Nome completo",
     "header-logo-title": "Torna alla tua bacheca.",
     "hide-system-messages": "Nascondi i messaggi di sistema",

+ 9 - 8
i18n/ja.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "ボードメニュー",
     "boards": "ボード",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "スイムレーン",
     "board-view-lists": "リスト",
     "bucket-example": "例:バケットリスト",
@@ -247,7 +248,7 @@
     "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。",
     "filter-to-selection": "フィルターした項目を全選択",
     "advanced-filter-label": "高度なフィルター",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "フルネーム",
     "header-logo-title": "自分のボードページに戻る。",
     "hide-system-messages": "システムメッセージを隠す",
@@ -292,7 +293,7 @@
     "list-move-cards": "リストの全カードを移動する",
     "list-select-cards": "リストの全カードを選択",
     "listActionPopup-title": "操作一覧",
-    "swimlaneActionPopup-title": "Swimlane Actions",
+    "swimlaneActionPopup-title": "スイムレーン操作",
     "listImportCardPopup-title": "Trelloのカードをインポート",
     "listMorePopup-title": "さらに見る",
     "link-list": "このリストへのリンク",
@@ -463,12 +464,12 @@
     "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",
+    "card-received": "受付",
+    "card-received-on": "受付日",
+    "card-end": "終了",
+    "card-end-on": "終了日",
+    "editCardReceivedDatePopup-title": "受付日の変更",
+    "editCardEndDatePopup-title": "終了日の変更",
     "assigned-by": "Assigned By",
     "requested-by": "Requested By",
     "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",

+ 479 - 0
i18n/ka.i18n.json

@@ -0,0 +1,479 @@
+{
+    "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addChecklist": "added checklist __checklist__ to __card__",
+    "act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createCustomField": "created custom field __customField__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "__board__ moved to Recycle Bin",
+    "act-archivedCard": "__card__ moved to Recycle Bin",
+    "act-archivedList": "__list__ moved to Recycle Bin",
+    "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin",
+    "act-importBoard": "imported __board__",
+    "act-importCard": "imported __card__",
+    "act-importList": "imported __list__",
+    "act-joinMember": "added __member__ to __card__",
+    "act-moveCard": "moved __card__ from __oldList__ to __list__",
+    "act-removeBoardMember": "removed __member__ from __board__",
+    "act-restoredCard": "restored __card__ to __board__",
+    "act-unjoinMember": "removed __member__ from __card__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
+    "actions": "Actions",
+    "activities": "Activities",
+    "activity": "Activity",
+    "activity-added": "added %s to %s",
+    "activity-archived": "%s moved to Recycle Bin",
+    "activity-attached": "attached %s to %s",
+    "activity-created": "created %s",
+    "activity-customfield-created": "created custom field %s",
+    "activity-excluded": "excluded %s from %s",
+    "activity-imported": "imported %s into %s from %s",
+    "activity-imported-board": "imported %s from %s",
+    "activity-joined": "joined %s",
+    "activity-moved": "moved %s from %s to %s",
+    "activity-on": "on %s",
+    "activity-removed": "removed %s from %s",
+    "activity-sent": "sent %s to %s",
+    "activity-unjoined": "unjoined %s",
+    "activity-checklist-added": "added checklist to %s",
+    "activity-checklist-item-added": "added checklist item to '%s' in %s",
+    "add": "Add",
+    "add-attachment": "Add Attachment",
+    "add-board": "Add Board",
+    "add-card": "Add Card",
+    "add-swimlane": "Add Swimlane",
+    "add-checklist": "Add Checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "Add Cover",
+    "add-label": "Add Label",
+    "add-list": "Add List",
+    "add-members": "Add Members",
+    "added": "Added",
+    "addMemberPopup-title": "Members",
+    "admin": "Admin",
+    "admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
+    "admin-announcement": "Announcement",
+    "admin-announcement-active": "Active System-Wide Announcement",
+    "admin-announcement-title": "Announcement from Administrator",
+    "all-boards": "All boards",
+    "and-n-other-card": "And __count__ other card",
+    "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
+    "app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.",
+    "archive": "Move to Recycle Bin",
+    "archive-all": "Move All to Recycle Bin",
+    "archive-board": "Move Board to Recycle Bin",
+    "archive-card": "Move Card to Recycle Bin",
+    "archive-list": "Move List to Recycle Bin",
+    "archive-swimlane": "Move Swimlane to Recycle Bin",
+    "archive-selection": "Move selection to Recycle Bin",
+    "archiveBoardPopup-title": "Move Board to Recycle Bin?",
+    "archived-items": "Recycle Bin",
+    "archived-boards": "Boards in Recycle Bin",
+    "restore-board": "Restore Board",
+    "no-archived-boards": "No Boards in Recycle Bin.",
+    "archives": "Recycle Bin",
+    "assign-member": "Assign member",
+    "attached": "attached",
+    "attachment": "Attachment",
+    "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
+    "attachmentDeletePopup-title": "Delete Attachment?",
+    "attachments": "Attachments",
+    "auto-watch": "Automatically watch boards when they are created",
+    "avatar-too-big": "The avatar is too large (70KB max)",
+    "back": "Back",
+    "board-change-color": "Change color",
+    "board-nb-stars": "%s stars",
+    "board-not-found": "Board not found",
+    "board-private-info": "This board will be <strong>private</strong>.",
+    "board-public-info": "This board will be <strong>public</strong>.",
+    "boardChangeColorPopup-title": "Change Board Background",
+    "boardChangeTitlePopup-title": "Rename Board",
+    "boardChangeVisibilityPopup-title": "Change Visibility",
+    "boardChangeWatchPopup-title": "Change Watch",
+    "boardMenuPopup-title": "Board Menu",
+    "boards": "Boards",
+    "board-view": "Board View",
+    "board-view-cal": "Calendar",
+    "board-view-swimlanes": "Swimlanes",
+    "board-view-lists": "Lists",
+    "bucket-example": "Like “Bucket List” for example",
+    "cancel": "Cancel",
+    "card-archived": "This card is moved to Recycle Bin.",
+    "card-comments-title": "This card has %s comment.",
+    "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
+    "card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
+    "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
+    "card-spent": "Spent Time",
+    "card-edit-attachments": "Edit attachments",
+    "card-edit-custom-fields": "Edit custom fields",
+    "card-edit-labels": "Edit labels",
+    "card-edit-members": "Edit members",
+    "card-labels-title": "Change the labels for the card.",
+    "card-members-title": "Add or remove members of the board from the card.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
+    "cardAttachmentsPopup-title": "Attach From",
+    "cardCustomField-datePopup-title": "Change date",
+    "cardCustomFieldsPopup-title": "Edit custom fields",
+    "cardDeletePopup-title": "Delete Card?",
+    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardLabelsPopup-title": "Labels",
+    "cardMembersPopup-title": "Members",
+    "cardMorePopup-title": "More",
+    "cards": "Cards",
+    "cards-count": "Cards",
+    "change": "Change",
+    "change-avatar": "Change Avatar",
+    "change-password": "Change Password",
+    "change-permissions": "Change permissions",
+    "change-settings": "Change Settings",
+    "changeAvatarPopup-title": "Change Avatar",
+    "changeLanguagePopup-title": "Change Language",
+    "changePasswordPopup-title": "Change Password",
+    "changePermissionsPopup-title": "Change Permissions",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
+    "click-to-star": "Click to star this board.",
+    "click-to-unstar": "Click to unstar this board.",
+    "clipboard": "Clipboard or drag & drop",
+    "close": "Close",
+    "close-board": "Close Board",
+    "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.",
+    "color-black": "black",
+    "color-blue": "blue",
+    "color-green": "green",
+    "color-lime": "lime",
+    "color-orange": "orange",
+    "color-pink": "pink",
+    "color-purple": "purple",
+    "color-red": "red",
+    "color-sky": "sky",
+    "color-yellow": "yellow",
+    "comment": "Comment",
+    "comment-placeholder": "Write Comment",
+    "comment-only": "Comment only",
+    "comment-only-desc": "Can comment on cards only.",
+    "computer": "Computer",
+    "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
+    "copy-card-link-to-clipboard": "Copy card link to clipboard",
+    "copyCardPopup-title": "Copy Card",
+    "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
+    "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
+    "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
+    "create": "Create",
+    "createBoardPopup-title": "Create Board",
+    "chooseBoardSourcePopup-title": "Import board",
+    "createLabelPopup-title": "Create Label",
+    "createCustomField": "Create Field",
+    "createCustomFieldPopup-title": "Create Field",
+    "current": "current",
+    "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
+    "custom-field-checkbox": "Checkbox",
+    "custom-field-date": "Date",
+    "custom-field-dropdown": "Dropdown List",
+    "custom-field-dropdown-none": "(none)",
+    "custom-field-dropdown-options": "List Options",
+    "custom-field-dropdown-options-placeholder": "Press enter to add more options",
+    "custom-field-dropdown-unknown": "(unknown)",
+    "custom-field-number": "Number",
+    "custom-field-text": "Text",
+    "custom-fields": "Custom Fields",
+    "date": "Date",
+    "decline": "Decline",
+    "default-avatar": "Default avatar",
+    "delete": "Delete",
+    "deleteCustomFieldPopup-title": "Delete Custom Field?",
+    "deleteLabelPopup-title": "Delete Label?",
+    "description": "Description",
+    "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
+    "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
+    "discard": "Discard",
+    "done": "Done",
+    "download": "Download",
+    "edit": "Edit",
+    "edit-avatar": "Change Avatar",
+    "edit-profile": "Edit Profile",
+    "edit-wip-limit": "Edit WIP Limit",
+    "soft-wip-limit": "Soft WIP Limit",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
+    "editCustomFieldPopup-title": "Edit Field",
+    "editCardSpentTimePopup-title": "Change spent time",
+    "editLabelPopup-title": "Change Label",
+    "editNotificationPopup-title": "Edit Notification",
+    "editProfilePopup-title": "Edit Profile",
+    "email": "Email",
+    "email-enrollAccount-subject": "An account created for you on __siteName__",
+    "email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
+    "email-fail": "Sending email failed",
+    "email-fail-text": "Error trying to send email",
+    "email-invalid": "Invalid email",
+    "email-invite": "Invite via Email",
+    "email-invite-subject": "__inviter__ sent you an invitation",
+    "email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
+    "email-resetPassword-subject": "Reset your password on __siteName__",
+    "email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
+    "email-sent": "Email sent",
+    "email-verifyEmail-subject": "Verify your email address on __siteName__",
+    "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
+    "enable-wip-limit": "Enable WIP Limit",
+    "error-board-doesNotExist": "This board does not exist",
+    "error-board-notAdmin": "You need to be admin of this board to do that",
+    "error-board-notAMember": "You need to be a member of this board to do that",
+    "error-json-malformed": "Your text is not valid JSON",
+    "error-json-schema": "Your JSON data does not include the proper information in the correct format",
+    "error-list-doesNotExist": "This list does not exist",
+    "error-user-doesNotExist": "This user does not exist",
+    "error-user-notAllowSelf": "You can not invite yourself",
+    "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
+    "error-email-taken": "Email has already been taken",
+    "export-board": "Export board",
+    "filter": "Filter",
+    "filter-cards": "Filter Cards",
+    "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
+    "filter-no-custom-fields": "No Custom Fields",
+    "filter-on": "Filter is on",
+    "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
+    "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. 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",
+    "import-board": "import board",
+    "import-board-c": "Import board",
+    "import-board-title-trello": "Import board from Trello",
+    "import-board-title-wekan": "Import board from Wekan",
+    "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
+    "from-trello": "From Trello",
+    "from-wekan": "From Wekan",
+    "import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+    "import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
+    "import-json-placeholder": "Paste your valid JSON data here",
+    "import-map-members": "Map members",
+    "import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users",
+    "import-show-user-mapping": "Review members mapping",
+    "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
+    "info": "Version",
+    "initials": "Initials",
+    "invalid-date": "Invalid date",
+    "invalid-time": "Invalid time",
+    "invalid-user": "Invalid user",
+    "joined": "joined",
+    "just-invited": "You are just invited to this board",
+    "keyboard-shortcuts": "Keyboard shortcuts",
+    "label-create": "Create Label",
+    "label-default": "%s label (default)",
+    "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
+    "labels": "Labels",
+    "language": "Language",
+    "last-admin-desc": "You can’t change roles because there must be at least one admin.",
+    "leave-board": "Leave Board",
+    "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
+    "leaveBoardPopup-title": "Leave Board ?",
+    "link-card": "Link to this card",
+    "list-archive-cards": "Move all cards in this list to Recycle Bin",
+    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.",
+    "list-move-cards": "Move all cards in this list",
+    "list-select-cards": "Select all cards in this list",
+    "listActionPopup-title": "List Actions",
+    "swimlaneActionPopup-title": "Swimlane Actions",
+    "listImportCardPopup-title": "Import a Trello card",
+    "listMorePopup-title": "More",
+    "link-list": "Link to this list",
+    "list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
+    "list-delete-suggest-archive": "You can move a list to Recycle Bin to remove it from the board and preserve the activity.",
+    "lists": "Lists",
+    "swimlanes": "Swimlanes",
+    "log-out": "Log Out",
+    "log-in": "Log In",
+    "loginPopup-title": "Log In",
+    "memberMenuPopup-title": "Member Settings",
+    "members": "Members",
+    "menu": "Menu",
+    "move-selection": "Move selection",
+    "moveCardPopup-title": "Move Card",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
+    "moveSelectionPopup-title": "Move selection",
+    "multi-selection": "Multi-Selection",
+    "multi-selection-on": "Multi-Selection is on",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
+    "my-boards": "My Boards",
+    "name": "Name",
+    "no-archived-cards": "No cards in Recycle Bin.",
+    "no-archived-lists": "No lists in Recycle Bin.",
+    "no-archived-swimlanes": "No swimlanes in Recycle Bin.",
+    "no-results": "No results",
+    "normal": "Normal",
+    "normal-desc": "Can view and edit cards. Can't change settings.",
+    "not-accepted-yet": "Invitation not accepted yet",
+    "notify-participate": "Receive updates to any cards you participate as creater or member",
+    "notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
+    "optional": "optional",
+    "or": "or",
+    "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.",
+    "page-not-found": "Page not found.",
+    "password": "Password",
+    "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
+    "participating": "Participating",
+    "preview": "Preview",
+    "previewAttachedImagePopup-title": "Preview",
+    "previewClipboardImagePopup-title": "Preview",
+    "private": "Private",
+    "private-desc": "This board is private. Only people added to the board can view and edit it.",
+    "profile": "Profile",
+    "public": "Public",
+    "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
+    "quick-access-description": "Star a board to add a shortcut in this bar.",
+    "remove-cover": "Remove Cover",
+    "remove-from-board": "Remove from Board",
+    "remove-label": "Remove Label",
+    "listDeletePopup-title": "Delete List ?",
+    "remove-member": "Remove Member",
+    "remove-member-from-card": "Remove from Card",
+    "remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
+    "removeMemberPopup-title": "Remove Member?",
+    "rename": "Rename",
+    "rename-board": "Rename Board",
+    "restore": "Restore",
+    "save": "Save",
+    "search": "Search",
+    "search-cards": "Search from card titles and descriptions on this board",
+    "search-example": "Text to search for?",
+    "select-color": "Select Color",
+    "set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
+    "setWipLimitPopup-title": "Set WIP Limit",
+    "shortcut-assign-self": "Assign yourself to current card",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
+    "shortcut-autocomplete-members": "Autocomplete members",
+    "shortcut-clear-filters": "Clear all filters",
+    "shortcut-close-dialog": "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-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",
+    "username": "Username",
+    "view-it": "View it",
+    "warn-list-archived": "warning: this card is in an list at Recycle Bin",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-swimlane": "Milestone 1",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "What do you want to do?",
+    "wipLimitErrorPopup-title": "Invalid WIP Limit",
+    "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
+    "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
+    "admin-panel": "Admin Panel",
+    "settings": "Settings",
+    "people": "People",
+    "registration": "Registration",
+    "disable-self-registration": "Disable Self-Registration",
+    "invite": "Invite",
+    "invite-people": "Invite People",
+    "to-boards": "To board(s)",
+    "email-addresses": "Email Addresses",
+    "smtp-host-description": "The address of the SMTP server that handles your emails.",
+    "smtp-port-description": "The port your SMTP server uses for outgoing emails.",
+    "smtp-tls-description": "Enable TLS support for SMTP server",
+    "smtp-host": "SMTP Host",
+    "smtp-port": "SMTP Port",
+    "smtp-username": "Username",
+    "smtp-password": "Password",
+    "smtp-tls": "TLS support",
+    "send-from": "From",
+    "send-smtp-test": "Send a test email to yourself",
+    "invitation-code": "Invitation Code",
+    "email-invite-register-subject": "__inviter__ sent you an invitation",
+    "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
+    "email-smtp-test-subject": "SMTP Test Email From Wekan",
+    "email-smtp-test-text": "You have successfully sent an email",
+    "error-invitation-code-not-exist": "Invitation code doesn't exist",
+    "error-notAuthorized": "You are not authorized to view this page.",
+    "outgoing-webhooks": "Outgoing Webhooks",
+    "outgoingWebhooksPopup-title": "Outgoing Webhooks",
+    "new-outgoing-webhook": "New Outgoing Webhook",
+    "no-name": "(Unknown)",
+    "Wekan_version": "Wekan version",
+    "Node_version": "Node version",
+    "OS_Arch": "OS Arch",
+    "OS_Cpus": "OS CPU Count",
+    "OS_Freemem": "OS Free Memory",
+    "OS_Loadavg": "OS Load Average",
+    "OS_Platform": "OS Platform",
+    "OS_Release": "OS Release",
+    "OS_Totalmem": "OS Total Memory",
+    "OS_Type": "OS Type",
+    "OS_Uptime": "OS Uptime",
+    "hours": "hours",
+    "minutes": "minutes",
+    "seconds": "seconds",
+    "show-field-on-card": "Show this field on card",
+    "yes": "Yes",
+    "no": "No",
+    "accounts": "Accounts",
+    "accounts-allowEmailChange": "Allow Email Change",
+    "accounts-allowUserNameChange": "Allow Username Change",
+    "createdAt": "Created at",
+    "verified": "Verified",
+    "active": "Active",
+    "card-received": "Received",
+    "card-received-on": "Received on",
+    "card-end": "End",
+    "card-end-on": "Ends on",
+    "editCardReceivedDatePopup-title": "Change received date",
+    "editCardEndDatePopup-title": "Change end date",
+    "assigned-by": "Assigned By",
+    "requested-by": "Requested By",
+    "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
+    "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
+    "boardDeletePopup-title": "Delete Board?",
+    "delete-board": "Delete Board"
+}

+ 2 - 1
i18n/km.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/ko.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "보드 메뉴",
     "boards": "보드",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "목록들",
     "bucket-example": "예: “프로젝트 이름“ 입력",
@@ -247,7 +248,7 @@
     "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.",
     "filter-to-selection": "선택 항목으로 필터링",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "실명",
     "header-logo-title": "보드 페이지로 돌아가기.",
     "hide-system-messages": "시스템 메시지 숨기기",

+ 2 - 1
i18n/lv.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/mn.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/nb.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Tavlemeny",
     "boards": "Tavler",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Som \"Bucket List\" for eksempel",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/nl.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Bord menu",
     "boards": "Borden",
     "board-view": "Bord overzicht",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lijsten",
     "bucket-example": "Zoals \"Bucket List\" bijvoorbeeld",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.",
     "filter-to-selection": "Filter zoals selectie",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Volledige naam",
     "header-logo-title": "Ga terug naar jouw borden pagina.",
     "hide-system-messages": "Verberg systeemberichten",

+ 2 - 1
i18n/pl.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu tablicy",
     "boards": "Tablice",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listy",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
     "filter-to-selection": "Odfiltruj zaznaczenie",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Wróć do swojej strony z tablicami.",
     "hide-system-messages": "Ukryj wiadomości systemowe",

+ 2 - 1
i18n/pt-BR.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Menu do Quadro",
     "boards": "Quadros",
     "board-view": "Visão de quadro",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listas",
     "bucket-example": "\"Bucket List\", por exemplo",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
     "filter-to-selection": "Filtrar esta seleção",
     "advanced-filter-label": "Filtro avançado",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Nome Completo",
     "header-logo-title": "Voltar para a lista de quadros.",
     "hide-system-messages": "Esconde mensagens de sistema",

+ 2 - 1
i18n/pt.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/ro.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Liste",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/ru.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Меню доски",
     "boards": "Доски",
     "board-view": "Вид доски",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Дорожки",
     "board-view-lists": "Списки",
     "bucket-example": "Например “Список дел”",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Расширенный фильтр",
-    "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в кавычки. Например: «Поле 1» == «Значение 1». Для одиночных управляющих символов ('\\ /), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I \\ m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 = V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "Расширенный фильтр позволяет написать строку, содержащую следующие операторы: ==! = <=> = && || () Пространство используется как разделитель между Операторами. Вы можете фильтровать все пользовательские поля, введя их имена и значения. Например: Field1 == Value1. Примечание. Если поля или значения содержат пробелы, вам необходимо взять их в кавычки. Например: «Поле 1» == «Значение 1». Для одиночных управляющих символов ('\\ /), которые нужно пропустить, вы можете использовать \\. Например: Field1 = I \\ m. Также вы можете комбинировать несколько условий. Например: F1 == V1 || F1 == V2. Обычно все операторы интерпретируются слева направо. Вы можете изменить порядок, разместив скобки. Например: F1 == V1 && (F2 == V2 || F2 == V3). Также вы можете искать текстовые поля с помощью regex: F1 == /Tes.*/i",
     "fullname": "Полное имя",
     "header-logo-title": "Вернуться к доскам.",
     "hide-system-messages": "Скрыть системные сообщения",

+ 2 - 1
i18n/sr.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Meni table",
     "boards": "Table",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Na primer \"Lista zadataka\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Sakrij sistemske poruke",

+ 14 - 13
i18n/sv.i18n.json

@@ -99,7 +99,8 @@
     "boardChangeWatchPopup-title": "Ändra bevaka",
     "boardMenuPopup-title": "Anslagstavla meny",
     "boards": "Anslagstavlor",
-    "board-view": "Board View",
+    "board-view": "Anslagstavelsvy",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Simbanor",
     "board-view-lists": "Listor",
     "bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel",
@@ -108,7 +109,7 @@
     "card-comments-title": "Detta kort har %s kommentar.",
     "card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.",
     "card-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsflöde och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.",
-    "card-delete-suggest-archive": "You can move a card to Recycle Bin to remove it from the board and preserve the activity.",
+    "card-delete-suggest-archive": "Du kan flytta ett kort till papperskorgen for att ta bort det från anslagstavlan och bevara aktiviteten.",
     "card-due": "Förfaller",
     "card-due-on": "Förfaller på",
     "card-spent": "Spenderad tid",
@@ -146,7 +147,7 @@
     "clipboard": "Urklipp eller dra och släpp",
     "close": "Stäng",
     "close-board": "Stäng anslagstavla",
-    "close-board-pop": "You will be able to restore the board by clicking the “Recycle Bin” button from the home header.",
+    "close-board-pop": "Du kan återskapa anslagstavlan genom att klicka på \"Papperskorgen\" från huvudmenyn.",
     "color-black": "svart",
     "color-blue": "blå",
     "color-green": "grön",
@@ -165,9 +166,9 @@
     "confirm-checklist-delete-dialog": "Är du säker på att du vill ta bort checklista",
     "copy-card-link-to-clipboard": "Kopiera kortlänk till urklipp",
     "copyCardPopup-title": "Kopiera kort",
-    "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
+    "copyChecklistToManyCardsPopup-title": "Kopiera checklist-mallen till flera kort",
     "copyChecklistToManyCardsPopup-instructions": "Destinationskorttitlar och beskrivningar i detta JSON-format",
-    "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
+    "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Första kortets titel\", \"description\":\"Första kortets beskrivning\"}, {\"title\":\"Andra kortets titel\",\"description\":\"Andra kortets beskrivning\"},{\"title\":\"Sista kortets titel\",\"description\":\"Sista kortets beskrivning\"} ]",
     "create": "Skapa",
     "createBoardPopup-title": "Skapa anslagstavla",
     "chooseBoardSourcePopup-title": "Importera anslagstavla",
@@ -178,7 +179,7 @@
     "custom-field-delete-pop": "Det går inte att ångra. Detta tar bort det här anpassade fältet från alla kort och förstör dess historia.",
     "custom-field-checkbox": "Kryssruta",
     "custom-field-date": "Datum",
-    "custom-field-dropdown": "Dropdown List",
+    "custom-field-dropdown": "Rullgardingsmeny",
     "custom-field-dropdown-none": "(inga)",
     "custom-field-dropdown-options": "Listalternativ",
     "custom-field-dropdown-options-placeholder": "Tryck på enter för att lägga till fler alternativ",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.",
     "filter-to-selection": "Filter till val",
     "advanced-filter-label": "Avancerat filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "Avancerade Filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel:  'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\/) kan du använda \\. Till exempel: Fält1 == I\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i",
     "fullname": "Namn",
     "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.",
     "hide-system-messages": "Göm systemmeddelanden",
@@ -288,7 +289,7 @@
     "leaveBoardPopup-title": "Lämna anslagstavla ?",
     "link-card": "Länka till detta kort",
     "list-archive-cards": "Flytta alla kort i den här listan till papperskorgen",
-    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.",
+    "list-archive-cards-pop": "Detta tar bort alla kort i den här listan från anslagstavlan. För att se kort i papperskorgen och få tillbaka dem till den här anslagstavlan, klicka på \"Meny\" > \"Papperskorgen\".",
     "list-move-cards": "Flytta alla kort i denna lista",
     "list-select-cards": "Välj alla kort i denna lista",
     "listActionPopup-title": "Liståtgärder",
@@ -436,9 +437,9 @@
     "email-smtp-test-text": "Du har skickat ett e-postmeddelande",
     "error-invitation-code-not-exist": "Inbjudningskod finns inte",
     "error-notAuthorized": "Du är inte behörig att se den här sidan.",
-    "outgoing-webhooks": "Outgoing Webhooks",
-    "outgoingWebhooksPopup-title": "Outgoing Webhooks",
-    "new-outgoing-webhook": "New Outgoing Webhook",
+    "outgoing-webhooks": "Utgående Webhookar",
+    "outgoingWebhooksPopup-title": "Utgående Webhookar",
+    "new-outgoing-webhook": "Ny utgående webhook",
     "no-name": "(Okänd)",
     "Wekan_version": "Wekan version",
     "Node_version": "Nodversion",
@@ -471,8 +472,8 @@
     "editCardEndDatePopup-title": "Ändra slutdatum",
     "assigned-by": "Tilldelad av",
     "requested-by": "Efterfrågad av",
-    "board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
-    "delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
+    "board-delete-notice": "Borttagningen är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här anslagstavlan.",
+    "delete-board-confirm-popup": "Alla listor, kort, etiketter och aktiviteter kommer tas bort och du kommer inte kunna återställa anslagstavlans innehåll. Det går inte att ångra.",
     "boardDeletePopup-title": "Ta bort anslagstavla?",
     "delete-board": "Ta bort anslagstavla"
 }

+ 2 - 1
i18n/ta.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/th.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "เมนูบอร์ด",
     "boards": "บอร์ด",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "รายการ",
     "bucket-example": "ตัวอย่างเช่น “ระบบที่ต้องทำ”",
@@ -247,7 +248,7 @@
     "filter-on-desc": "คุณกำลังกรองการ์ดในบอร์ดนี้ คลิกที่นี่เพื่อแก้ไขตัวกรอง",
     "filter-to-selection": "กรองตัวเลือก",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "ชื่อ นามสกุล",
     "header-logo-title": "ย้อนกลับไปที่หน้าบอร์ดของคุณ",
     "hide-system-messages": "ซ่อนข้อความของระบบ",

+ 2 - 1
i18n/tr.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Pano menüsü",
     "boards": "Panolar",
     "board-view": "Pano Görünümü",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Kulvarlar",
     "board-view-lists": "Listeler",
     "bucket-example": "Örn: \"Marketten Alacaklarım\"",
@@ -247,7 +248,7 @@
     "filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.",
     "filter-to-selection": "Seçime göre filtreleme yap",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "Ad Soyad",
     "header-logo-title": "Panolar sayfanıza geri dön.",
     "hide-system-messages": "Sistem mesajlarını gizle",

+ 2 - 1
i18n/uk.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Дошки",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/vi.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boards": "Bảng",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
@@ -247,7 +248,7 @@
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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",

+ 2 - 1
i18n/zh-CN.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "看板菜单",
     "boards": "看板",
     "board-view": "看板视图",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "泳道图",
     "board-view-lists": "列表",
     "bucket-example": "例如 “目标清单”",
@@ -247,7 +248,7 @@
     "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。",
     "filter-to-selection": "要选择的过滤器",
     "advanced-filter-label": "高级过滤器",
-    "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\/),请使用 \\ 转义字符。例如: Field1 = I\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 = V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。",
+    "advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\/),请使用 \\ 转义字符。例如: Field1 = I\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。",
     "fullname": "全称",
     "header-logo-title": "返回您的看板页",
     "hide-system-messages": "隐藏系统消息",

+ 2 - 1
i18n/zh-TW.i18n.json

@@ -100,6 +100,7 @@
     "boardMenuPopup-title": "看板選單",
     "boards": "看板",
     "board-view": "Board View",
+    "board-view-cal": "Calendar",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "清單",
     "bucket-example": "例如 “目標清單”",
@@ -247,7 +248,7 @@
     "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。",
     "filter-to-selection": "要選擇的過濾條件",
     "advanced-filter-label": "Advanced Filter",
-    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 = I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
+    "advanced-filter-description": "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": "全稱",
     "header-logo-title": "返回您的看板頁面",
     "hide-system-messages": "隱藏系統訊息",

+ 27 - 0
meta/t9n-changelog/fr.md

@@ -369,6 +369,33 @@ Boards.helpers({
     }
     return result;
   },
+
+  cardsInInterval(start, end) {
+    return Cards.find({
+      $or: [
+        {
+          startAt: {
+            $lte: start,
+          }, endAt: {
+            $gte: start,
+          },
+        }, {
+          startAt: {
+            $lte: end,
+          }, endAt: {
+            $gte: end,
+          },
+        }, {
+          startAt: {
+            $gte: start,
+          }, endAt: {
+            $lte: end,
+          },
+        },
+      ],
+    });
+  },
+
 });
 
 

+ 5 - 0
models/users.js

@@ -100,6 +100,11 @@ Users.attachSchema(new SimpleSchema({
   'profile.boardView': {
     type: String,
     optional: true,
+    allowedValues: [
+      'board-view-lists',
+      'board-view-swimlanes',
+      'board-view-cal',
+    ],
   },
   services: {
     type: Object,

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "1.07.0",
+  "version": "1.10.0",
   "description": "The open-source Trello-like kanban",
   "private": true,
   "scripts": {

+ 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 = 92,
+    appVersion = 95,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "1.07.0~2018-06-14"),
+    appMarketingVersion = (defaultText = "1.10.0~2018-06-28"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 1 - 2
snapcraft.yaml

@@ -110,8 +110,7 @@ parts:
             #   Fiber.poolSize = 1e9;
             # Download node version 8.11.1 that has fix included, node binary copied from Sandstorm
             # Description at https://releases.wekan.team/node.txt
-            # SHA256SUM: 18c99d5e79e2fe91e75157a31be30e5420787213684d4048eb91e602e092725d
-            echo "5f2703af5f7bd48e85fc8ed32d61de7c7cf81c53d0dcd73f6c218ed87e950fae  node" >> node-SHASUMS256.txt.asc
+            echo "13baa1b3114a5ea3248875e0f36cb46fcf8acd212de1fb74ba68ef4c9a4e1d93  node" >> node-SHASUMS256.txt.asc
             curl https://releases.wekan.team/node -o node
             # Verify Fibers patched node authenticity
             echo "Fibers 100% CPU issue patched node authenticity:"