Browse Source

Merge branch 'edge' into meteor-1.8

Lauri Ojansivu 6 years ago
parent
commit
60546d2ce3

+ 15 - 0
CHANGELOG.md

@@ -1,3 +1,18 @@
+# v2.24 2019-02-23 Wekan release
+
+This release adds the following new features:
+
+- [Add LDAP email] matching support](https://github.com/wekan/wekan-ldap/pull/39) and
+  [related env variables](https://github.com/wekan/wekan/pull/2198).
+  Thanks to GitHub user stevenpwaters.
+
+and fixes the following bugs:
+
+- [Add missing text .env to wekan/server/authentication.js](https://github.com/wekan/wekan/commit/4e6e78ccd216045e6ad41bcdab4e524f715a7eb5).
+  Thanks to Vanila Chat user .gitignore.
+
+Thanks to above contributors, and translators for their translation.
+
 # v2.23 2019-02-17 Wekan relase
 # v2.23 2019-02-17 Wekan relase
 
 
 This release fixes the following bugs:
 This release fixes the following bugs:

+ 8 - 0
Dockerfile

@@ -67,6 +67,10 @@ ARG LDAP_UNIQUE_IDENTIFIER_FIELD
 ARG LDAP_UTF8_NAMES_SLUGIFY
 ARG LDAP_UTF8_NAMES_SLUGIFY
 ARG LDAP_USERNAME_FIELD
 ARG LDAP_USERNAME_FIELD
 ARG LDAP_FULLNAME_FIELD
 ARG LDAP_FULLNAME_FIELD
+ARG LDAP_EMAIL_FIELD
+ARG LDAP_EMAIL_MATCH_ENABLE
+ARG LDAP_EMAIL_MATCH_REQUIRE
+ARG LDAP_EMAIL_MATCH_VERIFIED
 ARG LDAP_MERGE_EXISTING_USERS
 ARG LDAP_MERGE_EXISTING_USERS
 ARG LDAP_SYNC_USER_DATA
 ARG LDAP_SYNC_USER_DATA
 ARG LDAP_SYNC_USER_DATA_FIELDMAP
 ARG LDAP_SYNC_USER_DATA_FIELDMAP
@@ -149,6 +153,10 @@ ENV BUILD_DEPS="apt-utils bsdtar gnupg gosu wget curl bzip2 build-essential pyth
     LDAP_USERNAME_FIELD="" \
     LDAP_USERNAME_FIELD="" \
     LDAP_FULLNAME_FIELD="" \
     LDAP_FULLNAME_FIELD="" \
     LDAP_MERGE_EXISTING_USERS=false \
     LDAP_MERGE_EXISTING_USERS=false \
+    LDAP_EMAIL_FIELD="" \
+    LDAP_EMAIL_MATCH_ENABLE=false \
+    LDAP_EMAIL_MATCH_REQUIRE=false \
+    LDAP_EMAIL_MATCH_VERIFIED=false \
     LDAP_SYNC_USER_DATA=false \
     LDAP_SYNC_USER_DATA=false \
     LDAP_SYNC_USER_DATA_FIELDMAP="" \
     LDAP_SYNC_USER_DATA_FIELDMAP="" \
     LDAP_SYNC_GROUP_ROLES="" \
     LDAP_SYNC_GROUP_ROLES="" \

+ 1 - 1
Stackerfile.yml

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

+ 16 - 0
docker-compose.yml

@@ -469,6 +469,22 @@ services:
       # LDAP_MERGE_EXISTING_USERS :
       # LDAP_MERGE_EXISTING_USERS :
       # example : LDAP_MERGE_EXISTING_USERS=true
       # example : LDAP_MERGE_EXISTING_USERS=true
       #- LDAP_MERGE_EXISTING_USERS=false
       #- LDAP_MERGE_EXISTING_USERS=false
+      #
+      # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
+      # example: LDAP_EMAIL_MATCH_ENABLE=true
+      #- LDAP_EMAIL_MATCH_ENABLE=false
+      #
+      # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
+      # example: LDAP_EMAIL_MATCH_REQUIRE=true
+      #- LDAP_EMAIL_MATCH_REQUIRE=false
+      #
+      # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
+      # example: LDAP_EMAIL_MATCH_VERIFIED=true
+      #- LDAP_EMAIL_MATCH_VERIFIED=false
+      #
+      # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
+      # example: LDAP_EMAIL_FIELD=mail
+      #- LDAP_EMAIL_FIELD=
       #-----------------------------------------------------------------
       #-----------------------------------------------------------------
       # LDAP_SYNC_USER_DATA :
       # LDAP_SYNC_USER_DATA :
       # example : LDAP_SYNC_USER_DATA=true
       # example : LDAP_SYNC_USER_DATA=true

+ 25 - 25
i18n/cs.i18n.json

@@ -43,19 +43,19 @@
     "activity-sent": "%s posláno na %s",
     "activity-sent": "%s posláno na %s",
     "activity-unjoined": "odpojen %s",
     "activity-unjoined": "odpojen %s",
     "activity-subtask-added": "podúkol přidán do %s",
     "activity-subtask-added": "podúkol přidán do %s",
-    "activity-checked-item": "checked %s in checklist %s of %s",
-    "activity-unchecked-item": "unchecked %s in checklist %s of %s",
+    "activity-checked-item": "dokončen %s v seznamu %s z %s",
+    "activity-unchecked-item": "nedokončen %s v seznamu %s z %s",
     "activity-checklist-added": "přidán checklist do %s",
     "activity-checklist-added": "přidán checklist do %s",
     "activity-checklist-removed": "odstraněn checklist z %s",
     "activity-checklist-removed": "odstraněn checklist z %s",
     "activity-checklist-completed": "dokončen checklist %s z %s",
     "activity-checklist-completed": "dokončen checklist %s z %s",
-    "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
+    "activity-checklist-uncompleted": "nedokončen seznam %s z %s",
     "activity-checklist-item-added": "přidána položka checklist do '%s' v %s",
     "activity-checklist-item-added": "přidána položka checklist do '%s' v %s",
-    "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
+    "activity-checklist-item-removed": "odstraněna položka seznamu do '%s' v %s",
     "add": "Přidat",
     "add": "Přidat",
-    "activity-checked-item-card": "checked %s in checklist %s",
-    "activity-unchecked-item-card": "unchecked %s in checklist %s",
+    "activity-checked-item-card": "dokončen %s v seznamu %s",
+    "activity-unchecked-item-card": "nedokončen %s v seznamu %s",
     "activity-checklist-completed-card": "dokončen checklist %s",
     "activity-checklist-completed-card": "dokončen checklist %s",
-    "activity-checklist-uncompleted-card": "uncompleted the checklist %s",
+    "activity-checklist-uncompleted-card": "nedokončený seznam %s",
     "add-attachment": "Přidat přílohu",
     "add-attachment": "Přidat přílohu",
     "add-board": "Přidat tablo",
     "add-board": "Přidat tablo",
     "add-card": "Přidat kartu",
     "add-card": "Přidat kartu",
@@ -171,14 +171,14 @@
     "color-blue": "modrá",
     "color-blue": "modrá",
     "color-crimson": "crimson",
     "color-crimson": "crimson",
     "color-darkgreen": "darkgreen",
     "color-darkgreen": "darkgreen",
-    "color-gold": "gold",
-    "color-gray": "gray",
+    "color-gold": "zlatá",
+    "color-gray": "šedá",
     "color-green": "zelená",
     "color-green": "zelená",
     "color-indigo": "indigo",
     "color-indigo": "indigo",
     "color-lime": "světlezelená",
     "color-lime": "světlezelená",
     "color-magenta": "magenta",
     "color-magenta": "magenta",
     "color-mistyrose": "mistyrose",
     "color-mistyrose": "mistyrose",
-    "color-navy": "navy",
+    "color-navy": "tmavě modrá",
     "color-orange": "oranžová",
     "color-orange": "oranžová",
     "color-paleturquoise": "paleturquoise",
     "color-paleturquoise": "paleturquoise",
     "color-peachpuff": "peachpuff",
     "color-peachpuff": "peachpuff",
@@ -187,10 +187,10 @@
     "color-purple": "fialová",
     "color-purple": "fialová",
     "color-red": "červená",
     "color-red": "červená",
     "color-saddlebrown": "saddlebrown",
     "color-saddlebrown": "saddlebrown",
-    "color-silver": "silver",
+    "color-silver": "stříbrná",
     "color-sky": "nebeská",
     "color-sky": "nebeská",
     "color-slateblue": "slateblue",
     "color-slateblue": "slateblue",
-    "color-white": "white",
+    "color-white": "bílá",
     "color-yellow": "žlutá",
     "color-yellow": "žlutá",
     "unset-color": "Unset",
     "unset-color": "Unset",
     "comment": "Komentář",
     "comment": "Komentář",
@@ -335,7 +335,7 @@
     "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
     "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
     "list-move-cards": "Přesunout všechny karty v tomto sloupci",
     "list-move-cards": "Přesunout všechny karty v tomto sloupci",
     "list-select-cards": "Vybrat všechny karty v tomto sloupci",
     "list-select-cards": "Vybrat všechny karty v tomto sloupci",
-    "set-color-list": "Set Color",
+    "set-color-list": "Nastavit barvu",
     "listActionPopup-title": "Vypsat akce",
     "listActionPopup-title": "Vypsat akce",
     "swimlaneActionPopup-title": "Akce swimlane",
     "swimlaneActionPopup-title": "Akce swimlane",
     "swimlaneAddPopup-title": "Add a Swimlane below",
     "swimlaneAddPopup-title": "Add a Swimlane below",
@@ -498,7 +498,7 @@
     "OS_Totalmem": "OS Celková paměť",
     "OS_Totalmem": "OS Celková paměť",
     "OS_Type": "Typ OS",
     "OS_Type": "Typ OS",
     "OS_Uptime": "OS Doba běhu systému",
     "OS_Uptime": "OS Doba běhu systému",
-    "days": "days",
+    "days": "d",
     "hours": "hodin",
     "hours": "hodin",
     "minutes": "minut",
     "minutes": "minut",
     "seconds": "sekund",
     "seconds": "sekund",
@@ -519,10 +519,10 @@
     "card-end-on": "Končí v",
     "card-end-on": "Končí v",
     "editCardReceivedDatePopup-title": "Změnit datum přijetí",
     "editCardReceivedDatePopup-title": "Změnit datum přijetí",
     "editCardEndDatePopup-title": "Změnit datum konce",
     "editCardEndDatePopup-title": "Změnit datum konce",
-    "setCardColorPopup-title": "Set color",
-    "setCardActionsColorPopup-title": "Choose a color",
-    "setSwimlaneColorPopup-title": "Choose a color",
-    "setListColorPopup-title": "Choose a color",
+    "setCardColorPopup-title": "Nastav barvu",
+    "setCardActionsColorPopup-title": "Vyber barvu",
+    "setSwimlaneColorPopup-title": "Vyber barvu",
+    "setListColorPopup-title": "Vyber barvu",
     "assigned-by": "Přidělil(a)",
     "assigned-by": "Přidělil(a)",
     "requested-by": "Vyžádal(a)",
     "requested-by": "Vyžádal(a)",
     "board-delete-notice": "Smazání je trvalé. Přijdete o všechny sloupce, karty a akce spojené s tímto tablem.",
     "board-delete-notice": "Smazání je trvalé. Přijdete o všechny sloupce, karty a akce spojené s tímto tablem.",
@@ -590,8 +590,8 @@
     "r-checked": "Zaškrtnuto",
     "r-checked": "Zaškrtnuto",
     "r-unchecked": "Odškrtnuto",
     "r-unchecked": "Odškrtnuto",
     "r-move-card-to": "Přesunout kartu do",
     "r-move-card-to": "Přesunout kartu do",
-    "r-top-of": "Top of",
-    "r-bottom-of": "Bottom of",
+    "r-top-of": "Začátek",
+    "r-bottom-of": "Spodek",
     "r-its-list": "toho sloupce",
     "r-its-list": "toho sloupce",
     "r-archive": "Přesunout do archivu",
     "r-archive": "Přesunout do archivu",
     "r-unarchive": "Obnovit z archivu",
     "r-unarchive": "Obnovit z archivu",
@@ -601,7 +601,7 @@
     "r-label": "štítek",
     "r-label": "štítek",
     "r-member": "člen",
     "r-member": "člen",
     "r-remove-all": "Odstranit všechny členy z této karty",
     "r-remove-all": "Odstranit všechny členy z této karty",
-    "r-set-color": "Set color to",
+    "r-set-color": "Nastav barvu na",
     "r-checklist": "zaškrtávací seznam",
     "r-checklist": "zaškrtávací seznam",
     "r-check-all": "Zaškrtnout vše",
     "r-check-all": "Zaškrtnout vše",
     "r-uncheck-all": "Odškrtnout vše",
     "r-uncheck-all": "Odškrtnout vše",
@@ -656,10 +656,10 @@
     "custom-product-name": "Vlastní název produktu",
     "custom-product-name": "Vlastní název produktu",
     "layout": "uspořádání",
     "layout": "uspořádání",
     "hide-logo": "Skrýt logo",
     "hide-logo": "Skrýt logo",
-    "add-custom-html-after-body-start": "Add Custom HTML after <body> start",
-    "add-custom-html-before-body-end": "Add Custom HTML before </body> end",
+    "add-custom-html-after-body-start": "Přidej vlastní HTML za <body>",
+    "add-custom-html-before-body-end": "Přidej vlastní HTML před </body>",
     "error-undefined": "Něco se pokazilo",
     "error-undefined": "Něco se pokazilo",
     "error-ldap-login": "Během přihlašování nastala chyba",
     "error-ldap-login": "Během přihlašování nastala chyba",
-    "display-authentication-method": "Display Authentication Method",
-    "default-authentication-method": "Default Authentication Method"
+    "display-authentication-method": "Zobraz způsob ověřování",
+    "default-authentication-method": "Zobraz způsob ověřování"
 }
 }

+ 42 - 42
i18n/fa.i18n.json

@@ -169,30 +169,30 @@
     "close-board-pop": "شما می توانید با کلیک کردن بر روی دکمه «بایگانی» از صفحه هدر، صفحه را بازگردانید.",
     "close-board-pop": "شما می توانید با کلیک کردن بر روی دکمه «بایگانی» از صفحه هدر، صفحه را بازگردانید.",
     "color-black": "مشکی",
     "color-black": "مشکی",
     "color-blue": "آبی",
     "color-blue": "آبی",
-    "color-crimson": "crimson",
-    "color-darkgreen": "darkgreen",
-    "color-gold": "gold",
-    "color-gray": "gray",
+    "color-crimson": "قرمز",
+    "color-darkgreen": "سبز تیره",
+    "color-gold": "طلایی",
+    "color-gray": "خاکستری",
     "color-green": "سبز",
     "color-green": "سبز",
-    "color-indigo": "indigo",
+    "color-indigo": "نیلی",
     "color-lime": "لیمویی",
     "color-lime": "لیمویی",
-    "color-magenta": "magenta",
-    "color-mistyrose": "mistyrose",
-    "color-navy": "navy",
+    "color-magenta": "ارغوانی",
+    "color-mistyrose": "صورتی روشن",
+    "color-navy": "لاجوردی",
     "color-orange": "نارنجی",
     "color-orange": "نارنجی",
-    "color-paleturquoise": "paleturquoise",
-    "color-peachpuff": "peachpuff",
+    "color-paleturquoise": "فیروزه‌ای کدر",
+    "color-peachpuff": "هلویی",
     "color-pink": "صورتی",
     "color-pink": "صورتی",
-    "color-plum": "plum",
+    "color-plum": "بنفش کدر",
     "color-purple": "بنفش",
     "color-purple": "بنفش",
     "color-red": "قرمز",
     "color-red": "قرمز",
-    "color-saddlebrown": "saddlebrown",
-    "color-silver": "silver",
+    "color-saddlebrown": "کاکائویی",
+    "color-silver": "نقره‌ای",
     "color-sky": "آبی آسمانی",
     "color-sky": "آبی آسمانی",
-    "color-slateblue": "slateblue",
-    "color-white": "white",
+    "color-slateblue": "آبی فولادی",
+    "color-white": "سفید",
     "color-yellow": "زرد",
     "color-yellow": "زرد",
-    "unset-color": "Unset",
+    "unset-color": "بازنشانی",
     "comment": "نظر",
     "comment": "نظر",
     "comment-placeholder": "درج نظر",
     "comment-placeholder": "درج نظر",
     "comment-only": "فقط نظر",
     "comment-only": "فقط نظر",
@@ -335,10 +335,10 @@
     "list-archive-cards-pop": "این کارتباعث حذف تمامی کارت های این لیست از برد می شود . برای مشاهده کارت ها در آرشیو و برگرداندن آنها به برد بر بروی \"Menu\">\"Archive\" کلیک نمایید",
     "list-archive-cards-pop": "این کارتباعث حذف تمامی کارت های این لیست از برد می شود . برای مشاهده کارت ها در آرشیو و برگرداندن آنها به برد بر بروی \"Menu\">\"Archive\" کلیک نمایید",
     "list-move-cards": "انتقال تمام کارت های این لیست",
     "list-move-cards": "انتقال تمام کارت های این لیست",
     "list-select-cards": "انتخاب تمام کارت های این لیست",
     "list-select-cards": "انتخاب تمام کارت های این لیست",
-    "set-color-list": "Set Color",
+    "set-color-list": "انتخاب رنگ",
     "listActionPopup-title": "لیست اقدامات",
     "listActionPopup-title": "لیست اقدامات",
     "swimlaneActionPopup-title": "Swimlane Actions",
     "swimlaneActionPopup-title": "Swimlane Actions",
-    "swimlaneAddPopup-title": "Add a Swimlane below",
+    "swimlaneAddPopup-title": "اضافه کردن مسیر شناور",
     "listImportCardPopup-title": "وارد کردن کارت Trello",
     "listImportCardPopup-title": "وارد کردن کارت Trello",
     "listMorePopup-title": "بیشتر",
     "listMorePopup-title": "بیشتر",
     "link-list": "پیوند به این فهرست",
     "link-list": "پیوند به این فهرست",
@@ -485,7 +485,7 @@
     "error-notAuthorized": "شما مجاز به دیدن این صفحه نیستید.",
     "error-notAuthorized": "شما مجاز به دیدن این صفحه نیستید.",
     "outgoing-webhooks": "Outgoing Webhooks",
     "outgoing-webhooks": "Outgoing Webhooks",
     "outgoingWebhooksPopup-title": "Outgoing Webhooks",
     "outgoingWebhooksPopup-title": "Outgoing Webhooks",
-    "boardCardTitlePopup-title": "Card Title Filter",
+    "boardCardTitlePopup-title": "فیلتر موضوع کارت",
     "new-outgoing-webhook": "New Outgoing Webhook",
     "new-outgoing-webhook": "New Outgoing Webhook",
     "no-name": "(ناشناخته)",
     "no-name": "(ناشناخته)",
     "Node_version": "نسخه Node ",
     "Node_version": "نسخه Node ",
@@ -498,7 +498,7 @@
     "OS_Totalmem": "OS Total Memory",
     "OS_Totalmem": "OS Total Memory",
     "OS_Type": "OS Type",
     "OS_Type": "OS Type",
     "OS_Uptime": "OS Uptime",
     "OS_Uptime": "OS Uptime",
-    "days": "days",
+    "days": "روزه‌ها",
     "hours": "ساعت",
     "hours": "ساعت",
     "minutes": "دقیقه",
     "minutes": "دقیقه",
     "seconds": "ثانیه",
     "seconds": "ثانیه",
@@ -519,10 +519,10 @@
     "card-end-on": "پایان در",
     "card-end-on": "پایان در",
     "editCardReceivedDatePopup-title": "تغییر تاریخ رسید",
     "editCardReceivedDatePopup-title": "تغییر تاریخ رسید",
     "editCardEndDatePopup-title": "تغییر تاریخ پایان",
     "editCardEndDatePopup-title": "تغییر تاریخ پایان",
-    "setCardColorPopup-title": "Set color",
-    "setCardActionsColorPopup-title": "Choose a color",
-    "setSwimlaneColorPopup-title": "Choose a color",
-    "setListColorPopup-title": "Choose a color",
+    "setCardColorPopup-title": "انتخاب رنگ",
+    "setCardActionsColorPopup-title": "انتخاب کردن رنگ",
+    "setSwimlaneColorPopup-title": "انتخاب کردن رنگ",
+    "setListColorPopup-title": "انتخاب کردن رنگ",
     "assigned-by": "محول شده توسط",
     "assigned-by": "محول شده توسط",
     "requested-by": "تقاضا شده توسط",
     "requested-by": "تقاضا شده توسط",
     "board-delete-notice": "حذف دائمی است شما تمام لیست ها، کارت ها و اقدامات مرتبط با این برد را از دست خواهید داد.",
     "board-delete-notice": "حذف دائمی است شما تمام لیست ها، کارت ها و اقدامات مرتبط با این برد را از دست خواهید داد.",
@@ -561,14 +561,14 @@
     "r-delete-rule": "حذف قانون",
     "r-delete-rule": "حذف قانون",
     "r-new-rule-name": "تیتر قانون جدید",
     "r-new-rule-name": "تیتر قانون جدید",
     "r-no-rules": "بدون قانون",
     "r-no-rules": "بدون قانون",
-    "r-when-a-card": "When a card",
+    "r-when-a-card": "زمانی که کارت",
     "r-is": "هست",
     "r-is": "هست",
-    "r-is-moved": "is moved",
-    "r-added-to": "added to",
+    "r-is-moved": "جابه‌جا شده",
+    "r-added-to": "اضافه شد به",
     "r-removed-from": "حذف از",
     "r-removed-from": "حذف از",
     "r-the-board": "برد",
     "r-the-board": "برد",
     "r-list": "لیست",
     "r-list": "لیست",
-    "set-filter": "Set Filter",
+    "set-filter": "اضافه کردن فیلتر",
     "r-moved-to": "انتقال به",
     "r-moved-to": "انتقال به",
     "r-moved-from": "انتقال از",
     "r-moved-from": "انتقال از",
     "r-archived": "انتقال به آرشیو",
     "r-archived": "انتقال به آرشیو",
@@ -576,7 +576,7 @@
     "r-a-card": "کارت",
     "r-a-card": "کارت",
     "r-when-a-label-is": "زمانی که لیبل هست",
     "r-when-a-label-is": "زمانی که لیبل هست",
     "r-when-the-label-is": "زمانی که لیبل هست",
     "r-when-the-label-is": "زمانی که لیبل هست",
-    "r-list-name": "list name",
+    "r-list-name": "نام لیست",
     "r-when-a-member": "زمانی که کاربر هست",
     "r-when-a-member": "زمانی که کاربر هست",
     "r-when-the-member": "زمانی که کاربر",
     "r-when-the-member": "زمانی که کاربر",
     "r-name": "نام",
     "r-name": "نام",
@@ -601,7 +601,7 @@
     "r-label": "برچسب",
     "r-label": "برچسب",
     "r-member": "عضو",
     "r-member": "عضو",
     "r-remove-all": "حذف همه کاربران از کارت",
     "r-remove-all": "حذف همه کاربران از کارت",
-    "r-set-color": "Set color to",
+    "r-set-color": "انتخاب رنگ به",
     "r-checklist": "چک لیست",
     "r-checklist": "چک لیست",
     "r-check-all": "انتخاب همه",
     "r-check-all": "انتخاب همه",
     "r-uncheck-all": "لغو انتخاب همه",
     "r-uncheck-all": "لغو انتخاب همه",
@@ -626,9 +626,9 @@
     "r-d-unarchive": "بازگردانی کارت از آرشیو",
     "r-d-unarchive": "بازگردانی کارت از آرشیو",
     "r-d-add-label": "افزودن برچسب",
     "r-d-add-label": "افزودن برچسب",
     "r-d-remove-label": "حذف برچسب",
     "r-d-remove-label": "حذف برچسب",
-    "r-create-card": "Create new card",
-    "r-in-list": "in list",
-    "r-in-swimlane": "in swimlane",
+    "r-create-card": "ساخت کارت جدید",
+    "r-in-list": "در لیست",
+    "r-in-swimlane": "در مسیرِ شناور",
     "r-d-add-member": "افزودن عضو",
     "r-d-add-member": "افزودن عضو",
     "r-d-remove-member": "حذف عضو",
     "r-d-remove-member": "حذف عضو",
     "r-d-remove-all-member": "حذف تمامی کاربران",
     "r-d-remove-all-member": "حذف تمامی کاربران",
@@ -639,14 +639,14 @@
     "r-d-check-of-list": "از چک لیست",
     "r-d-check-of-list": "از چک لیست",
     "r-d-add-checklist": "افزودن چک لیست",
     "r-d-add-checklist": "افزودن چک لیست",
     "r-d-remove-checklist": "حذف چک لیست",
     "r-d-remove-checklist": "حذف چک لیست",
-    "r-by": "by",
+    "r-by": "توسط",
     "r-add-checklist": "افزودن چک لیست",
     "r-add-checklist": "افزودن چک لیست",
-    "r-with-items": "with items",
-    "r-items-list": "item1,item2,item3",
-    "r-add-swimlane": "Add swimlane",
-    "r-swimlane-name": "swimlane name",
-    "r-board-note": "Note: leave a field empty to match every possible value.",
-    "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
+    "r-with-items": "با موارد",
+    "r-items-list": "مورد۱،مورد۲،مورد۳",
+    "r-add-swimlane": "اضافه کردن مسیر شناور",
+    "r-swimlane-name": "نام مسیر شناور",
+    "r-board-note": "نکته: برای نمایش موارد ممکن کادر را خالی بگذارید.",
+    "r-checklist-note": "نکته: چک‌لیست‌ها باید توسط کاما از یک‌دیگر جدا شوند.",
     "r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد",
     "r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد",
     "ldap": "LDAP",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "oauth2": "OAuth2",
@@ -660,6 +660,6 @@
     "add-custom-html-before-body-end": "افزودن کد های HTML قبل از  </body> پایان",
     "add-custom-html-before-body-end": "افزودن کد های HTML قبل از  </body> پایان",
     "error-undefined": "یک اشتباه رخ داده شده است",
     "error-undefined": "یک اشتباه رخ داده شده است",
     "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد",
     "error-ldap-login": "هنگام تلاش برای ورود به یک خطا رخ داد",
-    "display-authentication-method": "Display Authentication Method",
-    "default-authentication-method": "Default Authentication Method"
+    "display-authentication-method": "نمایش نوع اعتبارسنجی",
+    "default-authentication-method": "نوع اعتبارسنجی پیشفرض"
 }
 }

+ 57 - 57
i18n/ta.i18n.json

@@ -1,5 +1,5 @@
 {
 {
-    "accept": "Accept",
+    "accept": "ஏற்றுக்கொள்",
     "act-activity-notify": "Activity Notification",
     "act-activity-notify": "Activity Notification",
     "act-addAttachment": "attached __attachment__ to __card__",
     "act-addAttachment": "attached __attachment__ to __card__",
     "act-addSubtask": "added subtask __checklist__ to __card__",
     "act-addSubtask": "added subtask __checklist__ to __card__",
@@ -31,17 +31,17 @@
     "activity-added": "added %s to %s",
     "activity-added": "added %s to %s",
     "activity-archived": "%s moved to Archive",
     "activity-archived": "%s moved to Archive",
     "activity-attached": "attached %s to %s",
     "activity-attached": "attached %s to %s",
-    "activity-created": "created %s",
+    "activity-created": "உருவாக்கப்பட்டது ",
     "activity-customfield-created": "created custom field %s",
     "activity-customfield-created": "created custom field %s",
     "activity-excluded": "excluded %s from %s",
     "activity-excluded": "excluded %s from %s",
     "activity-imported": "imported %s into %s from %s",
     "activity-imported": "imported %s into %s from %s",
     "activity-imported-board": "imported %s from %s",
     "activity-imported-board": "imported %s from %s",
-    "activity-joined": "joined %s",
+    "activity-joined": "சேர்ந்தது ",
     "activity-moved": "moved %s from %s to %s",
     "activity-moved": "moved %s from %s to %s",
     "activity-on": "on %s",
     "activity-on": "on %s",
     "activity-removed": "removed %s from %s",
     "activity-removed": "removed %s from %s",
     "activity-sent": "sent %s to %s",
     "activity-sent": "sent %s to %s",
-    "activity-unjoined": "unjoined %s",
+    "activity-unjoined": "பிரிக்கப்பட்டது ",
     "activity-subtask-added": "added subtask to %s",
     "activity-subtask-added": "added subtask to %s",
     "activity-checked-item": "checked %s in checklist %s of %s",
     "activity-checked-item": "checked %s in checklist %s of %s",
     "activity-unchecked-item": "unchecked %s in checklist %s of %s",
     "activity-unchecked-item": "unchecked %s in checklist %s of %s",
@@ -51,7 +51,7 @@
     "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
     "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
     "activity-checklist-item-added": "added checklist item to '%s' in %s",
     "activity-checklist-item-added": "added checklist item to '%s' in %s",
     "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
     "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
-    "add": "Add",
+    "add": "சேர் ",
     "activity-checked-item-card": "checked %s in checklist %s",
     "activity-checked-item-card": "checked %s in checklist %s",
     "activity-unchecked-item-card": "unchecked %s in checklist %s",
     "activity-unchecked-item-card": "unchecked %s in checklist %s",
     "activity-checklist-completed-card": "completed the checklist %s",
     "activity-checklist-completed-card": "completed the checklist %s",
@@ -94,14 +94,14 @@
     "archives": "Archive",
     "archives": "Archive",
     "assign-member": "Assign member",
     "assign-member": "Assign member",
     "attached": "attached",
     "attached": "attached",
-    "attachment": "Attachment",
+    "attachment": "இணைப்பு ",
     "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
     "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
     "attachmentDeletePopup-title": "Delete Attachment?",
     "attachmentDeletePopup-title": "Delete Attachment?",
-    "attachments": "Attachments",
+    "attachments": "இணைப்புகள் ",
     "auto-watch": "Automatically watch boards when they are created",
     "auto-watch": "Automatically watch boards when they are created",
     "avatar-too-big": "The avatar is too large (70KB max)",
     "avatar-too-big": "The avatar is too large (70KB max)",
-    "back": "Back",
-    "board-change-color": "Change color",
+    "back": "பின்செல் ",
+    "board-change-color": "நிறம் மாற்று ",
     "board-nb-stars": "%s stars",
     "board-nb-stars": "%s stars",
     "board-not-found": "Board not found",
     "board-not-found": "Board not found",
     "board-private-info": "This board will be <strong>private</strong>.",
     "board-private-info": "This board will be <strong>private</strong>.",
@@ -113,7 +113,7 @@
     "boardMenuPopup-title": "Board Menu",
     "boardMenuPopup-title": "Board Menu",
     "boards": "Boards",
     "boards": "Boards",
     "board-view": "Board View",
     "board-view": "Board View",
-    "board-view-cal": "Calendar",
+    "board-view-cal": "நாள்கட்டி ",
     "board-view-swimlanes": "Swimlanes",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Lists",
     "board-view-lists": "Lists",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
@@ -142,7 +142,7 @@
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardLabelsPopup-title": "Labels",
     "cardLabelsPopup-title": "Labels",
     "cardMembersPopup-title": "Members",
     "cardMembersPopup-title": "Members",
-    "cardMorePopup-title": "More",
+    "cardMorePopup-title": "மேலும் ",
     "cards": "Cards",
     "cards": "Cards",
     "cards-count": "Cards",
     "cards-count": "Cards",
     "casSignIn": "Sign In with CAS",
     "casSignIn": "Sign In with CAS",
@@ -151,12 +151,12 @@
     "cardType-linkedBoard": "Linked Board",
     "cardType-linkedBoard": "Linked Board",
     "change": "Change",
     "change": "Change",
     "change-avatar": "Change Avatar",
     "change-avatar": "Change Avatar",
-    "change-password": "Change Password",
+    "change-password": "கடவுச்சொல்லை மாற்று ",
     "change-permissions": "Change permissions",
     "change-permissions": "Change permissions",
     "change-settings": "Change Settings",
     "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Change Avatar",
     "changeAvatarPopup-title": "Change Avatar",
     "changeLanguagePopup-title": "Change Language",
     "changeLanguagePopup-title": "Change Language",
-    "changePasswordPopup-title": "Change Password",
+    "changePasswordPopup-title": "கடவுச்சொல்லை மாற்றுக ",
     "changePermissionsPopup-title": "Change Permissions",
     "changePermissionsPopup-title": "Change Permissions",
     "changeSettingsPopup-title": "Change Settings",
     "changeSettingsPopup-title": "Change Settings",
     "subtasks": "Subtasks",
     "subtasks": "Subtasks",
@@ -170,36 +170,36 @@
     "color-black": "black",
     "color-black": "black",
     "color-blue": "blue",
     "color-blue": "blue",
     "color-crimson": "crimson",
     "color-crimson": "crimson",
-    "color-darkgreen": "darkgreen",
-    "color-gold": "gold",
+    "color-darkgreen": "அடர் பச்சை ",
+    "color-gold": "தங்கம் ",
     "color-gray": "gray",
     "color-gray": "gray",
-    "color-green": "green",
+    "color-green": "பச்சை ",
     "color-indigo": "indigo",
     "color-indigo": "indigo",
-    "color-lime": "lime",
+    "color-lime": "வெளிர் பச்சை ",
     "color-magenta": "magenta",
     "color-magenta": "magenta",
     "color-mistyrose": "mistyrose",
     "color-mistyrose": "mistyrose",
     "color-navy": "navy",
     "color-navy": "navy",
-    "color-orange": "orange",
+    "color-orange": "ஆரஞ்சு ",
     "color-paleturquoise": "paleturquoise",
     "color-paleturquoise": "paleturquoise",
     "color-peachpuff": "peachpuff",
     "color-peachpuff": "peachpuff",
     "color-pink": "pink",
     "color-pink": "pink",
     "color-plum": "plum",
     "color-plum": "plum",
     "color-purple": "purple",
     "color-purple": "purple",
-    "color-red": "red",
+    "color-red": "சிகப்பு ",
     "color-saddlebrown": "saddlebrown",
     "color-saddlebrown": "saddlebrown",
-    "color-silver": "silver",
-    "color-sky": "sky",
+    "color-silver": "வெள்ளி ",
+    "color-sky": "வாணம் ",
     "color-slateblue": "slateblue",
     "color-slateblue": "slateblue",
-    "color-white": "white",
-    "color-yellow": "yellow",
+    "color-white": "வெள்ளை ",
+    "color-yellow": "மஞ்சள் ",
     "unset-color": "Unset",
     "unset-color": "Unset",
-    "comment": "Comment",
+    "comment": "கருத்து ",
     "comment-placeholder": "Write Comment",
     "comment-placeholder": "Write Comment",
-    "comment-only": "Comment only",
+    "comment-only": "கருத்து மட்டும் ",
     "comment-only-desc": "Can comment on cards only.",
     "comment-only-desc": "Can comment on cards only.",
-    "no-comments": "No comments",
+    "no-comments": "கருத்து இல்லை ",
     "no-comments-desc": "Can not see comments and activities.",
     "no-comments-desc": "Can not see comments and activities.",
-    "computer": "Computer",
+    "computer": "கணினி ",
     "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
     "confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
     "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
     "confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
     "copy-card-link-to-clipboard": "Copy card link to clipboard",
     "copy-card-link-to-clipboard": "Copy card link to clipboard",
@@ -209,7 +209,7 @@
     "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
     "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
     "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
     "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
     "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
     "copyChecklistToManyCardsPopup-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",
+    "create": "உருவாக்கு ",
     "createBoardPopup-title": "Create Board",
     "createBoardPopup-title": "Create Board",
     "chooseBoardSourcePopup-title": "Import board",
     "chooseBoardSourcePopup-title": "Import board",
     "createLabelPopup-title": "Create Label",
     "createLabelPopup-title": "Create Label",
@@ -218,16 +218,16 @@
     "current": "current",
     "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-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-checkbox": "Checkbox",
-    "custom-field-date": "Date",
+    "custom-field-date": "நாள் ",
     "custom-field-dropdown": "Dropdown List",
     "custom-field-dropdown": "Dropdown List",
     "custom-field-dropdown-none": "(none)",
     "custom-field-dropdown-none": "(none)",
     "custom-field-dropdown-options": "List Options",
     "custom-field-dropdown-options": "List Options",
     "custom-field-dropdown-options-placeholder": "Press enter to add more options",
     "custom-field-dropdown-options-placeholder": "Press enter to add more options",
     "custom-field-dropdown-unknown": "(unknown)",
     "custom-field-dropdown-unknown": "(unknown)",
-    "custom-field-number": "Number",
+    "custom-field-number": "எண் ",
     "custom-field-text": "Text",
     "custom-field-text": "Text",
     "custom-fields": "Custom Fields",
     "custom-fields": "Custom Fields",
-    "date": "Date",
+    "date": "நாள் ",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "Default avatar",
     "default-avatar": "Default avatar",
     "delete": "Delete",
     "delete": "Delete",
@@ -238,8 +238,8 @@
     "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
     "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
     "discard": "Discard",
     "discard": "Discard",
     "done": "Done",
     "done": "Done",
-    "download": "Download",
-    "edit": "Edit",
+    "download": "பதிவிறக்கம் ",
+    "edit": "திருத்து ",
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
     "edit-wip-limit": "Edit WIP Limit",
     "edit-wip-limit": "Edit WIP Limit",
@@ -251,7 +251,7 @@
     "editLabelPopup-title": "Change Label",
     "editLabelPopup-title": "Change Label",
     "editNotificationPopup-title": "Edit Notification",
     "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Edit Profile",
     "editProfilePopup-title": "Edit Profile",
-    "email": "Email",
+    "email": "மின் அஞ்சல் ",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "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-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": "Sending email failed",
@@ -289,20 +289,20 @@
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "advanced-filter-label": "Advanced 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": "Full Name",
+    "fullname": "முழு பெயர் ",
     "header-logo-title": "Go back to your boards page.",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",
     "hide-system-messages": "Hide system messages",
     "headerBarCreateBoardPopup-title": "Create Board",
     "headerBarCreateBoardPopup-title": "Create Board",
-    "home": "Home",
-    "import": "Import",
-    "link": "Link",
+    "home": "தொடக்கம் ",
+    "import": "பதிவேற்றம் ",
+    "link": "இணை ",
     "import-board": "import board",
     "import-board": "import board",
     "import-board-c": "Import board",
     "import-board-c": "Import board",
     "import-board-title-trello": "Import board from Trello",
     "import-board-title-trello": "Import board from Trello",
     "import-board-title-wekan": "Import board from previous export",
     "import-board-title-wekan": "Import board from previous export",
     "import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
     "import-sandstorm-backup-warning": "Do not delete data you import from original exported board or Trello before checking does this grain close and open again, or do you get Board not found error, that means data loss.",
     "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
     "import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
-    "from-trello": "From Trello",
+    "from-trello": "Trello ல் இருந்து ",
     "from-wekan": "From previous export",
     "from-wekan": "From previous export",
     "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-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 board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
     "import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
@@ -325,7 +325,7 @@
     "label-default": "%s label (default)",
     "label-default": "%s label (default)",
     "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
     "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
     "labels": "Labels",
     "labels": "Labels",
-    "language": "Language",
+    "language": "மொழி ",
     "last-admin-desc": "You can’t change roles because there must be at least one admin.",
     "last-admin-desc": "You can’t change roles because there must be at least one admin.",
     "leave-board": "Leave Board",
     "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.",
     "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
@@ -335,12 +335,12 @@
     "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
     "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
     "list-move-cards": "Move all cards in this list",
     "list-move-cards": "Move all cards in this list",
     "list-select-cards": "Select all cards in this list",
     "list-select-cards": "Select all cards in this list",
-    "set-color-list": "Set Color",
+    "set-color-list": "நிறத்தை மாற்று ",
     "listActionPopup-title": "List Actions",
     "listActionPopup-title": "List Actions",
     "swimlaneActionPopup-title": "Swimlane Actions",
     "swimlaneActionPopup-title": "Swimlane Actions",
     "swimlaneAddPopup-title": "Add a Swimlane below",
     "swimlaneAddPopup-title": "Add a Swimlane below",
     "listImportCardPopup-title": "Import a Trello card",
     "listImportCardPopup-title": "Import a Trello card",
-    "listMorePopup-title": "More",
+    "listMorePopup-title": "மேலும் ",
     "link-list": "Link to this list",
     "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-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
     "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
     "list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
@@ -362,7 +362,7 @@
     "muted": "Muted",
     "muted": "Muted",
     "muted-info": "You will never be notified of any changes in this board",
     "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "My Boards",
     "my-boards": "My Boards",
-    "name": "Name",
+    "name": "பெயர் ",
     "no-archived-cards": "No cards in Archive.",
     "no-archived-cards": "No cards in Archive.",
     "no-archived-lists": "No lists in Archive.",
     "no-archived-lists": "No lists in Archive.",
     "no-archived-swimlanes": "No swimlanes in Archive.",
     "no-archived-swimlanes": "No swimlanes in Archive.",
@@ -376,16 +376,16 @@
     "or": "or",
     "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-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.",
     "page-not-found": "Page not found.",
-    "password": "Password",
+    "password": "கடவுச்சொல் ",
     "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
     "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
     "participating": "Participating",
     "participating": "Participating",
     "preview": "Preview",
     "preview": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
-    "private": "Private",
+    "private": "தனியார் ",
     "private-desc": "This board is private. Only people added to the board can view and edit it.",
     "private-desc": "This board is private. Only people added to the board can view and edit it.",
     "profile": "Profile",
     "profile": "Profile",
-    "public": "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.",
     "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.",
     "quick-access-description": "Star a board to add a shortcut in this bar.",
     "remove-cover": "Remove Cover",
     "remove-cover": "Remove Cover",
@@ -396,11 +396,11 @@
     "remove-member-from-card": "Remove from Card",
     "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.",
     "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?",
     "removeMemberPopup-title": "Remove Member?",
-    "rename": "Rename",
+    "rename": "பெயர்மாற்றம் ",
     "rename-board": "Rename Board",
     "rename-board": "Rename Board",
     "restore": "Restore",
     "restore": "Restore",
-    "save": "Save",
-    "search": "Search",
+    "save": "சேமி ",
+    "search": "தேடு ",
     "rules": "Rules",
     "rules": "Rules",
     "search-cards": "Search from card titles and descriptions on this board",
     "search-cards": "Search from card titles and descriptions on this board",
     "search-example": "Text to search for?",
     "search-example": "Text to search for?",
@@ -423,8 +423,8 @@
     "star-board-title": "Click to star this board. It will show up at top of your boards list.",
     "star-board-title": "Click to star this board. It will show up at top of your boards list.",
     "starred-boards": "Starred Boards",
     "starred-boards": "Starred Boards",
     "starred-boards-description": "Starred boards show up at the top of your boards list.",
     "starred-boards-description": "Starred boards show up at the top of your boards list.",
-    "subscribe": "Subscribe",
-    "team": "Team",
+    "subscribe": "சந்தா ",
+    "team": "குழு ",
     "this-board": "this board",
     "this-board": "this board",
     "this-card": "this card",
     "this-card": "this card",
     "spent-time-hours": "Spent time (hours)",
     "spent-time-hours": "Spent time (hours)",
@@ -462,7 +462,7 @@
     "people": "People",
     "people": "People",
     "registration": "Registration",
     "registration": "Registration",
     "disable-self-registration": "Disable Self-Registration",
     "disable-self-registration": "Disable Self-Registration",
-    "invite": "Invite",
+    "invite": "அழைப்பு ",
     "invite-people": "Invite People",
     "invite-people": "Invite People",
     "to-boards": "To board(s)",
     "to-boards": "To board(s)",
     "email-addresses": "Email Addresses",
     "email-addresses": "Email Addresses",
@@ -472,10 +472,10 @@
     "smtp-host": "SMTP Host",
     "smtp-host": "SMTP Host",
     "smtp-port": "SMTP Port",
     "smtp-port": "SMTP Port",
     "smtp-username": "Username",
     "smtp-username": "Username",
-    "smtp-password": "Password",
+    "smtp-password": "கடவுச்சொல் ",
     "smtp-tls": "TLS support",
     "smtp-tls": "TLS support",
-    "send-from": "From",
-    "send-smtp-test": "Send a test email to yourself",
+    "send-from": "அனுப்புனர் ",
+    "send-smtp-test": "சோதனை மின்னஞ்சல் அணுப்புக ",
     "invitation-code": "Invitation Code",
     "invitation-code": "Invitation Code",
     "email-invite-register-subject": "__inviter__ sent you an invitation",
     "email-invite-register-subject": "__inviter__ sent you an invitation",
     "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
     "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
@@ -515,7 +515,7 @@
     "active": "Active",
     "active": "Active",
     "card-received": "Received",
     "card-received": "Received",
     "card-received-on": "Received on",
     "card-received-on": "Received on",
-    "card-end": "End",
+    "card-end": "முடிவு ",
     "card-end-on": "Ends on",
     "card-end-on": "Ends on",
     "editCardReceivedDatePopup-title": "Change received date",
     "editCardReceivedDatePopup-title": "Change received date",
     "editCardEndDatePopup-title": "Change end date",
     "editCardEndDatePopup-title": "Change end date",
@@ -596,7 +596,7 @@
     "r-archive": "Move to Archive",
     "r-archive": "Move to Archive",
     "r-unarchive": "Restore from Archive",
     "r-unarchive": "Restore from Archive",
     "r-card": "card",
     "r-card": "card",
-    "r-add": "Add",
+    "r-add": "சேர் ",
     "r-remove": "Remove",
     "r-remove": "Remove",
     "r-label": "label",
     "r-label": "label",
     "r-member": "member",
     "r-member": "member",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "wekan",
   "name": "wekan",
-  "version": "v2.23.0",
+  "version": "v2.24.0",
   "description": "Open-Source kanban",
   "description": "Open-Source kanban",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {

+ 12 - 0
releases/virtualbox/start-wekan.sh

@@ -227,6 +227,18 @@
         # LDAP_MERGE_EXISTING_USERS :
         # LDAP_MERGE_EXISTING_USERS :
         # example :  export LDAP_MERGE_EXISTING_USERS=true
         # example :  export LDAP_MERGE_EXISTING_USERS=true
         #export LDAP_MERGE_EXISTING_USERS=false
         #export LDAP_MERGE_EXISTING_USERS=false
+        # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
+        # example: LDAP_EMAIL_MATCH_ENABLE=true
+        #export LDAP_EMAIL_MATCH_ENABLE=false
+        # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
+        # example: LDAP_EMAIL_MATCH_REQUIRE=true
+        #export LDAP_EMAIL_MATCH_REQUIRE=false
+        # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
+        # example: LDAP_EMAIL_MATCH_VERIFIED=true
+        #export LDAP_EMAIL_MATCH_VERIFIED=false
+        # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
+        # example: LDAP_EMAIL_FIELD=mail
+        #export LDAP_EMAIL_FIELD=
         # LDAP_SYNC_USER_DATA :
         # LDAP_SYNC_USER_DATA :
         # example :  export LDAP_SYNC_USER_DATA=true
         # example :  export LDAP_SYNC_USER_DATA=true
         #export LDAP_SYNC_USER_DATA=false
         #export LDAP_SYNC_USER_DATA=false

+ 2 - 2
sandstorm-pkgdef.capnp

@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
     appTitle = (defaultText = "Wekan"),
     appTitle = (defaultText = "Wekan"),
     # The name of the app as it is displayed to the user.
     # The name of the app as it is displayed to the user.
 
 
-    appVersion = 225,
+    appVersion = 226,
     # Increment this for every release.
     # Increment this for every release.
 
 
-    appMarketingVersion = (defaultText = "2.23.0~2019-02-17"),
+    appMarketingVersion = (defaultText = "2.24.0~2019-02-23"),
     # Human-readable presentation of the app version.
     # Human-readable presentation of the app version.
 
 
     minUpgradableAppVersion = 0,
     minUpgradableAppVersion = 0,

+ 1 - 1
server/authentication.js

@@ -77,7 +77,7 @@ Meteor.startup(() => {
             userinfoEndpoint: process.env.OAUTH2_USERINFO_ENDPOINT,
             userinfoEndpoint: process.env.OAUTH2_USERINFO_ENDPOINT,
             tokenEndpoint: process.env.OAUTH2_TOKEN_ENDPOINT,
             tokenEndpoint: process.env.OAUTH2_TOKEN_ENDPOINT,
             idTokenWhitelistFields: process.env.OAUTH2_ID_TOKEN_WHITELIST_FIELDS || [],
             idTokenWhitelistFields: process.env.OAUTH2_ID_TOKEN_WHITELIST_FIELDS || [],
-            requestPermissions: process.OAUTH2_REQUEST_PERMISSIONS || ['openid'],
+            requestPermissions: process.env.OAUTH2_REQUEST_PERMISSIONS || ['openid'],
           },
           },
         }
         }
       );
       );

+ 17 - 1
snap-src/bin/config

@@ -3,7 +3,7 @@
 # All supported keys are defined here together with descriptions and default values
 # All supported keys are defined here together with descriptions and default values
 
 
 # list of supported keys
 # list of supported keys
-keys="DEBUG MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_EMAIL_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_REQUEST_PERMISSIONS LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
+keys="DEBUG MONGODB_BIND_UNIX_SOCKET MONGODB_BIND_IP MONGODB_PORT MAIL_URL MAIL_FROM ROOT_URL PORT DISABLE_MONGODB CADDY_ENABLED CADDY_BIND_PORT WITH_API CORS MATOMO_ADDRESS MATOMO_SITE_ID MATOMO_DO_NOT_TRACK MATOMO_WITH_USERNAME BROWSER_POLICY_ENABLED TRUSTED_URL WEBHOOKS_ATTRIBUTES OAUTH2_ENABLED OAUTH2_CLIENT_ID OAUTH2_SECRET OAUTH2_SERVER_URL OAUTH2_AUTH_ENDPOINT OAUTH2_USERINFO_ENDPOINT OAUTH2_TOKEN_ENDPOINT OAUTH2_ID_MAP OAUTH2_USERNAME_MAP OAUTH2_FULLNAME_MAP OAUTH2_EMAIL_MAP OAUTH2_ID_TOKEN_WHITELIST_FIELDS OAUTH2_REQUEST_PERMISSIONS LDAP_ENABLE LDAP_PORT LDAP_HOST LDAP_BASEDN LDAP_LOGIN_FALLBACK LDAP_RECONNECT LDAP_TIMEOUT LDAP_IDLE_TIMEOUT LDAP_CONNECT_TIMEOUT LDAP_AUTHENTIFICATION LDAP_AUTHENTIFICATION_USERDN LDAP_AUTHENTIFICATION_PASSWORD LDAP_LOG_ENABLED LDAP_BACKGROUND_SYNC LDAP_BACKGROUND_SYNC_INTERVAL LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS LDAP_ENCRYPTION LDAP_CA_CERT LDAP_REJECT_UNAUTHORIZED LDAP_USER_SEARCH_FILTER LDAP_USER_SEARCH_SCOPE LDAP_USER_SEARCH_FIELD LDAP_SEARCH_PAGE_SIZE LDAP_SEARCH_SIZE_LIMIT LDAP_GROUP_FILTER_ENABLE LDAP_GROUP_FILTER_OBJECTCLASS LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT LDAP_GROUP_FILTER_GROUP_NAME LDAP_UNIQUE_IDENTIFIER_FIELD LDAP_UTF8_NAMES_SLUGIFY LDAP_USERNAME_FIELD LDAP_FULLNAME_FIELD LDAP_MERGE_EXISTING_USERS LDAP_SYNC_USER_DATA LDAP_SYNC_USER_DATA_FIELDMAP LDAP_SYNC_GROUP_ROLES LDAP_DEFAULT_DOMAIN LDAP_EMAIL_MATCH_ENABLE LDAP_EMAIL_MATCH_REQUIRE LDAP_EMAIL_MATCH_VERIFIED LDAP_EMAIL_FIELD LOGOUT_WITH_TIMER LOGOUT_IN LOGOUT_ON_HOURS LOGOUT_ON_MINUTES DEFAULT_AUTHENTICATION_METHOD"
 
 
 # default values
 # default values
 DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
 DESCRIPTION_DEBUG="Debug OIDC OAuth2 etc. Example: sudo snap set wekan debug='true'"
@@ -290,6 +290,22 @@ DESCRIPTION_LDAP_MERGE_EXISTING_USERS="ldap-merge-existing-users . Default: fals
 DEFAULT_LDAP_MERGE_EXISTING_USERS="false"
 DEFAULT_LDAP_MERGE_EXISTING_USERS="false"
 KEY_LDAP_MERGE_EXISTING_USERS="ldap-merge-existing-users"
 KEY_LDAP_MERGE_EXISTING_USERS="ldap-merge-existing-users"
 
 
+DESCRIPTION_LDAP_EMAIL_MATCH_ENABLE="ldap-email-match-enable . Default: false"
+DEFAULT_LDAP_EMAIL_MATCH_ENABLE="false"
+KEY_LDAP_EMAIL_MATCH_ENABLE="ldap-email-match-enable"
+
+DESCRIPTION_LDAP_EMAIL_MATCH_REQUIRE="ldap-email-match-require . Default: false"
+DEFAULT_LDAP_EMAIL_MATCH_REQUIRE="false"
+KEY_LDAP_EMAIL_MATCH_REQUIRE="ldap-email-match-require"
+
+DESCRIPTION_LDAP_EMAIL_MATCH_VERIFIED="ldap-email-match-verified . Default: false"
+DEFAULT_LDAP_EMAIL_MATCH_VERIFIED="false"
+KEY_LDAP_EMAIL_MATCH_VERIFIED="ldap-email-match-verified"
+
+DESCRIPTION_LDAP_EMAIL_FIELD="Which field contains the ldap e-mail address"
+DEFAULT_LDAP_EMAIL_FIELD=""
+KEY_LDAP_EMAIL_FIELD="ldap-email-field"
+
 DESCRIPTION_LDAP_SYNC_USER_DATA="ldap-sync-user-data . Default: false"
 DESCRIPTION_LDAP_SYNC_USER_DATA="ldap-sync-user-data . Default: false"
 DEFAULT_LDAP_SYNC_USER_DATA="false"
 DEFAULT_LDAP_SYNC_USER_DATA="false"
 KEY_LDAP_SYNC_USER_DATA="ldap-sync-user-data"
 KEY_LDAP_SYNC_USER_DATA="ldap-sync-user-data"

+ 13 - 0
snap-src/bin/wekan-help

@@ -276,6 +276,19 @@ echo -e "\n"
 echo -e "Ldap Merge Existing Users."
 echo -e "Ldap Merge Existing Users."
 echo -e "\t$ snap set $SNAP_NAME ldap-merge-existing-users='true'"
 echo -e "\t$ snap set $SNAP_NAME ldap-merge-existing-users='true'"
 echo -e "\n"
 echo -e "\n"
+echo -e "Ldap Email Match Enable."
+echo -e "\t$ snap set $SNAP_NAME ldap-email-match-enable='true'"
+echo -e "\n"
+echo -e "Ldap Email Match Require."
+echo -e "\t$ snap set $SNAP_NAME ldap-email-match-require='true'"
+echo -e "\n"
+echo -e "Ldap Email Match Verified."
+echo -e "\t$ snap set $SNAP_NAME ldap-email-match-verfied='false'"
+echo -e "\n"
+echo -e "Ldap Fullname Field."
+echo -e "Which field contains the ldap email address:"
+echo -e "\t$ snap set $SNAP_NAME ldap-fullname-field='fullname'"
+echo -e "\n"
 echo -e "Ldap Sync User Data."
 echo -e "Ldap Sync User Data."
 echo -e "Enable synchronization of user data:"
 echo -e "Enable synchronization of user data:"
 echo -e "\t$ snap set $SNAP_NAME ldap-sync-user-data='true'"
 echo -e "\t$ snap set $SNAP_NAME ldap-sync-user-data='true'"

+ 16 - 0
start-wekan.bat

@@ -221,6 +221,22 @@ REM # LDAP_MERGE_EXISTING_USERS :
 REM # example : LDAP_MERGE_EXISTING_USERS=true
 REM # example : LDAP_MERGE_EXISTING_USERS=true
 REM SET LDAP_MERGE_EXISTING_USERS=false
 REM SET LDAP_MERGE_EXISTING_USERS=false
 
 
+REM # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
+REM # example: LDAP_EMAIL_MATCH_ENABLE=true
+REM SET LDAP_EMAIL_MATCH_ENABLE=false
+
+REM # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
+REM # example: LDAP_EMAIL_MATCH_REQUIRE=true
+REM SET LDAP_EMAIL_MATCH_REQUIRE=false
+
+REM # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
+REM # example: LDAP_EMAIL_MATCH_VERIFIED=true
+REM SET LDAP_EMAIL_MATCH_VERIFIED=false
+
+REM # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
+REM # example: LDAP_EMAIL_FIELD=mail
+REM SET LDAP_EMAIL_FIELD=
+
 REM # LDAP_SYNC_USER_DATA :
 REM # LDAP_SYNC_USER_DATA :
 REM # example : LDAP_SYNC_USER_DATA=true
 REM # example : LDAP_SYNC_USER_DATA=true
 REM SET LDAP_SYNC_USER_DATA=false
 REM SET LDAP_SYNC_USER_DATA=false

+ 12 - 0
start-wekan.sh

@@ -245,6 +245,18 @@ function wekan_repo_check(){
       # LDAP_MERGE_EXISTING_USERS :
       # LDAP_MERGE_EXISTING_USERS :
       # example :  export LDAP_MERGE_EXISTING_USERS=true
       # example :  export LDAP_MERGE_EXISTING_USERS=true
       #export LDAP_MERGE_EXISTING_USERS=false
       #export LDAP_MERGE_EXISTING_USERS=false
+      # LDAP_EMAIL_MATCH_ENABLE : allow existing account matching by e-mail address when username does not match
+      # example: LDAP_EMAIL_MATCH_ENABLE=true
+      #export LDAP_EMAIL_MATCH_ENABLE=false
+      # LDAP_EMAIL_MATCH_REQUIRE : require existing account matching by e-mail address when username does match
+      # example: LDAP_EMAIL_MATCH_REQUIRE=true
+      #export LDAP_EMAIL_MATCH_REQUIRE=false
+      # LDAP_EMAIL_MATCH_VERIFIED : require existing account email address to be verified for matching
+      # example: LDAP_EMAIL_MATCH_VERIFIED=true
+      #export LDAP_EMAIL_MATCH_VERIFIED=false
+      # LDAP_EMAIL_FIELD : which field contains the LDAP e-mail address
+      # example: LDAP_EMAIL_FIELD=mail
+      #export LDAP_EMAIL_FIELD=
       # LDAP_SYNC_USER_DATA :
       # LDAP_SYNC_USER_DATA :
       # example :  export LDAP_SYNC_USER_DATA=true
       # example :  export LDAP_SYNC_USER_DATA=true
       #export LDAP_SYNC_USER_DATA=false
       #export LDAP_SYNC_USER_DATA=false