Browse Source

Merge branch 'devel' into greenkeeper-xss-0.3.3

Lauri Ojansivu 8 years ago
parent
commit
0065ca3ad6
76 changed files with 5067 additions and 1044 deletions
  1. 3 1
      .eslintrc.json
  2. 2 0
      .gitignore
  3. 1 0
      .meteor/packages
  4. 1 0
      .meteor/versions
  5. 1 1
      .tx/config
  6. 68 4
      CHANGELOG.md
  7. 2 59
      Contributing.md
  8. 97 6
      Dockerfile
  9. 156 16
      README.md
  10. 14 0
      client/components/activities/activities.jade
  11. 3 1
      client/components/activities/activities.js
  12. 8 0
      client/components/activities/activities.styl
  13. 1 1
      client/components/boards/boardHeader.js
  14. 20 0
      client/components/cards/cardDate.jade
  15. 228 0
      client/components/cards/cardDate.js
  16. 58 0
      client/components/cards/cardDate.styl
  17. 17 0
      client/components/cards/cardDetails.jade
  18. 5 0
      client/components/cards/cardDetails.js
  19. 6 1
      client/components/cards/cardDetails.styl
  20. 61 0
      client/components/cards/checklists.jade
  21. 89 0
      client/components/cards/checklists.js
  22. 68 0
      client/components/cards/checklists.styl
  23. 12 1
      client/components/cards/minicard.jade
  24. 20 1
      client/components/cards/minicard.styl
  25. 1 1
      client/components/lists/list.js
  26. 7 0
      client/components/lists/listHeader.jade
  27. 14 0
      client/components/lists/listHeader.js
  28. 11 1
      client/components/main/layouts.styl
  29. 19 11
      client/components/sidebar/sidebar.jade
  30. 8 2
      client/components/sidebar/sidebar.js
  31. 21 2
      client/components/sidebar/sidebar.styl
  32. 12 1
      client/components/sidebar/sidebarFilters.jade
  33. 20 4
      client/components/users/userHeader.jade
  34. 35 4
      client/components/users/userHeader.js
  35. 1 1
      client/lib/escapeActions.js
  36. 23 2
      client/lib/filter.js
  37. 14 15
      client/lib/i18n.js
  38. 46 28
      docker-compose.yml
  39. 67 6
      i18n/ar.i18n.json
  40. 324 0
      i18n/br.i18n.json
  41. 68 7
      i18n/ca.i18n.json
  42. 68 7
      i18n/cs.i18n.json
  43. 163 102
      i18n/de.i18n.json
  44. 28 6
      i18n/en.i18n.json
  45. 65 8
      i18n/es-ES.i18n.json
  46. 108 47
      i18n/es.i18n.json
  47. 324 0
      i18n/fa.i18n.json
  48. 316 255
      i18n/fi.i18n.json
  49. 70 9
      i18n/fr.i18n.json
  50. 69 8
      i18n/he.i18n.json
  51. 256 195
      i18n/it.i18n.json
  52. 156 95
      i18n/ja.i18n.json
  53. 68 7
      i18n/ko.i18n.json
  54. 68 7
      i18n/pl.i18n.json
  55. 67 6
      i18n/pt-BR.i18n.json
  56. 324 0
      i18n/ro.i18n.json
  57. 80 16
      i18n/ru.i18n.json
  58. 324 0
      i18n/sr.i18n.json
  59. 67 6
      i18n/tr.i18n.json
  60. 72 11
      i18n/zh-CN.i18n.json
  61. 73 12
      i18n/zh-TW.i18n.json
  62. BIN
      meta/dwrensha-pgp-sig
  63. BIN
      meta/keyring
  64. 7 0
      models/activities.js
  65. 1 1
      models/boards.js
  66. 6 0
      models/cardComments.js
  67. 54 0
      models/cards.js
  68. 164 0
      models/checklists.js
  69. 11 0
      models/lists.js
  70. 61 17
      models/users.js
  71. 4 4
      package.json
  72. 49 7
      sandstorm-pkgdef.capnp
  73. 282 23
      sandstorm.js
  74. 5 0
      server/lib/utils.js
  75. 4 4
      server/publications/activities.js
  76. 21 14
      server/publications/boards.js

+ 3 - 1
.eslintrc.json

@@ -117,6 +117,8 @@
     "Notifications": true,
     "Notifications": true,
     "allowIsBoardAdmin": true,
     "allowIsBoardAdmin": true,
     "allowIsBoardMember": true,
     "allowIsBoardMember": true,
-    "Emoji": true
+    "allowIsBoardMemberByCard": true,
+    "Emoji": true,
+    "Checklists": true
   }
   }
 }
 }

+ 2 - 0
.gitignore

@@ -4,3 +4,5 @@
 *.sublime-workspace
 *.sublime-workspace
 tmp/
 tmp/
 node_modules/
 node_modules/
+.vscode/
+.build/*

+ 1 - 0
.meteor/packages

@@ -75,3 +75,4 @@ seriousm:emoji-continued
 templates:tabs
 templates:tabs
 verron:autosize
 verron:autosize
 simple:json-routes
 simple:json-routes
+rajit:bootstrap3-datepicker

+ 1 - 0
.meteor/versions

@@ -121,6 +121,7 @@ perak:markdown@1.0.5
 promise@0.7.3
 promise@0.7.3
 raix:eventemitter@0.1.3
 raix:eventemitter@0.1.3
 raix:handlebar-helpers@0.2.5
 raix:handlebar-helpers@0.2.5
+rajit:bootstrap3-datepicker@1.5.1
 random@1.0.10
 random@1.0.10
 rate-limit@1.0.5
 rate-limit@1.0.5
 reactive-dict@1.1.8
 reactive-dict@1.1.8

+ 1 - 1
.tx/config

@@ -39,7 +39,7 @@ host = https://www.transifex.com
 # tap:i18n requires us to use `-` separator in the language identifiers whereas
 # tap:i18n requires us to use `-` separator in the language identifiers whereas
 # Transifex uses a `_` separator, without an option to customize it on one side
 # Transifex uses a `_` separator, without an option to customize it on one side
 # or the other, so we need to do a Manual mapping.
 # or the other, so we need to do a Manual mapping.
-lang_map = es_ES: es-ES, fi_FI:fi, pt_BR:pt-BR, zh_CN:zh-CN, zh_TW: zh-TW
+lang_map = es_ES:es-ES, fa_IR:fa, pt_BR:pt-BR, ro_RO:ro, zh_CN:zh-CN, zh_TW:zh-TW
 
 
 [wekan.application]
 [wekan.application]
 file_filter = i18n/<lang>.i18n.json
 file_filter = i18n/<lang>.i18n.json

+ 68 - 4
CHANGELOG.md

@@ -1,4 +1,67 @@
-# v0.11
+# v0.11.1 Upcoming Wekan release
+
+2017-01-29 mquandalle gave Wekan access to xet7,
+so at 2017-01-31 xet7 started merging Wefork back to Wekan.
+At 2017-02-03 all Wefork code and pull requests are now
+merged back to Wekan.
+
+This release adds the following supported platforms:
+
+* Docker;
+* Docker on SLES12SP1.
+
+and adds the following new features:
+
+* Checklists;
+* Remove a list.
+
+and fixes the following bugs:
+
+* Typos in boards.js and boardHeader.js;
+* Build warning in jade template;
+* Using older version of MongoDB because of newer
+  version breaks uploading files and avatars.
+
+and adds the following new documentation to Wefork wiki,
+to be moved to Wekan wiki:
+
+* Developer Documentation
+* Docker
+* Docker NginxProxy
+
+Thanks to GitHub users BaobabCoder, jLouzado, lkisme, mario-orlicky,
+martingabelmann, mquandalle, stephenmoloney, umbertooo, xet7 and
+qge for their contributions.
+
+# v0.11.0 2016-12-16 Wekan fork first release
+
+This release adds the following new features:
+
+* Start- and Duedate for cards;
+* Allow IE 11 to work;
+* Option to hide system messages in the card;
+* Option to setup minimum limit to show cards count
+  for each list in board;
+* Option 'filter by empty' to filter by cards by 'no member'
+  and 'no label' properties;
+* Speedup: Added MongoDB index on CardId into Comments collection.
+* Translation updates
+
+and fixes the following bugs:
+
+* Sandstorm: username handling, restore identity, eslint regressions,
+  board not found;
+* Failure to load when navigator.language is Chinese or Finnish;
+* Hover background for labels in filter sidebar. Now correctly
+  centered;
+* Display message when user wants to choose existing username;
+* Client sometimes fails to receive current user's profile;
+* Old users could see broken presence indicators on new users.
+
+Thanks to GitHub users dwrencha, fmonthel, mario-orlicky, pierreozoux,
+shoetten, and xet7 for their contributions.
+
+# v0.11.0-rc2 2016-07-21
 
 
 This release adds the following new features:
 This release adds the following new features:
 
 
@@ -10,6 +73,7 @@ This release adds the following new features:
 * Add a warning indicator when the application is offline;
 * Add a warning indicator when the application is offline;
 * A new log-in button on the public board view to sign in, even if the board
 * A new log-in button on the public board view to sign in, even if the board
   is published;
   is published;
+* New link to the keyboard shortcuts in the board sidebar;
 
 
 and fixes the following bugs:
 and fixes the following bugs:
 
 
@@ -27,14 +91,14 @@ and fixes the following bugs:
 Thanks to GitHub users alayek, AlexanderS, choclin, floatinghotpot, ForNeVeR,
 Thanks to GitHub users alayek, AlexanderS, choclin, floatinghotpot, ForNeVeR,
 PeterDaveHello, seschwar, and TheElf for their contributions.
 PeterDaveHello, seschwar, and TheElf for their contributions.
 
 
-# v0.10.1
+# v0.10.1 2015-12-30
 
 
 This patch release fixes two bugs on Sandstorm:
 This patch release fixes two bugs on Sandstorm:
 
 
 * Drag and drop was broken;
 * Drag and drop was broken;
 * Avatars weren’t working.
 * Avatars weren’t working.
 
 
-# v0.10
+# v0.10 2015-12-22
 
 
 This release features:
 This release features:
 
 
@@ -56,7 +120,7 @@ New languages supported: Arabic, Catalan, Italian, and Russian.
 Thanks to GitHub users AlexanderS, fisle, floatinghotpot, FuzzyWuzzie, mnutt,
 Thanks to GitHub users AlexanderS, fisle, floatinghotpot, FuzzyWuzzie, mnutt,
 ndarilek, SirCmpwn, and xavierpriour for their contributions.
 ndarilek, SirCmpwn, and xavierpriour for their contributions.
 
 
-# v0.9
+# v0.9 2015-09-10
 
 
 This release is a large re-write of the previous code base. This release marks
 This release is a large re-write of the previous code base. This release marks
 the beginning of our new user interface and continues to improve the overall
 the beginning of our new user interface and continues to improve the overall

+ 2 - 59
Contributing.md

@@ -1,62 +1,5 @@
 # Contributing
 # Contributing
 
 
-We’re glad you’re interested in helping the Wekan project! We welcome bug
-reports, enhancement ideas, and pull requests, in our GitHub bug tracker. Before
-opening a new thread please verify that your issue hasn’t already been reported.
+Please see wiki for all documentation:
 
 
-<https://github.com/wekan/wekan>
-
-## Security Disclosure
-
-Security is very important to us. If discover any issue regarding security,
-please disclose the information responsibly by sending an email to
-security@wekan.io and not by creating a GitHub issue.
-
-## Translations
-
-You are encouraged to translate (or improve the translation of) Wekan in your
-locale language. For that purpose we rely on
-[Transifex](https://www.transifex.com/projects/p/wekan). So the first step is to
-create a Transifex account if you don’t have one already. You can then send a
-request to join one of the translation teams. If there we will create a new one.
-
-Once you are in a team you can start translating the application. Please take a
-look at the glossary so you can agree with other (present and future)
-contributors on words to use to translate key concepts in the application like
-“boards” and “cards”.
-
-The original application is written in English, and if you want to contribute to
-the application itself, you are asked to fill the `i18n/en.i18n.json` file. When
-you do that the new strings of text to translate automatically appears on
-Transifex to be translated (the refresh may take a few hours).
-
-We pull all translations from Transifex before every new Wekan release
-candidate, ask the translators to review the app, and pull all translations
-again for the final release.
-
-## Installation
-
-Wekan is made with [Meteor](https://www.meteor.com). Thus the easiest way to
-start hacking is by installing the framework, cloning the git repository, and
-launching the application:
-
-```bash
-$ curl https://install.meteor.com/ | sh # On Mac or Linux
-$ git clone https://github.com/wekan/wekan.git
-$ cd wekan
-$ meteor
-```
-
-As for any Meteor application, Wekan is automatically refreshed when you change
-any file of the source code, just play with it to see how it behaves!
-
-## Style guide
-
-We follow the
-[meteor style guide](https://github.com/meteor/meteor/wiki/Meteor-Style-Guide).
-
-Please read the meteor style guide before making any significant contribution.
-
-## Code organisation
-
-TODO
+<https://github.com/wekan/wekan/wiki>

+ 97 - 6
Dockerfile

@@ -1,7 +1,98 @@
-FROM meteorhacks/meteord:onbuild
-MAINTAINER Maxime Quandalle <mquandalle@wekan.io>
+FROM debian:wheezy
+MAINTAINER wefork
 
 
-# Run as you wish!
-# docker run -d --name wekan-db mongo
-# docker run -d --link "wekan-db:db" -e "MONGO_URL=mongodb://db" \
-#   -e "ROOT_URL=http://example.com" -p 8080:80 mquandalle/wekan
+# Declare Arguments
+ARG NODE_VERSION
+ARG METEOR_RELEASE
+ARG NPM_VERSION
+ARG ARCHITECTURE
+ARG SRC_PATH
+
+# Set the environment variables (defaults where required)
+ENV BUILD_DEPS="wget curl bzip2 build-essential python git ca-certificates"
+ENV GOSU_VERSION=1.10
+ENV NODE_VERSION ${NODE_VERSION:-v0.10.48}
+ENV METEOR_RELEASE ${METEOR_RELEASE:-1.3.5.1}
+ENV NPM_VERSION ${NPM_VERSION:-3.10.10}
+ENV ARCHITECTURE ${ARCHITECTURE:-linux-x64}
+ENV SRC_PATH ${SRC_PATH:-./}
+
+# Copy the app to the image
+COPY ${SRC_PATH} /home/wekan/app
+
+RUN \
+    # Add non-root user wekan
+    useradd --user-group --system --home-dir /home/wekan wekan && \
+    \
+    # OS dependencies
+    apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
+    \
+    # Gosu installation
+    GOSU_ARCHITECTURE="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \
+    wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}" && \
+    wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}.asc" && \
+    export GNUPGHOME="$(mktemp -d)" && \
+    gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
+    gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu && \
+    rm -R "$GNUPGHOME" /usr/local/bin/gosu.asc && \
+    chmod +x /usr/local/bin/gosu && \
+    \
+    # Download nodejs
+    wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
+    wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
+    \
+    # Verify nodejs authenticity
+    grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
+    export GNUPGHOME="$(mktemp -d)" && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys 9554F04D7259F04124DE6B476D5A82AC7E37093B && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 && \
+    gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 && \
+    gpg --refresh-keys pool.sks-keyservers.net && \
+    gpg --verify SHASUMS256.txt.asc && \
+    rm -R "$GNUPGHOME" SHASUMS256.txt.asc && \
+    \
+    # Install Node
+    tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
+    rm node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
+    mv node-${NODE_VERSION}-${ARCHITECTURE} /opt/nodejs && \
+    ln -s /opt/nodejs/bin/node /usr/bin/node && \
+    ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
+    \
+    # Install Node dependencies
+    npm install npm@${NPM_VERSION} -g && \
+    npm install -g node-gyp && \
+    npm install -g fibers && \
+    \
+    # Change user to wekan and install meteor
+    cd /home/wekan/ && \
+    chown wekan:wekan --recursive /home/wekan && \
+    curl https://install.meteor.com -o ./install_meteor.sh && \
+    sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
+    echo "Starting meteor ${METEOR_RELEASE} installation...   \n" && \
+    chown wekan:wekan ./install_meteor.sh && \
+    gosu wekan:wekan sh ./install_meteor.sh && \
+    \
+    # Build app
+    cd /home/wekan/app && \
+    gosu wekan /home/wekan/.meteor/meteor npm install --save xss && \
+    gosu wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
+    cd /home/wekan/app_build/bundle/programs/server/ && \
+    gosu wekan npm install && \
+    mv /home/wekan/app_build/bundle /build && \
+    \
+    # Cleanup
+    apt-get remove --purge -y ${BUILD_DEPS} && \
+    apt-get autoremove -y && \
+    rm -R /var/lib/apt/lists/* && \
+    rm -R /home/wekan/.meteor && \
+    rm -R /home/wekan/app && \
+    rm -R /home/wekan/app_build && \
+    rm /home/wekan/install_meteor.sh
+
+ENV PORT=80
+
+CMD ["node", "/build/main.js"]

+ 156 - 16
README.md

@@ -1,6 +1,20 @@
 # Wekan
 # Wekan
 
 
-[![Join the chat][gitter_badge]][gitter_chat]
+[![Wekan chat][vanila_badge]][vanila_chat]
+
+[Donations][donations]
+
+2017-02-08 News: All of Wefork is now merged and moved back to official
+Wekan. Wefork will not accept any new issues and pull requests.
+All development happens on Wekan.
+
+[Wefork announcement and merging back][fork_announcement]
+
+[![Wefork Build Status][travis_badge]][travis_status]
+
+[Wefork FAQ][fork_faq]
+
+[Translate Wekan at Transifex][translate_wekan]
 
 
 Wekan is an open-source and collaborative kanban board application.
 Wekan is an open-source and collaborative kanban board application.
 
 
@@ -10,33 +24,145 @@ boards are an unbeatable tool to keep your things organized. They give you a
 visual overview of the current state of your project, and make you productive by
 visual overview of the current state of your project, and make you productive by
 allowing you to focus on the few items that matter the most.
 allowing you to focus on the few items that matter the most.
 
 
-[![Our roadmap is self-hosted on Wekan][screenshot]][roadmap]
-
 Wekan supports most features you would expect of it including a real-time user
 Wekan supports most features you would expect of it including a real-time user
-interface, cards comments, member assignations, customizable labels, filtered
-views, and more.
+interface, import from Trello (on standalone Wekan), cards comments, checklists,
+member assignations, customizable labels, closing lists, filtered views, and more.
+
+SSO options like LDAP, passwordless email, SAML, GitHub and Google Auth are
+already available on Sandstorm, not standalone Wekan. Sandstorm is Enterprise
+scale highly secure platform with grains, logging, admin settings,
+server clustering, App Market and it's now fully Open Source. Sandstorm is
+preferred platform for Wekan, as it would take a lot of work to reimplement
+everything in standalone Wekan.
+
+You don’t have to trust us with your data and can install Wekan on your own
+computer or server. In fact we encourage you to do that by providing
+one-click installation on various platforms.
+
+## Roadmap
+
+Upcoming Wekan App Development Platform will make possible
+many use cases like kanban workflows, dependencies, gantt charts,
+WIP limits, time tracking, managing website, Rocket.Chat support
+and custom apps with themes by providing Teams/Organizations,
+APIs, admin interface, custom fields, calendar view, time tracking,
+vote on cards, move cards to another board and board templates.
+Some of these don't even have feature requests in Wekan issues,
+so we do need detailed descriptions, screenshots and links to
+videos how these should work.
 
 
-Since it is a free software, you don’t have to trust us with your data and can
+We are very welcoming to new developers and teams to submit new pull
+requests to devel branch to make this Wekan App Development Platform possible
+faster. Please see [Developer Documentation][dev_docs] to get started.
+We also welcome sponsors for features. By working directly with Wekan you
+get the benefit of active maintenance and new features added by
+growing Wekan developer community.
+
+[Roadmap is self-hosted on Wekan][roadmap_wefork]
+
+At roadmap there is links to [Wekan GitHub issues][wekan_issues] where actual
+work happens. If you don't see your feature request at GitHub issues,
+please add it. Not all feature requests have been added to roadmap board yet.
+
+## Screenshot
+
+[![Screenshot of Wefork][screenshot_wefork]][roadmap_wefork]
+
+Content is being copied from [old Wekan roadmap][roadmap_wekan] to
+new one in process of merging Wefork back to Wekan.
+
+Since Wekan is a free software, you don’t have to trust us with your data and can
 install Wekan on your own computer or server. In fact we encourage you to do
 install Wekan on your own computer or server. In fact we encourage you to do
-that by providing one-click installation on Heroku or [Sandstorm]
-[sandstorm_market] platforms and verified [Docker][docker_image] images. You can
-also install Wekan on the following Platforms:
+that by providing one-click installation on various platforms.
+
+## Supported Platforms
+
+Automatic generated newest builds are available for Docker, and some others that
+install directly from this repo. Automatic builds will be added later for more
+platforms.
+
+### Docker: [Docker image][docker_image], [Docs at wiki][wekan_wiki]
+
+Docker example, running latest Wekan using docker-compose:
+
+#### Running from remote dockerhub images
+```
+sudo docker-compose pull && sudo docker-compose up -d --no-build
+```
+
+#### Running from locally built dockerhub images
+```
+sudo docker-compose up -d --build
+```
+
+#### Running from locally built dockerhub images and modified `ARG` variables (not recommended)
+```
+echo 'NODE_VERSION=v6.6.0' >> .env && \
+echo 'METEOR_RELEASE=1.4.2.3' >> .env && \
+echo 'NPM_VERSION=4.1.2' >> .env && \
+echo 'ARCHITECTURE=linux-x64' >> .env && \
+echo 'SRC_PATH=./' >> .env && \
+sudo docker-compose up -d --build
+```
+
+Docker example, running latest Wekan using docker run commands alone:
+```
+docker run -d --restart=always --name wekan-db mongo:3.2.11
+
+docker run -d --restart=always --name wekan --link "wekan-db:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://localhost:8080" -p 8080:80 mquandalle/wekan:latest
+```
+
+[Docker on SUSE Linux Enterprise Server 12 SP1][sles]
+
+[Install from source][install_source]
+
+[VirtualBox][virtualbox]
+
+[Debian Wheezy 64bit][debian_wheezy]
 
 
 [![Deploy][heroku_button]][heroku_deploy]
 [![Deploy][heroku_button]][heroku_deploy]
 [![SignUp][indiehosters_button]][indiehosters_saas]
 [![SignUp][indiehosters_button]][indiehosters_saas]
 [![Deploy to Scalingo][scalingo_button]][scalingo_deploy]
 [![Deploy to Scalingo][scalingo_button]][scalingo_deploy]
 [![Install on Cloudron][cloudron_button]][cloudron_install]
 [![Install on Cloudron][cloudron_button]][cloudron_install]
+[![Try on Sandstorm][sandstorm_button]][sandstorm_appdemo]
+
+
+## Upcoming Platforms
+
+[Autoinstall script][autoinstall] based on [this issue][autoinstall_issue]
+
+[Create Sandstorm .spk file from source][sandstorm_spk]
+
+Email to work on already working Heroku: Use 3rd party
+email like SendGrid, update process.env.MAIL_URL ,
+change from email at Accounts.emailTeamplates.from ,
+new file in server folder called smtp.js on code
+`Meteor.startup(function () });` .
+TODO: Test and find a way to use API keys instead.
+
+Azure: Install from source. Azure endpoint needs to be added. Not tested yet.
+
+OpenShift: Not tested yet.
+
+Google Cloud: Needs info how to enable websockets.
+
+## License
 
 
 Wekan is released under the very permissive [MIT license](LICENSE), and made
 Wekan is released under the very permissive [MIT license](LICENSE), and made
 with [Meteor](https://www.meteor.com).
 with [Meteor](https://www.meteor.com).
 
 
-[Our roadmap is self-hosted on Wekan][roadmap]
-
-[screenshot]: http://i.imgur.com/cI4jW2h.png
-[gitter_badge]: https://badges.gitter.im/Join%20Chat.svg
-[gitter_chat]: https://gitter.im/wekan/wekan
-[roadmap]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
-[sandstorm_market]: https://oasis.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h
+[vanila_badge]: https://vanila.io/img/join-chat-button2.png
+[vanila_chat]: https://chat.vanila.io/channel/wekan
+[fork_faq]: https://github.com/wefork/wekan/wiki/FAQ
+[fork_announcement]: https://github.com/wekan/wekan/issues/640#issuecomment-276383458
+[screenshot_wekan]: http://i.imgur.com/cI4jW2h.png
+[screenshot_wefork]: http://i.imgur.com/auWUKxO.png
+[roadmap_wekan]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
+[roadmap_wefork]: https://wekan.indie.host/b/t2YaGmyXgNkppcFBq/wekan-fork-roadmap
+[wekan_issues]: https://github.com/wekan/wekan/issues
+[wefork_issues]: https://github.com/wefork/wekan/issues
+[sandstorm_button]: https://img.shields.io/badge/try-Wekan%20on%20Sandstorm-783189.svg
+[sandstorm_appdemo]: https://demo.sandstorm.io/appdemo/m86q05rdvj14yvn78ghaxynqz7u2svw6rnttptxx49g1785cdv1h
 [docker_image]: https://hub.docker.com/r/mquandalle/wekan/
 [docker_image]: https://hub.docker.com/r/mquandalle/wekan/
 [heroku_button]: https://www.herokucdn.com/deploy/button.png
 [heroku_button]: https://www.herokucdn.com/deploy/button.png
 [heroku_deploy]: https://heroku.com/deploy?template=https://github.com/wekan/wekan/tree/master
 [heroku_deploy]: https://heroku.com/deploy?template=https://github.com/wekan/wekan/tree/master
@@ -46,3 +172,17 @@ with [Meteor](https://www.meteor.com).
 [scalingo_deploy]: https://my.scalingo.com/deploy?source=https://github.com/wekan/wekan#master
 [scalingo_deploy]: https://my.scalingo.com/deploy?source=https://github.com/wekan/wekan#master
 [cloudron_button]: https://cloudron.io/img/button.svg
 [cloudron_button]: https://cloudron.io/img/button.svg
 [cloudron_install]: https://cloudron.io/button.html?app=io.wekan.cloudronapp
 [cloudron_install]: https://cloudron.io/button.html?app=io.wekan.cloudronapp
+[debian_wheezy]: https://github.com/soohwa/sps/blob/master/example/docs/1/wekan.md
+[travis_badge]: https://travis-ci.org/wekan/wekan.svg?branch=devel
+[travis_status]: https://travis-ci.org/wekan/wekan
+[install_source]: https://github.com/wekan/wekan/wiki/Install-and-Update#install-manually-from-source
+[sles]: https://github.com/wekan/wekan/wiki/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1
+[virtualbox]: https://github.com/wekan/wekan/wiki/virtual-appliance
+[sandstorm_spk]: https://github.com/wekan/wekan/issues/823
+[docker_image]: https://hub.docker.com/r/mquandalle/wekan/
+[wekan_wiki]: https://github.com/wekan/wekan/wiki
+[translate_wekan]: https://www.transifex.com/wekan/wekan/
+[autoinstall]: https://github.com/wekan/wekan-autoinstall
+[autoinstall_issue]: https://github.com/anselal/wekan/issues/18
+[dev_docs]: https://github.com/wekan/wekan/wiki/Developer-Documentation
+[donations]: http://www.xet7.org/wekan

+ 14 - 0
client/components/activities/activities.jade

@@ -26,6 +26,12 @@ template(name="boardActivities")
             +viewer
             +viewer
               = comment.text
               = comment.text
 
 
+        if($eq activityType 'addChecklist')
+          | {{{_ 'activity-checklist-added' cardLink}}}.
+          .activity-checklist(href="{{ card.absoluteUrl }}")
+            +viewer
+              = checklist.title
+
         if($eq activityType 'archivedCard')
         if($eq activityType 'archivedCard')
           | {{{_ 'activity-archived' cardLink}}}.
           | {{{_ 'activity-archived' cardLink}}}.
 
 
@@ -41,6 +47,9 @@ template(name="boardActivities")
         if($eq activityType 'createList')
         if($eq activityType 'createList')
           | {{_ 'activity-added' list.title boardLabel}}.
           | {{_ 'activity-added' list.title boardLabel}}.
 
 
+        if($eq activityType 'removeList')
+          | {{_ 'activity-removed' title boardLabel}}.
+
         if($eq activityType 'importBoard')
         if($eq activityType 'importBoard')
           | {{{_ 'activity-imported-board' boardLabel sourceLink}}}.
           | {{{_ 'activity-imported-board' boardLabel sourceLink}}}.
 
 
@@ -103,6 +112,11 @@ template(name="cardActivities")
           | {{{_ 'activity-attached' attachmentLink cardLabel}}}.
           | {{{_ 'activity-attached' attachmentLink cardLabel}}}.
           if attachment.isImage
           if attachment.isImage
             img.attachment-image-preview(src=attachment.url)
             img.attachment-image-preview(src=attachment.url)
+        if($eq activityType 'addChecklist')
+          | {{{_ 'activity-checklist-added' cardLabel}}}.
+          .activity-checklist
+            +viewer
+              = checklist.title
 
 
         if($eq activityType 'addComment')
         if($eq activityType 'addComment')
           +inlinedForm(classNames='js-edit-comment')
           +inlinedForm(classNames='js-edit-comment')

+ 3 - 1
client/components/activities/activities.js

@@ -12,10 +12,12 @@ BlazeComponent.extendComponent({
       const capitalizedMode = Utils.capitalize(mode);
       const capitalizedMode = Utils.capitalize(mode);
       const id = Session.get(`current${capitalizedMode}`);
       const id = Session.get(`current${capitalizedMode}`);
       const limit = this.page.get() * activitiesPerPage;
       const limit = this.page.get() * activitiesPerPage;
+      const user = Meteor.user();
+      const hideSystem = user ? user.hasHiddenSystemMessages() : false;
       if (id === null)
       if (id === null)
         return;
         return;
 
 
-      this.subscribe('activities', mode, id, limit, () => {
+      this.subscribe('activities', mode, id, limit, hideSystem, () => {
         this.loadNextPageLocked = false;
         this.loadNextPageLocked = false;
 
 
         // If the sibear peak hasn't increased, that mean that there are no more
         // If the sibear peak hasn't increased, that mean that there are no more

+ 8 - 0
client/components/activities/activities.styl

@@ -26,6 +26,14 @@
         margin-top: 5px
         margin-top: 5px
         padding: 5px
         padding: 5px
 
 
+      .activity-checklist
+        display: block
+        border-radius: 3px
+        background: white
+        text-decoration: none
+        box-shadow: 0 1px 2px rgba(0,0,0,.2)
+        margin-top: 5px
+        padding: 5px
       .activity-meta
       .activity-meta
         font-size: 0.8em
         font-size: 0.8em
         color: darken(white, 40%)
         color: darken(white, 40%)

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

@@ -33,7 +33,7 @@ Template.boardChangeTitlePopup.events({
     const newDesc = tpl.$('.js-board-desc').val().trim();
     const newDesc = tpl.$('.js-board-desc').val().trim();
     if (newTitle) {
     if (newTitle) {
       this.rename(newTitle);
       this.rename(newTitle);
-      this.setDesciption(newDesc);
+      this.setDescription(newDesc);
       Popup.close();
       Popup.close();
     }
     }
     evt.preventDefault();
     evt.preventDefault();

+ 20 - 0
client/components/cards/cardDate.jade

@@ -0,0 +1,20 @@
+template(name="editCardDate")
+  .edit-card-date
+    form.edit-date
+      .fields
+        .left
+          label(for="date") {{_ 'date'}}
+          input.js-date-field#date(type="text" name="date" value=showDate placeholder=dateFormat autofocus)
+        .right
+          label(for="time") {{_ 'time'}}
+          input.js-time-field#time(type="text" name="time" value=showTime placeholder=timeFormat)
+      .js-datepicker
+      if error.get
+        .warning {{_ error.get}}
+      button.primary.wide.left.js-submit-date(type="submit") {{_ 'save'}}
+      button.js-delete-date.negate.wide.right.js-delete-date {{_ 'delete'}}
+
+template(name="dateBadge")
+  a.js-edit-date.card-date(title="{{showTitle}}" class="{{classes}}")
+    time(datetime="{{showISODate}}")
+      | {{showDate}}

+ 228 - 0
client/components/cards/cardDate.js

@@ -0,0 +1,228 @@
+// Edit start & due dates
+const EditCardDate = BlazeComponent.extendComponent({
+  template() {
+    return 'editCardDate';
+  },
+
+  onCreated() {
+    this.error = new ReactiveVar('');
+    this.card = this.data();
+    this.date = new ReactiveVar(moment.invalid());
+  },
+
+  onRendered() {
+    const $picker = this.$('.js-datepicker').datepicker({
+      todayHighlight: true,
+      todayBtn: 'linked',
+      language: TAPi18n.getLanguage(),
+    }).on('changeDate', function(evt) {
+      this.find('#date').value = moment(evt.date).format('L');
+      this.error.set('');
+      this.find('#time').focus();
+    }.bind(this));
+
+    if (this.date.get().isValid()) {
+      $picker.datepicker('update', this.date.get().toDate());
+    }
+  },
+
+  showDate() {
+    if (this.date.get().isValid())
+      return this.date.get().format('L');
+    return '';
+  },
+  showTime() {
+    if (this.date.get().isValid())
+      return this.date.get().format('LT');
+    return '';
+  },
+  dateFormat() {
+    return moment.localeData().longDateFormat('L');
+  },
+  timeFormat() {
+    return moment.localeData().longDateFormat('LT');
+  },
+
+  events() {
+    return [{
+      'keyup .js-date-field'() {
+        // parse for localized date format in strict mode
+        const dateMoment = moment(this.find('#date').value, 'L', true);
+        if (dateMoment.isValid()) {
+          this.error.set('');
+          this.$('.js-datepicker').datepicker('update', dateMoment.toDate());
+        }
+      },
+      'keyup .js-time-field'() {
+        // parse for localized time format in strict mode
+        const dateMoment = moment(this.find('#time').value, 'LT', true);
+        if (dateMoment.isValid()) {
+          this.error.set('');
+        }
+      },
+      'submit .edit-date'(evt) {
+        evt.preventDefault();
+
+        // if no time was given, init with 12:00
+        const time = evt.target.time.value || moment(new Date().setHours(12, 0, 0)).format('LT');
+
+        const dateString = `${evt.target.date.value} ${time}`;
+        const newDate = moment(dateString, 'L LT', true);
+        if (newDate.isValid()) {
+          this._storeDate(newDate.toDate());
+          Popup.close();
+        }
+        else {
+          this.error.set('invalid-date');
+          evt.target.date.focus();
+        }
+      },
+      'click .js-delete-date'(evt) {
+        evt.preventDefault();
+        this._deleteDate();
+        Popup.close();
+      },
+    }];
+  },
+});
+
+// editCardStartDatePopup
+(class extends EditCardDate {
+  onCreated() {
+    super.onCreated();
+    this.data().startAt && this.date.set(moment(this.data().startAt));
+  }
+
+  _storeDate(date) {
+    this.card.setStart(date);
+  }
+
+  _deleteDate() {
+    this.card.unsetStart();
+  }
+}).register('editCardStartDatePopup');
+
+// editCardDueDatePopup
+(class extends EditCardDate {
+  onCreated() {
+    super.onCreated();
+    this.data().dueAt && this.date.set(moment(this.data().dueAt));
+  }
+
+  onRendered() {
+    super.onRendered();
+    if (moment.isDate(this.card.startAt)) {
+      this.$('.js-datepicker').datepicker('setStartDate', this.card.startAt);
+    }
+  }
+
+  _storeDate(date) {
+    this.card.setDue(date);
+  }
+
+  _deleteDate() {
+    this.card.unsetDue();
+  }
+}).register('editCardDueDatePopup');
+
+
+// Display start & due dates
+const CardDate = BlazeComponent.extendComponent({
+  template() {
+    return 'dateBadge';
+  },
+
+  onCreated() {
+    const self = this;
+    self.date = ReactiveVar();
+    self.now = ReactiveVar(moment());
+    window.setInterval(() => {
+      self.now.set(moment());
+    }, 60000);
+  },
+
+  showDate() {
+    // this will start working once mquandalle:moment
+    // is updated to at least moment.js 2.10.5
+    // until then, the date is displayed in the "L" format
+    return this.date.get().calendar(null, {
+      sameElse: 'llll',
+    });
+  },
+
+  showISODate() {
+    return this.date.get().toISOString();
+  },
+});
+
+class CardStartDate extends CardDate {
+  onCreated() {
+    super.onCreated();
+    const self = this;
+    self.autorun(() => {
+      self.date.set(moment(self.data().startAt));
+    });
+  }
+
+  classes() {
+    if (this.date.get().isBefore(this.now.get(), 'minute') &&
+        this.now.get().isBefore(this.data().dueAt)) {
+      return 'current';
+    }
+    return '';
+  }
+
+  showTitle() {
+    return `${TAPi18n.__('card-start-on')} ${this.date.get().format('LLLL')}`;
+  }
+
+  events() {
+    return super.events().concat({
+      'click .js-edit-date': Popup.open('editCardStartDate'),
+    });
+  }
+}
+CardStartDate.register('cardStartDate');
+
+class CardDueDate extends CardDate {
+  onCreated() {
+    super.onCreated();
+    const self = this;
+    self.autorun(() => {
+      self.date.set(moment(self.data().dueAt));
+    });
+  }
+
+  classes() {
+    if (this.now.get().diff(this.date.get(), 'days') >= 2)
+      return 'long-overdue';
+    else if (this.now.get().diff(this.date.get(), 'minute') >= 0)
+      return 'due';
+    else if (this.now.get().diff(this.date.get(), 'days') >= -1)
+      return 'almost-due';
+    return '';
+  }
+
+  showTitle() {
+    return `${TAPi18n.__('card-due-on')} ${this.date.get().format('LLLL')}`;
+  }
+
+  events() {
+    return super.events().concat({
+      'click .js-edit-date': Popup.open('editCardDueDate'),
+    });
+  }
+}
+CardDueDate.register('cardDueDate');
+
+(class extends CardStartDate {
+  showDate() {
+    return this.date.get().format('l');
+  }
+}).register('minicardStartDate');
+
+(class extends CardDueDate {
+  showDate() {
+    return this.date.get().format('l');
+  }
+}).register('minicardDueDate');

+ 58 - 0
client/components/cards/cardDate.styl

@@ -0,0 +1,58 @@
+.edit-card-date
+  .fields
+    .left
+      width: 56%
+    .right
+      width: 38%
+  .datepicker
+    width: 100%
+    table
+      width: 100%
+      border: none
+      border-spacing: 0
+      border-collapse: collapse
+      thead
+        background: none
+      td, th
+        box-sizing: border-box
+
+
+.card-date
+  display: block
+  border-radius: 4px
+  padding: 1px 3px
+  
+  background-color: #dbdbdb
+  &:hover, &.is-active
+    background-color: #b3b3b3
+  
+  &.current, &.almost-due, &.due, &.long-overdue
+    color: #fff
+
+  &.current
+    background-color: #5ba639
+    &:hover, &.is-active
+      background-color: darken(#5ba639, 10)
+  
+  &.almost-due
+    background-color: #edc909
+    &:hover, &.is-active
+      background-color: darken(#edc909, 10)
+  
+  &.due
+    background-color: #fa3f00
+    &:hover, &.is-active
+      background-color: darken(#fa3f00, 10)
+  
+  &.long-overdue
+    background-color: #fd5d47
+    &:hover, &.is-active
+      background-color: darken(#fd5d47, 7)
+
+  time
+    &::before
+      font: normal normal normal 14px/1 FontAwesome
+      font-size: inherit
+      -webkit-font-smoothing: antialiased
+      content: "\f017"  // clock symbol
+      margin-right: 0.3em

+ 17 - 0
client/components/cards/cardDetails.jade

@@ -35,6 +35,17 @@ template(name="cardDetails")
           a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
           a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
             i.fa.fa-plus
             i.fa.fa-plus
 
 
+      if startAt
+        .card-details-item.card-details-item-start
+          h3.card-details-item-title {{_ 'card-start'}}
+          +cardStartDate
+
+      if dueAt
+        .card-details-item.card-details-item-due
+          h3.card-details-item-title {{_ 'card-due'}}
+          +cardDueDate
+
+
     //- XXX We should use "editable" to avoid repetiting ourselves
     //- XXX We should use "editable" to avoid repetiting ourselves
     if currentUser.isBoardMember
     if currentUser.isBoardMember
       h3.card-details-item-title {{_ 'description'}}
       h3.card-details-item-title {{_ 'description'}}
@@ -61,6 +72,10 @@ template(name="cardDetails")
       h3.card-details-item-title {{_ 'description'}}
       h3.card-details-item-title {{_ 'description'}}
       +viewer
       +viewer
         = description
         = description
+
+    hr
+    +checklists(cardId = _id)
+
     if attachments.count
     if attachments.count
       hr
       hr
       h2
       h2
@@ -91,6 +106,8 @@ template(name="cardDetailsActionsPopup")
     li: a.js-members {{_ 'card-edit-members'}}
     li: a.js-members {{_ 'card-edit-members'}}
     li: a.js-labels {{_ 'card-edit-labels'}}
     li: a.js-labels {{_ 'card-edit-labels'}}
     li: a.js-attachments {{_ 'card-edit-attachments'}}
     li: a.js-attachments {{_ 'card-edit-attachments'}}
+    li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
+    li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
   hr
   hr
   ul.pop-over-list
   ul.pop-over-list
     li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
     li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}

+ 5 - 0
client/components/cards/cardDetails.js

@@ -65,6 +65,9 @@ BlazeComponent.extendComponent({
       [`${CSSEvents.transitionend} .js-card-details`]() {
       [`${CSSEvents.transitionend} .js-card-details`]() {
         this.isLoaded.set(true);
         this.isLoaded.set(true);
       },
       },
+      [`${CSSEvents.animationend} .js-card-details`]() {
+        this.isLoaded.set(true);
+      },
     };
     };
 
 
     return [{
     return [{
@@ -143,6 +146,8 @@ Template.cardDetailsActionsPopup.events({
   'click .js-members': Popup.open('cardMembers'),
   'click .js-members': Popup.open('cardMembers'),
   'click .js-labels': Popup.open('cardLabels'),
   'click .js-labels': Popup.open('cardLabels'),
   'click .js-attachments': Popup.open('cardAttachments'),
   'click .js-attachments': Popup.open('cardAttachments'),
+  'click .js-start-date': Popup.open('editCardStartDate'),
+  'click .js-due-date': Popup.open('editCardDueDate'),
   'click .js-move-card': Popup.open('moveCard'),
   'click .js-move-card': Popup.open('moveCard'),
   'click .js-move-card-to-top'(evt) {
   'click .js-move-card-to-top'(evt) {
     evt.preventDefault();
     evt.preventDefault();

+ 6 - 1
client/components/cards/cardDetails.styl

@@ -73,8 +73,13 @@
     margin: 15px 0
     margin: 15px 0
 
 
     .card-details-item
     .card-details-item
+      margin-right: 0.5em
+      &:last-child
+        margin-right: 0
       &.card-details-item-labels,
       &.card-details-item-labels,
-      &.card-details-item-members
+      &.card-details-item-members,
+      &.card-details-item-start,
+      &.card-details-item-due
         width: 50%
         width: 50%
         flex-shrink: 1
         flex-shrink: 1
 
 

+ 61 - 0
client/components/cards/checklists.jade

@@ -0,0 +1,61 @@
+template(name="checklists")
+  h2 {{_ 'checklists'}}
+  .card-checklist-items
+    each checklist in currentCard.checklists
+      +checklistDetail(checklist = checklist)
+  +inlinedForm(classNames="js-add-checklist" cardId = cardId)
+    +addChecklistItemForm
+  else
+    a.js-open-inlined-form
+      i.fa.fa-plus
+      | {{_ 'add-checklist'}}...
+
+template(name="checklistDetail")
+  +inlinedForm(classNames="js-edit-checklist-title" checklist = checklist)
+    +editChecklistItemForm(checklist = checklist)
+  else
+    .checklist-title
+      .checkbox.fa.fa-check-square-o
+      a.js-delete-checklist {{_ "delete"}}...
+      span.checklist-stat(class="{{#if checklist.isFinished}}is-finished{{/if}}") {{checklist.finishedCount}}/{{checklist.itemCount}}
+      h2.title.js-open-inlined-form.is-editable  {{checklist.title}}
+  +checklistItems(checklist = checklist)
+
+template(name="addChecklistItemForm")
+  textarea.js-add-checklist-item(rows='1' autofocus)
+  .edit-controls.clearfix
+    button.primary.confirm.js-submit-add-checklist-item-form(type="submit") {{_ 'save'}}
+    a.fa.fa-times-thin.js-close-inlined-form
+
+template(name="editChecklistItemForm")
+  textarea.js-edit-checklist-item(rows='1' autofocus)
+    if $eq type 'item'
+      = item.title
+    else
+      = checklist.title
+  .edit-controls.clearfix
+    button.primary.confirm.js-submit-edit-checklist-item-form(type="submit") {{_ 'save'}}
+    a.fa.fa-times-thin.js-close-inlined-form
+    span(title=createdAt) {{ moment createdAt }}
+    if currentUser.isBoardMember
+      a.js-delete-checklist-item {{_ "delete"}}...
+
+template(name="checklistItems")
+  .checklist-items
+    each item in checklist.items
+      +inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist)
+        +editChecklistItemForm(type = 'item' item = item checklist = checklist)
+      else
+        +itemDetail(item = item checklist = checklist)
+    if currentUser.isBoardMember
+      +inlinedForm(classNames="js-add-checklist-item" checklist = checklist)
+        +addChecklistItemForm
+      else
+        a.add-checklist-item.js-open-inlined-form
+          i.fa.fa-plus
+          | {{_ 'add-checklist-item'}}...
+
+template(name='itemDetail')
+  .item
+    .check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
+    .item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}}

+ 89 - 0
client/components/cards/checklists.js

@@ -0,0 +1,89 @@
+BlazeComponent.extendComponent({
+  addChecklist(event) {
+    event.preventDefault();
+    const textarea = this.find('textarea.js-add-checklist-item');
+    const title = textarea.value.trim();
+    const cardId = this.currentData().cardId;
+    Checklists.insert({
+      cardId,
+      title,
+    });
+  },
+
+  addChecklistItem(event) {
+    event.preventDefault();
+    const textarea = this.find('textarea.js-add-checklist-item');
+    const title = textarea.value.trim();
+    const checklist = this.currentData().checklist;
+    checklist.addItem(title);
+  },
+
+  editChecklist(event) {
+    event.preventDefault();
+    const textarea = this.find('textarea.js-edit-checklist-item');
+    const title = textarea.value.trim();
+    const checklist = this.currentData().checklist;
+    checklist.setTitle(title);
+  },
+
+  editChecklistItem(event) {
+    event.preventDefault();
+
+    const textarea = this.find('textarea.js-edit-checklist-item');
+    const title = textarea.value.trim();
+    const itemId = this.currentData().item._id;
+    const checklist = this.currentData().checklist;
+    checklist.editItem(itemId, title);
+  },
+
+  deleteItem() {
+    const checklist = this.currentData().checklist;
+    const item = this.currentData().item;
+    if (checklist && item && item._id) {
+      checklist.removeItem(item._id);
+    }
+  },
+
+  deleteChecklist() {
+    const checklist = this.currentData().checklist;
+    if (checklist && checklist._id) {
+      Checklists.remove(checklist._id);
+    }
+  },
+
+  pressKey(event) {
+    //If user press enter key inside a form, submit it, so user doesn't have to leave keyboard to submit a form.
+    if (event.keyCode === 13) {
+      event.preventDefault();
+      const $form = $(event.currentTarget).closest('form');
+      $form.find('button[type=submit]').click();
+    }
+  },
+
+  events() {
+    return [{
+      'submit .js-add-checklist': this.addChecklist,
+      'submit .js-edit-checklist-title': this.editChecklist,
+      'submit .js-add-checklist-item': this.addChecklistItem,
+      'submit .js-edit-checklist-item': this.editChecklistItem,
+      'click .js-delete-checklist-item': this.deleteItem,
+      'click .js-delete-checklist': this.deleteChecklist,
+      keydown: this.pressKey,
+    }];
+  },
+}).register('checklists');
+
+BlazeComponent.extendComponent({
+  toggleItem() {
+    const checklist = this.currentData().checklist;
+    const item = this.currentData().item;
+    if (checklist && item && item._id) {
+      checklist.toggleItem(item._id);
+    }
+  },
+  events() {
+    return [{
+      'click .item .check-box': this.toggleItem,
+    }];
+  },
+}).register('itemDetail');

+ 68 - 0
client/components/cards/checklists.styl

@@ -0,0 +1,68 @@
+.js-add-checklist
+  color: #8c8c8c
+
+textarea.js-add-checklist-item, textarea.js-edit-checklist-item
+  overflow: hidden
+  word-wrap: break-word
+  resize: none
+  height: 34px
+
+.delete-text
+  color: #8c8c8c
+  text-decoration: underline
+  word-wrap: break-word
+  float: right
+  padding-top: 6px
+  &:hover
+    color: inherit
+
+.checklist-title
+  .checkbox
+    float: left
+    width: 30px
+    height 30px
+    font-size: 18px
+    line-height: 30px
+
+  .title
+    font-size: 18px
+    line-height: 30px
+
+  .checklist-stat
+    margin: 0 0.5em
+    float: right
+    padding-top: 6px
+    &.is-finished
+      color: #3cb500
+
+  .js-delete-checklist
+    @extends .delete-text
+
+.checklist-items
+  margin: 0 0 0.5em 1.33em
+
+  .item
+    line-height: 25px
+    font-size: 1.1em
+    margin-top: 3px
+    display: flex
+
+    .check-box
+      margin-top: 5px
+      &.is-checked
+        border-bottom: 2px solid #3cb500
+        border-right: 2px solid #3cb500
+
+    .item-title
+      padding-left: 10px;
+      &.is-checked
+        color: #8c8c8c
+        font-style: italic
+
+  .js-delete-checklist-item
+    @extends .delete-text
+    padding: 12px 0 0 0
+
+  .add-checklist-item
+    padding-top: 0.5em
+    display: inline-block

+ 12 - 1
client/components/cards/minicard.jade

@@ -14,7 +14,7 @@ template(name="minicard")
     .badges
     .badges
       if comments.count
       if comments.count
         .badge(title="{{_ 'card-comments-title' comments.count }}")
         .badge(title="{{_ 'card-comments-title' comments.count }}")
-          span.badge-icon.fa.fa-comment-o
+          span.badge-icon.fa.fa-comment-o.badge-comment
           span.badge-text= comments.count
           span.badge-text= comments.count
       if description
       if description
         .badge.badge-state-image-only(title=description)
         .badge.badge-state-image-only(title=description)
@@ -23,3 +23,14 @@ template(name="minicard")
         .badge
         .badge
           span.badge-icon.fa.fa-paperclip
           span.badge-icon.fa.fa-paperclip
           span.badge-text= attachments.count
           span.badge-text= attachments.count
+      if startAt
+        .badge
+          +minicardStartDate
+      if dueAt
+        .badge
+          +minicardDueDate
+      if checklists.count
+        .badge(class="{{#if checklistFinished}}is-finished{{/if}}")
+          span.badge-icon.fa.fa-check-square-o
+          span.badge-text.check-list-text {{checklistFinishedCount}}/{{checklistItemCount}}
+

+ 20 - 1
client/components/cards/minicard.styl

@@ -91,15 +91,34 @@
       margin-right: 11px
       margin-right: 11px
       margin-bottom: 3px
       margin-bottom: 3px
       font-size: 0.9em
       font-size: 0.9em
+      
+      &:last-of-type
+        margin-right: 0
 
 
       .badge-icon,
       .badge-icon,
       .badge-text
       .badge-text
-        vertical-align: top
+        vertical-align: middle
+
+      &.is-finished
+        background: #3cb500
+        padding: 0px 3px
+        border-radius: 3px
+        color: white
+
+      .badge-icon,
+      .badge-text
+        vertical-align: middle//didn't figure why use top, it'd be easier to fill bg if it's middle. This was introduced in commit "91cfcf7b12b5e7c137c2e765b2c378dde6b82966" & "* Improve the design of the minicards badges" was mentioned.
+        &.badge-comment
+          margin-bottom: 0.1rem
 
 
       .badge-text
       .badge-text
         font-size: 0.9em
         font-size: 0.9em
         padding-left: 2px
         padding-left: 2px
         line-height: 14px
         line-height: 14px
+      .check-list-text
+        padding-left: 0px
+        line-height: 12px
+
 
 
   .minicard-members
   .minicard-members
     float: right
     float: right

+ 1 - 1
client/components/lists/list.js

@@ -44,7 +44,7 @@ BlazeComponent.extendComponent({
       placeholder: 'minicard-wrapper placeholder',
       placeholder: 'minicard-wrapper placeholder',
       start(evt, ui) {
       start(evt, ui) {
         ui.placeholder.height(ui.helper.height());
         ui.placeholder.height(ui.helper.height());
-        EscapeActions.executeUpTo('popup');
+        EscapeActions.executeUpTo('popup-close');
         boardComponent.setIsDragging(true);
         boardComponent.setIsDragging(true);
       },
       },
       stop(evt, ui) {
       stop(evt, ui) {

+ 7 - 0
client/components/lists/listHeader.jade

@@ -6,6 +6,10 @@ template(name="listHeader")
       h2.list-header-name(
       h2.list-header-name(
         class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
         class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
         = title
         = title
+        if showCardsCountForList cards.count
+          = cards.count
+          span.lowercase
+            |  {{_ 'cards'}}
       if currentUser.isBoardMember
       if currentUser.isBoardMember
         if isWatching
         if isWatching
           i.list-header-watch-icon.fa.fa-eye
           i.list-header-watch-icon.fa.fa-eye
@@ -29,6 +33,9 @@ template(name="listActionPopup")
   hr
   hr
   ul.pop-over-list
   ul.pop-over-list
     li: a.js-close-list {{_ 'archive-list'}}
     li: a.js-close-list {{_ 'archive-list'}}
+  hr
+  ul.pop-over-list
+    li: a.js-remove-list {{_ 'remove-list'}}
 
 
 template(name="boardLists")
 template(name="boardLists")
   ul.pop-over-list
   ul.pop-over-list

+ 14 - 0
client/components/lists/listHeader.js

@@ -13,6 +13,14 @@ BlazeComponent.extendComponent({
     return list.findWatcher(Meteor.userId());
     return list.findWatcher(Meteor.userId());
   },
   },
 
 
+  limitToShowCardsCount() {
+    return Meteor.user().getLimitToShowCardsCount();
+  },
+
+  showCardsCountForList(count) {
+    return count > this.limitToShowCardsCount();
+  },
+
   events() {
   events() {
     return [{
     return [{
       'click .js-open-list-menu': Popup.open('listAction'),
       'click .js-open-list-menu': Popup.open('listAction'),
@@ -52,4 +60,10 @@ Template.listActionPopup.events({
     this.archive();
     this.archive();
     Popup.close();
     Popup.close();
   },
   },
+  'click .js-remove-list'(evt) {
+    const currentList = this;
+    evt.preventDefault();
+    Lists.remove(currentList._id);
+    Popup.close();
+  },
 });
 });

+ 11 - 1
client/components/main/layouts.styl

@@ -3,7 +3,7 @@
 global-reset()
 global-reset()
 
 
 html, body, input, select, textarea, button
 html, body, input, select, textarea, button
-  font: 14px Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif
+  font: 14px Roboto, "Helvetica Neue", Arial, Helvetica, "Yu Gothic", "Meiryo", sans-serif
   line-height: 18px
   line-height: 18px
   color: #4d4d4d
   color: #4d4d4d
 
 
@@ -351,6 +351,11 @@ a
     background: darken(white, 13%)
     background: darken(white, 13%)
     overflow-y: auto
     overflow-y: auto
 
 
+  a
+    text-decoration: underline
+    &:hover
+      color: #333
+
 .basicTabs-container .tabs-content-container
 .basicTabs-container .tabs-content-container
   padding: 0
   padding: 0
   padding-top: 15px
   padding-top: 15px
@@ -374,3 +379,8 @@ a
   .wrapper
   .wrapper
     height: 100%
     height: 100%
     margin: 0px
     margin: 0px
+
+.inline-input
+  height: 37px
+  margin: 8px 10px 0 0
+  width: 50px

+ 19 - 11
client/components/sidebar/sidebar.jade

@@ -3,14 +3,19 @@ template(name="sidebar")
     a.sidebar-tongue.js-toggle-sidebar(
     a.sidebar-tongue.js-toggle-sidebar(
       class="{{#if isTongueHidden}}is-hidden{{/if}}")
       class="{{#if isTongueHidden}}is-hidden{{/if}}")
       i.fa.fa-angle-left
       i.fa.fa-angle-left
-    .sidebar-content.js-board-sidebar-content.js-perfect-scrollbar
-      a.hide-btn.js-hide-sidebar
-        i.fa.fa-angle-right
-      unless isDefaultView
-        h2
-          a.fa.fa-chevron-left.js-back-home
-          = getViewTitle
-      +Template.dynamic(template=getViewTemplate)
+    .sidebar-shadow
+      .sidebar-content.sidebar-shortcuts
+        a.board-header-btn.js-shortcuts
+          i.fa.fa-keyboard-o
+          span {{_ 'keyboard-shortcuts' }}
+      .sidebar-content.js-board-sidebar-content.js-perfect-scrollbar
+        a.hide-btn.js-hide-sidebar
+          i.fa.fa-angle-right
+        unless isDefaultView
+          h2
+            a.fa.fa-chevron-left.js-back-home
+            = getViewTitle
+        +Template.dynamic(template=getViewTemplate)
 
 
 template(name='homeSidebar')
 template(name='homeSidebar')
   +membersWidget
   +membersWidget
@@ -30,10 +35,13 @@ template(name="membersWidget")
     .board-widget-content
     .board-widget-content
       each currentBoard.activeMembers
       each currentBoard.activeMembers
         +userAvatar(userId=this.userId showStatus=true)
         +userAvatar(userId=this.userId showStatus=true)
-      unless isSandstorm
-        if currentUser.isBoardAdmin
-          a.member.add-member.js-manage-board-members
+      if isSandstorm
+        if currentUser.isBoardMember
+          a.member.add-member.sandstorm-powerbox-request-identity
             i.fa.fa-plus
             i.fa.fa-plus
+      else if currentUser.isBoardAdmin
+        a.member.add-member.js-manage-board-members
+          i.fa.fa-plus
       .clearfix
       .clearfix
   if isInvited
   if isInvited
     hr
     hr

+ 8 - 2
client/components/sidebar/sidebar.js

@@ -94,6 +94,9 @@ BlazeComponent.extendComponent({
       'click .js-hide-sidebar': this.hide,
       'click .js-hide-sidebar': this.hide,
       'click .js-toggle-sidebar': this.toggle,
       'click .js-toggle-sidebar': this.toggle,
       'click .js-back-home': this.setView,
       'click .js-back-home': this.setView,
+      'click .js-shortcuts'() {
+        FlowRouter.go('shortcuts');
+      },
     }];
     }];
   },
   },
 }).register('sidebar');
 }).register('sidebar');
@@ -134,8 +137,8 @@ Template.memberPopup.events({
     Popup.close();
     Popup.close();
   }),
   }),
   'click .js-leave-member'() {
   'click .js-leave-member'() {
-    const currentBoard = Boards.findOne(Session.get('currentBoard'));
-    Meteor.call('quitBoard', currentBoard, (err, ret) => {
+    const boardId = Session.get('currentBoard');
+    Meteor.call('quitBoard', boardId, (err, ret) => {
       if (!ret && ret) {
       if (!ret && ret) {
         Popup.close();
         Popup.close();
         FlowRouter.go('home');
         FlowRouter.go('home');
@@ -163,6 +166,9 @@ Template.membersWidget.helpers({
 Template.membersWidget.events({
 Template.membersWidget.events({
   'click .js-member': Popup.open('member'),
   'click .js-member': Popup.open('member'),
   'click .js-manage-board-members': Popup.open('addMember'),
   'click .js-manage-board-members': Popup.open('addMember'),
+  'click .sandstorm-powerbox-request-identity'() {
+    window.sandstormRequestIdentity();
+  },
   'click .js-member-invite-accept'() {
   'click .js-member-invite-accept'() {
     const boardId = Session.get('currentBoard');
     const boardId = Session.get('currentBoard');
     Meteor.user().removeInvite(boardId);
     Meteor.user().removeInvite(boardId);

+ 21 - 2
client/components/sidebar/sidebar.styl

@@ -6,11 +6,19 @@
   bottom: 0
   bottom: 0
   right: 0
   right: 0
 
 
-  .sidebar-content
-    padding: 12px
+  .sidebar-shadow
+    position: absolute
+    top: 0
+    bottom: 0
+    right: 0
+    left: 0
     background: darken(white, 3%)
     background: darken(white, 3%)
     box-shadow: -10px 0px 5px -10px darken(white, 30%)
     box-shadow: -10px 0px 5px -10px darken(white, 30%)
     z-index: 10
     z-index: 10
+
+  .sidebar-content
+    padding: 12px
+    margin-bottom: 1.6em
     position: absolute
     position: absolute
     top: 0
     top: 0
     bottom: 0
     bottom: 0
@@ -51,6 +59,7 @@
 
 
         .member, .card-label
         .member, .card-label
           margin-right: 7px
           margin-right: 7px
+          margin-top: 5px
 
 
         .sidebar-list-item-description
         .sidebar-list-item-description
           flex: 1
           flex: 1
@@ -72,6 +81,16 @@
       i.fa
       i.fa
         margin-right: 10px
         margin-right: 10px
 
 
+  .sidebar-shortcuts
+    margin: 0
+    padding: 0
+    top: auto
+    text-align: center
+    font-size: 0.8em
+    line-height: 1.6em
+    vertical-align: middle
+    color: darken(white, 40%)
+
 .board-sidebar
 .board-sidebar
   width: 248px
   width: 248px
   right: -@width
   right: -@width

+ 12 - 1
client/components/sidebar/sidebarFilters.jade

@@ -5,6 +5,12 @@
 
 
 template(name="filterSidebar")
 template(name="filterSidebar")
   ul.sidebar-list
   ul.sidebar-list
+    li(class="{{#if Filter.labelIds.isSelected undefined}}active{{/if}}")
+          a.name.js-toggle-label-filter
+            span.sidebar-list-item-description
+              | {{_ 'filter-no-label'}}
+            if Filter.labelIds.isSelected undefined
+              i.fa.fa-check
     each currentBoard.labels
     each currentBoard.labels
       li
       li
         a.name.js-toggle-label-filter
         a.name.js-toggle-label-filter
@@ -18,6 +24,12 @@ template(name="filterSidebar")
             i.fa.fa-check
             i.fa.fa-check
   hr
   hr
   ul.sidebar-list
   ul.sidebar-list
+    li(class="{{#if Filter.members.isSelected undefined}}active{{/if}}")
+          a.name.js-toggle-member-filter
+            span.sidebar-list-item-description
+              | {{_ 'filter-no-member'}}
+            if Filter.members.isSelected undefined
+              i.fa.fa-check
     each currentBoard.activeMembers
     each currentBoard.activeMembers
       with getUser userId
       with getUser userId
         li(class="{{#if Filter.members.isSelected _id}}active{{/if}}")
         li(class="{{#if Filter.members.isSelected _id}}active{{/if}}")
@@ -86,4 +98,3 @@ template(name="disambiguateMultiMemberPopup")
 
 
 template(name="moveSelectionPopup")
 template(name="moveSelectionPopup")
   +boardLists
   +boardLists
-

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

@@ -12,10 +12,11 @@ template(name="memberMenuPopup")
   ul.pop-over-list
   ul.pop-over-list
     with currentUser
     with currentUser
       li: a.js-edit-profile {{_ 'edit-profile'}}
       li: a.js-edit-profile {{_ 'edit-profile'}}
-    li: a.js-change-avatar {{_ 'edit-avatar'}}
-    li: a.js-change-password {{_ 'changePasswordPopup-title'}}
-    li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
-    li: a.js-edit-notification {{_ 'editNotificationPopup-title'}}
+      li: a.js-change-settings {{_ 'change-settings'}}
+      li: a.js-change-avatar {{_ 'edit-avatar'}}
+      li: a.js-change-password {{_ 'changePasswordPopup-title'}}
+      li: a.js-change-language {{_ 'changeLanguagePopup-title'}}
+      li: a.js-edit-notification {{_ 'editNotificationPopup-title'}}
   hr
   hr
   ul.pop-over-list
   ul.pop-over-list
     li: a.js-logout {{_ 'log-out'}}
     li: a.js-logout {{_ 'log-out'}}
@@ -27,6 +28,8 @@ template(name="editProfilePopup")
       input.js-profile-fullname(type="text" value=profile.fullname autofocus)
       input.js-profile-fullname(type="text" value=profile.fullname autofocus)
     label
     label
       | {{_ 'username'}}
       | {{_ 'username'}}
+      span.error.hide.username-taken
+        | {{_ 'error-username-taken'}}
       input.js-profile-username(type="text" value=username)
       input.js-profile-username(type="text" value=username)
     label
     label
       | {{_ 'initials'}}
       | {{_ 'initials'}}
@@ -61,3 +64,16 @@ template(name="changeLanguagePopup")
           = name
           = name
           if isCurrentLanguage
           if isCurrentLanguage
             i.fa.fa-check
             i.fa.fa-check
+
+template(name="changeSettingsPopup")
+  ul.pop-over-list
+    li
+      a.js-toggle-system-messages
+        | {{_ 'hide-system-messages'}}
+        if hiddenSystemMessages
+          i.fa.fa-check
+    li
+      label.bold
+        | {{_ 'show-cards-minimum-count'}}
+      input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="1" max="99" onkeydown="return false")
+      input.js-apply-show-cards-at.left(type="submit" value="{{_ 'apply'}}")

+ 35 - 4
client/components/users/userHeader.js

@@ -5,6 +5,7 @@ Template.headerUserBar.events({
 
 
 Template.memberMenuPopup.events({
 Template.memberMenuPopup.events({
   'click .js-edit-profile': Popup.open('editProfile'),
   'click .js-edit-profile': Popup.open('editProfile'),
+  'click .js-change-settings': Popup.open('changeSettings'),
   'click .js-change-avatar': Popup.open('changeAvatar'),
   'click .js-change-avatar': Popup.open('changeAvatar'),
   'click .js-change-password': Popup.open('changePassword'),
   'click .js-change-password': Popup.open('changePassword'),
   'click .js-change-language': Popup.open('changeLanguage'),
   'click .js-change-language': Popup.open('changeLanguage'),
@@ -26,11 +27,18 @@ Template.editProfilePopup.events({
       'profile.fullname': fullname,
       'profile.fullname': fullname,
       'profile.initials': initials,
       'profile.initials': initials,
     }});
     }});
-    // XXX We should report the error to the user.
+
     if (username !== Meteor.user().username) {
     if (username !== Meteor.user().username) {
-      Meteor.call('setUsername', username);
-    }
-    Popup.back();
+      Meteor.call('setUsername', username, function(error) {
+        const messageElement = tpl.$('.username-taken');
+        if (error) {
+          messageElement.show();
+        } else {
+          messageElement.hide();
+          Popup.back();
+        }
+      });
+    } else Popup.back();
   },
   },
 });
 });
 
 
@@ -82,3 +90,26 @@ Template.changeLanguagePopup.events({
     evt.preventDefault();
     evt.preventDefault();
   },
   },
 });
 });
+
+Template.changeSettingsPopup.helpers({
+  hiddenSystemMessages() {
+    return Meteor.user().hasHiddenSystemMessages();
+  },
+  showCardsCountAt() {
+    return Meteor.user().getLimitToShowCardsCount();
+  },
+});
+
+Template.changeSettingsPopup.events({
+  'click .js-toggle-system-messages'() {
+    Meteor.call('toggleSystemMessages');
+  },
+  'click .js-apply-show-cards-at'(evt, tpl) {
+    evt.preventDefault();
+    const minLimit = parseInt(tpl.$('#show-cards-count-at').val(), 10);
+    if (!isNaN(minLimit)) {
+      Meteor.call('changeLimitToShowCardsCount', minLimit);
+      Popup.back();
+    }
+  },
+});

+ 1 - 1
client/lib/escapeActions.js

@@ -44,7 +44,7 @@ EscapeActions = {
 
 
   executeLowest() {
   executeLowest() {
     return this._execute({
     return this._execute({
-      multipleAction: false,
+      multipleActions: false,
     });
     });
   },
   },
 
 

+ 23 - 2
client/lib/filter.js

@@ -63,6 +63,17 @@ class SetFilter {
     this._dep.depend();
     this._dep.depend();
     return { $in: this._selectedElements };
     return { $in: this._selectedElements };
   }
   }
+
+  _getEmptySelector() {
+    this._dep.depend();
+    let includeEmpty = false;
+    this._selectedElements.forEach((el) => {
+      if (el === undefined) {
+        includeEmpty = true;
+      }
+    });
+    return includeEmpty ? { $eq: [] } : null;
+  }
 }
 }
 
 
 // The global Filter object.
 // The global Filter object.
@@ -95,16 +106,26 @@ Filter = {
       return {};
       return {};
 
 
     const filterSelector = {};
     const filterSelector = {};
+    const emptySelector = {};
+    let includeEmptySelectors = false;
     this._fields.forEach((fieldName) => {
     this._fields.forEach((fieldName) => {
       const filter = this[fieldName];
       const filter = this[fieldName];
-      if (filter._isActive())
+      if (filter._isActive()) {
         filterSelector[fieldName] = filter._getMongoSelector();
         filterSelector[fieldName] = filter._getMongoSelector();
+        emptySelector[fieldName] = filter._getEmptySelector();
+        if (emptySelector[fieldName] !== null) {
+          includeEmptySelectors = true;
+        }
+      }
     });
     });
 
 
     const exceptionsSelector = {_id: {$in: this._exceptions}};
     const exceptionsSelector = {_id: {$in: this._exceptions}};
     this._exceptionsDep.depend();
     this._exceptionsDep.depend();
 
 
-    return {$or: [filterSelector, exceptionsSelector]};
+    if (includeEmptySelectors)
+      return {$or: [filterSelector, exceptionsSelector, emptySelector]};
+    else
+      return {$or: [filterSelector, exceptionsSelector]};
   },
   },
 
 
   mongoSelector(additionalSelector) {
   mongoSelector(additionalSelector) {

+ 14 - 15
client/lib/i18n.js

@@ -2,20 +2,19 @@
 // the language reactively. If the user is not connected we use the language
 // the language reactively. If the user is not connected we use the language
 // information provided by the browser, and default to english.
 // information provided by the browser, and default to english.
 
 
-Tracker.autorun(() => {
-  const currentUser = Meteor.user();
-  let language;
-  if (currentUser) {
-    language = currentUser.profile && currentUser.profile.language;
-  } else {
-    language = navigator.language || navigator.userLanguage;
-  }
+Meteor.startup(() => {
+  Tracker.autorun(() => {
+    const currentUser = Meteor.user();
+    let language;
+    if (currentUser && currentUser.profile && currentUser.profile.language) {
+      language = currentUser.profile.language;
+    } else {
+      language = navigator.language || navigator.userLanguage;
+    }
 
 
-  if (language) {
-    TAPi18n.setLanguage(language);
-
-    // XXX
-    const shortLanguage = language.split('-')[0];
-    T9n.setLanguage(shortLanguage);
-  }
+    if (language) {
+      TAPi18n.setLanguage(language);
+      T9n.setLanguage(language);
+    }
+  });
 });
 });

+ 46 - 28
docker-compose.yml

@@ -1,31 +1,49 @@
-# You can read the Docker Compose documentation at:
-#
-#   https://docs.docker.com/compose/
-#
-# Run with file with `docker-compose up -d`.
-#
-# We use two separate Docker containers: one for the database and one for the
-# Wekan application. The Wekan container doensn’t contain any mutable state
-# (all the user data, even uploads, are saved in the database) so updating it
-# is as simple as stoping the old version and starting the new one. If you want
-# to update the database you need to uncomment the volume section below.
+version: '2'
 
 
-wekandb:
-  image: mongo
-#  volumes:
-#    - ./data/runtime/db:/data/db
-#    - ./data/dump:/dump
-  command: mongod --smallfiles --oplogSize 128
-  ports:
-    - 27017
+services:
 
 
-wekan:
-  image: mquandalle/wekan
-  links:
-    - wekandb
-  environment:
-    - MONGO_URL=mongodb://wekandb/wekan
-    - ROOT_URL=http://localhost:80
-  ports:
-    - 80:80
+  wekandb:
+    image: mongo:3.2.11
+    container_name: wekan-db
+    restart: always
+    command: mongod --smallfiles --oplogSize 128
+    networks:
+      - wekan-tier
+    expose:
+      - 27017
+    volumes:
+      - wekan-db:/data/db
+      - wekan-db-dump:/dump
 
 
+  wekan:
+    image: mquandalle/wekan:latest
+    container_name: wekan-app
+    restart: always
+    networks:
+      - wekan-tier
+    build:
+      context: .
+      dockerfile: Dockerfile
+      args:
+        - NODE_VERSION=${NODE_VERSION}
+        - METEOR_RELEASE=${METEOR_RELEASE}
+        - NPM_VERSION=${NPM_VERSION}
+        - ARCHITECTURE=${ARCHITECTURE}
+        - SRC_PATH=${SRC_PATH}
+    ports:
+      - 80:80
+    environment:
+      - MONGO_URL=mongodb://wekandb:27017/wekan
+      - ROOT_URL=http://localhost
+    depends_on:
+      - wekandb
+
+volumes:
+  wekan-db:
+    driver: local
+  wekan-db-dump:
+    driver: local
+
+networks:
+  wekan-tier:
+    driver: bridge

+ 67 - 6
i18n/ar.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Accept",
     "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "النشاط",
@@ -16,10 +36,13 @@
     "activity-removed": "حذف %s إلى %s",
     "activity-removed": "حذف %s إلى %s",
     "activity-sent": "إرسال %s إلى %s",
     "activity-sent": "إرسال %s إلى %s",
     "activity-unjoined": "غادر %s",
     "activity-unjoined": "غادر %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "أضف",
     "add": "أضف",
     "add-attachment": "إرفاق ملف",
     "add-attachment": "إرفاق ملف",
     "add-board": "إضافة لوحة",
     "add-board": "إضافة لوحة",
     "add-card": "إضافة بطاقة",
     "add-card": "إضافة بطاقة",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "إضافة غلاف",
     "add-cover": "إضافة غلاف",
     "add-label": "إضافة علامة",
     "add-label": "إضافة علامة",
     "add-list": "إضافة قائمة",
     "add-list": "إضافة قائمة",
@@ -31,6 +54,8 @@
     "all-boards": "كل اللوحات",
     "all-boards": "كل اللوحات",
     "and-n-other-card": "And __count__ other بطاقة",
     "and-n-other-card": "And __count__ other بطاقة",
     "and-n-other-card_plural": "And __count__ other بطاقات",
     "and-n-other-card_plural": "And __count__ other بطاقات",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "أرشف",
     "archive": "أرشف",
     "archive-all": "أرشف الكل",
     "archive-all": "أرشف الكل",
     "archive-board": "أرشف اللوحة",
     "archive-board": "أرشف اللوحة",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "حذف المرق هو حذف نهائي . لا يمكن التراجع إذا حذف.",
     "attachment-delete-pop": "حذف المرق هو حذف نهائي . لا يمكن التراجع إذا حذف.",
     "attachmentDeletePopup-title": "تريد حذف المرفق ?",
     "attachmentDeletePopup-title": "تريد حذف المرفق ?",
     "attachments": "المرفقات",
     "attachments": "المرفقات",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "حجم ملف الصورة الخاصة بك كبير . لا يمكن  أن تتجاوز 70 كيلو أكتي",
     "avatar-too-big": "حجم ملف الصورة الخاصة بك كبير . لا يمكن  أن تتجاوز 70 كيلو أكتي",
     "back": "رجوع",
     "back": "رجوع",
     "board-change-color": "تغيير اللومr",
     "board-change-color": "تغيير اللومr",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "تعديل خلفية الشاشة",
     "boardChangeColorPopup-title": "تعديل خلفية الشاشة",
     "boardChangeTitlePopup-title": "إعادة تسمية اللوحة",
     "boardChangeTitlePopup-title": "إعادة تسمية اللوحة",
     "boardChangeVisibilityPopup-title": "تعديل وضوح الرؤية",
     "boardChangeVisibilityPopup-title": "تعديل وضوح الرؤية",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "قائمة اللوحة",
     "boardMenuPopup-title": "قائمة اللوحة",
     "boards": "لوحات",
     "boards": "لوحات",
     "bucket-example": "مثل « todo list » على سبيل المثال",
     "bucket-example": "مثل « todo list » على سبيل المثال",
@@ -66,11 +92,15 @@
     "card-delete-notice": "هذا حذف أبديّ . سوف تفقد كل الإجراءات المنوطة بهذه البطاقة",
     "card-delete-notice": "هذا حذف أبديّ . سوف تفقد كل الإجراءات المنوطة بهذه البطاقة",
     "card-delete-pop": "سيتم إزالة جميع الإجراءات من تبعات النشاط، وأنك لن تكون قادرا على إعادة فتح البطاقة. لا يوجد التراجع.",
     "card-delete-pop": "سيتم إزالة جميع الإجراءات من تبعات النشاط، وأنك لن تكون قادرا على إعادة فتح البطاقة. لا يوجد التراجع.",
     "card-delete-suggest-archive": "يمكنك أرشفة بطاقة لحذفها من اللوحة والمحافظة على النشاط.",
     "card-delete-suggest-archive": "يمكنك أرشفة بطاقة لحذفها من اللوحة والمحافظة على النشاط.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "تعديل المرفقات",
     "card-edit-attachments": "تعديل المرفقات",
     "card-edit-labels": "تعديل العلامات",
     "card-edit-labels": "تعديل العلامات",
     "card-edit-members": "تعديل الأعضاء",
     "card-edit-members": "تعديل الأعضاء",
     "card-labels-title": "تعديل علامات البطاقة.",
     "card-labels-title": "تعديل علامات البطاقة.",
     "card-members-title": "إضافة او حذف أعضاء للبطاقة.",
     "card-members-title": "إضافة او حذف أعضاء للبطاقة.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "إرفاق من",
     "cardAttachmentsPopup-title": "إرفاق من",
     "cardDeletePopup-title": "حذف البطاقة ?",
     "cardDeletePopup-title": "حذف البطاقة ?",
     "cardDetailsActionsPopup-title": "إجراءات على البطاقة",
     "cardDetailsActionsPopup-title": "إجراءات على البطاقة",
@@ -82,10 +112,13 @@
     "change-avatar": "تعديل الصورة الشخصية",
     "change-avatar": "تعديل الصورة الشخصية",
     "change-password": "تغيير كلمة المرور",
     "change-password": "تغيير كلمة المرور",
     "change-permissions": "تعديل الصلاحيات",
     "change-permissions": "تعديل الصلاحيات",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "تعديل الصورة الشخصية",
     "changeAvatarPopup-title": "تعديل الصورة الشخصية",
     "changeLanguagePopup-title": "تغيير اللغة",
     "changeLanguagePopup-title": "تغيير اللغة",
     "changePasswordPopup-title": "تغيير كلمة المرور",
     "changePasswordPopup-title": "تغيير كلمة المرور",
     "changePermissionsPopup-title": "تعديل الصلاحيات",
     "changePermissionsPopup-title": "تعديل الصلاحيات",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "اضغط لإضافة اللوحة للمفضلة.",
     "click-to-star": "اضغط لإضافة اللوحة للمفضلة.",
     "click-to-unstar": "اضغط لحذف اللوحة من المفضلة.",
     "click-to-unstar": "اضغط لحذف اللوحة من المفضلة.",
     "clipboard": "Clipboard or drag & drop",
     "clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "إنشاء لوحة",
     "createBoardPopup-title": "إنشاء لوحة",
     "createLabelPopup-title": "إنشاء علامة",
     "createLabelPopup-title": "إنشاء علامة",
     "current": "الحالي",
     "current": "الحالي",
+    "date": "Date",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "صورة شخصية افتراضية",
     "default-avatar": "صورة شخصية افتراضية",
     "delete": "حذف",
     "delete": "حذف",
@@ -122,7 +156,10 @@
     "edit": "تعديل",
     "edit": "تعديل",
     "edit-avatar": "تعديل الصورة الشخصية",
     "edit-avatar": "تعديل الصورة الشخصية",
     "edit-profile": "تعديل الملف الشخصي",
     "edit-profile": "تعديل الملف الشخصي",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "تعديل العلامة",
     "editLabelPopup-title": "تعديل العلامة",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "تعديل الملف الشخصي",
     "editProfilePopup-title": "تعديل الملف الشخصي",
     "email": "البريد الإلكتروني",
     "email": "البريد الإلكتروني",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "This user does not exist",
     "error-user-doesNotExist": "This user does not exist",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notCreated": "This user is not created",
     "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "تصفية",
     "filter": "تصفية",
     "filter-cards": "تصفية البطاقات",
     "filter-cards": "تصفية البطاقات",
     "filter-clear": "مسح التصفية",
     "filter-clear": "مسح التصفية",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "التصفية تشتغل",
     "filter-on": "التصفية تشتغل",
     "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.",
     "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.",
     "filter-to-selection": "تصفية بالتحديد",
     "filter-to-selection": "تصفية بالتحديد",
     "fullname": "الإسم الكامل",
     "fullname": "الإسم الكامل",
     "header-logo-title": "الرجوع إلى صفحة اللوحات",
     "header-logo-title": "الرجوع إلى صفحة اللوحات",
+    "hide-system-messages": "Hide system messages",
     "home": "الرئيسية",
     "home": "الرئيسية",
     "import": "Import",
     "import": "Import",
     "import-board": "import from Trello",
     "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
     "import-json-placeholder": "Paste your valid JSON data here",
     "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-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-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "معلومات",
     "info": "معلومات",
     "initials": "أولية",
     "initials": "أولية",
+    "invalid-date": "Invalid date",
     "joined": "انضمّ",
     "joined": "انضمّ",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
     "keyboard-shortcuts": "اختصار لوحة المفاتيح",
     "keyboard-shortcuts": "اختصار لوحة المفاتيح",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Import a Trello card",
     "listImportCardPopup-title": "Import a Trello card",
     "lists": "القائمات",
     "lists": "القائمات",
     "log-out": "تسجيل الخروج",
     "log-out": "تسجيل الخروج",
+    "log-in": "تسجيل الدخول",
     "loginPopup-title": "تسجيل الدخول",
     "loginPopup-title": "تسجيل الدخول",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
     "memberMenuPopup-title": "أفضليات الأعضاء",
     "memberMenuPopup-title": "أفضليات الأعضاء",
     "members": "أعضاء",
     "members": "أعضاء",
     "menu": "القائمة",
     "menu": "القائمة",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
     "moveCardPopup-title": "نقل البطاقة",
     "moveCardPopup-title": "نقل البطاقة",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Move selection",
     "moveSelectionPopup-title": "Move selection",
     "multi-selection": "تحديد أكثر من واحدة",
     "multi-selection": "تحديد أكثر من واحدة",
     "multi-selection-on": "Multi-Selection is on",
     "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-archived-cards": "لا يوجد بطاقة في الأرشيف.",
@@ -205,12 +251,15 @@
     "normal": "عادي",
     "normal": "عادي",
     "normal-desc": "يمكن مشاهدة و تعديل  البطاقات. لا يمكن تغيير إعدادات الضبط.",
     "normal-desc": "يمكن مشاهدة و تعديل  البطاقات. لا يمكن تغيير إعدادات الضبط.",
     "not-accepted-yet": "Invitation not accepted yet",
     "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",
     "or": "or",
     "page-maybe-private": "قدتكون هذه الصفحة خاصة . قد تستطيع مشاهدتها ب  <a href='%s'>تسجيل الدخول</a>.",
     "page-maybe-private": "قدتكون هذه الصفحة خاصة . قد تستطيع مشاهدتها ب  <a href='%s'>تسجيل الدخول</a>.",
     "page-not-found": "صفحة غير موجودة",
     "page-not-found": "صفحة غير موجودة",
     "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",
     "preview": "Preview",
     "preview": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
@@ -223,6 +272,7 @@
     "remove-cover": "حذف الغلاف",
     "remove-cover": "حذف الغلاف",
     "remove-from-board": "حذف من اللوحة",
     "remove-from-board": "حذف من اللوحة",
     "remove-label": "حذف هذه العلامة",
     "remove-label": "حذف هذه العلامة",
+    "remove-list": "Remove the list",
     "remove-member": "حذف العضو",
     "remove-member": "حذف العضو",
     "remove-member-from-card": "حذف من البطاقة",
     "remove-member-from-card": "حذف من البطاقة",
     "remove-member-pop": "حذف __name__ (__username__) من __boardTitle__ ? سيتم حذف هذا العضو من جميع بطاقة اللوحة مع إرسال إشعار له بذاك.",
     "remove-member-pop": "حذف __name__ (__username__) من __boardTitle__ ? سيتم حذف هذا العضو من جميع بطاقة اللوحة مع إرسال إشعار له بذاك.",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "عرض قائمة الإختصارات ،تلك",
     "shortcut-show-shortcuts": "عرض قائمة الإختصارات ،تلك",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-sidebar": "إظهار-إخفاء الشريط الجانبي للوحة",
     "shortcut-toggle-sidebar": "إظهار-إخفاء الشريط الجانبي للوحة",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "إنشاء حساب",
     "signupPopup-title": "إنشاء حساب",
     "star-board-title": "اضغط لإضافة هذه اللوحة إلى المفضلة . سوف يتم إظهارها على رأس بقية اللوحات.",
     "star-board-title": "اضغط لإضافة هذه اللوحة إلى المفضلة . سوف يتم إظهارها على رأس بقية اللوحات.",
     "starred-boards": "اللوحات المفضلة",
     "starred-boards": "اللوحات المفضلة",
@@ -250,14 +301,24 @@
     "team": "فريق",
     "team": "فريق",
     "this-board": "هذه اللوحة",
     "this-board": "هذه اللوحة",
     "this-card": "هذه البطاقة",
     "this-card": "هذه البطاقة",
+    "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.",
     "unassign-member": "إلغاء تعيين العضو",
     "unassign-member": "إلغاء تعيين العضو",
     "unsaved-description": "لديك وصف غير محفوظ",
     "unsaved-description": "لديك وصف غير محفوظ",
+    "unwatch": "Unwatch",
     "upload": "Upload",
     "upload": "Upload",
     "upload-avatar": "رفع صورة شخصية",
     "upload-avatar": "رفع صورة شخصية",
     "uploaded-avatar": "تم رفع الصورة الشخصية",
     "uploaded-avatar": "تم رفع الصورة الشخصية",
     "username": "اسم المستخدم",
     "username": "اسم المستخدم",
     "view-it": "شاهدها",
     "view-it": "شاهدها",
     "warn-list-archived": "انتبه : هذه البطاقة في أرشيف القائمات",
     "warn-list-archived": "انتبه : هذه البطاقة في أرشيف القائمات",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "ماذا تريد أن تنجز?"
     "what-to-do": "ماذا تريد أن تنجز?"
-}
+}

+ 324 - 0
i18n/br.i18n.json

@@ -0,0 +1,324 @@
+{
+    "accept": "Asantiñ",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Oberoù",
+    "activities": "Oberiantizoù",
+    "activity": "Oberiantiz",
+    "activity-added": "%s ouzhpennet da %s",
+    "activity-archived": "%s diellaouet",
+    "activity-attached": "%s liammet ouzh %s",
+    "activity-created": "%s krouet",
+    "activity-excluded": "excluded %s from %s",
+    "activity-imported": "%s enporzhiet eus %s da %s",
+    "activity-imported-board": "%s enporzhiet da %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",
+    "add": "Ouzhpenn",
+    "add-attachment": "Add an attachment",
+    "add-board": "Add a new board",
+    "add-card": "Ouzhpenn ur gartenn",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "Ouzphenn ur golo",
+    "add-label": "Ouzhpenn an titl",
+    "add-list": "Ouzhpenn ur roll",
+    "add-members": "Ouzhpenn izili",
+    "added": "Ouzhpennet",
+    "addMemberPopup-title": "Izili",
+    "admin": "Merour",
+    "admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
+    "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": "The application is currently offline, refreshing the page will cause data loss.",
+    "archive": "Archive",
+    "archive-all": "Archive All",
+    "archive-board": "Archive Board",
+    "archive-card": "Archive Card",
+    "archive-list": "Archive this list",
+    "archive-selection": "Archive selection",
+    "archiveBoardPopup-title": "Archive Board?",
+    "archived-items": "Archived Items",
+    "archives": "Archives",
+    "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 create it",
+    "avatar-too-big": "The avatar is too large (70Kb max)",
+    "back": "Back",
+    "board-change-color": "Kemmañ al liv",
+    "board-nb-stars": "%s stered",
+    "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",
+    "bucket-example": "Like “Bucket List” for example",
+    "cancel": "Cancel",
+    "card-archived": "This card is archived.",
+    "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 archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
+    "card-edit-attachments": "Edit attachments",
+    "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",
+    "cardDeletePopup-title": "Diverkañ ar gartenn ?",
+    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardLabelsPopup-title": "Labels",
+    "cardMembersPopup-title": "Izili",
+    "cardMorePopup-title": "Muioc’h",
+    "cards": "Kartennoù",
+    "change": "Change",
+    "change-avatar": "Change Avatar",
+    "change-password": "Kemmañ ger-tremen",
+    "change-permissions": "Change permissions",
+    "change-settings": "Change Settings",
+    "changeAvatarPopup-title": "Change Avatar",
+    "changeLanguagePopup-title": "Change Language",
+    "changePasswordPopup-title": "Kemmañ ger-tremen",
+    "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 “Archives” button from the home header.",
+    "color-black": "du",
+    "color-blue": "glas",
+    "color-green": "gwer",
+    "color-lime": "melen sitroñs",
+    "color-orange": "orañjez",
+    "color-pink": "roz",
+    "color-purple": "mouk",
+    "color-red": "ruz",
+    "color-sky": "pers",
+    "color-yellow": "melen",
+    "comment": "Comment",
+    "comment-placeholder": "Write a comment",
+    "computer": "Computer",
+    "create": "Krouiñ",
+    "createBoardPopup-title": "Create Board",
+    "createLabelPopup-title": "Create Label",
+    "current": "current",
+    "date": "Date",
+    "decline": "Decline",
+    "default-avatar": "Default avatar",
+    "delete": "Diverkañ",
+    "deleteLabelPopup-title": "Delete Label?",
+    "description": "Description",
+    "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
+    "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
+    "discard": "Discard",
+    "done": "Graet",
+    "download": "Download",
+    "edit": "Kemmañ",
+    "edit-avatar": "Change Avatar",
+    "edit-profile": "Edit Profile",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
+    "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-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.",
+    "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": "This action on self is not allowed",
+    "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already 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-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",
+    "fullname": "Full Name",
+    "header-logo-title": "Go back to your boards page.",
+    "hide-system-messages": "Hide system messages",
+    "home": "Home",
+    "import": "Import",
+    "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
+    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+    "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": "Infos",
+    "initials": "Initials",
+    "invalid-date": "Invalid date",
+    "joined": "joined",
+    "just-invited": "You are just invited to this board",
+    "keyboard-shortcuts": "Keyboard shortcuts",
+    "label-create": "Create a new 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": "Yezh",
+    "last-admin-desc": "You can’t change roles because there must be at least one admin.",
+    "leave-board": "Leave Board",
+    "link-card": "Link to this card",
+    "list-archive-cards": "Archive all cards in this list",
+    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
+    "list-move-cards": "Move all cards in this list",
+    "list-select-cards": "Select all cards in this list",
+    "listActionPopup-title": "List Actions",
+    "listImportCardPopup-title": "Import a Trello card",
+    "lists": "Lists",
+    "log-out": "Log Out",
+    "log-in": "Log In",
+    "loginPopup-title": "Log In",
+    "memberMenuPopup-title": "Member Settings",
+    "members": "Izili",
+    "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 archived cards.",
+    "no-archived-lists": "No archived lists.",
+    "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": "Ger-tremen",
+    "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 the label",
+    "remove-list": "Remove the 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",
+    "select-color": "Select a color",
+    "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",
+    "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",
+    "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.",
+    "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 archived list",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "What do you want to do?"
+}

+ 68 - 7
i18n/ca.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Accepta",
     "accept": "Accepta",
+    "act-activity-notify": "[Wekan] Notificació d'activitat",
+    "act-addAttachment": "adjuntat __attachment__ a __card__",
+    "act-addComment": "comentat a __card__: __comment__",
+    "act-createBoard": "creat __board__",
+    "act-createCard": "afegit/da __card__ a __list__",
+    "act-createList": "afegit/da __list__ a __board__",
+    "act-addBoardMember": "afegit/da __member__ a __board__",
+    "act-archivedBoard": "__board__ arxivat",
+    "act-archivedCard": "__card__ arxivat/da",
+    "act-archivedList": "__list__ arxivat/da",
+    "act-importBoard": "__board__ importat",
+    "act-importCard": "__card__ importat",
+    "act-importList": "__list__ importat",
+    "act-joinMember": "afegit/da __member__ a __card__",
+    "act-moveCard": "mou __card__ de __oldList__ a __list__",
+    "act-removeBoardMember": "elimina __member__ de __board__",
+    "act-restoredCard": "recupera __card__ a __board__",
+    "act-unjoinMember": "elimina __member__ de __card__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "Accions",
     "actions": "Accions",
     "activities": "Activitats",
     "activities": "Activitats",
     "activity": "Activitat",
     "activity": "Activitat",
@@ -16,10 +36,13 @@
     "activity-removed": "ha eliminat %s de %s",
     "activity-removed": "ha eliminat %s de %s",
     "activity-sent": "ha enviat %s %s",
     "activity-sent": "ha enviat %s %s",
     "activity-unjoined": "desassignat %s",
     "activity-unjoined": "desassignat %s",
+    "activity-checklist-added": "Checklist afegida a %s",
     "add": "Afegeix",
     "add": "Afegeix",
     "add-attachment": "Afegeix arxiu adjunt",
     "add-attachment": "Afegeix arxiu adjunt",
     "add-board": "Afegeix un nou tauler",
     "add-board": "Afegeix un nou tauler",
     "add-card": "Afegeix fitxa",
     "add-card": "Afegeix fitxa",
+    "add-checklist": "Afegeix  una checklist",
+    "add-checklist-item": "Afegeix un ítem",
     "add-cover": "Afegeix coberta",
     "add-cover": "Afegeix coberta",
     "add-label": "Afegeix etiqueta",
     "add-label": "Afegeix etiqueta",
     "add-list": "Afegeix llista",
     "add-list": "Afegeix llista",
@@ -31,6 +54,8 @@
     "all-boards": "Tots els taulers",
     "all-boards": "Tots els taulers",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Aplica",
+    "app-is-offline": "L'aplicació éstà fora de línia. Si refresca la pàgina perdrà les dades.",
     "archive": "Desa",
     "archive": "Desa",
     "archive-all": "Desa Tot",
     "archive-all": "Desa Tot",
     "archive-board": "Arxiva tauler",
     "archive-board": "Arxiva tauler",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "L'esborrat d'un arxiu adjunt és permanent. No es pot desfer.",
     "attachment-delete-pop": "L'esborrat d'un arxiu adjunt és permanent. No es pot desfer.",
     "attachmentDeletePopup-title": "Esborrar adjunt?",
     "attachmentDeletePopup-title": "Esborrar adjunt?",
     "attachments": "Adjunts",
     "attachments": "Adjunts",
+    "auto-watch": "Veure els taulers automàticament després de crear-los",
     "avatar-too-big": "L'avatar és massa gran (70Kb max)",
     "avatar-too-big": "L'avatar és massa gran (70Kb max)",
     "back": "Enrere",
     "back": "Enrere",
     "board-change-color": "Canvia el color",
     "board-change-color": "Canvia el color",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Canvia fons",
     "boardChangeColorPopup-title": "Canvia fons",
     "boardChangeTitlePopup-title": "Canvia el nom tauler",
     "boardChangeTitlePopup-title": "Canvia el nom tauler",
     "boardChangeVisibilityPopup-title": "Canvia visibilitat",
     "boardChangeVisibilityPopup-title": "Canvia visibilitat",
-    "boardImportBoardPopup-title": "Importa tauler des de Trello",
+    "boardChangeWatchPopup-title": "Canvia seguiment",
     "boardMenuPopup-title": "Menú del tauler",
     "boardMenuPopup-title": "Menú del tauler",
     "boards": "Taulers",
     "boards": "Taulers",
     "bucket-example": "Igual que “Bucket List”,  per exemple",
     "bucket-example": "Igual que “Bucket List”,  per exemple",
@@ -66,11 +92,15 @@
     "card-delete-notice": "L'esborrat és permanent. Perdreu totes les accions associades a aquesta fitxa.",
     "card-delete-notice": "L'esborrat és permanent. Perdreu totes les accions associades a aquesta fitxa.",
     "card-delete-pop": "Totes les accions s'eliminaran de l'activitat i no podreu tornar a obrir la fitxa. No es pot desfer.",
     "card-delete-pop": "Totes les accions s'eliminaran de l'activitat i no podreu tornar a obrir la fitxa. No es pot desfer.",
     "card-delete-suggest-archive": "Podeu arxivar una fitxa per extreure-la del tauler i preservar l'activitat.",
     "card-delete-suggest-archive": "Podeu arxivar una fitxa per extreure-la del tauler i preservar l'activitat.",
+    "card-due": "Finalitza",
+    "card-due-on": "Finalitza a",
     "card-edit-attachments": "Edita arxius adjunts",
     "card-edit-attachments": "Edita arxius adjunts",
     "card-edit-labels": "Edita etiquetes",
     "card-edit-labels": "Edita etiquetes",
     "card-edit-members": "Edita membres",
     "card-edit-members": "Edita membres",
     "card-labels-title": "Canvia les etiquetes de la fitxa",
     "card-labels-title": "Canvia les etiquetes de la fitxa",
     "card-members-title": "Afegeix o eliminar membres del tauler des de la fitxa.",
     "card-members-title": "Afegeix o eliminar membres del tauler des de la fitxa.",
+    "card-start": "Comença",
+    "card-start-on": "Comença a",
     "cardAttachmentsPopup-title": "Adjunta des de",
     "cardAttachmentsPopup-title": "Adjunta des de",
     "cardDeletePopup-title": "Esborrar fitxa?",
     "cardDeletePopup-title": "Esborrar fitxa?",
     "cardDetailsActionsPopup-title": "Accions de fitxes",
     "cardDetailsActionsPopup-title": "Accions de fitxes",
@@ -82,10 +112,13 @@
     "change-avatar": "Canvia Avatar",
     "change-avatar": "Canvia Avatar",
     "change-password": "Canvia la clau",
     "change-password": "Canvia la clau",
     "change-permissions": "Canvia permisos",
     "change-permissions": "Canvia permisos",
+    "change-settings": "Canvia configuració",
     "changeAvatarPopup-title": "Canvia Avatar",
     "changeAvatarPopup-title": "Canvia Avatar",
     "changeLanguagePopup-title": "Canvia idioma",
     "changeLanguagePopup-title": "Canvia idioma",
     "changePasswordPopup-title": "Canvia la contrasenya",
     "changePasswordPopup-title": "Canvia la contrasenya",
     "changePermissionsPopup-title": "Canvia permisos",
     "changePermissionsPopup-title": "Canvia permisos",
+    "changeSettingsPopup-title": "Canvia configuració",
+    "checklists": "Checklists",
     "click-to-star": "Fes clic per destacar aquest tauler.",
     "click-to-star": "Fes clic per destacar aquest tauler.",
     "click-to-unstar": "Fes clic per deixar de destacar aquest tauler.",
     "click-to-unstar": "Fes clic per deixar de destacar aquest tauler.",
     "clipboard": "Portaretalls o estirar i amollar",
     "clipboard": "Portaretalls o estirar i amollar",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Crea tauler",
     "createBoardPopup-title": "Crea tauler",
     "createLabelPopup-title": "Crea etiqueta",
     "createLabelPopup-title": "Crea etiqueta",
     "current": "Actual",
     "current": "Actual",
+    "date": "Data",
     "decline": "Declina",
     "decline": "Declina",
     "default-avatar": "Avatar per defecte",
     "default-avatar": "Avatar per defecte",
     "delete": "Esborra",
     "delete": "Esborra",
@@ -122,7 +156,10 @@
     "edit": "Edita",
     "edit": "Edita",
     "edit-avatar": "Canvia Avatar",
     "edit-avatar": "Canvia Avatar",
     "edit-profile": "Edita el teu Perfil",
     "edit-profile": "Edita el teu Perfil",
+    "editCardStartDatePopup-title": "Canvia data d'inici",
+    "editCardDueDatePopup-title": "Canvia data de finalització",
     "editLabelPopup-title": "Canvia etiqueta",
     "editLabelPopup-title": "Canvia etiqueta",
+    "editNotificationPopup-title": "Edita la notificació",
     "editProfilePopup-title": "Edita teu Perfil",
     "editProfilePopup-title": "Edita teu Perfil",
     "email": "Correu electrònic",
     "email": "Correu electrònic",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "L'usuari no existeix",
     "error-user-doesNotExist": "L'usuari no existeix",
     "error-user-notAllowSelf": "Aquesta acció no està permesa",
     "error-user-notAllowSelf": "Aquesta acció no està permesa",
     "error-user-notCreated": "L'usuari no s'ha creat",
     "error-user-notCreated": "L'usuari no s'ha creat",
-    "export-board": "Export board",
+    "error-username-taken": "Aquest usuari ja existeix",
+    "export-board": "Exporta tauler",
     "filter": "Filtre",
     "filter": "Filtre",
     "filter-cards": "Fitxes de filtre",
     "filter-cards": "Fitxes de filtre",
     "filter-clear": "Elimina filtre",
     "filter-clear": "Elimina filtre",
+    "filter-no-label": "Sense etiqueta",
+    "filter-no-member": "Sense membres",
     "filter-on": "Filtra per",
     "filter-on": "Filtra per",
     "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
     "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
     "filter-to-selection": "Filtra selecció",
     "filter-to-selection": "Filtra selecció",
     "fullname": "Nom complet",
     "fullname": "Nom complet",
     "header-logo-title": "Torna a la teva pàgina de taulers",
     "header-logo-title": "Torna a la teva pàgina de taulers",
+    "hide-system-messages": "Oculta missatges del sistema",
     "home": "Inici",
     "home": "Inici",
     "import": "importa",
     "import": "importa",
     "import-board": "Importa des de Trello",
     "import-board": "Importa des de Trello",
+    "import-board-title": "Importa tauler des de Trello",
     "import-board-trello-instruction": "En el teu tauler Trello, ves a 'Menú', 'Més'.' Imprimir i Exportar', 'Exportar JSON', i copia el text resultant.",
     "import-board-trello-instruction": "En el teu tauler Trello, ves a 'Menú', 'Més'.' Imprimir i Exportar', 'Exportar JSON', i copia el text resultant.",
-    "import-card": "Importa una fitxa de Trello",
-    "import-card-trello-instruction": "Ves a la fitxa Trello, selecciona 'Compartir i més...' llavors 'Export JSON' i copia el text resultant",
     "import-json-placeholder": "Aferra codi JSON vàlid aquí",
     "import-json-placeholder": "Aferra codi JSON vàlid aquí",
+    "import-map-members": "Mapeja el membres",
     "import-members-map": "El tauler importat conté membres. Assigna els membres que vulguis importar a usuaris Wekan",
     "import-members-map": "El tauler importat conté membres. Assigna els membres que vulguis importar a usuaris Wekan",
     "import-show-user-mapping": "Revisa l'assignació de membres",
     "import-show-user-mapping": "Revisa l'assignació de membres",
     "import-user-select": "Selecciona l'usuari Wekan que vulguis associar a aquest membre",
     "import-user-select": "Selecciona l'usuari Wekan que vulguis associar a aquest membre",
+    "importMapMembersAddPopup-title": "Selecciona un membre de Wekan",
     "info": "Informacions",
     "info": "Informacions",
     "initials": "Inicials",
     "initials": "Inicials",
+    "invalid-date": "Data invàlida",
     "joined": "s'ha unit",
     "joined": "s'ha unit",
     "just-invited": "Has estat convidat a aquest tauler",
     "just-invited": "Has estat convidat a aquest tauler",
     "keyboard-shortcuts": "Dreceres de teclat",
     "keyboard-shortcuts": "Dreceres de teclat",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "importa una fitxa de Trello",
     "listImportCardPopup-title": "importa una fitxa de Trello",
     "lists": "Llistes",
     "lists": "Llistes",
     "log-out": "Finalitza la  sessió",
     "log-out": "Finalitza la  sessió",
+    "log-in": "Ingresa",
     "loginPopup-title": "Inicia sessió",
     "loginPopup-title": "Inicia sessió",
-    "mapMembersAddPopup-title": "Selecciona membre de Wekan",
-    "mapMembersPopup-title": "Assigna membres",
     "memberMenuPopup-title": "Configura membres",
     "memberMenuPopup-title": "Configura membres",
     "members": "Membres",
     "members": "Membres",
     "menu": "Menú",
     "menu": "Menú",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
     "moveCardPopup-title": "Moure fitxa",
     "moveCardPopup-title": "Moure fitxa",
+    "moveCardToBottom-title": "Mou a la part inferior",
+    "moveCardToTop-title": "Mou a la part superior",
     "moveSelectionPopup-title": "Move selection",
     "moveSelectionPopup-title": "Move selection",
     "multi-selection": "Multi-Selecció",
     "multi-selection": "Multi-Selecció",
     "multi-selection-on": "Multi-Selecció està activada",
     "multi-selection-on": "Multi-Selecció està activada",
+    "muted": "En silenci",
+    "muted-info": "No seràs notificat dels canvis en aquest tauler",
     "my-boards": "Els meus taulers",
     "my-boards": "Els meus taulers",
     "name": "Nom",
     "name": "Nom",
     "no-archived-cards": "No hi ha fitxes arxivades.",
     "no-archived-cards": "No hi ha fitxes arxivades.",
@@ -205,12 +251,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Podeu veure i editar fitxes. No podeu canviar la configuració.",
     "normal-desc": "Podeu veure i editar fitxes. No podeu canviar la configuració.",
     "not-accepted-yet": "La invitació no ha esta acceptada encara",
     "not-accepted-yet": "La invitació no ha esta acceptada encara",
+    "notify-participate": "Rebre actualitzacions per a cada fitxa de la qual n'ets creador o membre",
+    "notify-watch": "Rebre actualitzacions per qualsevol tauler, llista o fitxa en observació",
     "optional": "opcional",
     "optional": "opcional",
     "or": "o",
     "or": "o",
     "page-maybe-private": "Aquesta pàgina és privada. Per veure-la <a href='%s'> entra </a>.",
     "page-maybe-private": "Aquesta pàgina és privada. Per veure-la <a href='%s'> entra </a>.",
     "page-not-found": "Pàgina no trobada.",
     "page-not-found": "Pàgina no trobada.",
     "password": "Contrasenya",
     "password": "Contrasenya",
     "paste-or-dragdrop": "aferra, o estira i amolla la imatge (només imatge)",
     "paste-or-dragdrop": "aferra, o estira i amolla la imatge (només imatge)",
+    "participating": "Participant",
     "preview": "Vista prèvia",
     "preview": "Vista prèvia",
     "previewAttachedImagePopup-title": "Vista prèvia",
     "previewAttachedImagePopup-title": "Vista prèvia",
     "previewClipboardImagePopup-title": "Vista prèvia",
     "previewClipboardImagePopup-title": "Vista prèvia",
@@ -223,6 +272,7 @@
     "remove-cover": "Elimina coberta",
     "remove-cover": "Elimina coberta",
     "remove-from-board": "Elimina del tauler",
     "remove-from-board": "Elimina del tauler",
     "remove-label": "Eliminia etiqueta",
     "remove-label": "Eliminia etiqueta",
+    "remove-list": "Elimina la llista",
     "remove-member": "Elimina membre",
     "remove-member": "Elimina membre",
     "remove-member-from-card": "Elimina de la fitxa",
     "remove-member-from-card": "Elimina de la fitxa",
     "remove-member-pop": "Eliminar  __name__ (__username__) de __boardTitle__ ? El membre serà eliminat de totes les fitxes d'aquest tauler. Ells rebran una notificació.",
     "remove-member-pop": "Eliminar  __name__ (__username__) de __boardTitle__ ? El membre serà eliminat de totes les fitxes d'aquest tauler. Ells rebran una notificació.",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Mostra aquesta lista d'accessos directes",
     "shortcut-show-shortcuts": "Mostra aquesta lista d'accessos directes",
     "shortcut-toggle-filterbar": "Canvia la barra lateral del tauler",
     "shortcut-toggle-filterbar": "Canvia la barra lateral del tauler",
     "shortcut-toggle-sidebar": "Canvia Sidebar del Tauler",
     "shortcut-toggle-sidebar": "Canvia Sidebar del Tauler",
+    "show-cards-minimum-count": "Mostra contador de fitxes si la llista en conté més de",
     "signupPopup-title": "Crea un compte",
     "signupPopup-title": "Crea un compte",
     "star-board-title": "Fes clic per destacar aquest tauler. Es mostrarà a la part superior de la llista de taulers.",
     "star-board-title": "Fes clic per destacar aquest tauler. Es mostrarà a la part superior de la llista de taulers.",
     "starred-boards": "Taulers destacats",
     "starred-boards": "Taulers destacats",
@@ -250,14 +301,24 @@
     "team": "Equip",
     "team": "Equip",
     "this-board": "aquest tauler",
     "this-board": "aquest tauler",
     "this-card": "aquesta fitxa",
     "this-card": "aquesta fitxa",
+    "time": "Hora",
     "title": "Títol",
     "title": "Títol",
+    "tracking": "En seguiment",
+    "tracking-info": "Seràs notificat per cada canvi a aquelles fitxes de les que n'eres creador o membre",
     "unassign-member": "Desassignar membre",
     "unassign-member": "Desassignar membre",
     "unsaved-description": "Tens una descripció sense desar.",
     "unsaved-description": "Tens una descripció sense desar.",
+    "unwatch": "Suprimeix observació",
     "upload": "Puja",
     "upload": "Puja",
     "upload-avatar": "Actualitza avatar",
     "upload-avatar": "Actualitza avatar",
     "uploaded-avatar": "Avatar actualitzat",
     "uploaded-avatar": "Avatar actualitzat",
     "username": "Nom d'Usuari",
     "username": "Nom d'Usuari",
     "view-it": "Vist",
     "view-it": "Vist",
     "warn-list-archived": "Avís: aquesta fitxa està en una llista arxivada",
     "warn-list-archived": "Avís: aquesta fitxa està en una llista arxivada",
+    "watch": "Observa",
+    "watching": "En observació",
+    "watching-info": "Seràs notificat de cada canvi en aquest tauler",
+    "welcome-board": "Tauler de benvinguda",
+    "welcome-list1": "Bàsics",
+    "welcome-list2": "Avançades",
     "what-to-do": "Què vols fer?"
     "what-to-do": "Què vols fer?"
-}
+}

+ 68 - 7
i18n/cs.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Přijmout",
     "accept": "Přijmout",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Akce",
     "actions": "Akce",
     "activities": "Aktivity",
     "activities": "Aktivity",
     "activity": "Aktivita",
     "activity": "Aktivita",
@@ -16,10 +36,13 @@
     "activity-removed": "odstraněn %s z %s",
     "activity-removed": "odstraněn %s z %s",
     "activity-sent": "%s posláno na %s",
     "activity-sent": "%s posláno na %s",
     "activity-unjoined": "odpojen %s",
     "activity-unjoined": "odpojen %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Přidat",
     "add": "Přidat",
     "add-attachment": "Přidat přílohu",
     "add-attachment": "Přidat přílohu",
     "add-board": "Přidat nové tablo",
     "add-board": "Přidat nové tablo",
     "add-card": "Přidat kartu",
     "add-card": "Přidat kartu",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Přidat obal",
     "add-cover": "Přidat obal",
     "add-label": "Přidat štítek",
     "add-label": "Přidat štítek",
     "add-list": "Přidat seznam",
     "add-list": "Přidat seznam",
@@ -31,6 +54,8 @@
     "all-boards": "Všechna tabla",
     "all-boards": "Všechna tabla",
     "and-n-other-card": "A __count__ další karta(y)",
     "and-n-other-card": "A __count__ další karta(y)",
     "and-n-other-card_plural": "A __count__ dalších karet",
     "and-n-other-card_plural": "A __count__ dalších karet",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Archiv",
     "archive": "Archiv",
     "archive-all": "Archivovat vše",
     "archive-all": "Archivovat vše",
     "archive-board": "Archivovat tablo",
     "archive-board": "Archivovat tablo",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "Smazání přílohy je trvalé. Nejde vrátit zpět.",
     "attachment-delete-pop": "Smazání přílohy je trvalé. Nejde vrátit zpět.",
     "attachmentDeletePopup-title": "Smazat přílohu?",
     "attachmentDeletePopup-title": "Smazat přílohu?",
     "attachments": "Přílohy",
     "attachments": "Přílohy",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "Avatar je příliš velký (70Kb max)",
     "avatar-too-big": "Avatar je příliš velký (70Kb max)",
     "back": "Zpět",
     "back": "Zpět",
     "board-change-color": "Změnit barvu",
     "board-change-color": "Změnit barvu",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Změnit pozadí tabla",
     "boardChangeColorPopup-title": "Změnit pozadí tabla",
     "boardChangeTitlePopup-title": "Přejmenovat tablo",
     "boardChangeTitlePopup-title": "Přejmenovat tablo",
     "boardChangeVisibilityPopup-title": "Upravit viditelnost",
     "boardChangeVisibilityPopup-title": "Upravit viditelnost",
-    "boardImportBoardPopup-title": "Importovat tablo ze služby Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Menu tabla",
     "boardMenuPopup-title": "Menu tabla",
     "boards": "Tabla",
     "boards": "Tabla",
     "bucket-example": "Například \"Než mě odvedou\"",
     "bucket-example": "Například \"Než mě odvedou\"",
@@ -66,11 +92,15 @@
     "card-delete-notice": "Smazání je trvalé. Přijdete o všechny akce asociované s touto kartou.",
     "card-delete-notice": "Smazání je trvalé. Přijdete o všechny akce asociované s touto kartou.",
     "card-delete-pop": "Všechny akce budou odstraněny z kanálu aktivity a nebude možné kartu znovu otevřít. Toto nelze vrátit zpět.",
     "card-delete-pop": "Všechny akce budou odstraněny z kanálu aktivity a nebude možné kartu znovu otevřít. Toto nelze vrátit zpět.",
     "card-delete-suggest-archive": "Kartu můžete archivovat a tím ji odstranit z tabla a přitom zachovat aktivity.",
     "card-delete-suggest-archive": "Kartu můžete archivovat a tím ji odstranit z tabla a přitom zachovat aktivity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Upravit přílohy",
     "card-edit-attachments": "Upravit přílohy",
     "card-edit-labels": "Upravit štítky",
     "card-edit-labels": "Upravit štítky",
     "card-edit-members": "Upravit členy",
     "card-edit-members": "Upravit členy",
     "card-labels-title": "Změnit štítky karty.",
     "card-labels-title": "Změnit štítky karty.",
     "card-members-title": "Přidat nebo odstranit členy tohoto tabla z karty.",
     "card-members-title": "Přidat nebo odstranit členy tohoto tabla z karty.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Přiložit formulář",
     "cardAttachmentsPopup-title": "Přiložit formulář",
     "cardDeletePopup-title": "Smazat kartu?",
     "cardDeletePopup-title": "Smazat kartu?",
     "cardDetailsActionsPopup-title": "Akce karty",
     "cardDetailsActionsPopup-title": "Akce karty",
@@ -82,10 +112,13 @@
     "change-avatar": "Změnit avatar",
     "change-avatar": "Změnit avatar",
     "change-password": "Změnit heslo",
     "change-password": "Změnit heslo",
     "change-permissions": "Změnit oprávnění",
     "change-permissions": "Změnit oprávnění",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Změnit avatar",
     "changeAvatarPopup-title": "Změnit avatar",
     "changeLanguagePopup-title": "Změnit jazyk",
     "changeLanguagePopup-title": "Změnit jazyk",
     "changePasswordPopup-title": "Změnit heslo",
     "changePasswordPopup-title": "Změnit heslo",
     "changePermissionsPopup-title": "Změnit oprávnění",
     "changePermissionsPopup-title": "Změnit oprávnění",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.",
     "click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.",
     "click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
     "click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
     "clipboard": "Schránka nebo potáhnout a pustit",
     "clipboard": "Schránka nebo potáhnout a pustit",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Vytvořit tablo",
     "createBoardPopup-title": "Vytvořit tablo",
     "createLabelPopup-title": "Vytvořit štítek",
     "createLabelPopup-title": "Vytvořit štítek",
     "current": "Aktuální",
     "current": "Aktuální",
+    "date": "Date",
     "decline": "Zamítnout",
     "decline": "Zamítnout",
     "default-avatar": "Výchozí avatar",
     "default-avatar": "Výchozí avatar",
     "delete": "Smazat",
     "delete": "Smazat",
@@ -122,7 +156,10 @@
     "edit": "Upravit",
     "edit": "Upravit",
     "edit-avatar": "Změnit avatar",
     "edit-avatar": "Změnit avatar",
     "edit-profile": "Upravit profil",
     "edit-profile": "Upravit profil",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Změnit štítek",
     "editLabelPopup-title": "Změnit štítek",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Upravit profil",
     "editProfilePopup-title": "Upravit profil",
     "email": "Email",
     "email": "Email",
     "email-enrollAccount-subject": "Byl vytvořen účet na __siteName__",
     "email-enrollAccount-subject": "Byl vytvořen účet na __siteName__",
@@ -135,7 +172,7 @@
     "email-resetPassword-subject": "Změň své heslo na __siteName__",
     "email-resetPassword-subject": "Změň své heslo na __siteName__",
     "email-resetPassword-text": "Ahoj __user__,\n\nPro změnu hesla klikni na odkaz níže.\n\n__url__\n\nDěkujeme.",
     "email-resetPassword-text": "Ahoj __user__,\n\nPro změnu hesla klikni na odkaz níže.\n\n__url__\n\nDěkujeme.",
     "email-sent": "Email byl odeslán",
     "email-sent": "Email byl odeslán",
-    "email-verifyEmail-subject": "Ověř svou emailovou adresu na ",
+    "email-verifyEmail-subject": "Ověř svou emailovou adresu na",
     "email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.",
     "email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.",
     "error-board-doesNotExist": "Toto tablo neexistuje",
     "error-board-doesNotExist": "Toto tablo neexistuje",
     "error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla",
     "error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "Tento uživatel neexistuje",
     "error-user-doesNotExist": "Tento uživatel neexistuje",
     "error-user-notAllowSelf": "Tato akce pro sebe sama není povolena",
     "error-user-notAllowSelf": "Tato akce pro sebe sama není povolena",
     "error-user-notCreated": "Tento uživatel není vytvořen",
     "error-user-notCreated": "Tento uživatel není vytvořen",
+    "error-username-taken": "This username is already taken",
     "export-board": "Exportovat tablo",
     "export-board": "Exportovat tablo",
     "filter": "Filtr",
     "filter": "Filtr",
     "filter-cards": "Filtrovat karty",
     "filter-cards": "Filtrovat karty",
     "filter-clear": "Vyčistit filtr",
     "filter-clear": "Vyčistit filtr",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filtr je zapnut",
     "filter-on": "Filtr je zapnut",
     "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.",
     "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.",
     "filter-to-selection": "Filtrovat výběr",
     "filter-to-selection": "Filtrovat výběr",
     "fullname": "Celé jméno",
     "fullname": "Celé jméno",
     "header-logo-title": "Jit zpět na stránku s tably.",
     "header-logo-title": "Jit zpět na stránku s tably.",
+    "hide-system-messages": "Hide system messages",
     "home": "Domů",
     "home": "Domů",
     "import": "Import",
     "import": "Import",
     "import-board": "Importovat ze služby Trello",
     "import-board": "Importovat ze služby Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "Na svém Trello tablu, otevři 'Menu', pak 'More', 'Print and Export', 'Export JSON', a zkopíruj výsledný text",
     "import-board-trello-instruction": "Na svém Trello tablu, otevři 'Menu', pak 'More', 'Print and Export', 'Export JSON', a zkopíruj výsledný text",
-    "import-card": "Importovat kartu ze služby Trello",
-    "import-card-trello-instruction": "Přejdi na Trello kartu, vyber 'Share and more...' a pak 'Export JSON' a zkopíruj výsledný text",
     "import-json-placeholder": "Sem vlož validní JSON data",
     "import-json-placeholder": "Sem vlož validní JSON data",
+    "import-map-members": "Map members",
     "import-members-map": "Toto importované tablo obsahuje několik členů. Namapuj členy z importu na uživatelské účty Wekan.",
     "import-members-map": "Toto importované tablo obsahuje několik členů. Namapuj členy z importu na uživatelské účty Wekan.",
     "import-show-user-mapping": "Zkontrolovat namapování členů",
     "import-show-user-mapping": "Zkontrolovat namapování členů",
     "import-user-select": "Vyber uživatele Wekan, kterého chceš použít pro tohoto člena",
     "import-user-select": "Vyber uživatele Wekan, kterého chceš použít pro tohoto člena",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Informace",
     "info": "Informace",
     "initials": "Iniciály",
     "initials": "Iniciály",
+    "invalid-date": "Invalid date",
     "joined": "spojeno",
     "joined": "spojeno",
     "just-invited": "Právě jsi byl pozván(a) do tohoto tabla",
     "just-invited": "Právě jsi byl pozván(a) do tohoto tabla",
     "keyboard-shortcuts": "Klávesové zkratky",
     "keyboard-shortcuts": "Klávesové zkratky",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Importovat Trello kartu",
     "listImportCardPopup-title": "Importovat Trello kartu",
     "lists": "Seznamy",
     "lists": "Seznamy",
     "log-out": "Odhlásit",
     "log-out": "Odhlásit",
+    "log-in": "Přihlásit",
     "loginPopup-title": "Přihlásit",
     "loginPopup-title": "Přihlásit",
-    "mapMembersAddPopup-title": "Vybrat Wekan uživatele",
-    "mapMembersPopup-title": "Mapovat členy",
     "memberMenuPopup-title": "Nastavení uživatele",
     "memberMenuPopup-title": "Nastavení uživatele",
     "members": "Členové",
     "members": "Členové",
     "menu": "Menu",
     "menu": "Menu",
     "move-selection": "Přesunout výběr",
     "move-selection": "Přesunout výběr",
     "moveCardPopup-title": "Přesunout kartu",
     "moveCardPopup-title": "Přesunout kartu",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Přesunout výběr",
     "moveSelectionPopup-title": "Přesunout výběr",
     "multi-selection": "Multi-výběr",
     "multi-selection": "Multi-výběr",
     "multi-selection-on": "Multi-výběr je zapnut",
     "multi-selection-on": "Multi-výběr je zapnut",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "Moje tabla",
     "my-boards": "Moje tabla",
     "name": "Jméno",
     "name": "Jméno",
     "no-archived-cards": "Žádné archivované karty.",
     "no-archived-cards": "Žádné archivované karty.",
@@ -205,12 +251,15 @@
     "normal": "Normální",
     "normal": "Normální",
     "normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
     "normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
     "not-accepted-yet": "Pozvánka ještě nebyla přijmuta",
     "not-accepted-yet": "Pozvánka ještě nebyla přijmuta",
+    "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": "volitelný",
     "optional": "volitelný",
     "or": "nebo",
     "or": "nebo",
     "page-maybe-private": "Tato stránka může být soukromá. Můžete ji zobrazit po <a href='%s'>přihlášení</a>.",
     "page-maybe-private": "Tato stránka může být soukromá. Můžete ji zobrazit po <a href='%s'>přihlášení</a>.",
     "page-not-found": "Stránka nenalezena.",
     "page-not-found": "Stránka nenalezena.",
     "password": "Heslo",
     "password": "Heslo",
     "paste-or-dragdrop": "vložit, nebo přetáhnout a pustit soubor obrázku (pouze obrázek)",
     "paste-or-dragdrop": "vložit, nebo přetáhnout a pustit soubor obrázku (pouze obrázek)",
+    "participating": "Participating",
     "preview": "Náhled",
     "preview": "Náhled",
     "previewAttachedImagePopup-title": "Náhled",
     "previewAttachedImagePopup-title": "Náhled",
     "previewClipboardImagePopup-title": "Náhled",
     "previewClipboardImagePopup-title": "Náhled",
@@ -223,6 +272,7 @@
     "remove-cover": "Odstranit obal",
     "remove-cover": "Odstranit obal",
     "remove-from-board": "Odstranit z tabla",
     "remove-from-board": "Odstranit z tabla",
     "remove-label": "Odstranit štítek",
     "remove-label": "Odstranit štítek",
+    "remove-list": "Remove the list",
     "remove-member": "Odebrat uživatele",
     "remove-member": "Odebrat uživatele",
     "remove-member-from-card": "Odstranit z karty",
     "remove-member-from-card": "Odstranit z karty",
     "remove-member-pop": "Odstranit __name__ (__username__) z __boardTitle__? Uživatel bude odebrán ze všech karet na tomto tablu. Na tuto skutečnost bude upozorněn.",
     "remove-member-pop": "Odstranit __name__ (__username__) z __boardTitle__? Uživatel bude odebrán ze všech karet na tomto tablu. Na tuto skutečnost bude upozorněn.",
@@ -234,7 +284,7 @@
     "search": "Hledat",
     "search": "Hledat",
     "select-color": "Vybrat barvu",
     "select-color": "Vybrat barvu",
     "shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
     "shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
-    "shortcut-autocomplete-emojies": "Automatický výběr emotikon",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Automatický výběr uživatel",
     "shortcut-autocomplete-members": "Automatický výběr uživatel",
     "shortcut-clear-filters": "Vyčistit všechny filtry",
     "shortcut-clear-filters": "Vyčistit všechny filtry",
     "shortcut-close-dialog": "Zavřít dialog",
     "shortcut-close-dialog": "Zavřít dialog",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
     "shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
     "shortcut-toggle-filterbar": "Přepnout lištu filtrování",
     "shortcut-toggle-filterbar": "Přepnout lištu filtrování",
     "shortcut-toggle-sidebar": "Přepnout lištu tabla",
     "shortcut-toggle-sidebar": "Přepnout lištu tabla",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Vytvořit účet",
     "signupPopup-title": "Vytvořit účet",
     "star-board-title": "Kliknutím přidat tablu hvězdičku. Poté bude zobrazeno navrchu seznamu.",
     "star-board-title": "Kliknutím přidat tablu hvězdičku. Poté bude zobrazeno navrchu seznamu.",
     "starred-boards": "Tabla s hvězdičkou",
     "starred-boards": "Tabla s hvězdičkou",
@@ -250,14 +301,24 @@
     "team": "Tým",
     "team": "Tým",
     "this-board": "toto tablo",
     "this-board": "toto tablo",
     "this-card": "tuto kartu",
     "this-card": "tuto kartu",
+    "time": "Time",
     "title": "Název",
     "title": "Název",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Vyřadit člena",
     "unassign-member": "Vyřadit člena",
     "unsaved-description": "Popis neni uložen.",
     "unsaved-description": "Popis neni uložen.",
+    "unwatch": "Unwatch",
     "upload": "Nahrát",
     "upload": "Nahrát",
     "upload-avatar": "Nahrát avatar",
     "upload-avatar": "Nahrát avatar",
     "uploaded-avatar": "Avatar nahrán",
     "uploaded-avatar": "Avatar nahrán",
     "username": "Uživatelské jméno",
     "username": "Uživatelské jméno",
     "view-it": "Zobrazit",
     "view-it": "Zobrazit",
     "warn-list-archived": "varování: tato karta je v archivovaném seznamu",
     "warn-list-archived": "varování: tato karta je v archivovaném seznamu",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "Co chcete dělat?"
     "what-to-do": "Co chcete dělat?"
 }
 }

+ 163 - 102
i18n/de.i18n.json

@@ -1,5 +1,25 @@
 {
 {
-    "accept": "Accept",
+    "accept": "Akzeptieren",
+    "act-activity-notify": "[Wekan] Aktivitätsbenachrichtigung",
+    "act-addAttachment": "hat __attachment__ an __card__ angehängt",
+    "act-addComment": "hat __card__ kommentiert: __comment__",
+    "act-createBoard": "hat __board__ erstellt",
+    "act-createCard": "hat __card__ zu __list__ hinzugefügt",
+    "act-createList": "hat __list__ zu __board__ hinzugefügt",
+    "act-addBoardMember": "hat __member__ zu __board__ hinzugefügt",
+    "act-archivedBoard": "hat __board__ archiviert",
+    "act-archivedCard": "hat __card__ archiviert",
+    "act-archivedList": "hat __list__ archiviert",
+    "act-importBoard": "hat __board__ importiert",
+    "act-importCard": "hat __card__ importiert",
+    "act-importList": "hat __list__ importiert",
+    "act-joinMember": "hat __member__ zu __card__ hinzugefügt",
+    "act-moveCard": "hat __card__ von __oldList__ nach __list__ verschoben",
+    "act-removeBoardMember": "hat __member__ von __board__ entfernt",
+    "act-restoredCard": "hat __card__ in __board__ wiederhergestellt",
+    "act-unjoinMember": "hat __member__ von __card__ entfernt",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "Aktionen",
     "actions": "Aktionen",
     "activities": "Aktivitäten",
     "activities": "Aktivitäten",
     "activity": "Aktivität",
     "activity": "Aktivität",
@@ -8,45 +28,51 @@
     "activity-attached": "hat %s an %s angehängt",
     "activity-attached": "hat %s an %s angehängt",
     "activity-created": "hat %s erstellt",
     "activity-created": "hat %s erstellt",
     "activity-excluded": "hat %s von %s ausgeschlossen",
     "activity-excluded": "hat %s von %s ausgeschlossen",
-    "activity-imported": "imported %s into %s from %s",
-    "activity-imported-board": "imported %s from %s",
-    "activity-joined": "hat %s beigetreten",
+    "activity-imported": "hat %s in %s von %s importiert",
+    "activity-imported-board": "hat %s von %s importiert",
+    "activity-joined": "ist %s beigetreten",
     "activity-moved": "hat %s von %s nach %s verschoben",
     "activity-moved": "hat %s von %s nach %s verschoben",
-    "activity-on": "on %s",
+    "activity-on": "in %s",
     "activity-removed": "hat %s von %s entfernt",
     "activity-removed": "hat %s von %s entfernt",
     "activity-sent": "hat %s an %s gesendet",
     "activity-sent": "hat %s an %s gesendet",
-    "activity-unjoined": "unjoined %s",
+    "activity-unjoined": "hat %s verlassen",
+    "activity-checklist-added": "Checklist zu %s hinzugefügt",
     "add": "Hinzufügen",
     "add": "Hinzufügen",
     "add-attachment": "Anhang hinzufügen",
     "add-attachment": "Anhang hinzufügen",
     "add-board": "Neues Board erstellen",
     "add-board": "Neues Board erstellen",
-    "add-card": "Karte hinzufügen...",
+    "add-card": "Karte hinzufügen",
+    "add-checklist": "Füge eine Checklist hinzu",
+    "add-checklist-item": "Füge einen Punkt zu Checklist hinzu",
     "add-cover": "Cover hinzufügen",
     "add-cover": "Cover hinzufügen",
     "add-label": "Label hinzufügen",
     "add-label": "Label hinzufügen",
-    "add-list": "Liste hinzufügen...",
-    "add-members": "Mitglieder hinzufügen...",
+    "add-list": "Liste hinzufügen",
+    "add-members": "Mitglieder hinzufügen",
     "added": "Hinzugefügt",
     "added": "Hinzugefügt",
-    "addMemberPopup-title": "Nutzer",
+    "addMemberPopup-title": "Mitglieder",
     "admin": "Admin",
     "admin": "Admin",
     "admin-desc": "Kann Karten anschauen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.",
     "admin-desc": "Kann Karten anschauen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.",
     "all-boards": "Alle Boards",
     "all-boards": "Alle Boards",
     "and-n-other-card": "und eine andere Karte",
     "and-n-other-card": "und eine andere Karte",
     "and-n-other-card_plural": "und __count__ andere Karten",
     "and-n-other-card_plural": "und __count__ andere Karten",
+    "apply": "Übernehmen",
+    "app-is-offline": "Die Anwendung ist derzeit offline. Aktualisieren der Seite führt zu Datenverlust.",
     "archive": "Archiv",
     "archive": "Archiv",
     "archive-all": "Alles archivieren",
     "archive-all": "Alles archivieren",
     "archive-board": "Board archivieren",
     "archive-board": "Board archivieren",
     "archive-card": "Karte archivieren",
     "archive-card": "Karte archivieren",
     "archive-list": "Diese Liste archivieren",
     "archive-list": "Diese Liste archivieren",
     "archive-selection": "Auswahl archivieren",
     "archive-selection": "Auswahl archivieren",
-    "archiveBoardPopup-title": "Archive Board?",
+    "archiveBoardPopup-title": "Board archivieren?",
     "archived-items": "Archivierte Einträge",
     "archived-items": "Archivierte Einträge",
     "archives": "Archive",
     "archives": "Archive",
     "assign-member": "Mitglied zuweisen",
     "assign-member": "Mitglied zuweisen",
     "attached": "angehängt",
     "attached": "angehängt",
     "attachment": "Anhang",
     "attachment": "Anhang",
-    "attachment-delete-pop": "Das Löschen des Anhangs ist endgültig und kann nicht wieder rückgängig gemacht werden.",
+    "attachment-delete-pop": "Das Löschen eines Anhangs kann nicht wieder rückgängig gemacht werden.",
     "attachmentDeletePopup-title": "Anhang löschen?",
     "attachmentDeletePopup-title": "Anhang löschen?",
     "attachments": "Anhänge",
     "attachments": "Anhänge",
-    "avatar-too-big": "Das Profilbild ist zu groß (70Kb max)",
+    "auto-watch": "Neue Boards automatisch beobachten",
+    "avatar-too-big": "Das Profilbild ist zu groß (max. 70Kb)",
     "back": "Zurück",
     "back": "Zurück",
     "board-change-color": "Farbe ändern",
     "board-change-color": "Farbe ändern",
     "board-nb-stars": "%s Sterne",
     "board-nb-stars": "%s Sterne",
@@ -56,21 +82,25 @@
     "boardChangeColorPopup-title": "Boardfarbe ändern",
     "boardChangeColorPopup-title": "Boardfarbe ändern",
     "boardChangeTitlePopup-title": "Board umbenennen",
     "boardChangeTitlePopup-title": "Board umbenennen",
     "boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
     "boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Beobachtung ändern",
     "boardMenuPopup-title": "Boardmenü",
     "boardMenuPopup-title": "Boardmenü",
     "boards": "Boards",
     "boards": "Boards",
-    "bucket-example": "Zum Beispiel \"Bucket List\"",
+    "bucket-example": "z.B. \"Löffelliste\"",
     "cancel": "Abbrechen",
     "cancel": "Abbrechen",
     "card-archived": "Diese Karte wurde archiviert.",
     "card-archived": "Diese Karte wurde archiviert.",
     "card-comments-title": "Diese Karte hat %s Kommentare.",
     "card-comments-title": "Diese Karte hat %s Kommentare.",
-    "card-delete-notice": "Löschen ist irreversiebel. Alle Aktionen, die mit dieser Karte zu tun haben, werden ebenfalls gelöscht.",
-    "card-delete-pop": "Alle Aktionen werden vom Aktivitätsfeed entfernt und du kannst die Karte nicht mehr öffnen. Es gibt keine Möglichkeit diese Aktion rückgängig zu machen.",
-    "card-delete-suggest-archive": "Du kannst die Karte statdessen archivieren, um sie vom Bord zu entfernen und die Aktivitäten zu erhalten.",
-    "card-edit-attachments": "Anhang ändern",
+    "card-delete-notice": "Löschen ist unwiderruflich. Alle Aktionen die dieser Karte zugeordnet sind werden ebenfalls gelöscht.",
+    "card-delete-pop": "Alle Aktionen werden vom Aktivitätsfeed entfernt und die Karte kann nicht mehr geöffnet werden. Das Löschen kann nicht widerrufen werden!",
+    "card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie von dem Board zu entfernen und die Aktivitäten zu behalten.",
+    "card-due": "Ende",
+    "card-due-on": "Ende am",
+    "card-edit-attachments": "Anhänge ändern",
     "card-edit-labels": "Labels ändern",
     "card-edit-labels": "Labels ändern",
-    "card-edit-members": "Nutzer ändern",
-    "card-labels-title": "Label für diese Karte ändern.",
-    "card-members-title": "Füge dem Board Nutzer hinzu oder entferne sie von der Karte.",
+    "card-edit-members": "Mitglieder ändern",
+    "card-labels-title": "Labels für diese Karte ändern.",
+    "card-members-title": "Der Karte Board-Mitglieder hinzufügen oder entfernen.",
+    "card-start": "Start",
+    "card-start-on": "Start am",
     "cardAttachmentsPopup-title": "Anhängen von",
     "cardAttachmentsPopup-title": "Anhängen von",
     "cardDeletePopup-title": "Karte löschen?",
     "cardDeletePopup-title": "Karte löschen?",
     "cardDetailsActionsPopup-title": "Kartenaktionen",
     "cardDetailsActionsPopup-title": "Kartenaktionen",
@@ -78,20 +108,23 @@
     "cardMembersPopup-title": "Mitglieder",
     "cardMembersPopup-title": "Mitglieder",
     "cardMorePopup-title": "Mehr",
     "cardMorePopup-title": "Mehr",
     "cards": "Karten",
     "cards": "Karten",
-    "change": "Change",
+    "change": "Ändern",
     "change-avatar": "Profilbild ändern",
     "change-avatar": "Profilbild ändern",
     "change-password": "Passwort ändern",
     "change-password": "Passwort ändern",
-    "change-permissions": "Ändere Berechtigungen",
+    "change-permissions": "Berechtigungen ändern",
+    "change-settings": "Einstellungen ändern",
     "changeAvatarPopup-title": "Profilbild ändern",
     "changeAvatarPopup-title": "Profilbild ändern",
-    "changeLanguagePopup-title": "Sprache ändern...",
+    "changeLanguagePopup-title": "Sprache ändern",
     "changePasswordPopup-title": "Passwort ändern",
     "changePasswordPopup-title": "Passwort ändern",
-    "changePermissionsPopup-title": "Ändere Berechtigungen",
-    "click-to-star": "Klicke, um dem Board einen Stern zu geben.",
-    "click-to-unstar": "Klicke, um den Stern zu entfernen.",
-    "clipboard": "Clipboard or drag & drop",
+    "changePermissionsPopup-title": "Berechtigungen ändern",
+    "changeSettingsPopup-title": "Einstellungen ändern",
+    "checklists": "Checklists",
+    "click-to-star": "Klicken um dem Board einen Stern zu geben.",
+    "click-to-unstar": "Klicken um den Stern von dem Board zu entfernen.",
+    "clipboard": "Zwischenablage oder Drag & Drop",
     "close": "Schließen",
     "close": "Schließen",
     "close-board": "Board schließen",
     "close-board": "Board schließen",
-    "close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
+    "close-board-pop": "Sie können das Board wiederherstellen, indem Sie den \"Archiv\"-Button in der Kopfzeile der Startseite anklicken.",
     "color-black": "schwarz",
     "color-black": "schwarz",
     "color-blue": "blau",
     "color-blue": "blau",
     "color-green": "grün",
     "color-green": "grün",
@@ -106,10 +139,11 @@
     "comment-placeholder": "Kommentar schreiben",
     "comment-placeholder": "Kommentar schreiben",
     "computer": "Computer",
     "computer": "Computer",
     "create": "Erstellen",
     "create": "Erstellen",
-    "createBoardPopup-title": "Erstelle ein Board",
+    "createBoardPopup-title": "Board erstellen",
     "createLabelPopup-title": "Label erstellen",
     "createLabelPopup-title": "Label erstellen",
     "current": "aktuell",
     "current": "aktuell",
-    "decline": "Decline",
+    "date": "Datum",
+    "decline": "Ablehnen",
     "default-avatar": "Standard Profilbild",
     "default-avatar": "Standard Profilbild",
     "delete": "Löschen",
     "delete": "Löschen",
     "deleteLabelPopup-title": "Label löschen?",
     "deleteLabelPopup-title": "Label löschen?",
@@ -117,86 +151,98 @@
     "disambiguateMultiLabelPopup-title": "Labels vereinheitlichen",
     "disambiguateMultiLabelPopup-title": "Labels vereinheitlichen",
     "disambiguateMultiMemberPopup-title": "Mitglieder vereinheitlichen",
     "disambiguateMultiMemberPopup-title": "Mitglieder vereinheitlichen",
     "discard": "Verwerfen",
     "discard": "Verwerfen",
-    "done": "Done",
-    "download": "Download",
+    "done": "Erledigt",
+    "download": "Herunterladen",
     "edit": "Bearbeiten",
     "edit": "Bearbeiten",
     "edit-avatar": "Profilbild ändern",
     "edit-avatar": "Profilbild ändern",
     "edit-profile": "Profil ändern",
     "edit-profile": "Profil ändern",
-    "editLabelPopup-title": "Ändere Label",
+    "editCardStartDatePopup-title": "Startdatum ändern",
+    "editCardDueDatePopup-title": "Enddatum ändern",
+    "editLabelPopup-title": "Label ändern",
+    "editNotificationPopup-title": "Benachrichtigung ändern",
     "editProfilePopup-title": "Profil ändern",
     "editProfilePopup-title": "Profil ändern",
-    "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-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.",
-    "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": "This action on self is not allowed",
-    "error-user-notCreated": "This user is not created",
-    "export-board": "Export board",
+    "email": "E-Mail",
+    "email-enrollAccount-subject": "Ihr Benutzerkonto auf __siteName__ wurde erstellt",
+    "email-enrollAccount-text": "Hallo __user__,\n\num den Dienst nutzen zu können, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
+    "email-fail": "Senden der E-Mail fehlgeschlagen",
+    "email-invalid": "Ungültige E-Mail-Adresse",
+    "email-invite": "via E-Mail einladen",
+    "email-invite-subject": "__inviter__ hat Ihnen eine Einladung geschickt",
+    "email-invite-text": "Hallo __user__,\n\n__inviter__ hat Sie zu dem Board \"__board__\" eingeladen.\n\nBitte klicken Sie auf folgenden Link:\n\n__url__\n\nDanke.",
+    "email-resetPassword-subject": "Setzten Sie ihr Passwort auf __siteName__ zurück",
+    "email-resetPassword-text": "Hallo __user__,\n\num ihr Passwort zurückzusetzen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
+    "email-sent": "E-Mail gesendet",
+    "email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__",
+    "email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
+    "error-board-doesNotExist": "Dieses Board existiert nicht",
+    "error-board-notAdmin": "Um das zu tun, müssen Sie der Administrator dieses Boards sein",
+    "error-board-notAMember": "Um das zu tun, müssen Sie ein Mitglied dieses Boards sein",
+    "error-json-malformed": "Ihre Eingabe ist kein gültiges JSON",
+    "error-json-schema": "Ihre JSON-Daten enthalten nicht die gewünschten Informationen im richtigen Format",
+    "error-list-doesNotExist": "Diese Liste existiert nicht",
+    "error-user-doesNotExist": "Dieser Nutzer existiert nicht",
+    "error-user-notAllowSelf": "Diese Aktion auf self ist nicht erlaubt",
+    "error-user-notCreated": "Dieser Nutzer ist angelegt",
+    "error-username-taken": "Dieser Benutzername ist bereits vergeben",
+    "export-board": "Board exportieren",
     "filter": "Filter",
     "filter": "Filter",
     "filter-cards": "Karten filtern",
     "filter-cards": "Karten filtern",
     "filter-clear": "Filter entfernen",
     "filter-clear": "Filter entfernen",
+    "filter-no-label": "Kein Label",
+    "filter-no-member": "Kein Mitglied",
     "filter-on": "Filter ist aktiv",
     "filter-on": "Filter ist aktiv",
-    "filter-on-desc": "Du filterst die Karten auf diesem Board. Klicke hier, um die Filter zu bearbeiten.",
+    "filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken um die Filter zu bearbeiten.",
     "filter-to-selection": "Ergebnisse auswählen",
     "filter-to-selection": "Ergebnisse auswählen",
-    "fullname": "Voller Name",
+    "fullname": "Vollständiger Name",
     "header-logo-title": "Zurück zur Board Seite.",
     "header-logo-title": "Zurück zur Board Seite.",
+    "hide-system-messages": "Systemmeldungen ausblenden",
     "home": "Home",
     "home": "Home",
     "import": "Importieren",
     "import": "Importieren",
-    "import-board": "import from Trello",
-    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
-    "import-json-placeholder": "Paste your valid JSON data here",
-    "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",
+    "import-board": "von Trello importieren",
+    "import-board-title": "Board von Trello importieren",
+    "import-board-trello-instruction": "Gehen Sie in ihrem Trello-Board auf 'Menü', dann 'Mehr', 'Drucken und Exportieren', 'JSON-Export' und kopieren Sie den dort angezeigten Text",
+    "import-json-placeholder": "Fügen Sie die korrekten JSON-Daten hier ein",
+    "import-map-members": "Mitglieder zuordnen",
+    "import-members-map": "Das importierte Board hat einige Mitglieder. Bitte ordnen Sie die Mitglieder, die importiert werden sollen, Wekan-Nutzern zu",
+    "import-show-user-mapping": "Mitgliederzuordnung überprüfen",
+    "import-user-select": "Wählen Sie den Wekan-Nutzer aus, der dieses Mitglied sein soll",
+    "importMapMembersAddPopup-title": "Wekan-Nutzer auswählen",
     "info": "Informationen",
     "info": "Informationen",
     "initials": "Initialien",
     "initials": "Initialien",
+    "invalid-date": "Ungültiges Datum",
     "joined": "beigetreten",
     "joined": "beigetreten",
-    "just-invited": "You are just invited to this board",
+    "just-invited": "Sie wurden soeben zu diesem Board eingeladen",
     "keyboard-shortcuts": "Tastaturkürzel",
     "keyboard-shortcuts": "Tastaturkürzel",
-    "label-create": "Neues Label erstellen.",
+    "label-create": "Neues Label erstellen",
     "label-default": "%s Label (Standard)",
     "label-default": "%s Label (Standard)",
-    "label-delete-pop": "Diese Aktion ist irreversiebel. Das Label wird von allen Karten entfernt und seine Historie gelöscht.",
+    "label-delete-pop": "Diese Aktion ist unwiderruflich. Das Label wird von allen Karten entfernt und seine Historie wird gelöscht.",
     "labels": "Labels",
     "labels": "Labels",
     "language": "Sprache",
     "language": "Sprache",
-    "last-admin-desc": "Du kannst die Rolle nicht ändern, es muss mindestens einen Admin geben.",
+    "last-admin-desc": "Sie können keine Rollen ändern, weil es mindestens ein Administrator geben muss.",
     "leave-board": "Board verlassen",
     "leave-board": "Board verlassen",
     "link-card": "Link zu dieser Karte",
     "link-card": "Link zu dieser Karte",
     "list-archive-cards": "Alle Karten in dieser Liste archivieren",
     "list-archive-cards": "Alle Karten in dieser Liste archivieren",
-    "list-archive-cards-pop": "Dies entfernt alle Karten in der Liste vom Board. Um archivierte Karten anzusehen und zurück zum Board zu bringen, klicke \"Menü\" > \"Archivierte Items\".",
+    "list-archive-cards-pop": "Dieses entfernt alle Karten von dieser Liste des Boards. Um archivierte Karten anzuzeigen und wiederherzustellen, klicken Sie auf \"Menü\" > \"Archivierte Einträge\".",
     "list-move-cards": "Alle Karten in dieser Liste verschieben",
     "list-move-cards": "Alle Karten in dieser Liste verschieben",
     "list-select-cards": "Alle Karten in dieser Liste auswählen",
     "list-select-cards": "Alle Karten in dieser Liste auswählen",
     "listActionPopup-title": "Listenaktionen",
     "listActionPopup-title": "Listenaktionen",
-    "listImportCardPopup-title": "Import a Trello card",
+    "listImportCardPopup-title": "Eine Trello-Karte importieren",
     "lists": "Listen",
     "lists": "Listen",
     "log-out": "Ausloggen",
     "log-out": "Ausloggen",
+    "log-in": "Einloggen",
     "loginPopup-title": "Einloggen",
     "loginPopup-title": "Einloggen",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
     "memberMenuPopup-title": "Nutzereinstellungen",
     "memberMenuPopup-title": "Nutzereinstellungen",
-    "members": "Mitglied",
+    "members": "Mitglieder",
     "menu": "Menü",
     "menu": "Menü",
-    "move-selection": "Move selection",
+    "move-selection": "Auswahl verschieben",
     "moveCardPopup-title": "Karte verschieben",
     "moveCardPopup-title": "Karte verschieben",
-    "moveSelectionPopup-title": "Move selection",
+    "moveCardToBottom-title": "Zum Ende verschieben",
+    "moveCardToTop-title": "Zum Anfang verschieben",
+    "moveSelectionPopup-title": "Auswahl verschieben",
     "multi-selection": "Mehrfachauswahl",
     "multi-selection": "Mehrfachauswahl",
-    "multi-selection-on": "Multi-Selection is on",
+    "multi-selection-on": "Mehrfachauswahl ist aktiv",
+    "muted": "Stumm",
+    "muted-info": "Sie werden über keine Änderung in diesem Board benachrichtigt",
     "my-boards": "Meine Boards",
     "my-boards": "Meine Boards",
     "name": "Name",
     "name": "Name",
     "no-archived-cards": "Keine archivierten Karten.",
     "no-archived-cards": "Keine archivierten Karten.",
@@ -204,60 +250,75 @@
     "no-results": "Keine Ergebnisse",
     "no-results": "Keine Ergebnisse",
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Kann Karten anschauen und bearbeiten, aber keine Einstellungen ändern.",
     "normal-desc": "Kann Karten anschauen und bearbeiten, aber keine Einstellungen ändern.",
-    "not-accepted-yet": "Invitation not accepted yet",
+    "not-accepted-yet": "Die Einladung wurde noch nicht angenommen",
+    "notify-participate": "Benachrichtigungen über alle Karten erhalten, bei denen Sie als Ersteller oder Mitglied teilnehmen",
+    "notify-watch": "Benachrichtigungen über alle Boards, Listen oder Karten erhalten, die Sie beobachten",
     "optional": "optional",
     "optional": "optional",
     "or": "oder",
     "or": "oder",
-    "page-maybe-private": "Diese Seite könnte privat sein.  Vielleicht kannst du sie sehen, wenn du dich <a href='%s'>einloggst</a>.",
+    "page-maybe-private": "Diese Seite könnte privat sein. Vielleicht können Sie sie sehen, wenn Sie sich <a href='%s'>einloggen</a>.",
     "page-not-found": "Seite nicht gefunden.",
     "page-not-found": "Seite nicht gefunden.",
     "password": "Passwort",
     "password": "Passwort",
-    "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
-    "preview": "Preview",
-    "previewAttachedImagePopup-title": "Preview",
-    "previewClipboardImagePopup-title": "Preview",
+    "paste-or-dragdrop": "Einfügen oder Datei mit Drag & Drop ablegen (nur Bilder)",
+    "participating": "Teilnehmen",
+    "preview": "Vorschau",
+    "previewAttachedImagePopup-title": "Vorschau",
+    "previewClipboardImagePopup-title": "Vorschau",
     "private": "Privat",
     "private": "Privat",
     "private-desc": "Dieses Board ist privat. Nur Nutzer, die zu dem Board gehören, können es anschauen und bearbeiten.",
     "private-desc": "Dieses Board ist privat. Nur Nutzer, die zu dem Board gehören, können es anschauen und bearbeiten.",
     "profile": "Profil",
     "profile": "Profil",
     "public": "Öffentlich",
     "public": "Öffentlich",
     "public-desc": "Dieses Board ist öffentlich. Es ist für jeden, der den Link kennt, sichtbar und taucht in Suchmaschinen wie Google auf. Nur Nutzer, die zum Board hinzugefügt wurden, können es bearbeiten.",
     "public-desc": "Dieses Board ist öffentlich. Es ist für jeden, der den Link kennt, sichtbar und taucht in Suchmaschinen wie Google auf. Nur Nutzer, die zum Board hinzugefügt wurden, können es bearbeiten.",
-    "quick-access-description": "Markiere ein Board mit einem Stern um eine Verknüpfung in diese Leise hinzuzufügen.",
+    "quick-access-description": "Markieren Sie ein Board mit einem Stern um eine Verknüpfung in diese Leise hinzuzufügen.",
     "remove-cover": "Cover entfernen",
     "remove-cover": "Cover entfernen",
     "remove-from-board": "Von Board entfernen",
     "remove-from-board": "Von Board entfernen",
     "remove-label": "Label entfernen",
     "remove-label": "Label entfernen",
+    "remove-list": "Liste entfernen",
     "remove-member": "Nutzer entfernen",
     "remove-member": "Nutzer entfernen",
     "remove-member-from-card": "Von Karte entfernen",
     "remove-member-from-card": "Von Karte entfernen",
-    "remove-member-pop": "Entferne __name__ (__username__) von __boardTitle__? Nutzer wird von allen Karten auf diesem Board entfernt werden. Er wird eine Benachrichtigung erhalten.",
-    "removeMemberPopup-title": "Nutzer entfernen?",
+    "remove-member-pop": "__name__ (__username__) von __boardTitle__ entfernen? Das Mitglied wird von allen Karten auf diesem Board entfernt. Er erhält eine Benachrichtigung.",
+    "removeMemberPopup-title": "Mitglied entfernen?",
     "rename": "Umbenennen",
     "rename": "Umbenennen",
     "rename-board": "Board umbenennen",
     "rename-board": "Board umbenennen",
     "restore": "Wiederherstellen",
     "restore": "Wiederherstellen",
     "save": "Speichern",
     "save": "Speichern",
     "search": "Suchen",
     "search": "Suchen",
-    "select-color": "Wähle eine Farbe aus",
-    "shortcut-assign-self": "Assign yourself to current card",
-    "shortcut-autocomplete-emoji": "Autovervollständige Emojis",
-    "shortcut-autocomplete-members": "Autovervollständige Nutzer",
+    "select-color": "Farbe auswählen",
+    "shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
+    "shortcut-autocomplete-emoji": "Emojis vervollständigen",
+    "shortcut-autocomplete-members": "Mitglieder vervollständigen",
     "shortcut-clear-filters": "Alle Filter entfernen",
     "shortcut-clear-filters": "Alle Filter entfernen",
     "shortcut-close-dialog": "Dialog schließen",
     "shortcut-close-dialog": "Dialog schließen",
     "shortcut-filter-my-cards": "Meine Karten filtern",
     "shortcut-filter-my-cards": "Meine Karten filtern",
     "shortcut-show-shortcuts": "Liste der Tastaturkürzel anzeigen",
     "shortcut-show-shortcuts": "Liste der Tastaturkürzel anzeigen",
-    "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
+    "shortcut-toggle-filterbar": "Filter-Seitenleiste ein-/ausblenden",
     "shortcut-toggle-sidebar": "Seitenleiste ein-/ausblenden",
     "shortcut-toggle-sidebar": "Seitenleiste ein-/ausblenden",
-    "signupPopup-title": "Account erstellen",
-    "star-board-title": "Klicke, um das Board mit einem Stern zu kennzeichnen. Es erscheint dann oben in deiner Boardliste.",
-    "starred-boards": "Gekennzeichnete Boards",
-    "starred-boards-description": "Gekennzeichnete Boards erscheinen oben in deiner Boardliste.",
+    "show-cards-minimum-count": "Zeigt die Kartenanzahl an, wenn die Liste mehr enthält als",
+    "signupPopup-title": "Benutzerkonto erstellen",
+    "star-board-title": "Klicken um das Board mit einem Stern zu kennzeichnen. Es erscheint dann oben in ihrer Boardliste.",
+    "starred-boards": "Markierte Boards",
+    "starred-boards-description": "Markierte Boards erscheinen oben in ihrer Boardliste.",
     "subscribe": "Abonnieren",
     "subscribe": "Abonnieren",
     "team": "Team",
     "team": "Team",
     "this-board": "dieses Board",
     "this-board": "dieses Board",
     "this-card": "diese Karte",
     "this-card": "diese Karte",
+    "time": "Zeit",
     "title": "Titel",
     "title": "Titel",
-    "unassign-member": "Mitglied abziehen",
-    "unsaved-description": "Es gibt eine ungespeicherte Beschreibung.",
+    "tracking": "Folgen",
+    "tracking-info": "Sie werden über alle Änderungen an Karten, die Sie als Ersteller oder Mitglied beteiligt sind, benachrichtigt.",
+    "unassign-member": "Mitglied entfernen",
+    "unsaved-description": "Sie haben eine nicht gespeicherte Änderung.",
+    "unwatch": "Beobachtung entfernen",
     "upload": "Upload",
     "upload": "Upload",
     "upload-avatar": "Profilbild hochladen",
     "upload-avatar": "Profilbild hochladen",
     "uploaded-avatar": "Profilbild hochgeladen",
     "uploaded-avatar": "Profilbild hochgeladen",
-    "username": "Nutzername",
+    "username": "Benutzername",
     "view-it": "Ansehen",
     "view-it": "Ansehen",
     "warn-list-archived": "Warnung: Diese Karte befindet sich in einer archivierten Liste",
     "warn-list-archived": "Warnung: Diese Karte befindet sich in einer archivierten Liste",
+    "watch": "Beobachten",
+    "watching": "Beobatchen",
+    "watching-info": "Sie werden über alle Änderungen in diesem Board informiert",
+    "welcome-board": "Willkommen-Board",
+    "welcome-list1": "Grundlagen",
+    "welcome-list2": "Fortgeschritten",
     "what-to-do": "Was willst du tun?"
     "what-to-do": "Was willst du tun?"
-}
+}

+ 28 - 6
i18n/en.i18n.json

@@ -36,10 +36,13 @@
     "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": "unjoined %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Add",
     "add": "Add",
     "add-attachment": "Add an attachment",
     "add-attachment": "Add an attachment",
     "add-board": "Add a new board",
     "add-board": "Add a new board",
     "add-card": "Add a card",
     "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Add Cover",
     "add-cover": "Add Cover",
     "add-label": "Add the label",
     "add-label": "Add the label",
     "add-list": "Add a list",
     "add-list": "Add a list",
@@ -51,6 +54,7 @@
     "all-boards": "All boards",
     "all-boards": "All boards",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
     "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Archive",
     "archive": "Archive",
     "archive-all": "Archive All",
     "archive-all": "Archive All",
@@ -88,11 +92,15 @@
     "card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
     "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-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 archive a card to remove it from the board and preserve the activity.",
     "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Edit attachments",
     "card-edit-attachments": "Edit attachments",
     "card-edit-labels": "Edit labels",
     "card-edit-labels": "Edit labels",
     "card-edit-members": "Edit members",
     "card-edit-members": "Edit members",
     "card-labels-title": "Change the labels for the card.",
     "card-labels-title": "Change the labels for the card.",
     "card-members-title": "Add or remove members of the board from 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",
     "cardAttachmentsPopup-title": "Attach From",
     "cardDeletePopup-title": "Delete Card?",
     "cardDeletePopup-title": "Delete Card?",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
@@ -104,13 +112,16 @@
     "change-avatar": "Change Avatar",
     "change-avatar": "Change Avatar",
     "change-password": "Change Password",
     "change-password": "Change Password",
     "change-permissions": "Change permissions",
     "change-permissions": "Change permissions",
+    "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": "Change Password",
     "changePermissionsPopup-title": "Change Permissions",
     "changePermissionsPopup-title": "Change Permissions",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Click to star this board.",
     "click-to-star": "Click to star this board.",
     "click-to-unstar": "Click to unstar this board.",
     "click-to-unstar": "Click to unstar this board.",
-    "clipboard" : "Clipboard or drag & drop",
+    "clipboard": "Clipboard or drag & drop",
     "close": "Close",
     "close": "Close",
     "close-board": "Close Board",
     "close-board": "Close Board",
     "close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
     "close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
@@ -131,6 +142,7 @@
     "createBoardPopup-title": "Create Board",
     "createBoardPopup-title": "Create Board",
     "createLabelPopup-title": "Create Label",
     "createLabelPopup-title": "Create Label",
     "current": "current",
     "current": "current",
+    "date": "Date",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "Default avatar",
     "default-avatar": "Default avatar",
     "delete": "Delete",
     "delete": "Delete",
@@ -144,22 +156,24 @@
     "edit": "Edit",
     "edit": "Edit",
     "edit-avatar": "Change Avatar",
     "edit-avatar": "Change Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "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",
     "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.\n",
+    "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",
     "email-invalid": "Invalid email",
     "email-invalid": "Invalid email",
     "email-invite": "Invite via Email",
     "email-invite": "Invite via Email",
     "email-invite-subject": "__inviter__ sent you an invitation",
     "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.\n",
+    "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-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.\n",
+    "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-sent": "Email sent",
     "email-verifyEmail-subject": "Verify your email address on __siteName__",
     "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.\n",
+    "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
     "error-board-doesNotExist": "This board does not exist",
     "error-board-doesNotExist": "This board does not exist",
     "error-board-notAdmin": "You need to be admin of this board to do that",
     "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-board-notAMember": "You need to be a member of this board to do that",
@@ -169,15 +183,19 @@
     "error-user-doesNotExist": "This user does not exist",
     "error-user-doesNotExist": "This user does not exist",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notCreated": "This user is not created",
     "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "Filter",
     "filter": "Filter",
     "filter-cards": "Filter Cards",
     "filter-cards": "Filter Cards",
     "filter-clear": "Clear filter",
     "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filter is on",
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "Full Name",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "header-logo-title": "Go back to your boards page.",
+    "hide-system-messages": "Hide system messages",
     "home": "Home",
     "home": "Home",
     "import": "Import",
     "import": "Import",
     "import-board": "import from Trello",
     "import-board": "import from Trello",
@@ -191,6 +209,7 @@
     "importMapMembersAddPopup-title": "Select Wekan member",
     "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Infos",
     "info": "Infos",
     "initials": "Initials",
     "initials": "Initials",
+    "invalid-date": "Invalid date",
     "joined": "joined",
     "joined": "joined",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
     "keyboard-shortcuts": "Keyboard shortcuts",
     "keyboard-shortcuts": "Keyboard shortcuts",
@@ -253,6 +272,7 @@
     "remove-cover": "Remove Cover",
     "remove-cover": "Remove Cover",
     "remove-from-board": "Remove from Board",
     "remove-from-board": "Remove from Board",
     "remove-label": "Remove the label",
     "remove-label": "Remove the label",
+    "remove-list": "Remove the list",
     "remove-member": "Remove Member",
     "remove-member": "Remove Member",
     "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.",
@@ -272,6 +292,7 @@
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Create an Account",
     "signupPopup-title": "Create an Account",
     "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",
@@ -280,6 +301,7 @@
     "team": "Team",
     "team": "Team",
     "this-board": "this board",
     "this-board": "this board",
     "this-card": "this card",
     "this-card": "this card",
+    "time": "Time",
     "title": "Title",
     "title": "Title",
     "tracking": "Tracking",
     "tracking": "Tracking",
     "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
@@ -299,4 +321,4 @@
     "welcome-list1": "Basics",
     "welcome-list1": "Basics",
     "welcome-list2": "Advanced",
     "welcome-list2": "Advanced",
     "what-to-do": "What do you want to do?"
     "what-to-do": "What do you want to do?"
-}
+}

+ 65 - 8
i18n/es-ES.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Aceptar",
     "accept": "Aceptar",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Acciones",
     "actions": "Acciones",
     "activities": "Actividad",
     "activities": "Actividad",
     "activity": "Actividad",
     "activity": "Actividad",
@@ -31,6 +51,8 @@
     "all-boards": "Todos los tableros",
     "all-boards": "Todos los tableros",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Guardar",
     "archive": "Guardar",
     "archive-all": "Guardar Todo",
     "archive-all": "Guardar Todo",
     "archive-board": "Archivar tablero",
     "archive-board": "Archivar tablero",
@@ -46,6 +68,7 @@
     "attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
     "attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
     "attachmentDeletePopup-title": "¿Borrar adjunto?",
     "attachmentDeletePopup-title": "¿Borrar adjunto?",
     "attachments": "Adjuntos",
     "attachments": "Adjuntos",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "El avatar es demasiado grande (70Kb max)",
     "avatar-too-big": "El avatar es demasiado grande (70Kb max)",
     "back": "Atrás",
     "back": "Atrás",
     "board-change-color": "Cambiar color",
     "board-change-color": "Cambiar color",
@@ -56,7 +79,7 @@
     "boardChangeColorPopup-title": "Cambiar fondo",
     "boardChangeColorPopup-title": "Cambiar fondo",
     "boardChangeTitlePopup-title": "Renombrar tablero",
     "boardChangeTitlePopup-title": "Renombrar tablero",
     "boardChangeVisibilityPopup-title": "Cambiar visibilidad",
     "boardChangeVisibilityPopup-title": "Cambiar visibilidad",
-    "boardImportBoardPopup-title": "Importar tablero desde Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Menú del tablero",
     "boardMenuPopup-title": "Menú del tablero",
     "boards": "Tableros",
     "boards": "Tableros",
     "bucket-example": "Al igual que “Bucket List”, por ejemplo",
     "bucket-example": "Al igual que “Bucket List”, por ejemplo",
@@ -66,11 +89,15 @@
     "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
     "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
     "card-delete-pop": "Todas las acciones se eliminarán de la alimentación de la actividad y no podrán volver a abrir la tarjeta. No se puede deshacer.",
     "card-delete-pop": "Todas las acciones se eliminarán de la alimentación de la actividad y no podrán volver a abrir la tarjeta. No se puede deshacer.",
     "card-delete-suggest-archive": "Puedes archivar una tarjeta para quitarla del tablero y conservar la actividad.",
     "card-delete-suggest-archive": "Puedes archivar una tarjeta para quitarla del tablero y conservar la actividad.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Editar archivos adjuntos",
     "card-edit-attachments": "Editar archivos adjuntos",
     "card-edit-labels": "Editar etiquetas",
     "card-edit-labels": "Editar etiquetas",
     "card-edit-members": "Editar miembros",
     "card-edit-members": "Editar miembros",
     "card-labels-title": "Cambia las etiquetas de la tarjeta",
     "card-labels-title": "Cambia las etiquetas de la tarjeta",
     "card-members-title": "Añadir o eliminar miembros del tablero desde la tarjeta.",
     "card-members-title": "Añadir o eliminar miembros del tablero desde la tarjeta.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Adjuntar desde",
     "cardAttachmentsPopup-title": "Adjuntar desde",
     "cardDeletePopup-title": "¿Borrar tarjeta?",
     "cardDeletePopup-title": "¿Borrar tarjeta?",
     "cardDetailsActionsPopup-title": "Acciones de tarjeta",
     "cardDetailsActionsPopup-title": "Acciones de tarjeta",
@@ -82,13 +109,15 @@
     "change-avatar": "Cambiar Avatar",
     "change-avatar": "Cambiar Avatar",
     "change-password": "Cambiar la contraseña",
     "change-password": "Cambiar la contraseña",
     "change-permissions": "Cambiar permisos",
     "change-permissions": "Cambiar permisos",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Cambiar Avatar",
     "changeAvatarPopup-title": "Cambiar Avatar",
     "changeLanguagePopup-title": "Cambiar idioma",
     "changeLanguagePopup-title": "Cambiar idioma",
     "changePasswordPopup-title": "Cambiar la contraseña",
     "changePasswordPopup-title": "Cambiar la contraseña",
     "changePermissionsPopup-title": "Cambiar permisos",
     "changePermissionsPopup-title": "Cambiar permisos",
+    "changeSettingsPopup-title": "Change Settings",
     "click-to-star": "Haz clic para destacar este tablero.",
     "click-to-star": "Haz clic para destacar este tablero.",
     "click-to-unstar": "Haz clic para dejar de destacar este tablero.",
     "click-to-unstar": "Haz clic para dejar de destacar este tablero.",
-    "clipboard": "Portapapeles o drag & drop",
+    "clipboard" : "Portapapeles o drag & drop",
     "close": "Cerrar",
     "close": "Cerrar",
     "close-board": "Cerrar tablero",
     "close-board": "Cerrar tablero",
     "close-board-pop": "Podrás restaurar el tablero seleccionando el botón “Archivados” desde la cabecera de la página de inicio.",
     "close-board-pop": "Podrás restaurar el tablero seleccionando el botón “Archivados” desde la cabecera de la página de inicio.",
@@ -109,6 +138,7 @@
     "createBoardPopup-title": "Crear tablero",
     "createBoardPopup-title": "Crear tablero",
     "createLabelPopup-title": "Crear etiqueta",
     "createLabelPopup-title": "Crear etiqueta",
     "current": "actual",
     "current": "actual",
+    "date": "Date",
     "decline": "Denegar",
     "decline": "Denegar",
     "default-avatar": "Avatar por defecto",
     "default-avatar": "Avatar por defecto",
     "delete": "Borrar",
     "delete": "Borrar",
@@ -122,7 +152,10 @@
     "edit": "Editar",
     "edit": "Editar",
     "edit-avatar": "Cambiar Avatar",
     "edit-avatar": "Cambiar Avatar",
     "edit-profile": "Edita tu Perfil",
     "edit-profile": "Edita tu Perfil",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Cambiar etiqueta",
     "editLabelPopup-title": "Cambiar etiqueta",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Editar Perfil",
     "editProfilePopup-title": "Editar Perfil",
     "email": "Correo electrónico",
     "email": "Correo electrónico",
     "email-enrollAccount-subject": "Se ha creado un cuenta para ti en __siteName__",
     "email-enrollAccount-subject": "Se ha creado un cuenta para ti en __siteName__",
@@ -146,27 +179,33 @@
     "error-user-doesNotExist": "Este usuario no existe",
     "error-user-doesNotExist": "Este usuario no existe",
     "error-user-notAllowSelf": "Esa acción en si misma no está permitida",
     "error-user-notAllowSelf": "Esa acción en si misma no está permitida",
     "error-user-notCreated": "Este usuario no se ha creado",
     "error-user-notCreated": "Este usuario no se ha creado",
+    "error-username-taken": "This username is already taken",
     "export-board": "Exportar tablero",
     "export-board": "Exportar tablero",
     "filter": "Filtrar",
     "filter": "Filtrar",
     "filter-cards": "Filtrar Tarjetas",
     "filter-cards": "Filtrar Tarjetas",
     "filter-clear": "Eliminar filtro",
     "filter-clear": "Eliminar filtro",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filtrar por",
     "filter-on": "Filtrar por",
     "filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
     "filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
     "filter-to-selection": "Filtrar selección",
     "filter-to-selection": "Filtrar selección",
     "fullname": "Nombre Completo",
     "fullname": "Nombre Completo",
     "header-logo-title": "Volver a tu página de tableros",
     "header-logo-title": "Volver a tu página de tableros",
+    "hide-system-messages": "Hide system messages",
     "home": "Inicio",
     "home": "Inicio",
     "import": "Importar",
     "import": "Importar",
     "import-board": "Importar desde Trello",
     "import-board": "Importar desde Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "En su tablero Trello, vaya a \"Menú\", luego \"Más\", \"Imprimir y exportar\", \"Exportación JSON ', y copia el texto que se muestre",
     "import-board-trello-instruction": "En su tablero Trello, vaya a \"Menú\", luego \"Más\", \"Imprimir y exportar\", \"Exportación JSON ', y copia el texto que se muestre",
-    "import-card": "Importar tarjeta de Trello",
-    "import-card-trello-instruction": "Ve a la tarjeta Trello, selecciona 'Compartir y más...' y marca 'Export JSON' y copia el texto que obtengas",
     "import-json-placeholder": "Pega aquí los datos JSON",
     "import-json-placeholder": "Pega aquí los datos JSON",
+    "import-map-members": "Map members",
     "import-members-map": "El tablero importado tiene algunos miembros. Por favor, asigna los miembros que deseas importar a Wekan",
     "import-members-map": "El tablero importado tiene algunos miembros. Por favor, asigna los miembros que deseas importar a Wekan",
     "import-show-user-mapping": "Revisar asignación de miembros",
     "import-show-user-mapping": "Revisar asignación de miembros",
     "import-user-select": "Escoja el usuario Wekan que desea utilizar como miembro",
     "import-user-select": "Escoja el usuario Wekan que desea utilizar como miembro",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Informaciones",
     "info": "Informaciones",
     "initials": "Iniciales",
     "initials": "Iniciales",
+    "invalid-date": "Invalid date",
     "joined": "se ha unido",
     "joined": "se ha unido",
     "just-invited": "Has sido invitado a este tablero",
     "just-invited": "Has sido invitado a este tablero",
     "keyboard-shortcuts": "Atajos de teclado",
     "keyboard-shortcuts": "Atajos de teclado",
@@ -186,17 +225,20 @@
     "listImportCardPopup-title": "Importar tarjeta de Trello",
     "listImportCardPopup-title": "Importar tarjeta de Trello",
     "lists": "Listas",
     "lists": "Listas",
     "log-out": "Finalizar la sesión",
     "log-out": "Finalizar la sesión",
+    "log-in": "Log In",
     "loginPopup-title": "Iniciar sesión",
     "loginPopup-title": "Iniciar sesión",
-    "mapMembersAddPopup-title": "Selecciona un miembro de Wekan",
-    "mapMembersPopup-title": "Asignar miembros",
     "memberMenuPopup-title": "Configurar miembros",
     "memberMenuPopup-title": "Configurar miembros",
     "members": "Miembros",
     "members": "Miembros",
     "menu": "Menú",
     "menu": "Menú",
     "move-selection": "Mover selección",
     "move-selection": "Mover selección",
     "moveCardPopup-title": "Mover Tarjeta",
     "moveCardPopup-title": "Mover Tarjeta",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Mover selección",
     "moveSelectionPopup-title": "Mover selección",
     "multi-selection": "Multi-Selección",
     "multi-selection": "Multi-Selección",
     "multi-selection-on": "Multi-selección activada",
     "multi-selection-on": "Multi-selección activada",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "Mis Tableros",
     "my-boards": "Mis Tableros",
     "name": "Nombre",
     "name": "Nombre",
     "no-archived-cards": "No hay tarjetas archivadas.",
     "no-archived-cards": "No hay tarjetas archivadas.",
@@ -205,12 +247,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
     "normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
     "not-accepted-yet": "Invitación no aceptada aún",
     "not-accepted-yet": "Invitación no aceptada aún",
+    "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": "opcional",
     "optional": "opcional",
     "or": "o",
     "or": "o",
     "page-maybe-private": "Esta página es privada. Para verla tienes que <a href='%s'>entrar</a>.",
     "page-maybe-private": "Esta página es privada. Para verla tienes que <a href='%s'>entrar</a>.",
     "page-not-found": "Página no encontrada.",
     "page-not-found": "Página no encontrada.",
     "password": "Contraseña",
     "password": "Contraseña",
     "paste-or-dragdrop": "para pegar, o hacer drag & drop de un archivo (solo imágenes)",
     "paste-or-dragdrop": "para pegar, o hacer drag & drop de un archivo (solo imágenes)",
+    "participating": "Participating",
     "preview": "Vista previa",
     "preview": "Vista previa",
     "previewAttachedImagePopup-title": "Vista previa",
     "previewAttachedImagePopup-title": "Vista previa",
     "previewClipboardImagePopup-title": "Vista previa",
     "previewClipboardImagePopup-title": "Vista previa",
@@ -223,6 +268,7 @@
     "remove-cover": "Eliminar cubierta",
     "remove-cover": "Eliminar cubierta",
     "remove-from-board": "Eliminar del tablero",
     "remove-from-board": "Eliminar del tablero",
     "remove-label": "Eliminar etiqueta",
     "remove-label": "Eliminar etiqueta",
+    "remove-list": "Remove the list",
     "remove-member": "Eliminar Miembro",
     "remove-member": "Eliminar Miembro",
     "remove-member-from-card": "Eliminar de la Tarjeta",
     "remove-member-from-card": "Eliminar de la Tarjeta",
     "remove-member-pop": "Eliminar  __name__ (__username__) de __boardTitle__? El miembro será eliminado de todas las tarjetas de este tablero. Ellos recibirán una notificación.",
     "remove-member-pop": "Eliminar  __name__ (__username__) de __boardTitle__? El miembro será eliminado de todas las tarjetas de este tablero. Ellos recibirán una notificación.",
@@ -234,7 +280,7 @@
     "search": "Buscar",
     "search": "Buscar",
     "select-color": "Selecciona un color",
     "select-color": "Selecciona un color",
     "shortcut-assign-self": "Asignarme la tarjeta actual",
     "shortcut-assign-self": "Asignarme la tarjeta actual",
-    "shortcut-autocomplete-emojies": "Autocompletar emojies",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Autocompletar miembros",
     "shortcut-autocomplete-members": "Autocompletar miembros",
     "shortcut-clear-filters": "Eliminar todos los filters",
     "shortcut-clear-filters": "Eliminar todos los filters",
     "shortcut-close-dialog": "Cierra el Dialogo",
     "shortcut-close-dialog": "Cierra el Dialogo",
@@ -242,6 +288,7 @@
     "shortcut-show-shortcuts": "Mostrar atajos de teclado",
     "shortcut-show-shortcuts": "Mostrar atajos de teclado",
     "shortcut-toggle-filterbar": "Mostrar/Ocultar la barra lateral de filtrado",
     "shortcut-toggle-filterbar": "Mostrar/Ocultar la barra lateral de filtrado",
     "shortcut-toggle-sidebar": "Menú lateral del Tablero",
     "shortcut-toggle-sidebar": "Menú lateral del Tablero",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Crear una cuenta",
     "signupPopup-title": "Crear una cuenta",
     "star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
     "star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
     "starred-boards": "Tableros Destacados",
     "starred-boards": "Tableros Destacados",
@@ -250,14 +297,24 @@
     "team": "Equipo",
     "team": "Equipo",
     "this-board": "este tablero",
     "this-board": "este tablero",
     "this-card": "esta tarjeta",
     "this-card": "esta tarjeta",
+    "time": "Time",
     "title": "Título",
     "title": "Título",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Desasignar miembro",
     "unassign-member": "Desasignar miembro",
     "unsaved-description": "Tienes una descripción sin guardar.",
     "unsaved-description": "Tienes una descripción sin guardar.",
+    "unwatch": "Unwatch",
     "upload": "Subir",
     "upload": "Subir",
     "upload-avatar": "Subir avatar",
     "upload-avatar": "Subir avatar",
     "uploaded-avatar": "Avatar actualizado",
     "uploaded-avatar": "Avatar actualizado",
     "username": "Nombre de usuario",
     "username": "Nombre de usuario",
     "view-it": "Visto",
     "view-it": "Visto",
     "warn-list-archived": "Aviso: esta tarjeta está en una lista archivada",
     "warn-list-archived": "Aviso: esta tarjeta está en una lista archivada",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "¿Qué quieres hacer?"
     "what-to-do": "¿Qué quieres hacer?"
-}
+}

+ 108 - 47
i18n/es.i18n.json

@@ -1,5 +1,25 @@
 {
 {
-    "accept": "Accept",
+    "accept": "Aceptar",
+    "act-activity-notify": "[Wekan] Notificación de Actividad",
+    "act-addAttachment": "adjuntado __attachment__ a __card__",
+    "act-addComment": "comentado en __card__: __comment__",
+    "act-createBoard": "creado __board__",
+    "act-createCard": "añadido __card__ a __list__",
+    "act-createList": "añadido __list__ a __board__",
+    "act-addBoardMember": "añadido __member__ a __board__",
+    "act-archivedBoard": "__board__ archivado",
+    "act-archivedCard": "__card__ archivada",
+    "act-archivedList": "__list__ archivada",
+    "act-importBoard": "__board__ importado",
+    "act-importCard": "__card__ importada",
+    "act-importList": "__list__ importada",
+    "act-joinMember": "añadido __member__ to __card__",
+    "act-moveCard": "movida __card__ desde __oldList__ a __list__",
+    "act-removeBoardMember": "borrado __member__ de __board__",
+    "act-restoredCard": "restaurada __card__ en __board__",
+    "act-unjoinMember": "borrado __member__ de __card__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "Acciones",
     "actions": "Acciones",
     "activities": "Activities",
     "activities": "Activities",
     "activity": "Actividad",
     "activity": "Actividad",
@@ -16,10 +36,13 @@
     "activity-removed": "eliminado %s de %s",
     "activity-removed": "eliminado %s de %s",
     "activity-sent": "enviado %s a %s",
     "activity-sent": "enviado %s a %s",
     "activity-unjoined": "unjoined %s",
     "activity-unjoined": "unjoined %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Añadir",
     "add": "Añadir",
     "add-attachment": "Añadir un adjunto",
     "add-attachment": "Añadir un adjunto",
     "add-board": "Añadir un nuevo tablero",
     "add-board": "Añadir un nuevo tablero",
     "add-card": "Add a card",
     "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Añadir cubierta",
     "add-cover": "Añadir cubierta",
     "add-label": "Add the label",
     "add-label": "Add the label",
     "add-list": "Add a list",
     "add-list": "Add a list",
@@ -31,6 +54,8 @@
     "all-boards": "Tableros",
     "all-boards": "Tableros",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Aplicar",
+    "app-is-offline": "La aplicación esta actualmente fuera de servicio, refrescar la página causará pérdida de datos",
     "archive": "Guardar",
     "archive": "Guardar",
     "archive-all": "Guardar Todo",
     "archive-all": "Guardar Todo",
     "archive-board": "Archive Board",
     "archive-board": "Archive Board",
@@ -40,12 +65,13 @@
     "archiveBoardPopup-title": "Archive Board?",
     "archiveBoardPopup-title": "Archive Board?",
     "archived-items": "Items archivados",
     "archived-items": "Items archivados",
     "archives": "Archives",
     "archives": "Archives",
-    "assign-member": "Assign member",
+    "assign-member": "Asignar miembros",
     "attached": "adjuntado",
     "attached": "adjuntado",
     "attachment": "Adjunto",
     "attachment": "Adjunto",
     "attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
     "attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
     "attachmentDeletePopup-title": "¿Borrar adjunto?",
     "attachmentDeletePopup-title": "¿Borrar adjunto?",
     "attachments": "Adjuntos",
     "attachments": "Adjuntos",
+    "auto-watch": "Vigilar tableros automáticamente cuando se crean",
     "avatar-too-big": "The avatar is too large (70Kb max)",
     "avatar-too-big": "The avatar is too large (70Kb max)",
     "back": "Atrás",
     "back": "Atrás",
     "board-change-color": "Cambiar color",
     "board-change-color": "Cambiar color",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeTitlePopup-title": "Renombrar tablero",
     "boardChangeTitlePopup-title": "Renombrar tablero",
     "boardChangeVisibilityPopup-title": "Cambiar visibilidad",
     "boardChangeVisibilityPopup-title": "Cambiar visibilidad",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Cambiar Vigilancia",
     "boardMenuPopup-title": "Board Menu",
     "boardMenuPopup-title": "Board Menu",
     "boards": "Tableros",
     "boards": "Tableros",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
@@ -66,11 +92,15 @@
     "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta ficha.",
     "card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta ficha.",
     "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-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 archive a card to remove it from the board and preserve the activity.",
     "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Motivo",
+    "card-due-on": "Debido a",
     "card-edit-attachments": "Edit attachments",
     "card-edit-attachments": "Edit attachments",
     "card-edit-labels": "Edit labels",
     "card-edit-labels": "Edit labels",
-    "card-edit-members": "Edit members",
+    "card-edit-members": "Editar miembros",
     "card-labels-title": "Cambia las etiquetas de la ficha",
     "card-labels-title": "Cambia las etiquetas de la ficha",
     "card-members-title": "Añadir o eliminar miembros del tablero desde la ficha.",
     "card-members-title": "Añadir o eliminar miembros del tablero desde la ficha.",
+    "card-start": "Empezar",
+    "card-start-on": "Empieza",
     "cardAttachmentsPopup-title": "Attach From",
     "cardAttachmentsPopup-title": "Attach From",
     "cardDeletePopup-title": "¿Borrar ficha?",
     "cardDeletePopup-title": "¿Borrar ficha?",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
@@ -82,12 +112,15 @@
     "change-avatar": "Cambiar Avatar",
     "change-avatar": "Cambiar Avatar",
     "change-password": "Cambiar la clave",
     "change-password": "Cambiar la clave",
     "change-permissions": "Cambiar permisos",
     "change-permissions": "Cambiar permisos",
+    "change-settings": "Cambiar Preferencias",
     "changeAvatarPopup-title": "Cambiar Avatar",
     "changeAvatarPopup-title": "Cambiar Avatar",
     "changeLanguagePopup-title": "Cambiar idioma",
     "changeLanguagePopup-title": "Cambiar idioma",
     "changePasswordPopup-title": "Cambiar la clave",
     "changePasswordPopup-title": "Cambiar la clave",
     "changePermissionsPopup-title": "Cambiar permisos",
     "changePermissionsPopup-title": "Cambiar permisos",
-    "click-to-star": "Haz clic para destacar este tablero. ",
-    "click-to-unstar": "Haz clic para dejar de destacar este tablero. ",
+    "changeSettingsPopup-title": "Cambiar Preferencias",
+    "checklists": "Checklists",
+    "click-to-star": "Haz clic para destacar este tablero.",
+    "click-to-unstar": "Haz clic para dejar de destacar este tablero.",
     "clipboard": "Clipboard or drag & drop",
     "clipboard": "Clipboard or drag & drop",
     "close": "Cerrar",
     "close": "Cerrar",
     "close-board": "Cerrar el tablero",
     "close-board": "Cerrar el tablero",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Crear tablero",
     "createBoardPopup-title": "Crear tablero",
     "createLabelPopup-title": "Crear etiqueta",
     "createLabelPopup-title": "Crear etiqueta",
     "current": "actual",
     "current": "actual",
+    "date": "Fecha",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "Avatar por defecto",
     "default-avatar": "Avatar por defecto",
     "delete": "Borrar",
     "delete": "Borrar",
@@ -122,7 +156,10 @@
     "edit": "Editar",
     "edit": "Editar",
     "edit-avatar": "Cambiar Avatar",
     "edit-avatar": "Cambiar Avatar",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
+    "editCardStartDatePopup-title": "Cambiar fecha de inicio",
+    "editCardDueDatePopup-title": "Cambiar fecha de motivo",
     "editLabelPopup-title": "Cambiar etiqueta",
     "editLabelPopup-title": "Cambiar etiqueta",
+    "editNotificationPopup-title": "Editar Notificación",
     "editProfilePopup-title": "Edit Profile",
     "editProfilePopup-title": "Edit Profile",
     "email": "Correo electrónico",
     "email": "Correo electrónico",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,74 +183,86 @@
     "error-user-doesNotExist": "This user does not exist",
     "error-user-doesNotExist": "This user does not exist",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notCreated": "This user is not created",
     "error-user-notCreated": "This user is not created",
+    "error-username-taken": "Este nombre de usuario ya está en uso",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "Filter",
     "filter": "Filter",
     "filter-cards": "Fichas de filtro",
     "filter-cards": "Fichas de filtro",
     "filter-clear": "Clear filter",
     "filter-clear": "Clear filter",
-    "filter-on": "Filter is on",
+    "filter-no-label": "Sin etiqueta",
+    "filter-no-member": "Sin miembro",
+    "filter-on": "Filtro activo",
     "filter-on-desc": "Estás filtrando fichas en este tablero. Haz clic aquí para editar el filtro.",
     "filter-on-desc": "Estás filtrando fichas en este tablero. Haz clic aquí para editar el filtro.",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "Nombre Completo",
     "fullname": "Nombre Completo",
     "header-logo-title": "Volver a tu página de tableros",
     "header-logo-title": "Volver a tu página de tableros",
+    "hide-system-messages": "Ocultar los mensajes del sistema",
     "home": "Inicio",
     "home": "Inicio",
-    "import": "Import",
-    "import-board": "import from Trello",
+    "import": "Importar",
+    "import-board": "importar desde Trello",
+    "import-board-title": "Importar tablero desde Trello",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
     "import-json-placeholder": "Paste your valid JSON data here",
     "import-json-placeholder": "Paste your valid JSON data here",
+    "import-map-members": "Mapa de miembros",
     "import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users",
     "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-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Seleccionar un miembro de Wekan",
     "info": "Informaciones",
     "info": "Informaciones",
-    "initials": "Initials",
+    "initials": "Iniciales",
+    "invalid-date": "Fecha no Válida",
     "joined": "se ha unido",
     "joined": "se ha unido",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
-    "keyboard-shortcuts": "Keyboard shortcuts",
-    "label-create": "Crear una etiqueta nueva ",
+    "keyboard-shortcuts": "Atajos de teclado",
+    "label-create": "Crear una etiqueta nueva",
     "label-default": "%s etiqueta (por Defecto)",
     "label-default": "%s etiqueta (por Defecto)",
     "label-delete-pop": "No se puede deshacer. Esto eliminará esta etiqueta de todas las fichas y destruirá su historia.",
     "label-delete-pop": "No se puede deshacer. Esto eliminará esta etiqueta de todas las fichas y destruirá su historia.",
     "labels": "Etiquetas",
     "labels": "Etiquetas",
     "language": "Idioma",
     "language": "Idioma",
     "last-admin-desc": "No puedes cambiar roles porque debe haber al menos un administrador.",
     "last-admin-desc": "No puedes cambiar roles porque debe haber al menos un administrador.",
-    "leave-board": "Leave Board",
+    "leave-board": "Dejar el Tablero",
     "link-card": "Enlace a esta ficha",
     "link-card": "Enlace a esta ficha",
     "list-archive-cards": "Archive all cards in this list",
     "list-archive-cards": "Archive all cards in this list",
     "list-archive-cards-pop": "Esto eliminara todas las fichas de esta lista del tablero. Para ver fichas archivadas y recuperarlas en el tablero, haz clic en \"Menu\" / \"Artículos Archivados\".",
     "list-archive-cards-pop": "Esto eliminara todas las fichas de esta lista del tablero. Para ver fichas archivadas y recuperarlas en el tablero, haz clic en \"Menu\" / \"Artículos Archivados\".",
     "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",
     "listActionPopup-title": "Acciones de la lista",
     "listActionPopup-title": "Acciones de la lista",
-    "listImportCardPopup-title": "Import a Trello card",
-    "lists": "Lists",
+    "listImportCardPopup-title": "Importar una tarjeta de Trello",
+    "lists": "Listas",
     "log-out": "Finalizar la sesion",
     "log-out": "Finalizar la sesion",
+    "log-in": "Iniciar sesion",
     "loginPopup-title": "Iniciar sesion",
     "loginPopup-title": "Iniciar sesion",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
-    "memberMenuPopup-title": "Member Settings",
+    "memberMenuPopup-title": "Preferencias de Miembro",
     "members": "Miembros",
     "members": "Miembros",
     "menu": "Menu",
     "menu": "Menu",
-    "move-selection": "Move selection",
+    "move-selection": "Mover selección",
     "moveCardPopup-title": "Move Card",
     "moveCardPopup-title": "Move Card",
-    "moveSelectionPopup-title": "Move selection",
-    "multi-selection": "Multi-Selection",
-    "multi-selection-on": "Multi-Selection is on",
+    "moveCardToBottom-title": "Mover al Final",
+    "moveCardToTop-title": "Movel al Principio",
+    "moveSelectionPopup-title": "Mover selección",
+    "multi-selection": "Multi-Selección",
+    "multi-selection-on": "Multi-Selección activada",
+    "muted": "Silenciado",
+    "muted-info": "No serás notificado de ningún cambio en este tablero",
     "my-boards": "Mis tableros",
     "my-boards": "Mis tableros",
     "name": "Nombre",
     "name": "Nombre",
-    "no-archived-cards": "No archived cards.",
-    "no-archived-lists": "No archived lists.",
+    "no-archived-cards": "No hay tarjetas archivadas.",
+    "no-archived-lists": "No hay listas archivadas.",
     "no-results": "Sin resultados",
     "no-results": "Sin resultados",
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Puedes ver y editar fichas. No puedes cambiar la configuración.",
     "normal-desc": "Puedes ver y editar fichas. No puedes cambiar la configuración.",
     "not-accepted-yet": "Invitation not accepted yet",
     "not-accepted-yet": "Invitation not accepted yet",
+    "notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participas como creador o miembro",
+    "notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando",
     "optional": "opcional",
     "optional": "opcional",
-    "or": "or",
+    "or": "o",
     "page-maybe-private": "Esta página puede ser privada. Puedes verla por <a href='%s'>logging in</a>.",
     "page-maybe-private": "Esta página puede ser privada. Puedes verla por <a href='%s'>logging in</a>.",
     "page-not-found": "Página no encontrada.",
     "page-not-found": "Página no encontrada.",
     "password": "Clave",
     "password": "Clave",
     "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)",
-    "preview": "Preview",
-    "previewAttachedImagePopup-title": "Preview",
-    "previewClipboardImagePopup-title": "Preview",
+    "participating": "Participando",
+    "preview": "Previsualizar",
+    "previewAttachedImagePopup-title": "Previsualizar",
+    "previewClipboardImagePopup-title": "Previsualizar",
     "private": "Privado",
     "private": "Privado",
     "private-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.",
     "private-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.",
     "profile": "Perfil",
     "profile": "Perfil",
@@ -221,43 +270,55 @@
     "public-desc": "Este tablero es público. Es visible para cualquier persona con el enlace y se mostrará en los motores de búsqueda como Google. Sólo personas añadidas al tablero pueden editarlo.",
     "public-desc": "Este tablero es público. Es visible para cualquier persona con el enlace y se mostrará en los motores de búsqueda como Google. Sólo personas añadidas al tablero pueden editarlo.",
     "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": "Eliminar cubierta",
     "remove-cover": "Eliminar cubierta",
-    "remove-from-board": "Remove from Board",
-    "remove-label": "Remove the label",
+    "remove-from-board": "Borrar del Tablero",
+    "remove-label": "Borrar la etiqueta",
+    "remove-list": "Remove the list",
     "remove-member": "Eliminar Miembro",
     "remove-member": "Eliminar Miembro",
     "remove-member-from-card": "Eliminar de la Ficha",
     "remove-member-from-card": "Eliminar de la Ficha",
     "remove-member-pop": "Eliminar __nombre__ (__usuario__) de __Título del tablero__? El miembro será eliminado de todas las tarjetas de este tablero. Ellos recibirán una notificación.",
     "remove-member-pop": "Eliminar __nombre__ (__usuario__) de __Título del tablero__? El miembro será eliminado de todas las tarjetas de este tablero. Ellos recibirán una notificación.",
     "removeMemberPopup-title": "¿Eliminar miembro?",
     "removeMemberPopup-title": "¿Eliminar miembro?",
     "rename": "Renombrar",
     "rename": "Renombrar",
     "rename-board": "Renombrar tablero",
     "rename-board": "Renombrar tablero",
-    "restore": "Restore",
+    "restore": "Restaurar",
     "save": "Guardar",
     "save": "Guardar",
     "search": "Buscar",
     "search": "Buscar",
     "select-color": "Selecciona un color",
     "select-color": "Selecciona un color",
-    "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-assign-self": "Asignarte a ti mismo a la tarjeta actual",
+    "shortcut-autocomplete-emoji": "Autocompletar emoji",
+    "shortcut-autocomplete-members": "Autocompletar miembros",
+    "shortcut-clear-filters": "Limpiar todos los filtros",
+    "shortcut-close-dialog": "Cerrar Diálogo",
+    "shortcut-filter-my-cards": "Filtrar mis tarjetas",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+    "show-cards-minimum-count": "Mostrar recuento de tarjetas si la lista contiene más de",
     "signupPopup-title": "Crear una Cuenta",
     "signupPopup-title": "Crear una Cuenta",
     "star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
     "star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
     "starred-boards": "Tableros Destacados",
     "starred-boards": "Tableros Destacados",
     "starred-boards-description": "Los tableros destacados se mostrarán en la parte superior de tu lista de tableros.",
     "starred-boards-description": "Los tableros destacados se mostrarán en la parte superior de tu lista de tableros.",
-    "subscribe": "Suscribe",
+    "subscribe": "Suscribirse",
     "team": "Equipo",
     "team": "Equipo",
     "this-board": "este tablero",
     "this-board": "este tablero",
     "this-card": "esta ficha",
     "this-card": "esta ficha",
+    "time": "Hora",
     "title": "Título",
     "title": "Título",
-    "unassign-member": "Unassign member",
-    "unsaved-description": "You have an unsaved description.",
-    "upload": "Upload",
-    "upload-avatar": "Upload an avatar",
-    "uploaded-avatar": "Uploaded an avatar",
+    "tracking": "Seguimiento",
+    "tracking-info": "Serás notificado de cualquier cambio en las tarjetas que estás envuelto como creador o miembro.",
+    "unassign-member": "Desasignar miembro",
+    "unsaved-description": "Tienes unas descripción no guardada.",
+    "unwatch": "Dejar de vigilar",
+    "upload": "Cargar",
+    "upload-avatar": "Cargar un avatar",
+    "uploaded-avatar": "Avatar cargado",
     "username": "Nombre de Usuario",
     "username": "Nombre de Usuario",
-    "view-it": "View it",
+    "view-it": "Verlo",
     "warn-list-archived": "warning: this card is in an archived list",
     "warn-list-archived": "warning: this card is in an archived list",
+    "watch": "Vigilar",
+    "watching": "Vigilando",
+    "watching-info": "Serás notificado de cualquier cambio en este tablero",
+    "welcome-board": "Tablero de Bienvenida",
+    "welcome-list1": "Basicos",
+    "welcome-list2": "Avanzados",
     "what-to-do": "What do you want to do?"
     "what-to-do": "What do you want to do?"
-}
+}

+ 324 - 0
i18n/fa.i18n.json

@@ -0,0 +1,324 @@
+{
+    "accept": "تایید",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "اعمال",
+    "activities": "فعالیت ها",
+    "activity": "فعالیت",
+    "activity-added": "%s به %s اضافه شد",
+    "activity-archived": "%s بایگانی شد",
+    "activity-attached": "%s به %s پیوست شد",
+    "activity-created": "%s ایجاد شد",
+    "activity-excluded": "%s  از %s مستثنی گردید",
+    "activity-imported": "%s از %s وارد %s شد",
+    "activity-imported-board": "%s از %s وارد شد",
+    "activity-joined": "اتصال به %s",
+    "activity-moved": "%s از %s به %s منتقل شد",
+    "activity-on": "%s",
+    "activity-removed": "%s از %s حذف شد",
+    "activity-sent": "ارسال %s به %s",
+    "activity-unjoined": "جداسازی %s",
+    "activity-checklist-added": "added checklist to %s",
+    "add": "افزودن",
+    "add-attachment": "افزودن ضمیمه",
+    "add-board": "افزودن برد جدید",
+    "add-card": "افزودن کارت",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "افزودن کاور",
+    "add-label": "افزودن برچسب",
+    "add-list": "افزودن لیست",
+    "add-members": "افزودن اعضا",
+    "added": "اضافه گردید",
+    "addMemberPopup-title": "اعضا",
+    "admin": "مدیر",
+    "admin-desc": "امکان دیدن و ویرایش کارتها،پاک کردن کاربران و تغییر تنظیمات برای تخته",
+    "all-boards": "تمام بردها",
+    "and-n-other-card": "و __count__ کارت دیگر",
+    "and-n-other-card_plural": "و __count__ کارت دیگر",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
+    "archive": "آرشیو",
+    "archive-all": "تمامی آرشیوها",
+    "archive-board": "بایگانی برد",
+    "archive-card": "بایگانی کارت",
+    "archive-list": "بایگانی این لیست",
+    "archive-selection": "بایگانی موارد انتخاب شده ها",
+    "archiveBoardPopup-title": "آیا می خواهید بایگانی شود؟",
+    "archived-items": "آیتم های بایگانی شده",
+    "archives": "آرشیوها",
+    "assign-member": "تعیین عضو",
+    "attached": "وابسته",
+    "attachment": "ضمائم",
+    "attachment-delete-pop": "حذف پیوست دایمی خواهد بود، بدون بازگشت",
+    "attachmentDeletePopup-title": "آیا می خواهید ضمیمه را حذف کنید؟",
+    "attachments": "ضمائم",
+    "auto-watch": "Automatically watch boards when create it",
+    "avatar-too-big": "حجم تصویر انتخاب شده بیشتر از حد مجاز است .(حد مجاز 70Kb)",
+    "back": "بازگشت",
+    "board-change-color": "تغییر رنگ",
+    "board-nb-stars": "%s ستاره",
+    "board-not-found": "برد مورد نظر پیدا نشد",
+    "board-private-info": "این برد <strong>خصوصی</strong> خواهد بود.",
+    "board-public-info": "این برد <strong>عمومی</strong> خواهد بود.",
+    "boardChangeColorPopup-title": "تغییر پس زمینه برد",
+    "boardChangeTitlePopup-title": "تغییر نام برد",
+    "boardChangeVisibilityPopup-title": "تغغیر وضعیت نمایش",
+    "boardChangeWatchPopup-title": "Change Watch",
+    "boardMenuPopup-title": "منوی برد",
+    "boards": "بردها",
+    "bucket-example": "مانند \"لیست سبدها\" برای مثال",
+    "cancel": "انصراف",
+    "card-archived": "این کارت بایگانی شده است.",
+    "card-comments-title": "این کارت دارای %s نظر می باشد.",
+    "card-delete-notice": "پاک کردن بطور کامل. شما تمامی اقدامات مربوطه را از دست خواهید داد.",
+    "card-delete-pop": "همه اقدامات ازاین پردازه (خوراک) حذف خواهد شد و امکان بازگشا کردن کارت وجود نخواهد داشت. هیچ امکان بازگشتی!",
+    "card-delete-suggest-archive": "شما می توانید یک کارت را بایگانی کرده با  حفظ فعالیت های آن.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
+    "card-edit-attachments": "ویرایش ضمائم",
+    "card-edit-labels": "ویرایش برچسب",
+    "card-edit-members": "ویرایش اعضا",
+    "card-labels-title": "تغییر برچسب کارت",
+    "card-members-title": "افزودن یا حذف اعضا از کارت.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
+    "cardAttachmentsPopup-title": "ضمیمه از",
+    "cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟",
+    "cardDetailsActionsPopup-title": "اعمال کارت",
+    "cardLabelsPopup-title": "برچسب ها",
+    "cardMembersPopup-title": "اعضا",
+    "cardMorePopup-title": "بیشتر",
+    "cards": "کارت ها",
+    "change": "تغییر",
+    "change-avatar": "تغییر آواتار",
+    "change-password": "تغییر کلمه عبور",
+    "change-permissions": "تغییر دسترسی ها",
+    "change-settings": "Change Settings",
+    "changeAvatarPopup-title": "تغییر آواتار",
+    "changeLanguagePopup-title": "تغییر زبان",
+    "changePasswordPopup-title": "تغییر کلمه عبور",
+    "changePermissionsPopup-title": "تغییر دسترسی ها",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
+    "click-to-star": "جهت افزودن ستاره کلیک کنید .",
+    "click-to-unstar": "جهت کاهش ستاره کلیک کنید.",
+    "clipboard": "ذخیره در حافظه ویا بکش-رهاکن",
+    "close": "بستن",
+    "close-board": "بستن برد",
+    "close-board-pop": "شما می توانید با کلیک بر دکمه \"بایگانی\" از قسمت بالای خانه، تخته را بازگذاری نمایید.",
+    "color-black": "مشکی",
+    "color-blue": "آبی",
+    "color-green": "سبز",
+    "color-lime": "لیمویی",
+    "color-orange": "نارنجی",
+    "color-pink": "صورتی",
+    "color-purple": "بنفش",
+    "color-red": "قرمز",
+    "color-sky": "آبی آسمانی",
+    "color-yellow": "زرد",
+    "comment": "نظر",
+    "comment-placeholder": "ثبت یک نظر",
+    "computer": "کامپیوتر",
+    "create": "ایجاد",
+    "createBoardPopup-title": "ایجاد برد",
+    "createLabelPopup-title": "ایجاد برچسب",
+    "current": "جاری",
+    "date": "Date",
+    "decline": "رد",
+    "default-avatar": "آواتار پیش فرض",
+    "delete": "حذف",
+    "deleteLabelPopup-title": "آیا می خواهید برچسب را حذف کنید؟",
+    "description": "توضیحات",
+    "disambiguateMultiLabelPopup-title": "عمل ابهام زدایی از برچسب",
+    "disambiguateMultiMemberPopup-title": "عمل ابهام زدایی از کاربر",
+    "discard": "انصراف",
+    "done": "پایان",
+    "download": "دریافت",
+    "edit": "ویرایش",
+    "edit-avatar": "تغییر آواتار",
+    "edit-profile": "ویرایش پروفایل",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
+    "editLabelPopup-title": "تغغیر برچسب",
+    "editNotificationPopup-title": "Edit Notification",
+    "editProfilePopup-title": "ویرایش پروفایل",
+    "email": "ایمیل",
+    "email-enrollAccount-subject": "یک حساب کاربری برای شما در __siteName__ ایجاد شد",
+    "email-enrollAccount-text": "سلام __user__ \nبرای شروع به استفاده از این سرویس برروی کلیک روی لینک زیر کلیک نمایید،با تشکر \n__url__.",
+    "email-fail": "عدم موفقیت در ارسال نامه الکترونیکی",
+    "email-invalid": "پست الکترونیکی نادرست",
+    "email-invite": "دعوت از طریق نامه الکترونیکی",
+    "email-invite-subject": "__inviter__ برای شما دعوت نامه ارسال کرده است",
+    "email-invite-text": "__User__ عزیز\n __inviter__ شما را به عضویت تخته  \"__board__\" برای همکاری دعوت کرده است.\nلطفا لینک زیر را دنبال کنید، باتشکر:\n__url__",
+    "email-resetPassword-subject": "تنظیم مجدد کلمه عبور در __siteName__",
+    "email-resetPassword-text": "سلام __user__\nجهت تنظیم مجدد کلمه عبور لینک زیر را دنبال نمایید، باتشکر:\n__url__",
+    "email-sent": "نامه الکترونیکی فرستاده شد",
+    "email-verifyEmail-subject": "تایید آدرس الکترونیکی شما در __siteName__",
+    "email-verifyEmail-text": "سلام __user__\nبه منظور تایید آدرس الکترونیکی حساب خود، لینک زیر را دنبال نمایید، باتشکر:\n__url__.",
+    "error-board-doesNotExist": "تخته مورد نظر وجود ندارد",
+    "error-board-notAdmin": "شما جهت انجام آن باید مدیر تخته باشید",
+    "error-board-notAMember": "شما انجام آن ،باید عضو این تخته باشید.",
+    "error-json-malformed": "متن درغالب صحیح Json نمی باشد.",
+    "error-json-schema": "داده های Json شما، شامل اطلاعات صحیح در غالب درستی نمی باشد.",
+    "error-list-doesNotExist": "این لیست موجود نیست",
+    "error-user-doesNotExist": "این کاربر وجود ندارد",
+    "error-user-notAllowSelf": "این اقدامبروی خود، مجاز نمی باشد",
+    "error-user-notCreated": "این کاربر ایجاد نشده است",
+    "error-username-taken": "This username is already taken",
+    "export-board": "انتقال به بیرون تخته",
+    "filter": "فیلتر",
+    "filter-cards": "صافی کارتها",
+    "filter-clear": "حذف فیلتر",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
+    "filter-on": "صافی روشن است",
+    "filter-on-desc": "شما صافی برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.",
+    "filter-to-selection": "صافی برای موارد انتخابی",
+    "fullname": "نام و نام خانوادگی",
+    "header-logo-title": "بازگشت به صفحه تخته.",
+    "hide-system-messages": "Hide system messages",
+    "home": "خانه",
+    "import": "وارد کردن",
+    "import-board": "وارد کردن از ترلو",
+    "import-board-title": "Import board from Trello",
+    "import-board-trello-instruction": "در Trello-ی خود  به 'Menu'، 'More'، 'Print'، 'Export to JSON رفته و متن نهایی را دراینجا وارد نمایید.",
+    "import-json-placeholder": "اطلاعات Json معتبر خود را اینجا وارد کنید.",
+    "import-map-members": "Map members",
+    "import-members-map": "تخته خود وارد شده دارای برخی از اعضا می باشد. لطفا کاربرانی که باید وارد نرم افزار بشوند را مشخص کنید.",
+    "import-show-user-mapping": "بررسی نقشه کاربران",
+    "import-user-select": "کاربری از نرم افزار را که می خواهید بعنوان این عضو جایگزین شود را انتخاب کنید.",
+    "importMapMembersAddPopup-title": "Select Wekan member",
+    "info": "اطلاعات",
+    "initials": "تخصیصات اولیه",
+    "invalid-date": "Invalid date",
+    "joined": "متصل",
+    "just-invited": "هم اکنون، شما به این تخته دعوت شده اید.",
+    "keyboard-shortcuts": "میانبر کلیدها",
+    "label-create": "ایجاد برچسب جدید",
+    "label-default": "%s برچسب(پیش فرض)",
+    "label-delete-pop": "بدون برگشت. این حذفبرچسب را از هر کارت پاک خواهد کردو تاریخچه آن را نیز ازبین می برد.",
+    "labels": "برچسب ها",
+    "language": "زبان",
+    "last-admin-desc": "شما نمی توانید نقش را تغییر دهید چراکه باید حداقل یک مدیری وجود داشته باشد.",
+    "leave-board": "خروج از برد",
+    "link-card": "ارجاع به این کارت",
+    "list-archive-cards": "بایگانی تمامی کارتهای این لیست",
+    "list-archive-cards-pop": "این همه کارت ها در این لیست از تخته راحذف خواهد کرد. جهت مشاهده کارت های بایگانی و بازگرداندن آنها ، \"Menu\",\"Archived Item\" را کلیک کنید.",
+    "list-move-cards": "انتقال تمام کارت ها در این لیست",
+    "list-select-cards": "انتخاب تمام کارت ها در این لیست",
+    "listActionPopup-title": "لیست اقدامات",
+    "listImportCardPopup-title": "وارد کردن کارت Trello",
+    "lists": "لیست ها",
+    "log-out": "خروج",
+    "log-in": "ورود",
+    "loginPopup-title": "ورود",
+    "memberMenuPopup-title": "تنظیمات اعضا",
+    "members": "اعضا",
+    "menu": "منو",
+    "move-selection": "حرکت مورد انتخاب شده",
+    "moveCardPopup-title": "حرکت کارت",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
+    "moveSelectionPopup-title": "حرکت مورد انتخاب شده",
+    "multi-selection": "چند انتخابی",
+    "multi-selection-on": "چند انتخابی روشن است",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
+    "my-boards": "بردهای من",
+    "name": "نام",
+    "no-archived-cards": "کارتی در بایگانی نیست",
+    "no-archived-lists": "لیستی در بایگانی نیست",
+    "no-results": "نتیجه ای ندارد",
+    "normal": "عادی",
+    "normal-desc": "امکان نمایش و تنظیم کارت بدون امکان تغییر تنظیمات",
+    "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": "انتخابی",
+    "or": "یا",
+    "page-maybe-private": "این صفحه ممکن است خصوصی باشد.شما با<a href='%s'>ورود</a> می توانید آنرا ملاحظه نمایید.",
+    "page-not-found": "صفحه پیدا نشد.",
+    "password": "کلمه عبور",
+    "paste-or-dragdrop": "جهت چسباندن، یا کشیدن-رهاسازی فایل تصویر به آن (تصویر)",
+    "participating": "Participating",
+    "preview": "نمایش",
+    "previewAttachedImagePopup-title": "نمایش",
+    "previewClipboardImagePopup-title": "نمایش",
+    "private": "خصوصی",
+    "private-desc": "این تخته خصوصی است. فقط تنها افراد اضافه شده به آن  می توانند مشاهده و ویرایش کنند.",
+    "profile": "پروفایل",
+    "public": "عمومی",
+    "public-desc": "این تخته عمومی است. برای هر کسی با لینک ویا جستجو درموتورها مانند گوگل قابل مشاهده است . فقط افرادی که به آن اضافه شده اند  امکان ویرایش دارند.",
+    "quick-access-description": "جهت افزودن یک تخته به اینجا،آنرا ستاره دار نمایید.",
+    "remove-cover": "حذف کاور",
+    "remove-from-board": "حذف از برد",
+    "remove-label": "حذف برچسب",
+    "remove-list": "Remove the list",
+    "remove-member": "حذف عضو",
+    "remove-member-from-card": "حذف از کارت",
+    "remove-member-pop": "آیا می خواهید __Name__ (__username__) را از __boardTitle__ حذف کنید? کاربر از تمام کارت ها در این تخته حذف خواهد شد و به آنها اطلاع رسانی خواهد شد.",
+    "removeMemberPopup-title": "آیا می خواهید کاربر را حذف کنید؟",
+    "rename": "تغغیر نام",
+    "rename-board": "تغییر نام برد",
+    "restore": "بازیابی",
+    "save": "ذخیره",
+    "search": "جستجو",
+    "select-color": "انتخاب رنگ",
+    "shortcut-assign-self": "اختصاص خود به کارت فعلی",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
+    "shortcut-autocomplete-members": "تکمیل خودکار کاربرها",
+    "shortcut-clear-filters": "حذف تمامی فیلترها",
+    "shortcut-close-dialog": "بستن دیالوگ",
+    "shortcut-filter-my-cards": "کارت های من",
+    "shortcut-show-shortcuts": "بالا آوردن میانبر این لیست",
+    "shortcut-toggle-filterbar": "ضامن نوار صافی",
+    "shortcut-toggle-sidebar": "ضامن نوار تخته",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
+    "signupPopup-title": "ایجاد یک اکانت",
+    "star-board-title": "جهت ستاره دار کردن تخته کلیک نمایی.این در بالای لیست تخته های شما نمایش داده خواهد شد.",
+    "starred-boards": "تخته های ستاره دار",
+    "starred-boards-description": "تخته های ستاره دار در بالای لیست تخته ها نمایش داده می شود.",
+    "subscribe": "عضوشدن",
+    "team": "تیم",
+    "this-board": "این برد",
+    "this-card": "این کارت",
+    "time": "Time",
+    "title": "عنوان",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+    "unassign-member": "عدم انتصاب کاربر",
+    "unsaved-description": "شما توضیحات ذخیره نشده دارید.",
+    "unwatch": "Unwatch",
+    "upload": "ارسال",
+    "upload-avatar": "ارسال یک آواتار",
+    "uploaded-avatar": "آواتار ارسال شد",
+    "username": "نام کاربری",
+    "view-it": "مشاهده",
+    "warn-list-archived": "هشدار: این کارت در یک لیست بایگانی شده است",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "چه کاری می خواهید انجام دهید؟"
+}

+ 316 - 255
i18n/fi.i18n.json

@@ -1,263 +1,324 @@
 {
 {
-    "accept": "Hyväksy",
-    "actions": "Toimet",
-    "activities": "Toimet",
-    "activity": "Toiminta",
-    "activity-added": "lisätty %s kohteeseen %s",
-    "activity-archived": "arkistoitu %s",
-    "activity-attached": "liitetty %s kohteeseen %s",
-    "activity-created": "luotu %s",
-    "activity-excluded": "poistettu %s kohteesta %s",
-    "activity-imported": "tuotu %s kohteeseen %s lähteestä %s",
-    "activity-imported-board": "tuotu %s lähteestä %s",
-    "activity-joined": "liitytty kohteeseen %s",
-    "activity-moved": "siirretty %s kohteesta %s kohteeseen %s",
-    "activity-on": "kohteessa %s",
-    "activity-removed": "poistettu %s kohteesta %s",
-    "activity-sent": "lähetetty %s kohteeseen %s",
-    "activity-unjoined": "peruttu %s liityminen",
-    "add": "Lisää",
-    "add-attachment": "Lisää liitetiedosto",
-    "add-board": "Lisää uusi taulu",
-    "add-card": "Lisää kortti",
-    "add-cover": "Lisää kansi",
-    "add-label": "Lisää tunniste",
-    "add-list": "Lisää lista",
-    "add-members": "Lisää jäseniä",
-    "added": "Lisätty",
-    "addMemberPopup-title": "Jäsenet",
-    "admin": "Ylläpitäjä",
-    "admin-desc": "Voi nähfä ja muokata kortteja, poistaa jäseniä, ja muuttaa taulun asetuksia.",
-    "all-boards": "Kaikki taulut",
-    "and-n-other-card": "Ja __count__ muu kortti",
-    "and-n-other-card_plural": "Ja __count__ muuta korttia",
-    "archive": "Arkistoi",
-    "archive-all": "Arkistoi kaikki",
-    "archive-board": "Arkistoi taulu",
-    "archive-card": "Arkistoi kortti",
-    "archive-list": "Arkistoi tämä lista",
-    "archive-selection": "Arkistoi valinta",
-    "archiveBoardPopup-title": "Arkistoi taulu?",
-    "archived-items": "Arkistoidut kohteet",
-    "archives": "Arkistot",
-    "assign-member": "Valitse jäsen",
-    "attached": "liitetty",
-    "attachment": "Liitetiedosto",
-    "attachment-delete-pop": "Liitetiedoston poistaminen on lopullista. Tätä ei pysty peruuttamaan.",
-    "attachmentDeletePopup-title": "Poista liitetiedosto?",
-    "attachments": "Liitetiedostot",
-    "avatar-too-big": "Profiilikuva on liian suuri (70Kb maksimi)",
-    "back": "Takaisin",
-    "board-change-color": "Vaihda väri",
-    "board-nb-stars": "%s tähteä",
-    "board-not-found": "Taulua ei löytynyt",
-    "board-private-info": "Tämä taulu tulee olemaan <strong>yksityinen</strong>.",
-    "board-public-info": "Tämä taulu tulee olemaan <strong>julkinen</strong>.",
-    "boardChangeColorPopup-title": "Vaihda taulun tausta",
-    "boardChangeTitlePopup-title": "Nimeä taulu uudelleen",
-    "boardChangeVisibilityPopup-title": "Vaihda näkyvyyttä",
-    "boardImportBoardPopup-title": "Tuo taulu Trellosta",
-    "boardMenuPopup-title": "Taulu valikko",
-    "boards": "Taulut",
-    "bucket-example": "Kuten “Laatikko lista” esimerkiksi",
-    "cancel": "Peruuta",
-    "card-archived": "Tämä kortti on arkistoitu.",
-    "card-comments-title": "Tässä kortissa on %s kommenttia.",
-    "card-delete-notice": "Poistaminen on lopullista. Menetät kaikki toimet jotka on liitetty tähän korttiin.",
-    "card-delete-pop": "Kaikki toimet poistetaan toimintasyötteestä ja et tule pystymään uudelleenavaamaan korttia. Tätä ei voi peruuttaa.",
-    "card-delete-suggest-archive": "Voit arkistoida kortin poistaaksesi sen taululta ja säilyttääksesi toimet.",
-    "card-edit-attachments": "Muokkaa liitetiedostoja",
-    "card-edit-labels": "Muokkaa tunnisteita",
-    "card-edit-members": "Muokkaa jäseniä",
-    "card-labels-title": "Vaihda kortin tunnisteita.",
-    "card-members-title": "Lisää tai poista taulun jäseniä tältä kortilta.",
-    "cardAttachmentsPopup-title": "Liitä mistä",
-    "cardDeletePopup-title": "Poista kortti?",
-    "cardDetailsActionsPopup-title": "Kortti toimet",
-    "cardLabelsPopup-title": "Tunnisteet",
-    "cardMembersPopup-title": "Jäsenet",
-    "cardMorePopup-title": "Lisää",
-    "cards": "Kortit",
-    "change": "Muuta",
-    "change-avatar": "Vaihda profiilikuva",
-    "change-password": "Vaihda salasana",
-    "change-permissions": "Muuta oikeuksia",
-    "changeAvatarPopup-title": "Vaihda profiilikuva",
-    "changeLanguagePopup-title": "Vaihda kieltä",
-    "changePasswordPopup-title": "Vaihda salasana",
-    "changePermissionsPopup-title": "Vaihda oikeuksia",
-    "click-to-star": "Klikkaa merkataksesi tämä taulu tähdellä.",
-    "click-to-unstar": "Klikkaa poistaaksesi tähtimerkintä taululta.",
-    "clipboard": "Leikepöytä tai raahaa ja pudota",
-    "close": "Sulje",
-    "close-board": "Sulje taulu",
-    "close-board-pop": "Voit palauttaa taulun klikkaamalla “Arkistot” painiketta kotiotsikosta.",
-    "color-black": "musta",
-    "color-blue": "sininen",
-    "color-green": "vihreä",
+    "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "archived %s",
+    "activity-attached": "attached %s to %s",
+    "activity-created": "created %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",
+    "add": "Add",
+    "add-attachment": "Add an attachment",
+    "add-board": "Add a new board",
+    "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "Add Cover",
+    "add-label": "Add the label",
+    "add-list": "Add a 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.",
+    "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": "The application is currently offline, refreshing the page will cause data loss.",
+    "archive": "Archive",
+    "archive-all": "Archive All",
+    "archive-board": "Archive Board",
+    "archive-card": "Archive Card",
+    "archive-list": "Archive this list",
+    "archive-selection": "Archive selection",
+    "archiveBoardPopup-title": "Archive Board?",
+    "archived-items": "Archived Items",
+    "archives": "Archives",
+    "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 create it",
+    "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",
+    "bucket-example": "Like “Bucket List” for example",
+    "cancel": "Cancel",
+    "card-archived": "This card is archived.",
+    "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 archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
+    "card-edit-attachments": "Edit attachments",
+    "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",
+    "cardDeletePopup-title": "Delete Card?",
+    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardLabelsPopup-title": "Labels",
+    "cardMembersPopup-title": "Members",
+    "cardMorePopup-title": "More",
+    "cards": "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 “Archives” button from the home header.",
+    "color-black": "black",
+    "color-blue": "blue",
+    "color-green": "green",
     "color-lime": "lime",
     "color-lime": "lime",
-    "color-orange": "oranssi",
-    "color-pink": "vaaleanpunainen",
-    "color-purple": "violetti",
-    "color-red": "punainen",
-    "color-sky": "taivas",
-    "color-yellow": "keltainen",
-    "comment": "Kommentti",
-    "comment-placeholder": "Kirjoita kommentti",
-    "computer": "Tietokone",
-    "create": "Luo",
-    "createBoardPopup-title": "Luo taulu",
-    "createLabelPopup-title": "Luo tunniste",
-    "current": "nykyinen",
-    "decline": "Kieltäydy",
-    "default-avatar": "Oletus profiilikuva",
-    "delete": "Poista",
-    "deleteLabelPopup-title": "Poista tunniste?",
-    "description": "Kuvaus",
-    "disambiguateMultiLabelPopup-title": "Yksikäsitteistä tunniste toiminta",
-    "disambiguateMultiMemberPopup-title": "Yksikäsitteistä jäsen toiminta",
-    "discard": "Hylkää",
-    "done": "Valmis",
-    "download": "Lataa",
-    "edit": "Muokkaa",
-    "edit-avatar": "Vaihda profiilikuva",
-    "edit-profile": "Muokkaa profiilia",
-    "editLabelPopup-title": "Vaihda tunniste",
-    "editProfilePopup-title": "Muokkaa profiilia",
-    "email": "Sähköposti",
+    "color-orange": "orange",
+    "color-pink": "pink",
+    "color-purple": "purple",
+    "color-red": "red",
+    "color-sky": "sky",
+    "color-yellow": "yellow",
+    "comment": "Comment",
+    "comment-placeholder": "Write a comment",
+    "computer": "Computer",
+    "create": "Create",
+    "createBoardPopup-title": "Create Board",
+    "createLabelPopup-title": "Create Label",
+    "current": "current",
+    "date": "Date",
+    "decline": "Decline",
+    "default-avatar": "Default avatar",
+    "delete": "Delete",
+    "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",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
+    "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-subject": "An account created for you on __siteName__",
-    "email-enrollAccount-text": "Hei __user__,\n\nAlkaaksesi käyttämään palvelua, klikkaa allaolevaa linkkiä.\n\n__url__\n\nKiitos.",
-    "email-fail": "Sähköpostin lähettäminen epäonnistui",
-    "email-invalid": "Virheellinen sähköposti",
-    "email-invite": "Kutsu sähköpostilla",
-    "email-invite-subject": "__inviter__ lähetti sinulle kutsun",
-    "email-invite-text": "Hyvä __user__,\n\n__inviter__ kutsuu sinut liittymään taululle \"__board__\" yhteistyötä varten.\n\nOle hyvä ja seuraa allaolevaa linkkiä:\n\n__url__\n\nKiitos.",
+    "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-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-subject": "Reset your password on __siteName__",
-    "email-resetPassword-text": "Hei __user__,\n\nNollataksesi salasanasi, klikkaa allaolevaa linkkiä.\n\n__url__\n\nKiitos.",
-    "email-sent": "Sähköposti lähetetty",
+    "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-subject": "Verify your email address on __siteName__",
-    "email-verifyEmail-text": "Hei __user__,\n\nvahvistaaksesi sähköpostiosoitteesi, klikkaa allaolevaa linkkiä.\n\n__url__\n\nKiitos.",
-    "error-board-doesNotExist": "Tämä taulu ei ole olemassa",
-    "error-board-notAdmin": "Tehdäksesi tämän sinun täytyy olla tämän taulun ylläpitäjä",
-    "error-board-notAMember": "Tehdäksesi tämän sinun täytyy olla tämän taulun jäsen",
-    "error-json-malformed": "Tekstisi ei ole kelvollisessa JSON muodossa",
-    "error-json-schema": "JSON tietosi ei sisällä oikeaa tietoa oikeassa muodossa",
-    "error-list-doesNotExist": "Tätä listaa ei ole olemassa",
-    "error-user-doesNotExist": "Tätä käyttäjää ei ole olemassa",
-    "error-user-notAllowSelf": "Tämä toiminto itseäsi kohtaan ei ole sallittu",
-    "error-user-notCreated": "Tätä käyttäjää ei ole luotu",
+    "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
+    "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": "This action on self is not allowed",
+    "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
     "export-board": "Export board",
     "export-board": "Export board",
-    "filter": "Suodata",
-    "filter-cards": "Suodata kortit",
-    "filter-clear": "Poista suodatin",
-    "filter-on": "Suodatus on päällä",
-    "filter-on-desc": "Suodatat kortteja tällä taululla. Klikkaa tästä muokataksesi suodatinta.",
-    "filter-to-selection": "Suodata valintaan",
-    "fullname": "Koko nimi",
-    "header-logo-title": "Palaa taulut sivullesi.",
-    "home": "Koti",
-    "import": "Tuo",
-    "import-board": "tuo Trellosta",
-    "import-board-trello-instruction": "Trello taulullasi, mene 'Menu', sitten 'More', 'Print and Export', 'Export JSON', ja kopioi tuloksena saamasi teksti",
-    "import-card": "Tuo Trello kortti",
-    "import-card-trello-instruction": "Mene Trello kortille, valitse 'Share and more...' sitten 'Export JSON' ja kopioi tuloksena saamasi teksti",
-    "import-json-placeholder": "Liitä kelvollinen JSON tietosi tähän",
-    "import-members-map": "Tuomallasi taululla on muutamia jäseniä. Ole hyvä ja valitse tuomiasi jäseniä vastaavat  Wekan käyttäjät",
-    "import-show-user-mapping": "Tarkasta vastaavat jäsenet",
-    "import-user-select": "Valitse Wekan käyttäjä jota haluat käyttää tänä käyttäjänä",
-    "info": "Tietoja",
-    "initials": "Nimikirjaimet",
-    "joined": "liittyi",
-    "just-invited": "Sinut on juuri kutsuttu tälle taululle",
-    "keyboard-shortcuts": "Pikanäppäimet",
-    "label-create": "Luo uusi tunniste",
-    "label-default": "%s tunniste (oletus)",
-    "label-delete-pop": "Tätä ei voi peruuttaa. Tämä poistaa tämän tunnisteen kaikista korteista ja tuhoaa sen historian.",
-    "labels": "Tunnisteet",
-    "language": "Kieli",
-    "last-admin-desc": "Et voi vaihtaa rooleja koska täytyy olla olemassa ainakin yksi ylläpitäjä.",
-    "leave-board": "Jää pois taululta",
-    "link-card": "Linkki tähän korttiin",
-    "list-archive-cards": "Arkistoi kaikki kortit tässä listassa",
-    "list-archive-cards-pop": "Tämä poistaa kaikki tämän listan kortit tältä taululta. Nähdäksesi arkistoidut kortit ja tuodaksesi ne takaisin taululle, klikkaa “Valikko” > “Arkistoidut kohteet”.",
-    "list-move-cards": "Siirrä kaikki kortit tässä listassa",
-    "list-select-cards": "Valitse kaikki kortit tässä listassa",
-    "listActionPopup-title": "Listaa toimet",
-    "listImportCardPopup-title": "Tuo Trello kortti",
-    "lists": "Listat",
-    "log-out": "Kirjaudu ulos",
-    "loginPopup-title": "Kirjaudu sisään",
-    "mapMembersAddPopup-title": "Valitse Wekan käyttäjä",
-    "mapMembersPopup-title": "Vastaavat jäsenet",
-    "memberMenuPopup-title": "Jäsen asetukset",
-    "members": "Jäsenet",
-    "menu": "Valikko",
+    "filter": "Filter",
+    "filter-cards": "Filter Cards",
+    "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
+    "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",
+    "fullname": "Full Name",
+    "header-logo-title": "Go back to your boards page.",
+    "hide-system-messages": "Hide system messages",
+    "home": "Home",
+    "import": "Import",
+    "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
+    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
+    "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": "Infos",
+    "initials": "Initials",
+    "invalid-date": "Invalid date",
+    "joined": "joined",
+    "just-invited": "You are just invited to this board",
+    "keyboard-shortcuts": "Keyboard shortcuts",
+    "label-create": "Create a new 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",
+    "link-card": "Link to this card",
+    "list-archive-cards": "Archive all cards in this list",
+    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
+    "list-move-cards": "Move all cards in this list",
+    "list-select-cards": "Select all cards in this list",
+    "listActionPopup-title": "List Actions",
+    "listImportCardPopup-title": "Import a Trello card",
+    "lists": "Lists",
+    "log-out": "Log Out",
+    "log-in": "Log In",
+    "loginPopup-title": "Log In",
+    "memberMenuPopup-title": "Member Settings",
+    "members": "Members",
+    "menu": "Menu",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
-    "moveCardPopup-title": "Siirrä kortti",
+    "moveCardPopup-title": "Move Card",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Move selection",
     "moveSelectionPopup-title": "Move selection",
-    "multi-selection": "Monivalinta",
-    "multi-selection-on": "Monivalinta on päällä",
-    "my-boards": "Tauluni",
-    "name": "Nimi",
-    "no-archived-cards": "Ei arkistoituja kortteja.",
-    "no-archived-lists": "Ei arkistoituja listoja.",
-    "no-results": "Ei tuloksia",
-    "normal": "Normaali",
-    "normal-desc": "Voi nähdä ja muokata kortteja. Ei voi muokata asetuksia.",
-    "not-accepted-yet": "Kutsua ei ole hyväksytty vielä",
-    "optional": "valinnainen",
-    "or": "tai",
-    "page-maybe-private": "Tämä sivu voi olla yksityinen. Voit ehkä pystyä näkemään sen <a href='%s'>kirjautumalla sisään</a>.",
-    "page-not-found": "Sivua ei löytynyt.",
-    "password": "Salasana",
-    "paste-or-dragdrop": "liittääksesi, tai vedä & pudota kuvatiedosto siihen (vain kuva)",
-    "preview": "Esikatsele",
-    "previewAttachedImagePopup-title": "Esikatsele",
-    "previewClipboardImagePopup-title": "Esikatsele",
-    "private": "Yksityinen",
-    "private-desc": "Tämä taulu on yksityinen. Vain taululle lisätyt henkilöt voivat nähdä ja muokata sitä.",
-    "profile": "Profiili",
-    "public": "Julkinen",
-    "public-desc": "Tämä taulu on julkinen. Se näkyy kenelle tahansa jolla on linkki ja näkyy myös hakukoneissa kuten Google. Vain taululle lisätyt henkilöt voivat muokata sitä.",
-    "quick-access-description": "Merkkaa taulu tähdellä lisätäksesi pikavalinta tähän palkkiin.",
-    "remove-cover": "Poista kansi",
-    "remove-from-board": "Poista taululta",
-    "remove-label": "Poista tunniste",
-    "remove-member": "Poista jäsen",
-    "remove-member-from-card": "Poista kortilta",
-    "remove-member-pop": "Poista __name__ (__username__) taululta __boardTitle__? Jäsen poistetaan kaikilta taulun korteilta. Heille lähetetään ilmoitus.",
-    "removeMemberPopup-title": "Poista jäsen?",
-    "rename": "Nimeä uudelleen",
-    "rename-board": "Nimeä taulu uudelleen",
-    "restore": "Palauta",
-    "save": "Tallenna",
-    "search": "Etsi",
-    "select-color": "Valitse väri",
-    "shortcut-assign-self": "Valitse itsesi nykyiselle kortille",
-    "shortcut-autocomplete-emoji": "Automaattinen täydennys emojille",
-    "shortcut-autocomplete-members": "Automaattinen täydennys jäsenille",
-    "shortcut-clear-filters": "Poista kaikki suodattimet",
-    "shortcut-close-dialog": "Sulje valintaikkuna",
-    "shortcut-filter-my-cards": "Suodata korttini",
-    "shortcut-show-shortcuts": "Tuo esiin tämä pikavalinta lista",
-    "shortcut-toggle-filterbar": "Vaihda suodatus sivupalkin näkyvyys",
-    "shortcut-toggle-sidebar": "Vaihda taulu sivupalkin näkyvyys",
-    "signupPopup-title": "Luo tili",
-    "star-board-title": "Klikkaa merkataksesi taulu tähdellä. Se tulee näkymään ylimpänä taululistallasi.",
-    "starred-boards": "Tähdellä merkatut taulut",
-    "starred-boards-description": "Tähdellä merkatut taulut näkyvät ylimpänä taululistallasi.",
-    "subscribe": "Tilaa",
-    "team": "Tiimi",
-    "this-board": "tämä taulu",
-    "this-card": "tämä kortti",
-    "title": "Otsikko",
-    "unassign-member": "Peru jäsenvalinta",
-    "unsaved-description": "Sinulla on tallentamaton kuvaus.",
-    "upload": "Lähetä",
-    "upload-avatar": "Lähetä profiilikuva",
-    "uploaded-avatar": "Profiilikuva lähetetty",
-    "username": "Käyttäjänimi",
-    "view-it": "Näytä se",
-    "warn-list-archived": "varoitus: tämä kortti on arkistoitujen listalla",
-    "what-to-do": "Mitä haluat tehdä?"
-}
+    "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 archived cards.",
+    "no-archived-lists": "No archived lists.",
+    "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 the label",
+    "remove-list": "Remove the 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",
+    "select-color": "Select a color",
+    "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",
+    "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",
+    "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.",
+    "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 archived list",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "What do you want to do?"
+}

+ 70 - 9
i18n/fr.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Accepter",
     "accept": "Accepter",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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",
     "actions": "Actions",
     "activities": "Activités",
     "activities": "Activités",
     "activity": "Activité",
     "activity": "Activité",
@@ -16,10 +36,13 @@
     "activity-removed": "a supprimé %s vers %s",
     "activity-removed": "a supprimé %s vers %s",
     "activity-sent": "a envoyé %s vers %s",
     "activity-sent": "a envoyé %s vers %s",
     "activity-unjoined": "a quitté %s",
     "activity-unjoined": "a quitté %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Ajouter",
     "add": "Ajouter",
     "add-attachment": "Joindre un fichier",
     "add-attachment": "Joindre un fichier",
     "add-board": "Ajouter un nouveau tableau",
     "add-board": "Ajouter un nouveau tableau",
     "add-card": "Ajouter une carte",
     "add-card": "Ajouter une carte",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Ajouter la couverture",
     "add-cover": "Ajouter la couverture",
     "add-label": "Ajouter une étiquette",
     "add-label": "Ajouter une étiquette",
     "add-list": "Ajouter une liste",
     "add-list": "Ajouter une liste",
@@ -31,6 +54,8 @@
     "all-boards": "Tous les tableaux",
     "all-boards": "Tous les tableaux",
     "and-n-other-card": "Et __count__ autre carte",
     "and-n-other-card": "Et __count__ autre carte",
     "and-n-other-card_plural": "Et __count__ autres cartes",
     "and-n-other-card_plural": "Et __count__ autres cartes",
+    "apply": "Appliquer",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Archiver",
     "archive": "Archiver",
     "archive-all": "Tout archiver",
     "archive-all": "Tout archiver",
     "archive-board": "Archiver le tableau",
     "archive-board": "Archiver le tableau",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Elle ne peut être annulée.",
     "attachment-delete-pop": "La suppression d'une pièce jointe est définitive. Elle ne peut être annulée.",
     "attachmentDeletePopup-title": "Supprimer la pièce jointe ?",
     "attachmentDeletePopup-title": "Supprimer la pièce jointe ?",
     "attachments": "Pièces jointes",
     "attachments": "Pièces jointes",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "La taille du fichier de l’avatar est trop importante (70 Ko au maximum)",
     "avatar-too-big": "La taille du fichier de l’avatar est trop importante (70 Ko au maximum)",
     "back": "Retour",
     "back": "Retour",
     "board-change-color": "Changer la couleur",
     "board-change-color": "Changer la couleur",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Change la fond du tableau",
     "boardChangeColorPopup-title": "Change la fond du tableau",
     "boardChangeTitlePopup-title": "Renommer le tableau",
     "boardChangeTitlePopup-title": "Renommer le tableau",
     "boardChangeVisibilityPopup-title": "Changer la visibilité",
     "boardChangeVisibilityPopup-title": "Changer la visibilité",
-    "boardImportBoardPopup-title": "Importer le tableau depuis Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Menu du tableau",
     "boardMenuPopup-title": "Menu du tableau",
     "boards": "Tableaux",
     "boards": "Tableaux",
     "bucket-example": "Comme « todo list » par exemple",
     "bucket-example": "Comme « todo list » par exemple",
@@ -66,11 +92,15 @@
     "card-delete-notice": "La suppression est permanente. Vous perdrez toutes les actions associées à cette carte.",
     "card-delete-notice": "La suppression est permanente. Vous perdrez toutes les actions associées à cette carte.",
     "card-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser cette carte. Cette action est irréversible.",
     "card-delete-pop": "Toutes les actions vont être supprimées du suivi d'activités et vous ne pourrez plus utiliser cette carte. Cette action est irréversible.",
     "card-delete-suggest-archive": "Vous pouvez archiver une carte pour la supprimer en préservant le suivi des activités.",
     "card-delete-suggest-archive": "Vous pouvez archiver une carte pour la supprimer en préservant le suivi des activités.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Editer les pièces jointes",
     "card-edit-attachments": "Editer les pièces jointes",
     "card-edit-labels": "Editer les étiquettes",
     "card-edit-labels": "Editer les étiquettes",
     "card-edit-members": "Modifier les membres",
     "card-edit-members": "Modifier les membres",
     "card-labels-title": "Modifier les étiquettes de la carte.",
     "card-labels-title": "Modifier les étiquettes de la carte.",
     "card-members-title": "Ajouter ou supprimer des membres à la carte.",
     "card-members-title": "Ajouter ou supprimer des membres à la carte.",
+    "card-start": "Début",
+    "card-start-on": "Commence le",
     "cardAttachmentsPopup-title": "Joindre depuis",
     "cardAttachmentsPopup-title": "Joindre depuis",
     "cardDeletePopup-title": "Supprimer la carte ?",
     "cardDeletePopup-title": "Supprimer la carte ?",
     "cardDetailsActionsPopup-title": "Actions sur la carte",
     "cardDetailsActionsPopup-title": "Actions sur la carte",
@@ -82,10 +112,13 @@
     "change-avatar": "Changer l'avatar",
     "change-avatar": "Changer l'avatar",
     "change-password": "Changer le mot de passe",
     "change-password": "Changer le mot de passe",
     "change-permissions": "Changer les permissions",
     "change-permissions": "Changer les permissions",
+    "change-settings": "Modifier les paramètres",
     "changeAvatarPopup-title": "Changer l'avatar",
     "changeAvatarPopup-title": "Changer l'avatar",
     "changeLanguagePopup-title": "Changer la langue",
     "changeLanguagePopup-title": "Changer la langue",
     "changePasswordPopup-title": "Changer le mot de passe",
     "changePasswordPopup-title": "Changer le mot de passe",
     "changePermissionsPopup-title": "Changer les permissions",
     "changePermissionsPopup-title": "Changer les permissions",
+    "changeSettingsPopup-title": "Modifier les paramètres",
+    "checklists": "Checklists",
     "click-to-star": "Cliquez pour ajouter ce tableau aux favoris.",
     "click-to-star": "Cliquez pour ajouter ce tableau aux favoris.",
     "click-to-unstar": "Cliquez pour retirer ce tableau des favoris.",
     "click-to-unstar": "Cliquez pour retirer ce tableau des favoris.",
     "clipboard": "Presse-papier ou glisser-déposer",
     "clipboard": "Presse-papier ou glisser-déposer",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Créer un tableau",
     "createBoardPopup-title": "Créer un tableau",
     "createLabelPopup-title": "Créer un étiquette",
     "createLabelPopup-title": "Créer un étiquette",
     "current": "courant",
     "current": "courant",
+    "date": "Date",
     "decline": "Refuser",
     "decline": "Refuser",
     "default-avatar": "Avatar par défaut",
     "default-avatar": "Avatar par défaut",
     "delete": "Supprimer",
     "delete": "Supprimer",
@@ -122,7 +156,10 @@
     "edit": "Éditer",
     "edit": "Éditer",
     "edit-avatar": "Changer l'avatar",
     "edit-avatar": "Changer l'avatar",
     "edit-profile": "Éditer le profil",
     "edit-profile": "Éditer le profil",
+    "editCardStartDatePopup-title": "Modifier la date de début",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Changer l'étiquette",
     "editLabelPopup-title": "Changer l'étiquette",
+    "editNotificationPopup-title": "Modifier la Notification",
     "editProfilePopup-title": "Éditer le profil",
     "editProfilePopup-title": "Éditer le profil",
     "email": "Email",
     "email": "Email",
     "email-enrollAccount-subject": "Un compte a été créé pour vous sur __siteName__",
     "email-enrollAccount-subject": "Un compte a été créé pour vous sur __siteName__",
@@ -145,28 +182,34 @@
     "error-list-doesNotExist": "Cette liste n’existe pas",
     "error-list-doesNotExist": "Cette liste n’existe pas",
     "error-user-doesNotExist": "Cet utilisateur n’existe pas",
     "error-user-doesNotExist": "Cet utilisateur n’existe pas",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
-    "error-user-notCreated": "Cet utilisateur n’a pas encore été créé. ",
+    "error-user-notCreated": "Cet utilisateur n’a pas encore été créé.",
+    "error-username-taken": "Ce nom d'utilisateur est déjà pris",
     "export-board": "Exporter le tableau",
     "export-board": "Exporter le tableau",
     "filter": "Filtrer",
     "filter": "Filtrer",
     "filter-cards": "Filtrer les cartes",
     "filter-cards": "Filtrer les cartes",
     "filter-clear": "Retirer les filtres",
     "filter-clear": "Retirer les filtres",
+    "filter-no-label": "Aucun libellé",
+    "filter-no-member": "Aucun membre",
     "filter-on": "Le filtre est actif",
     "filter-on": "Le filtre est actif",
     "filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour changer les filtres.",
     "filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour changer les filtres.",
     "filter-to-selection": "Filtre vers la sélection",
     "filter-to-selection": "Filtre vers la sélection",
     "fullname": "Nom complet",
     "fullname": "Nom complet",
     "header-logo-title": "Retourner à la page des tableaux",
     "header-logo-title": "Retourner à la page des tableaux",
+    "hide-system-messages": "Masquer les messages système",
     "home": "Accueil",
     "home": "Accueil",
     "import": "Importer",
     "import": "Importer",
     "import-board": "Importer depuis Trello",
     "import-board": "Importer depuis Trello",
+    "import-board-title": "Importer le tableau depuis Trello",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Importer une carte Trello",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
-    "import-json-placeholder": "Collez ici les données JSON valides. ",
-    "import-members-map": "Le tableau que vous venez d’importer contient des participants. Veuillez associer les participants que vous souhaitez importer à des utilisateurs de Wekan. ",
+    "import-json-placeholder": "Collez ici les données JSON valides.",
+    "import-map-members": "Map members",
+    "import-members-map": "Le tableau que vous venez d’importer contient des participants. Veuillez associer les participants que vous souhaitez importer à des utilisateurs de Wekan.",
     "import-show-user-mapping": "Review members mapping",
     "import-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Sélectionner le membre Wekan",
     "info": "Infos",
     "info": "Infos",
     "initials": "Initiales",
     "initials": "Initiales",
+    "invalid-date": "Date invalide",
     "joined": "a joint",
     "joined": "a joint",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
     "keyboard-shortcuts": "Raccourcis clavier",
     "keyboard-shortcuts": "Raccourcis clavier",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Importer une carte Trello",
     "listImportCardPopup-title": "Importer une carte Trello",
     "lists": "Listes",
     "lists": "Listes",
     "log-out": "Déconnexion",
     "log-out": "Déconnexion",
+    "log-in": "Connexion",
     "loginPopup-title": "Connexion",
     "loginPopup-title": "Connexion",
-    "mapMembersAddPopup-title": "Sélectioner le membre Wekan",
-    "mapMembersPopup-title": "Associer les membres",
     "memberMenuPopup-title": "Préférence de membre",
     "memberMenuPopup-title": "Préférence de membre",
     "members": "Membres",
     "members": "Membres",
     "menu": "Menu",
     "menu": "Menu",
     "move-selection": "Déplacer la sélection",
     "move-selection": "Déplacer la sélection",
     "moveCardPopup-title": "Déplacer la carte",
     "moveCardPopup-title": "Déplacer la carte",
+    "moveCardToBottom-title": "Aller en bas",
+    "moveCardToTop-title": "Aller en haut",
     "moveSelectionPopup-title": "Déplacer la sélection",
     "moveSelectionPopup-title": "Déplacer la sélection",
     "multi-selection": "Sélection multiple",
     "multi-selection": "Sélection multiple",
     "multi-selection-on": "Multi-Selection active",
     "multi-selection-on": "Multi-Selection active",
+    "muted": "Muted",
+    "muted-info": "Vous ne serez jamais averti des modifications effectuées dans ce tableau",
     "my-boards": "Mes tableaux",
     "my-boards": "Mes tableaux",
     "name": "Nom",
     "name": "Nom",
     "no-archived-cards": "Pas de carte archivée.",
     "no-archived-cards": "Pas de carte archivée.",
@@ -205,12 +251,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Peut voir et éditer les cartes. Ne peut pas changer les paramètres.",
     "normal-desc": "Peut voir et éditer les cartes. Ne peut pas changer les paramètres.",
     "not-accepted-yet": "L’invitation n’a pas encore été acceptée",
     "not-accepted-yet": "L’invitation n’a pas encore été acceptée",
+    "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": "optionnel",
     "optional": "optionnel",
     "or": "ou",
     "or": "ou",
     "page-maybe-private": "Cette page est peut-être privée. Vous pourrez peut-être la voir en vous <a href='%s'>connectant</a>.",
     "page-maybe-private": "Cette page est peut-être privée. Vous pourrez peut-être la voir en vous <a href='%s'>connectant</a>.",
     "page-not-found": "Page non trouvée",
     "page-not-found": "Page non trouvée",
     "password": "Mot de passe",
     "password": "Mot de passe",
     "paste-or-dragdrop": "pour coller, ou glissez-déposez une image ici (seulement une image)",
     "paste-or-dragdrop": "pour coller, ou glissez-déposez une image ici (seulement une image)",
+    "participating": "Participating",
     "preview": "Prévisualiser",
     "preview": "Prévisualiser",
     "previewAttachedImagePopup-title": "Prévisualiser",
     "previewAttachedImagePopup-title": "Prévisualiser",
     "previewClipboardImagePopup-title": "Prévisualiser",
     "previewClipboardImagePopup-title": "Prévisualiser",
@@ -223,6 +272,7 @@
     "remove-cover": "Enlever la couverture",
     "remove-cover": "Enlever la couverture",
     "remove-from-board": "Retirer du tableau",
     "remove-from-board": "Retirer du tableau",
     "remove-label": "Retirer cette étiquette",
     "remove-label": "Retirer cette étiquette",
+    "remove-list": "Supprimer la liste",
     "remove-member": "Supprimer le membre",
     "remove-member": "Supprimer le membre",
     "remove-member-from-card": "Supprimer de la carte",
     "remove-member-from-card": "Supprimer de la carte",
     "remove-member-pop": "Supprimer __name__ (__username__) de __boardTitle__ ? Ce membre sera supprimé de toutes les cartes du tableau et recevra une notification.",
     "remove-member-pop": "Supprimer __name__ (__username__) de __boardTitle__ ? Ce membre sera supprimé de toutes les cartes du tableau et recevra une notification.",
@@ -234,7 +284,7 @@
     "search": "Chercher",
     "search": "Chercher",
     "select-color": "Choisissez une couleur",
     "select-color": "Choisissez une couleur",
     "shortcut-assign-self": "Assign yourself to current card",
     "shortcut-assign-self": "Assign yourself to current card",
-    "shortcut-autocomplete-emojies": "Auto-complétion des emojies",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Auto-complétion des membres",
     "shortcut-autocomplete-members": "Auto-complétion des membres",
     "shortcut-clear-filters": "Retirer tous les filtres",
     "shortcut-clear-filters": "Retirer tous les filtres",
     "shortcut-close-dialog": "Fermer le dialogue",
     "shortcut-close-dialog": "Fermer le dialogue",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
     "shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
     "shortcut-toggle-filterbar": "Afficher/Cacher la barre latérale des filtres",
     "shortcut-toggle-filterbar": "Afficher/Cacher la barre latérale des filtres",
     "shortcut-toggle-sidebar": "Afficher/Cacher la barre latérale du tableau",
     "shortcut-toggle-sidebar": "Afficher/Cacher la barre latérale du tableau",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Créer un compe",
     "signupPopup-title": "Créer un compe",
     "star-board-title": "Cliquer pour ajouter ce tableau aux favoris. Il sera affiché en haut de votre liste de tableaux.",
     "star-board-title": "Cliquer pour ajouter ce tableau aux favoris. Il sera affiché en haut de votre liste de tableaux.",
     "starred-boards": "Tableaux favoris",
     "starred-boards": "Tableaux favoris",
@@ -250,14 +301,24 @@
     "team": "Équipe",
     "team": "Équipe",
     "this-board": "ce tableau",
     "this-board": "ce tableau",
     "this-card": "cette carte",
     "this-card": "cette carte",
+    "time": "Time",
     "title": "Titre",
     "title": "Titre",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Retirer le membre",
     "unassign-member": "Retirer le membre",
     "unsaved-description": "Vous avez une description non sauvegardée",
     "unsaved-description": "Vous avez une description non sauvegardée",
+    "unwatch": "Unwatch",
     "upload": "Télécharger",
     "upload": "Télécharger",
     "upload-avatar": "Télécharger un avatar",
     "upload-avatar": "Télécharger un avatar",
     "uploaded-avatar": "Avatar téléchargé",
     "uploaded-avatar": "Avatar téléchargé",
     "username": "Nom d'utilisateur",
     "username": "Nom d'utilisateur",
     "view-it": "Le voir",
     "view-it": "Le voir",
     "warn-list-archived": "Attention : cette carte est dans une liste archivée",
     "warn-list-archived": "Attention : cette carte est dans une liste archivée",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "Que voulez-vous faire ?"
     "what-to-do": "Que voulez-vous faire ?"
 }
 }

+ 69 - 8
i18n/he.i18n.json

@@ -1,10 +1,30 @@
 {
 {
     "accept": "אישור",
     "accept": "אישור",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": " __attachment__ שוייך ל- __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "הלוח __board__ נוצר",
+    "act-createCard": "הכרטיס __card__ התווסף לרשימה __list__",
+    "act-createList": "הרשימה __list__ התווספה ללוח __board__",
+    "act-addBoardMember": "המשתמש __member__ שויך ללוח __board__",
+    "act-archivedBoard": "הלוח  __board__ הועבר לארכיון",
+    "act-archivedCard": "הכרטיס __card__ הועבר לארכיון",
+    "act-archivedList": "הרשימה __card__ הועברה לארכיון",
+    "act-importBoard": "הלוח __board__ יובא",
+    "act-importCard": "הכרטיס __card__ יובא",
+    "act-importList": "הרשימה  __list__ יובאה",
+    "act-joinMember": "המשתמש  __member__ שוייך לכרטיס __card__",
+    "act-moveCard": "הכרטיס __card__ הועבר מהרשימה __oldList__ לרשימה __list__",
+    "act-removeBoardMember": "המשתמש __member__ הוסר מהלוח __board__",
+    "act-restoredCard": "הכרטיס __card__ שוחזר ללוח __board__",
+    "act-unjoinMember": "המשתמש __member__ הוסר מהכרטיס __card__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "פעולות",
     "actions": "פעולות",
     "activities": "פעילויות",
     "activities": "פעילויות",
     "activity": "פעילות",
     "activity": "פעילות",
     "activity-added": "%s נוסף ל%s",
     "activity-added": "%s נוסף ל%s",
-    "activity-archived": "%s בארכיון",
+    "activity-archived": "%s אורכב",
     "activity-attached": "%s צורף ל%s",
     "activity-attached": "%s צורף ל%s",
     "activity-created": "%s נוצר",
     "activity-created": "%s נוצר",
     "activity-excluded": "%s לא נכלל ב%s",
     "activity-excluded": "%s לא נכלל ב%s",
@@ -16,10 +36,13 @@
     "activity-removed": "%s הוסר מ%s",
     "activity-removed": "%s הוסר מ%s",
     "activity-sent": "%s נשלח ל%s",
     "activity-sent": "%s נשלח ל%s",
     "activity-unjoined": "בטל צירוף %s",
     "activity-unjoined": "בטל צירוף %s",
+    "activity-checklist-added": "רשימת משימות התווספה ל- %s",
     "add": "הוסף",
     "add": "הוסף",
     "add-attachment": "הוסף קובץ",
     "add-attachment": "הוסף קובץ",
     "add-board": "הוסף לוח חדש",
     "add-board": "הוסף לוח חדש",
     "add-card": "הוסף כרטיס",
     "add-card": "הוסף כרטיס",
+    "add-checklist": "הוסף רשימת משימות",
+    "add-checklist-item": "הוסף פריט לרשימת משימות",
     "add-cover": "הוסף כיסוי",
     "add-cover": "הוסף כיסוי",
     "add-label": "הוסף תווית",
     "add-label": "הוסף תווית",
     "add-list": "הוסף רשימה",
     "add-list": "הוסף רשימה",
@@ -31,6 +54,8 @@
     "all-boards": "כל הלוחות",
     "all-boards": "כל הלוחות",
     "and-n-other-card": "ו __count__ כרטיס אחר",
     "and-n-other-card": "ו __count__ כרטיס אחר",
     "and-n-other-card_plural": "ו __count__ כרטיסים אחרים",
     "and-n-other-card_plural": "ו __count__ כרטיסים אחרים",
+    "apply": "אשר שינויים",
+    "app-is-offline": "המערכת למטה כרגע, ריענון של הדף יגרום לאבדן מידע",
     "archive": "אחסן בארכיון",
     "archive": "אחסן בארכיון",
     "archive-all": "אחסן הכל בארכיון",
     "archive-all": "אחסן הכל בארכיון",
     "archive-board": "אחסן לוח בארכיון",
     "archive-board": "אחסן לוח בארכיון",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "מחיקת קובץ מצורף הינה סופית. אין דרך חזרה.",
     "attachment-delete-pop": "מחיקת קובץ מצורף הינה סופית. אין דרך חזרה.",
     "attachmentDeletePopup-title": "למחוק קובץ מצורף?",
     "attachmentDeletePopup-title": "למחוק קובץ מצורף?",
     "attachments": "קבצים מצורפים",
     "attachments": "קבצים מצורפים",
+    "auto-watch": "עקוב באופן אוטומטי אחרי לוחות אחרי שהם נוצרים",
     "avatar-too-big": "האווטאר גדול מידי (מקס 70Kb)",
     "avatar-too-big": "האווטאר גדול מידי (מקס 70Kb)",
     "back": "חזור",
     "back": "חזור",
     "board-change-color": "שנה צבע",
     "board-change-color": "שנה צבע",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "שנה רקע ללוח",
     "boardChangeColorPopup-title": "שנה רקע ללוח",
     "boardChangeTitlePopup-title": "שנה שם ללוח",
     "boardChangeTitlePopup-title": "שנה שם ללוח",
     "boardChangeVisibilityPopup-title": "שנה תצוגה",
     "boardChangeVisibilityPopup-title": "שנה תצוגה",
-    "boardImportBoardPopup-title": "ייבא לוח מטרלו",
+    "boardChangeWatchPopup-title": "שנה את הגדרת המעקב",
     "boardMenuPopup-title": "תפריט לוח",
     "boardMenuPopup-title": "תפריט לוח",
     "boards": "לוחות",
     "boards": "לוחות",
     "bucket-example": "כמו “Bucket List” לדוגמא",
     "bucket-example": "כמו “Bucket List” לדוגמא",
@@ -66,11 +92,15 @@
     "card-delete-notice": "מחיקה היא סופית. תאבדו את כל הפעולות המשויכות לכרטיס זה.",
     "card-delete-notice": "מחיקה היא סופית. תאבדו את כל הפעולות המשויכות לכרטיס זה.",
     "card-delete-pop": "כל הפעולות יוסרו מלוח הפעילות ולא תוכלו לפתוח מחדש את הכרטיס. אין דרך חזרה.",
     "card-delete-pop": "כל הפעולות יוסרו מלוח הפעילות ולא תוכלו לפתוח מחדש את הכרטיס. אין דרך חזרה.",
     "card-delete-suggest-archive": "באפשרותך לאחסן בארכיון כרטיס כדי להסירו מהלוח ולשמר את הפעילות.",
     "card-delete-suggest-archive": "באפשרותך לאחסן בארכיון כרטיס כדי להסירו מהלוח ולשמר את הפעילות.",
+    "card-due": "תאריך יעד",
+    "card-due-on": "תאריך יעד",
     "card-edit-attachments": "ערוך קבצים מצורפים",
     "card-edit-attachments": "ערוך קבצים מצורפים",
-    "card-edit-labels": "ערוך תוויות ",
+    "card-edit-labels": "ערוך תוויות",
     "card-edit-members": "ערוך חברים",
     "card-edit-members": "ערוך חברים",
     "card-labels-title": "שנה תוויות לכרטיס.",
     "card-labels-title": "שנה תוויות לכרטיס.",
     "card-members-title": "הוסף או הסר את חברי הלוח מהכרטיס",
     "card-members-title": "הוסף או הסר את חברי הלוח מהכרטיס",
+    "card-start": "התחל",
+    "card-start-on": "מתחיל ב-",
     "cardAttachmentsPopup-title": "צרף מ",
     "cardAttachmentsPopup-title": "צרף מ",
     "cardDeletePopup-title": "למחוק כרטיס?",
     "cardDeletePopup-title": "למחוק כרטיס?",
     "cardDetailsActionsPopup-title": "פעולות על הכרטיס",
     "cardDetailsActionsPopup-title": "פעולות על הכרטיס",
@@ -82,10 +112,13 @@
     "change-avatar": "שנה אווטאר",
     "change-avatar": "שנה אווטאר",
     "change-password": "שנה סיסמא",
     "change-password": "שנה סיסמא",
     "change-permissions": "שנה הרשאות",
     "change-permissions": "שנה הרשאות",
+    "change-settings": "שנה הגדרות",
     "changeAvatarPopup-title": "שנה אווטאר",
     "changeAvatarPopup-title": "שנה אווטאר",
     "changeLanguagePopup-title": "שנה שפה",
     "changeLanguagePopup-title": "שנה שפה",
     "changePasswordPopup-title": "שנה סיסמא",
     "changePasswordPopup-title": "שנה סיסמא",
     "changePermissionsPopup-title": "שנה הרשאות",
     "changePermissionsPopup-title": "שנה הרשאות",
+    "changeSettingsPopup-title": "שנה הגדרות",
+    "checklists": "רשימות",
     "click-to-star": "לחץ להוספת הלוח למועדפים",
     "click-to-star": "לחץ להוספת הלוח למועדפים",
     "click-to-unstar": "לחץ להסרת הלוח מהמועדפים.",
     "click-to-unstar": "לחץ להסרת הלוח מהמועדפים.",
     "clipboard": "Clipboard or drag & drop",
     "clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "צור לוח",
     "createBoardPopup-title": "צור לוח",
     "createLabelPopup-title": "צור תווית",
     "createLabelPopup-title": "צור תווית",
     "current": "נוכחי",
     "current": "נוכחי",
+    "date": "תאריך",
     "decline": "סרב",
     "decline": "סרב",
     "default-avatar": "אווטאר דיפולטי",
     "default-avatar": "אווטאר דיפולטי",
     "delete": "מחק",
     "delete": "מחק",
@@ -122,7 +156,10 @@
     "edit": "ערוך",
     "edit": "ערוך",
     "edit-avatar": "שנה אווטאר",
     "edit-avatar": "שנה אווטאר",
     "edit-profile": "ערוך פרופיל",
     "edit-profile": "ערוך פרופיל",
+    "editCardStartDatePopup-title": "שנה זמן התחלה",
+    "editCardDueDatePopup-title": "שנה זמן סיום",
     "editLabelPopup-title": "שנה תווית",
     "editLabelPopup-title": "שנה תווית",
+    "editNotificationPopup-title": "שנה התראה",
     "editProfilePopup-title": "ערוך פרופיל",
     "editProfilePopup-title": "ערוך פרופיל",
     "email": "אמייל",
     "email": "אמייל",
     "email-enrollAccount-subject": "חשבון נוצר עבורך ב __siteName__",
     "email-enrollAccount-subject": "חשבון נוצר עבורך ב __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "משתמש זה לא קיים",
     "error-user-doesNotExist": "משתמש זה לא קיים",
     "error-user-notAllowSelf": "פעולה זו איננה מותרת",
     "error-user-notAllowSelf": "פעולה זו איננה מותרת",
     "error-user-notCreated": "משתמש זה לא נוצר",
     "error-user-notCreated": "משתמש זה לא נוצר",
+    "error-username-taken": "המשתמש כבר קיים במערכת",
     "export-board": "ייצא לוח",
     "export-board": "ייצא לוח",
     "filter": "מסנן",
     "filter": "מסנן",
     "filter-cards": "סנן כרטיסים",
     "filter-cards": "סנן כרטיסים",
     "filter-clear": "נקה מסנן",
     "filter-clear": "נקה מסנן",
+    "filter-no-label": "אין תווית",
+    "filter-no-member": "המשתמש לא קיים",
     "filter-on": "מסנן פועל",
     "filter-on": "מסנן פועל",
     "filter-on-desc": "מסנן כרטיסים בלוח זה פועל. יש ללחוץ כאן לעריכת המסנן.",
     "filter-on-desc": "מסנן כרטיסים בלוח זה פועל. יש ללחוץ כאן לעריכת המסנן.",
     "filter-to-selection": "סנן את הבחירה",
     "filter-to-selection": "סנן את הבחירה",
     "fullname": "שם מלא",
     "fullname": "שם מלא",
     "header-logo-title": "חזור לדף הלוחות שלך.",
     "header-logo-title": "חזור לדף הלוחות שלך.",
+    "hide-system-messages": "הסתר הודעות מערכת",
     "home": "בית",
     "home": "בית",
     "import": "ייבא",
     "import": "ייבא",
     "import-board": "ייבא מטרלו",
     "import-board": "ייבא מטרלו",
+    "import-board-title": "ייבא לוח מטרלו",
     "import-board-trello-instruction": "בלוח הטרלו שלך, עבור ל 'Menu', ואז ל 'More', 'Print and Export', 'Export JSON' והעתק את הטקסט שנוצר",
     "import-board-trello-instruction": "בלוח הטרלו שלך, עבור ל 'Menu', ואז ל 'More', 'Print and Export', 'Export JSON' והעתק את הטקסט שנוצר",
-    "import-card": "ייבא כרטיס מטרלו",
-    "import-card-trello-instruction": "עבור לכרטיס טרלו, בחר \"Share and more...\" ואז \"Export JSON\" והעתק את הטקסט שנוצר",
     "import-json-placeholder": "הדבק נתוני JSON תקינים כאן",
     "import-json-placeholder": "הדבק נתוני JSON תקינים כאן",
+    "import-map-members": "מפֱה חברים",
     "import-members-map": "הלוחות המיובאים שלך מכילים חברים. בבקשה מפה את החברים שתרצה לייבא כמשתמשים",
     "import-members-map": "הלוחות המיובאים שלך מכילים חברים. בבקשה מפה את החברים שתרצה לייבא כמשתמשים",
     "import-show-user-mapping": "צפה במיפוי חברים",
     "import-show-user-mapping": "צפה במיפוי חברים",
     "import-user-select": "בחר במשתמש עבור חבר זה",
     "import-user-select": "בחר במשתמש עבור חבר זה",
+    "importMapMembersAddPopup-title": "בחר משתמש",
     "info": "אינפורמציה",
     "info": "אינפורמציה",
     "initials": "ראשי תיבות",
     "initials": "ראשי תיבות",
+    "invalid-date": "תאריך שגוי",
     "joined": "הצטרף",
     "joined": "הצטרף",
     "just-invited": "הוזמנת ללוח זה",
     "just-invited": "הוזמנת ללוח זה",
     "keyboard-shortcuts": "קיצורי מקלדת",
     "keyboard-shortcuts": "קיצורי מקלדת",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "ייבא כרטיס מטרלו",
     "listImportCardPopup-title": "ייבא כרטיס מטרלו",
     "lists": "רשימות",
     "lists": "רשימות",
     "log-out": "התנתק",
     "log-out": "התנתק",
+    "log-in": "התחבר",
     "loginPopup-title": "התחבר",
     "loginPopup-title": "התחבר",
-    "mapMembersAddPopup-title": "בחר חבר",
-    "mapMembersPopup-title": "מפה חברים",
     "memberMenuPopup-title": "הגדרות חבר",
     "memberMenuPopup-title": "הגדרות חבר",
     "members": "חברים",
     "members": "חברים",
     "menu": "תפריט",
     "menu": "תפריט",
     "move-selection": "הזז בחירה",
     "move-selection": "הזז בחירה",
     "moveCardPopup-title": "הזז כרטיס",
     "moveCardPopup-title": "הזז כרטיס",
+    "moveCardToBottom-title": "העבר כרטיס לתחתית הרשימה",
+    "moveCardToTop-title": "העבר כרטיס לראש הרשימה ",
     "moveSelectionPopup-title": "הזז בחירה",
     "moveSelectionPopup-title": "הזז בחירה",
     "multi-selection": "בחירה מרובה",
     "multi-selection": "בחירה מרובה",
     "multi-selection-on": "בחירה מרובה פועלת",
     "multi-selection-on": "בחירה מרובה פועלת",
+    "muted": "השתק",
+    "muted-info": "מעתה אתה לא תקבל עוד התראות על שינויים בלוח זה",
     "my-boards": "הלוחות שלי",
     "my-boards": "הלוחות שלי",
     "name": "שם",
     "name": "שם",
     "no-archived-cards": "אין כרטיסים מאוחסנים בארכיון.",
     "no-archived-cards": "אין כרטיסים מאוחסנים בארכיון.",
@@ -205,12 +251,15 @@
     "normal": "נורמלי",
     "normal": "נורמלי",
     "normal-desc": "יכול לצפות ולערוך כרטיסים. לא יכול לשנות הגדרות.",
     "normal-desc": "יכול לצפות ולערוך כרטיסים. לא יכול לשנות הגדרות.",
     "not-accepted-yet": "הזמנה לא התקבלה עדיין",
     "not-accepted-yet": "הזמנה לא התקבלה עדיין",
+    "notify-participate": "קבל התראות על שינויים בכרטיסים שיצרת או שבהם אתה חבר",
+    "notify-watch": "קבל התראות על עדכונים בכל לוח, רשימה או כרטיס שבהם אתה חבר",
     "optional": "אופציונלי",
     "optional": "אופציונלי",
     "or": "או",
     "or": "או",
     "page-maybe-private": "יתכן שדף זה פרטי. תוכלו לצפות על ידי <a href='%s'>התחברות למערכת</a>",
     "page-maybe-private": "יתכן שדף זה פרטי. תוכלו לצפות על ידי <a href='%s'>התחברות למערכת</a>",
     "page-not-found": "דף לא נמצא.",
     "page-not-found": "דף לא נמצא.",
     "password": "סיסמא",
     "password": "סיסמא",
     "paste-or-dragdrop": "בכדי להדביק או drag & drop קובץ תמונה (תמונה בלבד)",
     "paste-or-dragdrop": "בכדי להדביק או drag & drop קובץ תמונה (תמונה בלבד)",
+    "participating": "Participating",
     "preview": "תצוגה מקדימה",
     "preview": "תצוגה מקדימה",
     "previewAttachedImagePopup-title": "תצוגה מקדימה",
     "previewAttachedImagePopup-title": "תצוגה מקדימה",
     "previewClipboardImagePopup-title": "תצוגה מקדימה",
     "previewClipboardImagePopup-title": "תצוגה מקדימה",
@@ -223,6 +272,7 @@
     "remove-cover": "הסר כיסוי",
     "remove-cover": "הסר כיסוי",
     "remove-from-board": "הסר מהלוח",
     "remove-from-board": "הסר מהלוח",
     "remove-label": "הסר תווית",
     "remove-label": "הסר תווית",
+    "remove-list": "הסר מהרשימה",
     "remove-member": "הסר חבר",
     "remove-member": "הסר חבר",
     "remove-member-from-card": "הסר מהכרטיס",
     "remove-member-from-card": "הסר מהכרטיס",
     "remove-member-pop": "הסר __name__ (__username__) מ __boardTitle__? החבר יוסר מכל הכרטיסים בלוח זה. הוא יקבל על כך הודעה.",
     "remove-member-pop": "הסר __name__ (__username__) מ __boardTitle__? החבר יוסר מכל הכרטיסים בלוח זה. הוא יקבל על כך הודעה.",
@@ -234,7 +284,7 @@
     "search": "חפש",
     "search": "חפש",
     "select-color": "בחר צבע",
     "select-color": "בחר צבע",
     "shortcut-assign-self": "הקצה את עצמך לכרטיס הנוכחי",
     "shortcut-assign-self": "הקצה את עצמך לכרטיס הנוכחי",
-    "shortcut-autocomplete-emojies": "השלמה אוטומטית של אימוג'יז",
+    "shortcut-autocomplete-emoji": "השלמה אוטומטית לפרצופונים (Emoji)",
     "shortcut-autocomplete-members": "השלמה אוטומטית של חברים",
     "shortcut-autocomplete-members": "השלמה אוטומטית של חברים",
     "shortcut-clear-filters": "נקה את כל המסננים",
     "shortcut-clear-filters": "נקה את כל המסננים",
     "shortcut-close-dialog": "סגור חלון",
     "shortcut-close-dialog": "סגור חלון",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "הבא רשימת קיצורי דרך זו",
     "shortcut-show-shortcuts": "הבא רשימת קיצורי דרך זו",
     "shortcut-toggle-filterbar": "החלף מצבי מסנן",
     "shortcut-toggle-filterbar": "החלף מצבי מסנן",
     "shortcut-toggle-sidebar": "החלף מצבי מסנן",
     "shortcut-toggle-sidebar": "החלף מצבי מסנן",
+    "show-cards-minimum-count": "הצג מספר כרטיסים אם הרשימה מכיל יותר כרטיסים מ-",
     "signupPopup-title": "צור חשבון",
     "signupPopup-title": "צור חשבון",
     "star-board-title": "בלחיצה על הכווכב של הלוח יתווסף הלוח לראש רשימת הלוחות שלך.",
     "star-board-title": "בלחיצה על הכווכב של הלוח יתווסף הלוח לראש רשימת הלוחות שלך.",
     "starred-boards": "לוחות שסומנו בכוכב",
     "starred-boards": "לוחות שסומנו בכוכב",
@@ -250,14 +301,24 @@
     "team": "צוות",
     "team": "צוות",
     "this-board": "לוח זה",
     "this-board": "לוח זה",
     "this-card": "כרטיס זה",
     "this-card": "כרטיס זה",
+    "time": "זמן",
     "title": "כותרת",
     "title": "כותרת",
+    "tracking": "Tracking",
+    "tracking-info": "אתה תקבל התראות על שינויים בכרטיסים שיצרת או שאתה חבר בהם",
     "unassign-member": "בטל הקצאת חבר",
     "unassign-member": "בטל הקצאת חבר",
     "unsaved-description": "יש לך תיאור לא שמור.",
     "unsaved-description": "יש לך תיאור לא שמור.",
+    "unwatch": "הספק מעקב",
     "upload": "העלה/טען",
     "upload": "העלה/טען",
     "upload-avatar": "העלה/ טען אווטאר",
     "upload-avatar": "העלה/ טען אווטאר",
     "uploaded-avatar": "אווטאר הועלה/נטען",
     "uploaded-avatar": "אווטאר הועלה/נטען",
     "username": "שם משתמש",
     "username": "שם משתמש",
     "view-it": "צפה",
     "view-it": "צפה",
     "warn-list-archived": "אזהרה: הכרטיס נמצא ברשימה שהועברה לארכיון",
     "warn-list-archived": "אזהרה: הכרטיס נמצא ברשימה שהועברה לארכיון",
+    "watch": "עקוב",
+    "watching": "עוקב",
+    "watching-info": "מעתה אתה תקבל התראות על עדכונים בלוח זה",
+    "welcome-board": "ברוך הבא ללוח",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "מה תרצה לעשות?"
     "what-to-do": "מה תרצה לעשות?"
 }
 }

+ 256 - 195
i18n/it.i18n.json

@@ -1,25 +1,48 @@
 {
 {
-    "accept": "Accept",
+    "accept": "Accetta",
+    "act-activity-notify": "[Wekan] Notifiche attività",
+    "act-addAttachment": "ha allegato __attachment__ a __card__",
+    "act-addComment": "ha commentato su __card__: __comment__",
+    "act-createBoard": "ha creato __board__",
+    "act-createCard": "ha aggiunto __card__ a __list__",
+    "act-createList": "ha aggiunto __list__ a __board__",
+    "act-addBoardMember": "ha aggiunto __member__ a __board__",
+    "act-archivedBoard": "ha archiviato __board__",
+    "act-archivedCard": "ha archiviato __card__",
+    "act-archivedList": "ha archiviato __list__",
+    "act-importBoard": "ha importato __board__",
+    "act-importCard": "ha importato __card__",
+    "act-importList": "ha importato __list__",
+    "act-joinMember": "ha aggiunto __member__ a __card__",
+    "act-moveCard": "ha spostato __card__ da __oldList__ a __list__",
+    "act-removeBoardMember": "ha rimosso __member__ da __board__",
+    "act-restoredCard": "ha ripristinato __card__ su __board__",
+    "act-unjoinMember": "ha rimosso __member__ da __card__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "Azioni",
     "actions": "Azioni",
     "activities": "Attività",
     "activities": "Attività",
     "activity": "Attività",
     "activity": "Attività",
-    "activity-added": "aggiunto %s a %s",
+    "activity-added": "ha aggiunto %s a %s",
     "activity-archived": "archiviato %s",
     "activity-archived": "archiviato %s",
     "activity-attached": "allegato %s a %s",
     "activity-attached": "allegato %s a %s",
     "activity-created": "creato %s",
     "activity-created": "creato %s",
     "activity-excluded": "escluso %s da %s",
     "activity-excluded": "escluso %s da %s",
-    "activity-imported": "imported %s into %s from %s",
-    "activity-imported-board": "imported %s from %s",
-    "activity-joined": "è stato unito %s",
+    "activity-imported": "importato %s in %s da %s",
+    "activity-imported-board": "importato %s da %s",
+    "activity-joined": "si è unito a %s",
     "activity-moved": "spostato %s da %s a %s",
     "activity-moved": "spostato %s da %s a %s",
     "activity-on": "su %s",
     "activity-on": "su %s",
     "activity-removed": "rimosso %s da %s",
     "activity-removed": "rimosso %s da %s",
     "activity-sent": "inviato %s a %s",
     "activity-sent": "inviato %s a %s",
-    "activity-unjoined": "unjoined %s",
+    "activity-unjoined": "ha abbandonato %s",
+    "activity-checklist-added": "aggiunta checklist a %s",
     "add": "Aggiungere",
     "add": "Aggiungere",
     "add-attachment": "Aggiungi allegato",
     "add-attachment": "Aggiungi allegato",
     "add-board": "Aggiungi una nuova bachecha",
     "add-board": "Aggiungi una nuova bachecha",
     "add-card": "Aggiungi una scheda",
     "add-card": "Aggiungi una scheda",
+    "add-checklist": "Aggiungi una checklist",
+    "add-checklist-item": "Aggiungi un elemento alla checklist",
     "add-cover": "Aggiungi copertina",
     "add-cover": "Aggiungi copertina",
     "add-label": "Aggiungi l'etichetta",
     "add-label": "Aggiungi l'etichetta",
     "add-list": "Aggiungi una lista",
     "add-list": "Aggiungi una lista",
@@ -31,21 +54,24 @@
     "all-boards": "Tutte le bacheche",
     "all-boards": "Tutte le bacheche",
     "and-n-other-card": "E __count__ altra scheda",
     "and-n-other-card": "E __count__ altra scheda",
     "and-n-other-card_plural": "E __count__ altre schede",
     "and-n-other-card_plural": "E __count__ altre schede",
+    "apply": "Applica",
+    "app-is-offline": "L'applicazione è al momento offline, ricaricando la pagina perderai i dati.",
     "archive": "Archivia",
     "archive": "Archivia",
     "archive-all": "Archivia tutto",
     "archive-all": "Archivia tutto",
     "archive-board": "Archivia bacheca",
     "archive-board": "Archivia bacheca",
     "archive-card": "Archivia scheda",
     "archive-card": "Archivia scheda",
     "archive-list": "Archivia questa lista",
     "archive-list": "Archivia questa lista",
     "archive-selection": "Archivia selezione",
     "archive-selection": "Archivia selezione",
-    "archiveBoardPopup-title": "Archive Board?",
+    "archiveBoardPopup-title": "Archivia Bacheca?",
     "archived-items": "Elementi archiviati",
     "archived-items": "Elementi archiviati",
-    "archives": "Archives",
-    "assign-member": "Assegna membri",
+    "archives": "Archivi",
+    "assign-member": "Aggiungi membro",
     "attached": "allegato",
     "attached": "allegato",
     "attachment": "Allegato",
     "attachment": "Allegato",
     "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile annullare.",
     "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile annullare.",
     "attachmentDeletePopup-title": "Eliminare l'allegato?",
     "attachmentDeletePopup-title": "Eliminare l'allegato?",
     "attachments": "Allegati",
     "attachments": "Allegati",
+    "auto-watch": "Segui automaticamente le bacheche quando le crei",
     "avatar-too-big": "L'avatar è troppo grande (max 70Kb)",
     "avatar-too-big": "L'avatar è troppo grande (max 70Kb)",
     "back": "Indietro",
     "back": "Indietro",
     "board-change-color": "Cambia colore",
     "board-change-color": "Cambia colore",
@@ -56,208 +82,243 @@
     "boardChangeColorPopup-title": "Cambia sfondo della bacheca",
     "boardChangeColorPopup-title": "Cambia sfondo della bacheca",
     "boardChangeTitlePopup-title": "Rinomina bacheca",
     "boardChangeTitlePopup-title": "Rinomina bacheca",
     "boardChangeVisibilityPopup-title": "Cambia visibilità",
     "boardChangeVisibilityPopup-title": "Cambia visibilità",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Cambia faccia",
     "boardMenuPopup-title": "Menu bacheca",
     "boardMenuPopup-title": "Menu bacheca",
     "boards": "Bacheche",
     "boards": "Bacheche",
-    "bucket-example": "Like “Bucket List” for example",
+    "bucket-example": "Per esempio come \"una lista di cose da fare\"",
     "cancel": "Cancella",
     "cancel": "Cancella",
     "card-archived": "Questa scheda è archiviata.",
     "card-archived": "Questa scheda è archiviata.",
     "card-comments-title": "Questa scheda ha %s commenti.",
     "card-comments-title": "Questa scheda ha %s commenti.",
     "card-delete-notice": "L'eliminazione è permanente. Tutte le azioni associate a questa scheda andranno perse.",
     "card-delete-notice": "L'eliminazione è permanente. Tutte le azioni associate a questa scheda andranno perse.",
-    "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 archive a card to remove it from the board and preserve the activity.",
-    "card-edit-attachments": "Edit attachments",
-    "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.",
-    "cardAttachmentsPopup-title": "Attach From",
-    "cardDeletePopup-title": "Delete Card?",
-    "cardDetailsActionsPopup-title": "Card Actions",
-    "cardLabelsPopup-title": "Labels",
-    "cardMembersPopup-title": "Membr",
-    "cardMorePopup-title": "More",
-    "cards": "Cards",
-    "change": "Change",
-    "change-avatar": "Change Avatar",
-    "change-password": "Change Password",
-    "change-permissions": "Change permissions",
-    "changeAvatarPopup-title": "Change Avatar",
-    "changeLanguagePopup-title": "Change Language",
-    "changePasswordPopup-title": "Change Password",
-    "changePermissionsPopup-title": "Change Permissions",
-    "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 “Archives” button from the home header.",
-    "color-black": "black",
-    "color-blue": "blue",
-    "color-green": "green",
+    "card-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di riaprire la scheda. Non potrai tornare indietro.",
+    "card-delete-suggest-archive": "Puoi archiviare una scheda per rimuoverla dalla bacheca e preservare la sua attività.",
+    "card-due": "Scadenza",
+    "card-due-on": "Scade",
+    "card-edit-attachments": "Modifica allegati",
+    "card-edit-labels": "Modifica etichette",
+    "card-edit-members": "Modifica membri",
+    "card-labels-title": "Cambia le etichette per questa scheda.",
+    "card-members-title": "Aggiungi o rimuovi membri della bacheca da questa scheda",
+    "card-start": "Inizio",
+    "card-start-on": "Inizia",
+    "cardAttachmentsPopup-title": "Allega da",
+    "cardDeletePopup-title": "Elimina scheda?",
+    "cardDetailsActionsPopup-title": "Azioni scheda",
+    "cardLabelsPopup-title": "Etichette",
+    "cardMembersPopup-title": "Membri",
+    "cardMorePopup-title": "Altro",
+    "cards": "Schede",
+    "change": "Cambia",
+    "change-avatar": "Cambia avatar",
+    "change-password": "Cambia password",
+    "change-permissions": "Cambia permessi",
+    "change-settings": "Cambia impostazioni",
+    "changeAvatarPopup-title": "Cambia avatar",
+    "changeLanguagePopup-title": "Cambia lingua",
+    "changePasswordPopup-title": "Cambia password",
+    "changePermissionsPopup-title": "Cambia permessi",
+    "changeSettingsPopup-title": "Cambia impostazioni",
+    "checklists": "Checklist",
+    "click-to-star": "Clicca per stellare questa bacheca",
+    "click-to-unstar": "Clicca per togliere la stella da questa bacheca",
+    "clipboard": "Clipboard o drag & drop",
+    "close": "Chiudi",
+    "close-board": "Chiudi bacheca",
+    "close-board-pop": "Sarai in grado di ripristinare la bacheca cliccando il tasto \"Archivi\" dall'intestazione della pagina principale.",
+    "color-black": "nero",
+    "color-blue": "blu",
+    "color-green": "verde",
     "color-lime": "lime",
     "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 a comment",
+    "color-orange": "arancione",
+    "color-pink": "rosa",
+    "color-purple": "viola",
+    "color-red": "rosso",
+    "color-sky": "azzurro",
+    "color-yellow": "giallo",
+    "comment": "Commento",
+    "comment-placeholder": "Scrivi un commento",
     "computer": "Computer",
     "computer": "Computer",
-    "create": "Create",
-    "createBoardPopup-title": "Create Board",
-    "createLabelPopup-title": "Create Label",
-    "current": "current",
-    "decline": "Decline",
-    "default-avatar": "Default avatar",
-    "delete": "Delete",
-    "deleteLabelPopup-title": "Delete Label?",
-    "description": "Description",
-    "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
-    "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
-    "discard": "Discard",
-    "done": "Done",
+    "create": "Crea",
+    "createBoardPopup-title": "Crea bacheca",
+    "createLabelPopup-title": "Crea etichetta",
+    "current": "corrente",
+    "date": "Data",
+    "decline": "Declina",
+    "default-avatar": "Avatar predefinito",
+    "delete": "Elimina",
+    "deleteLabelPopup-title": "Eliminare etichetta?",
+    "description": "Descrizione",
+    "disambiguateMultiLabelPopup-title": "Disambiguare l'azione Etichetta",
+    "disambiguateMultiMemberPopup-title": "Disambiguare l'azione Membro",
+    "discard": "Scarta",
+    "done": "Fatto",
     "download": "Download",
     "download": "Download",
-    "edit": "Edit",
-    "edit-avatar": "Change Avatar",
-    "edit-profile": "Edit Profile",
-    "editLabelPopup-title": "Change Label",
-    "editProfilePopup-title": "Edit Profile",
+    "edit": "Modifica",
+    "edit-avatar": "Cambia avatar",
+    "edit-profile": "Modifica profilo",
+    "editCardStartDatePopup-title": "Cambia data di inizio",
+    "editCardDueDatePopup-title": "Cambia data di scadenza",
+    "editLabelPopup-title": "Cambia etichetta",
+    "editNotificationPopup-title": "Modifica notifiche",
+    "editProfilePopup-title": "Modifica profilo",
     "email": "Email",
     "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-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.",
-    "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": "This action on self is not allowed",
-    "error-user-notCreated": "This user is not created",
-    "export-board": "Export board",
-    "filter": "Filter",
-    "filter-cards": "Filter Cards",
-    "filter-clear": "Clear filter",
-    "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",
-    "fullname": "Full Name",
-    "header-logo-title": "Go back to your boards page.",
+    "email-enrollAccount-subject": "Creato un account per te su __siteName__",
+    "email-enrollAccount-text": "Ciao __user__,\n\nPer iniziare ad usare il servizio, clicca sul link seguente:\n\n__url__\n\nGrazie.",
+    "email-fail": "Invio email fallito",
+    "email-invalid": "Email non valida",
+    "email-invite": "Invita via email",
+    "email-invite-subject": "__inviter__ ti ha inviato un invito",
+    "email-invite-text": "Caro __user__,\n\n__inviter__ ti ha invitato ad unirti alla bacheca \"__board__\" per le collaborazioni.\n\nPer favore clicca sul link seguente:\n\n__url__\n\nGrazie.",
+    "email-resetPassword-subject": "Ripristina la tua password su on __siteName__",
+    "email-resetPassword-text": "Ciao __user__,\n\nPer ripristinare la tua password, clicca sul link seguente:\n\n__url__\n\nGrazie.",
+    "email-sent": "Email inviata",
+    "email-verifyEmail-subject": "Verifica il tuo indirizzo email su on __siteName__",
+    "email-verifyEmail-text": "Ciao __user__,\n\nPer verificare il tuo account email, clicca sul link seguente:\n\n__url__\n\nGrazie.",
+    "error-board-doesNotExist": "Questa bacheca non esiste",
+    "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare",
+    "error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare",
+    "error-json-malformed": "Il tuo testo non è un JSON valido",
+    "error-json-schema": "Il tuo file JSON non contiene le giuste informazioni nel formato corretto",
+    "error-list-doesNotExist": "Questa lista non esiste",
+    "error-user-doesNotExist": "Questo utente non esiste",
+    "error-user-notAllowSelf": "Questa azione su se stessa non è permessa",
+    "error-user-notCreated": "L'utente non è stato creato",
+    "error-username-taken": "Questo username è già utilizzato",
+    "export-board": "Esporta bacheca",
+    "filter": "Filtra",
+    "filter-cards": "Filtra schede",
+    "filter-clear": "Pulisci filtri",
+    "filter-no-label": "Nessuna etichetta",
+    "filter-no-member": "Nessun membro",
+    "filter-on": "Il filtro è attivo",
+    "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,",
+    "filter-to-selection": "Seleziona",
+    "fullname": "Nome completo",
+    "header-logo-title": "Torna alla tua bacheca.",
+    "hide-system-messages": "Nascondi i messaggi di sistema",
     "home": "Home",
     "home": "Home",
-    "import": "Import",
-    "import-board": "import from Trello",
-    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
-    "import-json-placeholder": "Paste your valid JSON data here",
-    "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",
-    "info": "Infos",
-    "initials": "Initials",
-    "joined": "joined",
-    "just-invited": "You are just invited to this board",
-    "keyboard-shortcuts": "Keyboard shortcuts",
-    "label-create": "Create a new 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",
-    "link-card": "Link to this card",
-    "list-archive-cards": "Archive all cards in this list",
-    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
-    "list-move-cards": "Move all cards in this list",
-    "list-select-cards": "Select all cards in this list",
-    "listActionPopup-title": "List Actions",
-    "listImportCardPopup-title": "Import a Trello card",
-    "lists": "Lists",
+    "import": "Importa",
+    "import-board": "importa da Trello",
+    "import-board-title": "Importa una bacheca da Trello",
+    "import-board-trello-instruction": "Nella tua bacheca Trello vai a 'Menu', poi 'Altro', 'Stampa ed esporta', 'Esporta JSON', e copia il testo che compare.",
+    "import-json-placeholder": "Incolla un JSON valido qui",
+    "import-map-members": "Mappatura dei membri",
+    "import-members-map": "La bacheca che hai importato ha alcuni membri. Per favore scegli i membri che vuoi vengano importati negli utenti di Wekan",
+    "import-show-user-mapping": "Rivedi la mappatura dei membri",
+    "import-user-select": "Scegli l'utente Wekan che vuoi utilizzare come questo membro",
+    "importMapMembersAddPopup-title": "Seleziona i membri di Wekan",
+    "info": "Info",
+    "initials": "Iniziali",
+    "invalid-date": "Data non valida",
+    "joined": "si è unito a",
+    "just-invited": "Sei stato appena invitato a questa bacheca",
+    "keyboard-shortcuts": "Scorciatoie da tastiera",
+    "label-create": "Crea una nuova etichetta",
+    "label-default": "%s etichetta (default)",
+    "label-delete-pop": "Non potrai tornare indietro. Procedendo, rimuoverai questa etichetta da tutte le schede e distruggerai la sua cronologia.",
+    "labels": "Etichette",
+    "language": "Lingua",
+    "last-admin-desc": "Non puoi cambiare i ruoli perché deve esserci almeno un admin.",
+    "leave-board": "Abbandona bacheca",
+    "link-card": "Link a questa scheda",
+    "list-archive-cards": "Archivia tutte le schede in questa lista",
+    "list-archive-cards-pop": "Questo rimuoverà dalla bacheca tutte le schede in questa lista. Per vedere le schede archiviate e portarle indietro alla bacheca, clicca “Menu” > “Elementi archiviati”",
+    "list-move-cards": "Sposta tutte le schede in questa lista",
+    "list-select-cards": "Selezione tutte le schede in questa lista",
+    "listActionPopup-title": "Azioni disponibili",
+    "listImportCardPopup-title": "Importa una scheda di Trello",
+    "lists": "Liste",
     "log-out": "Log Out",
     "log-out": "Log Out",
+    "log-in": "Log In",
     "loginPopup-title": "Log In",
     "loginPopup-title": "Log In",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
-    "memberMenuPopup-title": "Member Settings",
-    "members": "Membr",
+    "memberMenuPopup-title": "Impostazioni membri",
+    "members": "Membri",
     "menu": "Menu",
     "menu": "Menu",
-    "move-selection": "Move selection",
-    "moveCardPopup-title": "Move Card",
-    "moveSelectionPopup-title": "Move selection",
-    "multi-selection": "Multi-Selection",
-    "multi-selection-on": "Multi-Selection is on",
-    "my-boards": "My Boards",
-    "name": "Name",
-    "no-archived-cards": "No archived cards.",
-    "no-archived-lists": "No archived lists.",
-    "no-results": "No results",
-    "normal": "Normal",
-    "normal-desc": "Can view and edit cards. Can't change settings.",
-    "not-accepted-yet": "Invitation not accepted yet",
-    "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.",
+    "move-selection": "Sposta selezione",
+    "moveCardPopup-title": "Sposta scheda",
+    "moveCardToBottom-title": "Sposta in fondo",
+    "moveCardToTop-title": "Sposta in alto",
+    "moveSelectionPopup-title": "Sposta selezione",
+    "multi-selection": "Multi-Selezione",
+    "multi-selection-on": "Multi-Selezione attiva",
+    "muted": "Silenziato",
+    "muted-info": "Non sarai mai notificato delle modifiche in questa bacheca",
+    "my-boards": "Le mie bacheche",
+    "name": "Nome",
+    "no-archived-cards": "Nessuna scheda archiviata.",
+    "no-archived-lists": "Nessuna lista archiviata.",
+    "no-results": "Nessun risultato",
+    "normal": "Normale",
+    "normal-desc": "Può visionare e modificare le schede. Non può cambiare le impostazioni.",
+    "not-accepted-yet": "Invitato non ancora accettato",
+    "notify-participate": "Ricevi aggiornamenti per qualsiasi scheda a cui partecipi come creatore o membro",
+    "notify-watch": "Ricevi aggiornamenti per tutte le bacheche, liste o schede che stai seguendo",
+    "optional": "opzionale",
+    "or": "o",
+    "page-maybe-private": "Questa pagina potrebbe essere privata. Potresti essere in grado di vederla <a href='%s'>facendo il log-in</a>.",
+    "page-not-found": "Pagina non trovata.",
     "password": "Password",
     "password": "Password",
-    "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
-    "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 the label",
-    "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",
+    "paste-or-dragdrop": "per incollare, oppure trascina & rilascia il file immagine (solo immagini)",
+    "participating": "Partecipando",
+    "preview": "Anteprima",
+    "previewAttachedImagePopup-title": "Anteprima",
+    "previewClipboardImagePopup-title": "Anteprima",
+    "private": "Privata",
+    "private-desc": "Questa bacheca è privata. Solo le persone aggiunte alla bacheca possono vederla e modificarla.",
+    "profile": "Profilo",
+    "public": "Pubblica",
+    "public-desc": "Questa bacheca è pubblica. È visibile a chiunque abbia il link e sarà mostrata dai motori di ricerca come Google. Solo le persone aggiunte alla bacheca possono modificarla.",
+    "quick-access-description": "Stella una bacheca per aggiungere una scorciatoia in questa barra.",
+    "remove-cover": "Rimuovi cover",
+    "remove-from-board": "Rimuovi dalla bacheca",
+    "remove-label": "Rimuovi l'etichetta",
+    "remove-list": "Rimuovi la lista",
+    "remove-member": "Rimuovi utente",
+    "remove-member-from-card": "Rimuovi dalla scheda",
+    "remove-member-pop": "Rimuovere __name__ (__username__) da __boardTitle__? L'utente sarà rimosso da tutte le schede in questa bacheca. Riceveranno una notifica.",
+    "removeMemberPopup-title": "Rimuovere membro?",
+    "rename": "Rinomina",
     "rename-board": "Rinomina bacheca",
     "rename-board": "Rinomina bacheca",
-    "restore": "Restore",
-    "save": "Save",
-    "search": "Search",
-    "select-color": "Select a color",
-    "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",
-    "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",
+    "restore": "Ripristina",
+    "save": "Salva",
+    "search": "Cerca",
+    "select-color": "Seleziona un colore",
+    "shortcut-assign-self": "Aggiungi te stesso alla scheda corrente",
+    "shortcut-autocomplete-emoji": "Autocompletamento emoji",
+    "shortcut-autocomplete-members": "Autocompletamento membri",
+    "shortcut-clear-filters": "Pulisci tutti i filtri",
+    "shortcut-close-dialog": "Chiudi finestra di dialogo",
+    "shortcut-filter-my-cards": "Filtra le mie schede",
+    "shortcut-show-shortcuts": "Porta in alto questa lista di scorciatoie",
+    "shortcut-toggle-filterbar": "Attiva il filtro nella barra laterale",
+    "shortcut-toggle-sidebar": "Attiva la bacheca nella barra laterale",
+    "show-cards-minimum-count": "Mostra il contatore delle schede se la lista ne contiene più di",
+    "signupPopup-title": "Crea un account",
+    "star-board-title": "Clicca per stellare questa bacheca. Sarà mostrata all'inizio della tua lista bacheche.",
+    "starred-boards": "Bacheche stellate",
+    "starred-boards-description": "Le bacheche stellate vengono mostrato all'inizio della tua lista bacheche.",
+    "subscribe": "Sottoscrivi",
     "team": "Team",
     "team": "Team",
-    "this-board": "this board",
-    "this-card": "this card",
-    "title": "Title",
-    "unassign-member": "Unassign member",
-    "unsaved-description": "You have an unsaved description.",
+    "this-board": "questa bacheca",
+    "this-card": "questa scheda",
+    "time": "Ora",
+    "title": "Titolo",
+    "tracking": "Monitoraggio",
+    "tracking-info": "Sarai notificato per tutte le modifiche alle schede delle quali sei creatore o membro.",
+    "unassign-member": "Rimuovi membro",
+    "unsaved-description": "Hai una descrizione non salvata",
+    "unwatch": "Non seguire",
     "upload": "Upload",
     "upload": "Upload",
-    "upload-avatar": "Upload an avatar",
-    "uploaded-avatar": "Uploaded an avatar",
+    "upload-avatar": "Carica un avatar",
+    "uploaded-avatar": "Avatar caricato",
     "username": "Username",
     "username": "Username",
-    "view-it": "View it",
-    "warn-list-archived": "warning: this card is in an archived list",
-    "what-to-do": "What do you want to do?"
-}
+    "view-it": "Vedi",
+    "warn-list-archived": "attenzione: questa scheda è in una lista archiviata",
+    "watch": "Segui",
+    "watching": "Stai seguendo",
+    "watching-info": "Sarai notificato per tutte le modifiche in questa bacheca",
+    "welcome-board": "Bacheca di benvenuto",
+    "welcome-list1": "Basi",
+    "welcome-list2": "Avanzate",
+    "what-to-do": "Cosa vuoi fare?"
+}

+ 156 - 95
i18n/ja.i18n.json

@@ -1,7 +1,27 @@
 {
 {
-    "accept": "Accept",
+    "accept": "受け入れ",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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",
+    "activities": "アクティビティ",
     "activity": "アクティビティ",
     "activity": "アクティビティ",
     "activity-added": "%s を %s に追加しました",
     "activity-added": "%s を %s に追加しました",
     "activity-archived": "%s をアーカイブしました",
     "activity-archived": "%s をアーカイブしました",
@@ -15,49 +35,55 @@
     "activity-on": "%s",
     "activity-on": "%s",
     "activity-removed": "%s を %s から削除しました",
     "activity-removed": "%s を %s から削除しました",
     "activity-sent": "%s を %s に送りました",
     "activity-sent": "%s を %s に送りました",
-    "activity-unjoined": "unjoined %s",
+    "activity-unjoined": "%s への参加を止めました",
+    "activity-checklist-added": "%s にチェックリストを追加しました",
     "add": "追加",
     "add": "追加",
-    "add-attachment": "Add an attachment",
+    "add-attachment": "添付ファイルの追加",
     "add-board": "ボード追加",
     "add-board": "ボード追加",
-    "add-card": "Add a card",
+    "add-card": "カードの追加",
+    "add-checklist": "チェックリストの追加",
+    "add-checklist-item": "チェックリストに項目を追加",
     "add-cover": "カバーの追加",
     "add-cover": "カバーの追加",
-    "add-label": "Add the label",
-    "add-list": "Add a list",
-    "add-members": "Add Members",
+    "add-label": "ラベルの追加",
+    "add-list": "リストの追加",
+    "add-members": "メンバーの追加",
     "added": "追加しました",
     "added": "追加しました",
     "addMemberPopup-title": "メンバー",
     "addMemberPopup-title": "メンバー",
     "admin": "管理",
     "admin": "管理",
     "admin-desc": "カードの閲覧と編集、メンバーの削除、ボードの設定変更が可能",
     "admin-desc": "カードの閲覧と編集、メンバーの削除、ボードの設定変更が可能",
-    "all-boards": "All boards",
+    "all-boards": "全てのボード",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "適用",
+    "app-is-offline": "現在オフラインです。ページを更新すると保存していないデータは失われます。",
     "archive": "アーカイブ",
     "archive": "アーカイブ",
     "archive-all": "すべてをアーカイブ",
     "archive-all": "すべてをアーカイブ",
-    "archive-board": "Archive Board",
-    "archive-card": "Archive Card",
+    "archive-board": "ボードをアーカイブ",
+    "archive-card": "カードをアーカイブ",
     "archive-list": "このリストをアーカイブ",
     "archive-list": "このリストをアーカイブ",
-    "archive-selection": "Archive selection",
-    "archiveBoardPopup-title": "Archive Board?",
+    "archive-selection": "選択したものをアーカイブ",
+    "archiveBoardPopup-title": "ボードをアーカイブしますか?",
     "archived-items": "アーカイブされたアイテム",
     "archived-items": "アーカイブされたアイテム",
-    "archives": "Archives",
-    "assign-member": "Assign member",
+    "archives": "アーカイブ",
+    "assign-member": "メンバーの割当",
     "attached": "添付されました",
     "attached": "添付されました",
     "attachment": "添付ファイル",
     "attachment": "添付ファイル",
     "attachment-delete-pop": "添付ファイルの削除をすると取り消しできません。",
     "attachment-delete-pop": "添付ファイルの削除をすると取り消しできません。",
     "attachmentDeletePopup-title": "添付ファイルを削除しますか?",
     "attachmentDeletePopup-title": "添付ファイルを削除しますか?",
     "attachments": "添付ファイル",
     "attachments": "添付ファイル",
-    "avatar-too-big": "The avatar is too large (70Kb max)",
+    "auto-watch": "作成したボードは自動的に監視する",
+    "avatar-too-big": "アバターが大きすぎます(最大70KB)",
     "back": "戻る",
     "back": "戻る",
-    "board-change-color": "Change color",
+    "board-change-color": "色の変更",
     "board-nb-stars": "%s stars",
     "board-nb-stars": "%s stars",
     "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>.",
     "board-public-info": "ボードは公開されます。",
     "board-public-info": "ボードは公開されます。",
-    "boardChangeColorPopup-title": "Change Board Background",
+    "boardChangeColorPopup-title": "ボードの背景を変更",
     "boardChangeTitlePopup-title": "ボード名の変更",
     "boardChangeTitlePopup-title": "ボード名の変更",
     "boardChangeVisibilityPopup-title": "公開範囲の変更",
     "boardChangeVisibilityPopup-title": "公開範囲の変更",
-    "boardImportBoardPopup-title": "Import board from Trello",
-    "boardMenuPopup-title": "Board Menu",
+    "boardChangeWatchPopup-title": "Change Watch",
+    "boardMenuPopup-title": "ボードメニュー",
     "boards": "ボード",
     "boards": "ボード",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
     "cancel": "キャンセル",
     "cancel": "キャンセル",
@@ -66,70 +92,81 @@
     "card-delete-notice": "削除は取り消しできません。このカードに関係するすべてのアクションがなくなります。",
     "card-delete-notice": "削除は取り消しできません。このカードに関係するすべてのアクションがなくなります。",
     "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-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 archive a card to remove it from the board and preserve the activity.",
     "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
-    "card-edit-attachments": "Edit attachments",
-    "card-edit-labels": "Edit labels",
-    "card-edit-members": "Edit members",
+    "card-due": "期限",
+    "card-due-on": "Due on",
+    "card-edit-attachments": "添付ファイルの編集",
+    "card-edit-labels": "ラベルの編集",
+    "card-edit-members": "メンバーの編集",
     "card-labels-title": "カードのラベルを変更する",
     "card-labels-title": "カードのラベルを変更する",
     "card-members-title": "カードからボードメンバーを追加・削除する",
     "card-members-title": "カードからボードメンバーを追加・削除する",
+    "card-start": "開始",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Attach From",
     "cardAttachmentsPopup-title": "Attach From",
     "cardDeletePopup-title": "カードを削除しますか?",
     "cardDeletePopup-title": "カードを削除しますか?",
-    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardDetailsActionsPopup-title": "カード操作",
     "cardLabelsPopup-title": "ラベル",
     "cardLabelsPopup-title": "ラベル",
     "cardMembersPopup-title": "メンバー",
     "cardMembersPopup-title": "メンバー",
     "cardMorePopup-title": "さらに見る",
     "cardMorePopup-title": "さらに見る",
-    "cards": "Cards",
-    "change": "Change",
+    "cards": "カード",
+    "change": "変更",
     "change-avatar": "アバターの変更",
     "change-avatar": "アバターの変更",
     "change-password": "パスワードの変更",
     "change-password": "パスワードの変更",
-    "change-permissions": "Change permissions",
+    "change-permissions": "権限の変更",
+    "change-settings": "設定の変更",
     "changeAvatarPopup-title": "アバターの変更",
     "changeAvatarPopup-title": "アバターの変更",
     "changeLanguagePopup-title": "言語の変更",
     "changeLanguagePopup-title": "言語の変更",
     "changePasswordPopup-title": "パスワードの変更",
     "changePasswordPopup-title": "パスワードの変更",
     "changePermissionsPopup-title": "パーミッションの変更",
     "changePermissionsPopup-title": "パーミッションの変更",
+    "changeSettingsPopup-title": "設定の変更",
+    "checklists": "チェックリスト",
     "click-to-star": "ボードにスターをつける",
     "click-to-star": "ボードにスターをつける",
     "click-to-unstar": "ボードからスターを外す",
     "click-to-unstar": "ボードからスターを外す",
-    "clipboard": "Clipboard or drag & drop",
+    "clipboard": "クリップボードもしくはドラッグ&ドロップ",
     "close": "閉じる",
     "close": "閉じる",
-    "close-board": "Close Board",
+    "close-board": "ボードを閉じる",
     "close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
     "close-board-pop": "You will be able to restore the board by clicking the “Archives” 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",
+    "color-black": "",
+    "color-blue": "",
+    "color-green": "",
+    "color-lime": "ライム",
+    "color-orange": "オレンジ",
+    "color-pink": "ピンク",
+    "color-purple": "",
+    "color-red": "",
+    "color-sky": "",
+    "color-yellow": "",
     "comment": "コメント",
     "comment": "コメント",
-    "comment-placeholder": "Write a comment",
+    "comment-placeholder": "コメントを書く",
     "computer": "コンピューター",
     "computer": "コンピューター",
     "create": "作成",
     "create": "作成",
     "createBoardPopup-title": "ボードの作成",
     "createBoardPopup-title": "ボードの作成",
     "createLabelPopup-title": "ラベルの作成",
     "createLabelPopup-title": "ラベルの作成",
-    "current": "current",
-    "decline": "Decline",
-    "default-avatar": "Default avatar",
+    "current": "現在",
+    "date": "日付",
+    "decline": "拒否",
+    "default-avatar": "デフォルトのアバター",
     "delete": "削除",
     "delete": "削除",
     "deleteLabelPopup-title": "ラベルを削除しますか?",
     "deleteLabelPopup-title": "ラベルを削除しますか?",
     "description": "詳細",
     "description": "詳細",
     "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
     "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
     "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
     "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
-    "discard": "Discard",
-    "done": "Done",
+    "discard": "捨てる",
+    "done": "完了",
     "download": "ダウンロード",
     "download": "ダウンロード",
     "edit": "編集",
     "edit": "編集",
     "edit-avatar": "アバターの変更",
     "edit-avatar": "アバターの変更",
-    "edit-profile": "Edit Profile",
+    "edit-profile": "プロフィールの編集",
+    "editCardStartDatePopup-title": "開始日の変更",
+    "editCardDueDatePopup-title": "期限の変更",
     "editLabelPopup-title": "ラベルの変更",
     "editLabelPopup-title": "ラベルの変更",
-    "editProfilePopup-title": "Edit Profile",
+    "editNotificationPopup-title": "通知の変更",
+    "editProfilePopup-title": "プロフィールの編集",
     "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-invalid": "Invalid email",
-    "email-invite": "Invite via Email",
+    "email-fail": "メールの送信に失敗しました",
+    "email-invalid": "無効なメールアドレス",
+    "email-invite": "メールで招待",
     "email-invite-subject": "__inviter__ sent you an invitation",
     "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-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-subject": "Reset your password on __siteName__",
@@ -137,83 +174,95 @@
     "email-sent": "Email sent",
     "email-sent": "Email sent",
     "email-verifyEmail-subject": "Verify your email address on __siteName__",
     "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.",
     "email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
-    "error-board-doesNotExist": "This board does not exist",
+    "error-board-doesNotExist": "ボードがありません",
     "error-board-notAdmin": "You need to be admin of this board to do that",
     "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-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-malformed": "Your text is not valid JSON",
     "error-json-schema": "Your JSON data does not include the proper information in the correct format",
     "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-list-doesNotExist": "This list does not exist",
-    "error-user-doesNotExist": "This user does not exist",
-    "error-user-notAllowSelf": "This action on self is not allowed",
-    "error-user-notCreated": "This user is not created",
-    "export-board": "Export board",
-    "filter": "Filter",
+    "error-user-doesNotExist": "ユーザーが存在しません",
+    "error-user-notAllowSelf": "この操作は許可されていません",
+    "error-user-notCreated": "ユーザーが作成されていません",
+    "error-username-taken": "このユーザ名は既に使用されています",
+    "export-board": "ボードのエクスポート",
+    "filter": "フィルター",
     "filter-cards": "カードをフィルターする",
     "filter-cards": "カードをフィルターする",
-    "filter-clear": "Clear filter",
-    "filter-on": "Filter is on",
+    "filter-clear": "フィルターの解除",
+    "filter-no-label": "ラベルなし",
+    "filter-no-member": "メンバーなし",
+    "filter-on": "フィルター有効",
     "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。",
     "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "フルネーム",
     "fullname": "フルネーム",
     "header-logo-title": "自分のボードページに戻る。",
     "header-logo-title": "自分のボードページに戻る。",
+    "hide-system-messages": "システムメッセージを隠す",
     "home": "ホーム",
     "home": "ホーム",
-    "import": "Import",
-    "import-board": "import from Trello",
+    "import": "インポート",
+    "import-board": "Trelloからインポート",
+    "import-board-title": "Trelloからボードをインポート",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
     "import-json-placeholder": "Paste your valid JSON data here",
     "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-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-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "情報",
     "info": "情報",
     "initials": "Initials",
     "initials": "Initials",
+    "invalid-date": "無効な日付",
     "joined": "参加しました",
     "joined": "参加しました",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
-    "keyboard-shortcuts": "Keyboard shortcuts",
+    "keyboard-shortcuts": "キーボード・ショートカット",
     "label-create": "ラベル作成",
     "label-create": "ラベル作成",
     "label-default": "%s ラベル(デフォルト)",
     "label-default": "%s ラベル(デフォルト)",
     "label-delete-pop": "この操作は取り消しできません。このラベルはすべてのカードから外され履歴からも見えなくなります。",
     "label-delete-pop": "この操作は取り消しできません。このラベルはすべてのカードから外され履歴からも見えなくなります。",
     "labels": "ラベル",
     "labels": "ラベル",
     "language": "言語",
     "language": "言語",
     "last-admin-desc": "最低でも1人以上の管理者が必要なためロールを変更できません。",
     "last-admin-desc": "最低でも1人以上の管理者が必要なためロールを変更できません。",
-    "leave-board": "Leave Board",
+    "leave-board": "ボードから退出する",
     "link-card": "このカードへのリンク",
     "link-card": "このカードへのリンク",
-    "list-archive-cards": "Archive all cards in this list",
+    "list-archive-cards": "リストの全カードをアーカイブする",
     "list-archive-cards-pop": "ボードのこのリスト内のすべてのカードを取り除きます。アーカイブされたカードの確認やそれをボードに戻すには、メニューをクリックし、\"アーカイブされたアイテム\"をクリックしてください。",
     "list-archive-cards-pop": "ボードのこのリスト内のすべてのカードを取り除きます。アーカイブされたカードの確認やそれをボードに戻すには、メニューをクリックし、\"アーカイブされたアイテム\"をクリックしてください。",
-    "list-move-cards": "Move all cards in this list",
-    "list-select-cards": "Select all cards in this list",
+    "list-move-cards": "リストの全カードを移動する",
+    "list-select-cards": "リストの全カードを選択",
     "listActionPopup-title": "操作一覧",
     "listActionPopup-title": "操作一覧",
-    "listImportCardPopup-title": "Import a Trello card",
-    "lists": "Lists",
+    "listImportCardPopup-title": "Trelloのカードをインポート",
+    "lists": "リスト",
     "log-out": "ログアウト",
     "log-out": "ログアウト",
+    "log-in": "ログイン",
     "loginPopup-title": "ログイン",
     "loginPopup-title": "ログイン",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
-    "memberMenuPopup-title": "Member Settings",
+    "memberMenuPopup-title": "メンバー設定",
     "members": "メンバー",
     "members": "メンバー",
     "menu": "メニュー",
     "menu": "メニュー",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
-    "moveCardPopup-title": "Move Card",
-    "moveSelectionPopup-title": "Move selection",
-    "multi-selection": "Multi-Selection",
-    "multi-selection-on": "Multi-Selection is on",
+    "moveCardPopup-title": "カードの移動",
+    "moveCardToBottom-title": "最下部に移動",
+    "moveCardToTop-title": "先頭に移動",
+    "moveSelectionPopup-title": "選択箇所に移動",
+    "multi-selection": "複数選択",
+    "multi-selection-on": "複数選択有効",
+    "muted": "ミュート",
+    "muted-info": "このボードの変更は通知されません",
     "my-boards": "自分のボード",
     "my-boards": "自分のボード",
     "name": "名前",
     "name": "名前",
-    "no-archived-cards": "No archived cards.",
-    "no-archived-lists": "No archived lists.",
+    "no-archived-cards": "アーカイブされたボードはありません",
+    "no-archived-lists": "アーカイブされたリストはありません",
     "no-results": "該当するものはありません",
     "no-results": "該当するものはありません",
     "normal": "通常",
     "normal": "通常",
     "normal-desc": "カードの閲覧と編集が可能。設定変更不可。",
     "normal-desc": "カードの閲覧と編集が可能。設定変更不可。",
-    "not-accepted-yet": "Invitation not accepted yet",
+    "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",
     "or": "or",
     "page-maybe-private": "このページはプライベートです。<a href='%s'>ログイン</a>して見てください。",
     "page-maybe-private": "このページはプライベートです。<a href='%s'>ログイン</a>して見てください。",
     "page-not-found": "ページが見つかりません。",
     "page-not-found": "ページが見つかりません。",
     "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)",
-    "preview": "Preview",
-    "previewAttachedImagePopup-title": "Preview",
-    "previewClipboardImagePopup-title": "Preview",
+    "participating": "参加",
+    "preview": "プレビュー",
+    "previewAttachedImagePopup-title": "プレビュー",
+    "previewClipboardImagePopup-title": "プレビュー",
     "private": "プライベート",
     "private": "プライベート",
     "private-desc": "このボードはプライベートです。ボードメンバーのみが閲覧・編集可能です。",
     "private-desc": "このボードはプライベートです。ボードメンバーのみが閲覧・編集可能です。",
     "profile": "プロフィール",
     "profile": "プロフィール",
@@ -221,10 +270,11 @@
     "public-desc": "このボードはパブリックです。リンクを知っていれば誰でもアクセス可能でGoogleのような検索エンジンの結果に表示されます。このボードに追加されている人だけがカード追加が可能です。",
     "public-desc": "このボードはパブリックです。リンクを知っていれば誰でもアクセス可能でGoogleのような検索エンジンの結果に表示されます。このボードに追加されている人だけがカード追加が可能です。",
     "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-from-board": "Remove from Board",
-    "remove-label": "Remove the label",
+    "remove-from-board": "ボードから外す",
+    "remove-label": "ラベルを外す",
+    "remove-list": "リストの除去",
     "remove-member": "メンバーを外す",
     "remove-member": "メンバーを外す",
-    "remove-member-from-card": "カードから取り除く",
+    "remove-member-from-card": "カードから外す",
     "remove-member-pop": "__boardTitle__ から __name__ (__username__) を外しますか?メンバーはこのボードのすべてのカードから外れ、通知を受けます。",
     "remove-member-pop": "__boardTitle__ から __name__ (__username__) を外しますか?メンバーはこのボードのすべてのカードから外れ、通知を受けます。",
     "removeMemberPopup-title": "メンバーを外しますか?",
     "removeMemberPopup-title": "メンバーを外しますか?",
     "rename": "名前変更",
     "rename": "名前変更",
@@ -233,15 +283,16 @@
     "save": "保存",
     "save": "保存",
     "search": "検索",
     "search": "検索",
     "select-color": "色を選択",
     "select-color": "色を選択",
-    "shortcut-assign-self": "Assign yourself to current card",
+    "shortcut-assign-self": "自分をこのカードに割り当てる",
     "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Autocomplete members",
     "shortcut-autocomplete-members": "Autocomplete members",
-    "shortcut-clear-filters": "Clear all filters",
-    "shortcut-close-dialog": "Close Dialog",
+    "shortcut-clear-filters": "すべてのフィルターを解除する",
+    "shortcut-close-dialog": "ダイアログを閉じる",
     "shortcut-filter-my-cards": "Filter my cards",
     "shortcut-filter-my-cards": "Filter my cards",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
-    "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
-    "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+    "shortcut-toggle-filterbar": "フィルターサイドバーの切り替え",
+    "shortcut-toggle-sidebar": "ボードサイドバーの切り替え",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "アカウント作成",
     "signupPopup-title": "アカウント作成",
     "star-board-title": "ボードにスターをつけると自分のボード一覧のトップに表示されます。",
     "star-board-title": "ボードにスターをつけると自分のボード一覧のトップに表示されます。",
     "starred-boards": "スターのついたボード",
     "starred-boards": "スターのついたボード",
@@ -250,14 +301,24 @@
     "team": "チーム",
     "team": "チーム",
     "this-board": "このボード",
     "this-board": "このボード",
     "this-card": "このカード",
     "this-card": "このカード",
+    "time": "時間",
     "title": "タイトル",
     "title": "タイトル",
+    "tracking": "トラッキング",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Unassign member",
     "unassign-member": "Unassign member",
     "unsaved-description": "You have an unsaved description.",
     "unsaved-description": "You have an unsaved description.",
-    "upload": "Upload",
-    "upload-avatar": "Upload an avatar",
-    "uploaded-avatar": "Uploaded an avatar",
+    "unwatch": "アンウォッチ",
+    "upload": "アップロード",
+    "upload-avatar": "アバターのアップロード",
+    "uploaded-avatar": "アップロードされたアバター",
     "username": "ユーザー名",
     "username": "ユーザー名",
     "view-it": "View it",
     "view-it": "View it",
     "warn-list-archived": "warning: this card is in an archived list",
     "warn-list-archived": "warning: this card is in an archived list",
-    "what-to-do": "What do you want to do?"
-}
+    "watch": "ウォッチ",
+    "watching": "ウォッチしています",
+    "watching-info": "このボードの変更が通知されます",
+    "welcome-board": "ウェルカムボード",
+    "welcome-list1": "基本",
+    "welcome-list2": "高度",
+    "what-to-do": "何をしたいですか?"
+}

+ 68 - 7
i18n/ko.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Accept",
     "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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",
     "activities": "Activities",
     "activity": "활동 상태",
     "activity": "활동 상태",
@@ -16,10 +36,13 @@
     "activity-removed": "%s를 %s에서 삭제함",
     "activity-removed": "%s를 %s에서 삭제함",
     "activity-sent": "%s를 %s로 보냄",
     "activity-sent": "%s를 %s로 보냄",
     "activity-unjoined": "unjoined %s",
     "activity-unjoined": "unjoined %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "추가",
     "add": "추가",
     "add-attachment": "Add an attachment",
     "add-attachment": "Add an attachment",
     "add-board": "새로운 보드를 추가",
     "add-board": "새로운 보드를 추가",
     "add-card": "Add a card",
     "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "커버 추가",
     "add-cover": "커버 추가",
     "add-label": "Add the label",
     "add-label": "Add the label",
     "add-list": "Add a list",
     "add-list": "Add a list",
@@ -31,6 +54,8 @@
     "all-boards": "All boards",
     "all-boards": "All boards",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "보관",
     "archive": "보관",
     "archive-all": "모두 보관",
     "archive-all": "모두 보관",
     "archive-board": "Archive Board",
     "archive-board": "Archive Board",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "영구 첨부파일을 삭제합니다. 되돌릴 수 없습니다.",
     "attachment-delete-pop": "영구 첨부파일을 삭제합니다. 되돌릴 수 없습니다.",
     "attachmentDeletePopup-title": "첨부 파일을 삭제합니까?",
     "attachmentDeletePopup-title": "첨부 파일을 삭제합니까?",
     "attachments": "첨부 파일",
     "attachments": "첨부 파일",
+    "auto-watch": "Automatically watch boards when create it",
     "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",
     "board-change-color": "Change color",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeTitlePopup-title": "보드 이름 바꾸기",
     "boardChangeTitlePopup-title": "보드 이름 바꾸기",
     "boardChangeVisibilityPopup-title": "표시 여부 변경",
     "boardChangeVisibilityPopup-title": "표시 여부 변경",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Board Menu",
     "boardMenuPopup-title": "Board Menu",
     "boards": "보드",
     "boards": "보드",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
@@ -66,11 +92,15 @@
     "card-delete-notice": "영구 삭제입니다. 이 카드와 관련된 모든 작업들을 잃게됩니다.",
     "card-delete-notice": "영구 삭제입니다. 이 카드와 관련된 모든 작업들을 잃게됩니다.",
     "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-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 archive a card to remove it from the board and preserve the activity.",
     "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Edit attachments",
     "card-edit-attachments": "Edit attachments",
     "card-edit-labels": "Edit labels",
     "card-edit-labels": "Edit labels",
     "card-edit-members": "Edit members",
     "card-edit-members": "Edit members",
     "card-labels-title": "카드의 라벨 변경.",
     "card-labels-title": "카드의 라벨 변경.",
     "card-members-title": "카드에서 보드의 멤버를 추가하거나 삭제합니다.",
     "card-members-title": "카드에서 보드의 멤버를 추가하거나 삭제합니다.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Attach From",
     "cardAttachmentsPopup-title": "Attach From",
     "cardDeletePopup-title": "카드를 삭제합니까?",
     "cardDeletePopup-title": "카드를 삭제합니까?",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
     "change-avatar": "아바타 변경",
     "change-avatar": "아바타 변경",
     "change-password": "암호 변경",
     "change-password": "암호 변경",
     "change-permissions": "Change permissions",
     "change-permissions": "Change permissions",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "아바타 변경",
     "changeAvatarPopup-title": "아바타 변경",
     "changeLanguagePopup-title": "언어 변경",
     "changeLanguagePopup-title": "언어 변경",
     "changePasswordPopup-title": "암호 변경",
     "changePasswordPopup-title": "암호 변경",
     "changePermissionsPopup-title": "권한 변경",
     "changePermissionsPopup-title": "권한 변경",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "보드 별 추가.",
     "click-to-star": "보드 별 추가.",
     "click-to-unstar": "보드 별 삭제.",
     "click-to-unstar": "보드 별 삭제.",
     "clipboard": "Clipboard or drag & drop",
     "clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "보드 생성",
     "createBoardPopup-title": "보드 생성",
     "createLabelPopup-title": "라벨 생성",
     "createLabelPopup-title": "라벨 생성",
     "current": "current",
     "current": "current",
+    "date": "Date",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "Default avatar",
     "default-avatar": "Default avatar",
     "delete": "삭제",
     "delete": "삭제",
@@ -122,7 +156,10 @@
     "edit": "수정",
     "edit": "수정",
     "edit-avatar": "아바타 변경",
     "edit-avatar": "아바타 변경",
     "edit-profile": "Edit Profile",
     "edit-profile": "Edit Profile",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "라벨 변경",
     "editLabelPopup-title": "라벨 변경",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Edit Profile",
     "editProfilePopup-title": "Edit Profile",
     "email": "이메일",
     "email": "이메일",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "This user does not exist",
     "error-user-doesNotExist": "This user does not exist",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notCreated": "This user is not created",
     "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "Filter",
     "filter": "Filter",
     "filter-cards": "카드 필터",
     "filter-cards": "카드 필터",
     "filter-clear": "Clear filter",
     "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filter is on",
     "filter-on": "Filter is on",
     "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.",
     "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "전체 이름",
     "fullname": "전체 이름",
     "header-logo-title": "보드 페이지로 돌아가기.",
     "header-logo-title": "보드 페이지로 돌아가기.",
+    "hide-system-messages": "Hide system messages",
     "home": "홈",
     "home": "홈",
     "import": "Import",
     "import": "Import",
     "import-board": "import from Trello",
     "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
     "import-json-placeholder": "Paste your valid JSON data here",
     "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-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-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "정보",
     "info": "정보",
     "initials": "Initials",
     "initials": "Initials",
+    "invalid-date": "Invalid date",
     "joined": "참가함",
     "joined": "참가함",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
     "keyboard-shortcuts": "Keyboard shortcuts",
     "keyboard-shortcuts": "Keyboard shortcuts",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Import a Trello card",
     "listImportCardPopup-title": "Import a Trello card",
     "lists": "Lists",
     "lists": "Lists",
     "log-out": "로그아웃",
     "log-out": "로그아웃",
+    "log-in": "로그인",
     "loginPopup-title": "로그인",
     "loginPopup-title": "로그인",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
     "memberMenuPopup-title": "Member Settings",
     "memberMenuPopup-title": "Member Settings",
     "members": "멤버",
     "members": "멤버",
     "menu": "메뉴",
     "menu": "메뉴",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
     "moveCardPopup-title": "Move Card",
     "moveCardPopup-title": "Move Card",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Move selection",
     "moveSelectionPopup-title": "Move selection",
     "multi-selection": "Multi-Selection",
     "multi-selection": "Multi-Selection",
     "multi-selection-on": "Multi-Selection is on",
     "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 archived cards.",
     "no-archived-cards": "No archived cards.",
@@ -205,12 +251,15 @@
     "normal": "표준",
     "normal": "표준",
     "normal-desc": "카드를 보거나 수정할 수 있습니다. 설정값은 변경할 수 없습니다.",
     "normal-desc": "카드를 보거나 수정할 수 있습니다. 설정값은 변경할 수 없습니다.",
     "not-accepted-yet": "Invitation not accepted yet",
     "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",
     "or": "or",
     "page-maybe-private": "이 페이지를 비공개일 수 있습니다. 이것을 보고 싶으면 <a href='%s'>로그인</a>을 하십시오.",
     "page-maybe-private": "이 페이지를 비공개일 수 있습니다. 이것을 보고 싶으면 <a href='%s'>로그인</a>을 하십시오.",
     "page-not-found": "페이지를 찾지 못 했습니다",
     "page-not-found": "페이지를 찾지 못 했습니다",
     "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",
     "preview": "Preview",
     "preview": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
@@ -223,6 +272,7 @@
     "remove-cover": "커버 제거",
     "remove-cover": "커버 제거",
     "remove-from-board": "Remove from Board",
     "remove-from-board": "Remove from Board",
     "remove-label": "Remove the label",
     "remove-label": "Remove the label",
+    "remove-list": "Remove the list",
     "remove-member": "멤버 제거",
     "remove-member": "멤버 제거",
     "remove-member-from-card": "카드에서 제거",
     "remove-member-from-card": "카드에서 제거",
     "remove-member-pop": "__boardTitle__에서 __name__(__username__) 을 제거합니까? 그 멤버는 이 보드의 모든 카드에서 제거됩니다. 그에대한 알람을 받게됩니다.",
     "remove-member-pop": "__boardTitle__에서 __name__(__username__) 을 제거합니까? 그 멤버는 이 보드의 모든 카드에서 제거됩니다. 그에대한 알람을 받게됩니다.",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "계정 생성",
     "signupPopup-title": "계정 생성",
     "star-board-title": "보드에 별을 클릭합니다. 보드 목록에서 최상위로 둘 수 있습니다.",
     "star-board-title": "보드에 별을 클릭합니다. 보드 목록에서 최상위로 둘 수 있습니다.",
     "starred-boards": "별표된 보드",
     "starred-boards": "별표된 보드",
@@ -250,14 +301,24 @@
     "team": "팀",
     "team": "팀",
     "this-board": "보드",
     "this-board": "보드",
     "this-card": "카드",
     "this-card": "카드",
+    "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.",
     "unassign-member": "Unassign member",
     "unassign-member": "Unassign member",
     "unsaved-description": "You have an unsaved description.",
     "unsaved-description": "You have an unsaved description.",
+    "unwatch": "Unwatch",
     "upload": "Upload",
     "upload": "Upload",
     "upload-avatar": "Upload an avatar",
     "upload-avatar": "Upload an avatar",
     "uploaded-avatar": "Uploaded an avatar",
     "uploaded-avatar": "Uploaded an avatar",
     "username": "사용자 이름",
     "username": "사용자 이름",
     "view-it": "View it",
     "view-it": "View it",
     "warn-list-archived": "warning: this card is in an archived list",
     "warn-list-archived": "warning: this card is in an archived list",
-    "what-to-do": "What do you want to do?"
-}
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "무엇을 원하나요?"
+}

+ 68 - 7
i18n/pl.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Akceptuj",
     "accept": "Akceptuj",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Akcje",
     "actions": "Akcje",
     "activities": "Aktywności",
     "activities": "Aktywności",
     "activity": "Aktywność",
     "activity": "Aktywność",
@@ -16,10 +36,13 @@
     "activity-removed": "usunięto %s z %s",
     "activity-removed": "usunięto %s z %s",
     "activity-sent": "wysłano %s z %s",
     "activity-sent": "wysłano %s z %s",
     "activity-unjoined": "odłączono %s",
     "activity-unjoined": "odłączono %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Dodaj",
     "add": "Dodaj",
     "add-attachment": "Dodaj załącznik",
     "add-attachment": "Dodaj załącznik",
     "add-board": "Dodaj nową tablicę",
     "add-board": "Dodaj nową tablicę",
     "add-card": "Dodaj kartę",
     "add-card": "Dodaj kartę",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Dodaj okładkę",
     "add-cover": "Dodaj okładkę",
     "add-label": "Dodaj etykietę",
     "add-label": "Dodaj etykietę",
     "add-list": "Dodaj listę",
     "add-list": "Dodaj listę",
@@ -31,6 +54,8 @@
     "all-boards": "Wszystkie tablice",
     "all-boards": "Wszystkie tablice",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Zarchiwizuj",
     "archive": "Zarchiwizuj",
     "archive-all": "Zarchiwizuj wszystkie",
     "archive-all": "Zarchiwizuj wszystkie",
     "archive-board": "Zarchiwizuj tablicę",
     "archive-board": "Zarchiwizuj tablicę",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "Usunięcie załącznika jest nieodwracalne.",
     "attachment-delete-pop": "Usunięcie załącznika jest nieodwracalne.",
     "attachmentDeletePopup-title": "Usunąć załącznik?",
     "attachmentDeletePopup-title": "Usunąć załącznik?",
     "attachments": "Załączniki",
     "attachments": "Załączniki",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "Avatar jest za duży (maksymalnie 70Kb)",
     "avatar-too-big": "Avatar jest za duży (maksymalnie 70Kb)",
     "back": "Wstecz",
     "back": "Wstecz",
     "board-change-color": "Zmień kolor",
     "board-change-color": "Zmień kolor",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Zmień tło tablicy",
     "boardChangeColorPopup-title": "Zmień tło tablicy",
     "boardChangeTitlePopup-title": "Zmień nazwę tablicy",
     "boardChangeTitlePopup-title": "Zmień nazwę tablicy",
     "boardChangeVisibilityPopup-title": "Zmień widoczność",
     "boardChangeVisibilityPopup-title": "Zmień widoczność",
-    "boardImportBoardPopup-title": "Zaimportuj tablicę z Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Menu tablicy",
     "boardMenuPopup-title": "Menu tablicy",
     "boards": "Tablice",
     "boards": "Tablice",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
@@ -64,13 +90,17 @@
     "card-archived": "Ta karta jest zarchiwizowana.",
     "card-archived": "Ta karta jest zarchiwizowana.",
     "card-comments-title": "Ta karta ma %s komentarzy.",
     "card-comments-title": "Ta karta ma %s komentarzy.",
     "card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
     "card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
-    "card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty.  Usunięcie jest nieodwracalne. ",
+    "card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty.  Usunięcie jest nieodwracalne.",
     "card-delete-suggest-archive": "Możesz zarchiwizować kartę w celu usunięcia jej z tablicy oraz zachowania jej aktywności.",
     "card-delete-suggest-archive": "Możesz zarchiwizować kartę w celu usunięcia jej z tablicy oraz zachowania jej aktywności.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Edytuj załączniki",
     "card-edit-attachments": "Edytuj załączniki",
     "card-edit-labels": "Edytuj etykiety",
     "card-edit-labels": "Edytuj etykiety",
     "card-edit-members": "Edytuj członków",
     "card-edit-members": "Edytuj członków",
     "card-labels-title": "Zmień etykiety karty",
     "card-labels-title": "Zmień etykiety karty",
     "card-members-title": "Dodaj lub usuń członków tablicy z karty.",
     "card-members-title": "Dodaj lub usuń członków tablicy z karty.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Załącz z",
     "cardAttachmentsPopup-title": "Załącz z",
     "cardDeletePopup-title": "Usunąć kartę?",
     "cardDeletePopup-title": "Usunąć kartę?",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
     "change-avatar": "Zmień Avatar",
     "change-avatar": "Zmień Avatar",
     "change-password": "Zmień hasło",
     "change-password": "Zmień hasło",
     "change-permissions": "Zmień uprawnienia",
     "change-permissions": "Zmień uprawnienia",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Zmień Avatar",
     "changeAvatarPopup-title": "Zmień Avatar",
     "changeLanguagePopup-title": "Zmień język",
     "changeLanguagePopup-title": "Zmień język",
     "changePasswordPopup-title": "Zmień hasło",
     "changePasswordPopup-title": "Zmień hasło",
     "changePermissionsPopup-title": "Zmień uprawnienia",
     "changePermissionsPopup-title": "Zmień uprawnienia",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Kliknij by odznaczyć tę tablicę.",
     "click-to-star": "Kliknij by odznaczyć tę tablicę.",
     "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.",
     "click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.",
     "clipboard": "Schowek lub przeciągnij & upuść",
     "clipboard": "Schowek lub przeciągnij & upuść",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Utwórz tablicę",
     "createBoardPopup-title": "Utwórz tablicę",
     "createLabelPopup-title": "Utwórz etykietę",
     "createLabelPopup-title": "Utwórz etykietę",
     "current": "obecny",
     "current": "obecny",
+    "date": "Date",
     "decline": "Odrzuć",
     "decline": "Odrzuć",
     "default-avatar": "Domyślny avatar",
     "default-avatar": "Domyślny avatar",
     "delete": "Usuń",
     "delete": "Usuń",
@@ -122,7 +156,10 @@
     "edit": "Edytuj",
     "edit": "Edytuj",
     "edit-avatar": "Zmień Avatar",
     "edit-avatar": "Zmień Avatar",
     "edit-profile": "Edytuj profil",
     "edit-profile": "Edytuj profil",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Zmień etykietę",
     "editLabelPopup-title": "Zmień etykietę",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Edytuj profil",
     "editProfilePopup-title": "Edytuj profil",
     "email": "Email",
     "email": "Email",
     "email-enrollAccount-subject": "Konto zostało utworzone na __siteName__",
     "email-enrollAccount-subject": "Konto zostało utworzone na __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "Ten użytkownik nie istnieje",
     "error-user-doesNotExist": "Ten użytkownik nie istnieje",
     "error-user-notAllowSelf": "Ta akcje nie jest dozwolona",
     "error-user-notAllowSelf": "Ta akcje nie jest dozwolona",
     "error-user-notCreated": "Ten użytkownik nie został stworzony",
     "error-user-notCreated": "Ten użytkownik nie został stworzony",
+    "error-username-taken": "This username is already taken",
     "export-board": "Eksportuj tablicę",
     "export-board": "Eksportuj tablicę",
     "filter": "Filtr",
     "filter": "Filtr",
     "filter-cards": "Odfiltruj karty",
     "filter-cards": "Odfiltruj karty",
     "filter-clear": "Usuń filter",
     "filter-clear": "Usuń filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filtr jest włączony",
     "filter-on": "Filtr jest włączony",
     "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
     "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
     "filter-to-selection": "Odfiltruj zaznaczenie",
     "filter-to-selection": "Odfiltruj zaznaczenie",
     "fullname": "Full Name",
     "fullname": "Full Name",
     "header-logo-title": "Wróć do swojej strony z tablicami.",
     "header-logo-title": "Wróć do swojej strony z tablicami.",
+    "hide-system-messages": "Hide system messages",
     "home": "Strona główna",
     "home": "Strona główna",
     "import": "Importu",
     "import": "Importu",
     "import-board": "zaimportuj z Trello",
     "import-board": "zaimportuj z Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "W twojej tablicy na Trello, idź do 'Menu', następnie 'More', 'Print and Export', 'Export JSON' i skopiuj wynik",
     "import-board-trello-instruction": "W twojej tablicy na Trello, idź do 'Menu', następnie 'More', 'Print and Export', 'Export JSON' i skopiuj wynik",
-    "import-card": "Zaimportuj kartę z Trello",
-    "import-card-trello-instruction": "Idź do karty Trello, wybierz 'Share and more...', następnie 'Export JSON' i skopiuj wynik",
     "import-json-placeholder": "Wklej twój JSON tutaj",
     "import-json-placeholder": "Wklej twój JSON tutaj",
+    "import-map-members": "Map members",
     "import-members-map": "Twoje zaimportowane tablice mają kilku członków. Proszę wybierz członków których chcesz zaimportować do Wekan",
     "import-members-map": "Twoje zaimportowane tablice mają kilku członków. Proszę wybierz członków których chcesz zaimportować do Wekan",
     "import-show-user-mapping": "Przejrzyj wybranych członków",
     "import-show-user-mapping": "Przejrzyj wybranych członków",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Informacje",
     "info": "Informacje",
     "initials": "Initials",
     "initials": "Initials",
+    "invalid-date": "Invalid date",
     "joined": "dołączył",
     "joined": "dołączył",
     "just-invited": "Właśnie zostałeś zaproszony do tej tablicy",
     "just-invited": "Właśnie zostałeś zaproszony do tej tablicy",
     "keyboard-shortcuts": "Skróty klawiaturowe",
     "keyboard-shortcuts": "Skróty klawiaturowe",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Zaimportuj kartę z Trello",
     "listImportCardPopup-title": "Zaimportuj kartę z Trello",
     "lists": "Listy",
     "lists": "Listy",
     "log-out": "Wyloguj",
     "log-out": "Wyloguj",
+    "log-in": "Zaloguj",
     "loginPopup-title": "Zaloguj",
     "loginPopup-title": "Zaloguj",
-    "mapMembersAddPopup-title": "Wybierz członka Wekan",
-    "mapMembersPopup-title": "Map members",
     "memberMenuPopup-title": "Member Settings",
     "memberMenuPopup-title": "Member Settings",
     "members": "Członkowie",
     "members": "Członkowie",
     "menu": "Menu",
     "menu": "Menu",
     "move-selection": "Przenieś zaznaczone",
     "move-selection": "Przenieś zaznaczone",
     "moveCardPopup-title": "Przenieś kartę",
     "moveCardPopup-title": "Przenieś kartę",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Przenieś zaznaczone",
     "moveSelectionPopup-title": "Przenieś zaznaczone",
     "multi-selection": "Wielokrotne zaznaczenie",
     "multi-selection": "Wielokrotne zaznaczenie",
     "multi-selection-on": "Wielokrotne zaznaczenie jest włączone",
     "multi-selection-on": "Wielokrotne zaznaczenie jest włączone",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "Moje tablice",
     "my-boards": "Moje tablice",
     "name": "Nazwa",
     "name": "Nazwa",
     "no-archived-cards": "Brak zarchiwizowanych kart.",
     "no-archived-cards": "Brak zarchiwizowanych kart.",
@@ -205,12 +251,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Może widzieć i edytować karty. Nie może zmieniać ustawiań.",
     "normal-desc": "Może widzieć i edytować karty. Nie może zmieniać ustawiań.",
     "not-accepted-yet": "Zaproszenie jeszcze nie zaakceptowane",
     "not-accepted-yet": "Zaproszenie jeszcze nie zaakceptowane",
+    "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": "opcjonalny",
     "optional": "opcjonalny",
     "or": "lub",
     "or": "lub",
     "page-maybe-private": "Ta strona może być prywatna. Możliwe, że możesz ją zobaczyć po <a href='%s'>zalogowaniu</a>.",
     "page-maybe-private": "Ta strona może być prywatna. Możliwe, że możesz ją zobaczyć po <a href='%s'>zalogowaniu</a>.",
     "page-not-found": "Strona nie znaleziona.",
     "page-not-found": "Strona nie znaleziona.",
     "password": "Hasło",
     "password": "Hasło",
     "paste-or-dragdrop": "wklej lub przeciągnij & upuść obrazek",
     "paste-or-dragdrop": "wklej lub przeciągnij & upuść obrazek",
+    "participating": "Participating",
     "preview": "Podgląd",
     "preview": "Podgląd",
     "previewAttachedImagePopup-title": "Podgląd",
     "previewAttachedImagePopup-title": "Podgląd",
     "previewClipboardImagePopup-title": "Podgląd",
     "previewClipboardImagePopup-title": "Podgląd",
@@ -223,6 +272,7 @@
     "remove-cover": "Usuń okładkę",
     "remove-cover": "Usuń okładkę",
     "remove-from-board": "Usuń z tablicy",
     "remove-from-board": "Usuń z tablicy",
     "remove-label": "Usuń etykietę",
     "remove-label": "Usuń etykietę",
+    "remove-list": "Remove the list",
     "remove-member": "Usuń członka",
     "remove-member": "Usuń członka",
     "remove-member-from-card": "Usuń z karty",
     "remove-member-from-card": "Usuń z karty",
     "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.",
@@ -234,7 +284,7 @@
     "search": "Wyszukaj",
     "search": "Wyszukaj",
     "select-color": "Wybierz kolor",
     "select-color": "Wybierz kolor",
     "shortcut-assign-self": "Przypisz siebie do obecnej karty",
     "shortcut-assign-self": "Przypisz siebie do obecnej karty",
-    "shortcut-autocomplete-emojies": "Autocomplete emojies",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Autocomplete members",
     "shortcut-autocomplete-members": "Autocomplete members",
     "shortcut-clear-filters": "Usuń wszystkie filtry",
     "shortcut-clear-filters": "Usuń wszystkie filtry",
     "shortcut-close-dialog": "Zamknij okno",
     "shortcut-close-dialog": "Zamknij okno",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Przypnij do listy skrótów",
     "shortcut-show-shortcuts": "Przypnij do listy skrótów",
     "shortcut-toggle-filterbar": "Przełącz boczny pasek filtru",
     "shortcut-toggle-filterbar": "Przełącz boczny pasek filtru",
     "shortcut-toggle-sidebar": "Przełącz boczny pasek tablicy",
     "shortcut-toggle-sidebar": "Przełącz boczny pasek tablicy",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Utwórz konto",
     "signupPopup-title": "Utwórz konto",
     "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": "Odznaczone tablice",
     "starred-boards": "Odznaczone tablice",
@@ -250,14 +301,24 @@
     "team": "Zespół",
     "team": "Zespół",
     "this-board": "ta tablica",
     "this-board": "ta tablica",
     "this-card": "ta karta",
     "this-card": "ta karta",
+    "time": "Time",
     "title": "Tytuł",
     "title": "Tytuł",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Nieprzypisany członek",
     "unassign-member": "Nieprzypisany członek",
     "unsaved-description": "You have an unsaved description.",
     "unsaved-description": "You have an unsaved description.",
+    "unwatch": "Unwatch",
     "upload": "Wyślij",
     "upload": "Wyślij",
     "upload-avatar": "Wyślij avatar",
     "upload-avatar": "Wyślij avatar",
     "uploaded-avatar": "Wysłany avatar",
     "uploaded-avatar": "Wysłany avatar",
     "username": "Nazwa użytkownika",
     "username": "Nazwa użytkownika",
     "view-it": "Zobacz",
     "view-it": "Zobacz",
     "warn-list-archived": "ostrzeżenie: ta karta jest na zarchiwizowanej liście",
     "warn-list-archived": "ostrzeżenie: ta karta jest na zarchiwizowanej liście",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "Co chcesz zrobić?"
     "what-to-do": "Co chcesz zrobić?"
 }
 }

+ 67 - 6
i18n/pt-BR.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Aceitar",
     "accept": "Aceitar",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Ações",
     "actions": "Ações",
     "activities": "Atividades",
     "activities": "Atividades",
     "activity": "Atividade",
     "activity": "Atividade",
@@ -16,10 +36,13 @@
     "activity-removed": "removeu %s de %s",
     "activity-removed": "removeu %s de %s",
     "activity-sent": "enviou %s de %s",
     "activity-sent": "enviou %s de %s",
     "activity-unjoined": "saiu de %s",
     "activity-unjoined": "saiu de %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Novo",
     "add": "Novo",
     "add-attachment": "Adicionar um anexo",
     "add-attachment": "Adicionar um anexo",
     "add-board": "Criar um quadro novo",
     "add-board": "Criar um quadro novo",
     "add-card": "Adicionar um cartão",
     "add-card": "Adicionar um cartão",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Adicionar Capa",
     "add-cover": "Adicionar Capa",
     "add-label": "Adicionar a Etiqueta",
     "add-label": "Adicionar a Etiqueta",
     "add-list": "Adicionar uma lista",
     "add-list": "Adicionar uma lista",
@@ -31,6 +54,8 @@
     "all-boards": "Todos os quadros",
     "all-boards": "Todos os quadros",
     "and-n-other-card": "E __count__ outro cartão",
     "and-n-other-card": "E __count__ outro cartão",
     "and-n-other-card_plural": "E __count__ outros cartões",
     "and-n-other-card_plural": "E __count__ outros cartões",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Arquivar",
     "archive": "Arquivar",
     "archive-all": "Arquivar Tudo",
     "archive-all": "Arquivar Tudo",
     "archive-board": "Arquivar Quadro",
     "archive-board": "Arquivar Quadro",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "Excluir um anexo é permanente. Não será possível recuperá-lo.",
     "attachment-delete-pop": "Excluir um anexo é permanente. Não será possível recuperá-lo.",
     "attachmentDeletePopup-title": "Excluir Anexo?",
     "attachmentDeletePopup-title": "Excluir Anexo?",
     "attachments": "Anexos",
     "attachments": "Anexos",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "Imagem de avatar muito grande (máx 70KB)",
     "avatar-too-big": "Imagem de avatar muito grande (máx 70KB)",
     "back": "Voltar",
     "back": "Voltar",
     "board-change-color": "Alterar cor",
     "board-change-color": "Alterar cor",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Alterar Tela de Fundo",
     "boardChangeColorPopup-title": "Alterar Tela de Fundo",
     "boardChangeTitlePopup-title": "Renomear Quadro",
     "boardChangeTitlePopup-title": "Renomear Quadro",
     "boardChangeVisibilityPopup-title": "Alterar Visibilidade",
     "boardChangeVisibilityPopup-title": "Alterar Visibilidade",
-    "boardImportBoardPopup-title": "Importar quadro do Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Menu do Quadro",
     "boardMenuPopup-title": "Menu do Quadro",
     "boards": "Quadros",
     "boards": "Quadros",
     "bucket-example": "\"Bucket List\", por exemplo",
     "bucket-example": "\"Bucket List\", por exemplo",
@@ -66,11 +92,15 @@
     "card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.",
     "card-delete-notice": "A exclusão será permanente. Você perderá todas as ações associadas a este cartão.",
     "card-delete-pop": "Todas as ações serão removidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.",
     "card-delete-pop": "Todas as ações serão removidas da lista de Atividades e vocês não poderá re-abrir o cartão. Não há como desfazer.",
     "card-delete-suggest-archive": "Você pode arquivar um cartão para removê-lo do quadro e preservar suas atividades.",
     "card-delete-suggest-archive": "Você pode arquivar um cartão para removê-lo do quadro e preservar suas atividades.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Editar anexos",
     "card-edit-attachments": "Editar anexos",
     "card-edit-labels": "Editar etiquetas",
     "card-edit-labels": "Editar etiquetas",
     "card-edit-members": "Editar membros",
     "card-edit-members": "Editar membros",
     "card-labels-title": "Alterar etiquetas do cartão.",
     "card-labels-title": "Alterar etiquetas do cartão.",
     "card-members-title": "Acrescentar ou remover membros do quadro deste cartão.",
     "card-members-title": "Acrescentar ou remover membros do quadro deste cartão.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Anexar a partir de",
     "cardAttachmentsPopup-title": "Anexar a partir de",
     "cardDeletePopup-title": "Excluir Cartão?",
     "cardDeletePopup-title": "Excluir Cartão?",
     "cardDetailsActionsPopup-title": "Ações do cartão",
     "cardDetailsActionsPopup-title": "Ações do cartão",
@@ -82,10 +112,13 @@
     "change-avatar": "Alterar Avatar",
     "change-avatar": "Alterar Avatar",
     "change-password": "Alterar Senha",
     "change-password": "Alterar Senha",
     "change-permissions": "Alterar permissões",
     "change-permissions": "Alterar permissões",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Alterar Avatar",
     "changeAvatarPopup-title": "Alterar Avatar",
     "changeLanguagePopup-title": "Alterar Idioma",
     "changeLanguagePopup-title": "Alterar Idioma",
     "changePasswordPopup-title": "Alterar Senha",
     "changePasswordPopup-title": "Alterar Senha",
     "changePermissionsPopup-title": "Alterar Permissões",
     "changePermissionsPopup-title": "Alterar Permissões",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Marcar quadro como favorito.",
     "click-to-star": "Marcar quadro como favorito.",
     "click-to-unstar": "Remover quadro dos favoritos.",
     "click-to-unstar": "Remover quadro dos favoritos.",
     "clipboard": "Área de Transferência ou arraste e solte",
     "clipboard": "Área de Transferência ou arraste e solte",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Criar Quadro",
     "createBoardPopup-title": "Criar Quadro",
     "createLabelPopup-title": "Criar Etiqueta",
     "createLabelPopup-title": "Criar Etiqueta",
     "current": "atual",
     "current": "atual",
+    "date": "Date",
     "decline": "Rejeitar",
     "decline": "Rejeitar",
     "default-avatar": "Avatar padrão",
     "default-avatar": "Avatar padrão",
     "delete": "Excluir",
     "delete": "Excluir",
@@ -122,7 +156,10 @@
     "edit": "Editar",
     "edit": "Editar",
     "edit-avatar": "Alterar Avatar",
     "edit-avatar": "Alterar Avatar",
     "edit-profile": "Editar Perfil",
     "edit-profile": "Editar Perfil",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Alterar Etiqueta",
     "editLabelPopup-title": "Alterar Etiqueta",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Editar Perfil",
     "editProfilePopup-title": "Editar Perfil",
     "email": "E-mail",
     "email": "E-mail",
     "email-enrollAccount-subject": "Uma conta foi criada para você em __siteName__",
     "email-enrollAccount-subject": "Uma conta foi criada para você em __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "Este usuário não existe",
     "error-user-doesNotExist": "Este usuário não existe",
     "error-user-notAllowSelf": "Esta ação em você mesmo não é permitida",
     "error-user-notAllowSelf": "Esta ação em você mesmo não é permitida",
     "error-user-notCreated": "Este usuário não foi criado",
     "error-user-notCreated": "Este usuário não foi criado",
+    "error-username-taken": "This username is already taken",
     "export-board": "Exportar quadro",
     "export-board": "Exportar quadro",
     "filter": "Filtrar",
     "filter": "Filtrar",
     "filter-cards": "Filtrar Cartões",
     "filter-cards": "Filtrar Cartões",
     "filter-clear": "Limpar filtro",
     "filter-clear": "Limpar filtro",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filtro está ativo",
     "filter-on": "Filtro está ativo",
     "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
     "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
     "filter-to-selection": "Filtrar esta seleção",
     "filter-to-selection": "Filtrar esta seleção",
     "fullname": "Nome Completo",
     "fullname": "Nome Completo",
     "header-logo-title": "Voltar para a lista de quadros.",
     "header-logo-title": "Voltar para a lista de quadros.",
+    "hide-system-messages": "Hide system messages",
     "home": "Início",
     "home": "Início",
     "import": "Importar",
     "import": "Importar",
     "import-board": "Importar do Trello",
     "import-board": "Importar do Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "No seu quadro do Trello, vá em 'Menu', depois em 'Mais', 'Imprimir e Exportar', 'Exportar JSON', então copie o texto emitido",
     "import-board-trello-instruction": "No seu quadro do Trello, vá em 'Menu', depois em 'Mais', 'Imprimir e Exportar', 'Exportar JSON', então copie o texto emitido",
-    "import-card": "Importe um cartão do Trello",
-    "import-card-trello-instruction": "Vá para um cartão do Trello, selecione 'Compartilhar e mais...' então 'Exporte JSON' e copie o texto resultante",
     "import-json-placeholder": "Cole seus dados JSON válidos aqui",
     "import-json-placeholder": "Cole seus dados JSON válidos aqui",
+    "import-map-members": "Map members",
     "import-members-map": "O seu quadro importado tem alguns membros. Por favor determine os membros que você deseja importar para os usuários Wekan",
     "import-members-map": "O seu quadro importado tem alguns membros. Por favor determine os membros que você deseja importar para os usuários Wekan",
     "import-show-user-mapping": "Revisar mapeamento dos membros",
     "import-show-user-mapping": "Revisar mapeamento dos membros",
     "import-user-select": "Selecione o usuário Wekan que você gostaria de usar como este membro",
     "import-user-select": "Selecione o usuário Wekan que você gostaria de usar como este membro",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Informações",
     "info": "Informações",
     "initials": "Iniciais",
     "initials": "Iniciais",
+    "invalid-date": "Invalid date",
     "joined": "juntou-se",
     "joined": "juntou-se",
     "just-invited": "Você já foi convidado para este quadro",
     "just-invited": "Você já foi convidado para este quadro",
     "keyboard-shortcuts": "Atalhos do teclado",
     "keyboard-shortcuts": "Atalhos do teclado",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Importe um cartão do Trello",
     "listImportCardPopup-title": "Importe um cartão do Trello",
     "lists": "Listas",
     "lists": "Listas",
     "log-out": "Sair",
     "log-out": "Sair",
+    "log-in": "Entrar",
     "loginPopup-title": "Entrar",
     "loginPopup-title": "Entrar",
-    "mapMembersAddPopup-title": "Selecione um membro Wekan",
-    "mapMembersPopup-title": "Mapear membros",
     "memberMenuPopup-title": "Configuração de Membros",
     "memberMenuPopup-title": "Configuração de Membros",
     "members": "Membros",
     "members": "Membros",
     "menu": "Menu",
     "menu": "Menu",
     "move-selection": "Mover seleção",
     "move-selection": "Mover seleção",
     "moveCardPopup-title": "Mover Cartão",
     "moveCardPopup-title": "Mover Cartão",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Mover seleção",
     "moveSelectionPopup-title": "Mover seleção",
     "multi-selection": "Multi-Seleção",
     "multi-selection": "Multi-Seleção",
     "multi-selection-on": "Multi-seleção está ativo",
     "multi-selection-on": "Multi-seleção está ativo",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "Meus Quadros",
     "my-boards": "Meus Quadros",
     "name": "Nome",
     "name": "Nome",
     "no-archived-cards": "Nenhum cartão arquivado",
     "no-archived-cards": "Nenhum cartão arquivado",
@@ -205,12 +251,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.",
     "normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.",
     "not-accepted-yet": "Convite ainda não aceito",
     "not-accepted-yet": "Convite ainda não aceito",
+    "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": "opcional",
     "optional": "opcional",
     "or": "ou",
     "or": "ou",
     "page-maybe-private": "Esta página pode ser privada. Você poderá vê-la se estiver <a href='%s'>logado</a>.",
     "page-maybe-private": "Esta página pode ser privada. Você poderá vê-la se estiver <a href='%s'>logado</a>.",
     "page-not-found": "Página não encontrada.",
     "page-not-found": "Página não encontrada.",
     "password": "Senha",
     "password": "Senha",
     "paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para ca (somente imagens)",
     "paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para ca (somente imagens)",
+    "participating": "Participating",
     "preview": "Previsualizar",
     "preview": "Previsualizar",
     "previewAttachedImagePopup-title": "Previsualizar",
     "previewAttachedImagePopup-title": "Previsualizar",
     "previewClipboardImagePopup-title": "Previsualizar",
     "previewClipboardImagePopup-title": "Previsualizar",
@@ -223,6 +272,7 @@
     "remove-cover": "Remover Capa",
     "remove-cover": "Remover Capa",
     "remove-from-board": "Remover do Quadro",
     "remove-from-board": "Remover do Quadro",
     "remove-label": "Remover Etiqueta",
     "remove-label": "Remover Etiqueta",
+    "remove-list": "Remove the list",
     "remove-member": "Remover Membro",
     "remove-member": "Remover Membro",
     "remove-member-from-card": "Remover do Cartão",
     "remove-member-from-card": "Remover do Cartão",
     "remove-member-pop": "Remover __name__ (__username__) de __boardTitle__? O membro será removido de todos os cartões neste quadro e será notificado.",
     "remove-member-pop": "Remover __name__ (__username__) de __boardTitle__? O membro será removido de todos os cartões neste quadro e será notificado.",
@@ -234,7 +284,7 @@
     "search": "Buscar",
     "search": "Buscar",
     "select-color": "Selecione uma cor",
     "select-color": "Selecione uma cor",
     "shortcut-assign-self": "Atribuir a si o cartão atual",
     "shortcut-assign-self": "Atribuir a si o cartão atual",
-    "shortcut-autocomplete-emojies": "Preenchimento automático de emojies",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
     "shortcut-autocomplete-members": "Preenchimento automático de membros",
     "shortcut-autocomplete-members": "Preenchimento automático de membros",
     "shortcut-clear-filters": "Limpar todos filtros",
     "shortcut-clear-filters": "Limpar todos filtros",
     "shortcut-close-dialog": "Fechar dialogo",
     "shortcut-close-dialog": "Fechar dialogo",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Mostrar lista de atalhos",
     "shortcut-show-shortcuts": "Mostrar lista de atalhos",
     "shortcut-toggle-filterbar": "Alternar barra de filtro",
     "shortcut-toggle-filterbar": "Alternar barra de filtro",
     "shortcut-toggle-sidebar": "Fechar barra lateral.",
     "shortcut-toggle-sidebar": "Fechar barra lateral.",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Criar uma Conta",
     "signupPopup-title": "Criar uma Conta",
     "star-board-title": "Clique para marcar este quadro como favorito. Ele aparecerá no topo na lista dos seus quadros.",
     "star-board-title": "Clique para marcar este quadro como favorito. Ele aparecerá no topo na lista dos seus quadros.",
     "starred-boards": "Quadros Favoritos",
     "starred-boards": "Quadros Favoritos",
@@ -250,14 +301,24 @@
     "team": "Equipe",
     "team": "Equipe",
     "this-board": "este quadro",
     "this-board": "este quadro",
     "this-card": "este cartão",
     "this-card": "este cartão",
+    "time": "Time",
     "title": "Título",
     "title": "Título",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Membro não associado",
     "unassign-member": "Membro não associado",
     "unsaved-description": "Você possui uma descrição não salva",
     "unsaved-description": "Você possui uma descrição não salva",
+    "unwatch": "Unwatch",
     "upload": "Upload",
     "upload": "Upload",
     "upload-avatar": "Carregar um avatar",
     "upload-avatar": "Carregar um avatar",
     "uploaded-avatar": "Avatar carregado",
     "uploaded-avatar": "Avatar carregado",
     "username": "Nome de usuário",
     "username": "Nome de usuário",
     "view-it": "Visualizar",
     "view-it": "Visualizar",
     "warn-list-archived": "aviso: este cartão está em uma lista arquivada",
     "warn-list-archived": "aviso: este cartão está em uma lista arquivada",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "O que você gostaria de fazer?"
     "what-to-do": "O que você gostaria de fazer?"
 }
 }

+ 324 - 0
i18n/ro.i18n.json

@@ -0,0 +1,324 @@
+{
+    "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "archived %s",
+    "activity-attached": "attached %s to %s",
+    "activity-created": "created %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",
+    "add": "Add",
+    "add-attachment": "Add an attachment",
+    "add-board": "Add a new board",
+    "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "Add Cover",
+    "add-label": "Add the label",
+    "add-list": "Add a 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.",
+    "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": "The application is currently offline, refreshing the page will cause data loss.",
+    "archive": "Archive",
+    "archive-all": "Archive All",
+    "archive-board": "Archive Board",
+    "archive-card": "Archive Card",
+    "archive-list": "Archive this list",
+    "archive-selection": "Archive selection",
+    "archiveBoardPopup-title": "Archive Board?",
+    "archived-items": "Archived Items",
+    "archives": "Arhive",
+    "assign-member": "Assign member",
+    "attached": "attached",
+    "attachment": "Ataşament",
+    "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
+    "attachmentDeletePopup-title": "Delete Attachment?",
+    "attachments": "Ataşamente",
+    "auto-watch": "Automatically watch boards when create it",
+    "avatar-too-big": "The avatar is too large (70Kb max)",
+    "back": "Înapoi",
+    "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",
+    "bucket-example": "Like “Bucket List” for example",
+    "cancel": "Cancel",
+    "card-archived": "This card is archived.",
+    "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 archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
+    "card-edit-attachments": "Edit attachments",
+    "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",
+    "cardDeletePopup-title": "Delete Card?",
+    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardLabelsPopup-title": "Labels",
+    "cardMembersPopup-title": "Members",
+    "cardMorePopup-title": "More",
+    "cards": "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": "Închide",
+    "close-board": "Close Board",
+    "close-board-pop": "You will be able to restore the board by clicking the “Archives” 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 a comment",
+    "computer": "Computer",
+    "create": "Create",
+    "createBoardPopup-title": "Create Board",
+    "createLabelPopup-title": "Create Label",
+    "current": "current",
+    "date": "Date",
+    "decline": "Decline",
+    "default-avatar": "Default avatar",
+    "delete": "Delete",
+    "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",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
+    "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-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.",
+    "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": "This action on self is not allowed",
+    "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already 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-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",
+    "fullname": "Full Name",
+    "header-logo-title": "Go back to your boards page.",
+    "hide-system-messages": "Hide system messages",
+    "home": "Home",
+    "import": "Import",
+    "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
+    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+    "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": "Infos",
+    "initials": "Iniţiale",
+    "invalid-date": "Invalid date",
+    "joined": "joined",
+    "just-invited": "You are just invited to this board",
+    "keyboard-shortcuts": "Keyboard shortcuts",
+    "label-create": "Create a new 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",
+    "link-card": "Link to this card",
+    "list-archive-cards": "Archive all cards in this list",
+    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
+    "list-move-cards": "Move all cards in this list",
+    "list-select-cards": "Select all cards in this list",
+    "listActionPopup-title": "List Actions",
+    "listImportCardPopup-title": "Import a Trello card",
+    "lists": "Liste",
+    "log-out": "Log Out",
+    "log-in": "Log In",
+    "loginPopup-title": "Log In",
+    "memberMenuPopup-title": "Member Settings",
+    "members": "Members",
+    "menu": "Meniu",
+    "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": "Nume",
+    "no-archived-cards": "No archived cards.",
+    "no-archived-lists": "No archived lists.",
+    "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": "Parolă",
+    "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": "Privat",
+    "private-desc": "This board is private. Only people added to the board can view and edit it.",
+    "profile": "Profil",
+    "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 the label",
+    "remove-list": "Remove the 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": "Salvează",
+    "search": "Caută",
+    "select-color": "Select a color",
+    "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",
+    "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",
+    "time": "Time",
+    "title": "Titlu",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+    "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 archived list",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
+    "what-to-do": "Ce ai vrea sa faci?"
+}

+ 80 - 16
i18n/ru.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Принять",
     "accept": "Принять",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Активность",
@@ -16,10 +36,13 @@
     "activity-removed": "удалено %s из %s",
     "activity-removed": "удалено %s из %s",
     "activity-sent": "отправлено %s в %s",
     "activity-sent": "отправлено %s в %s",
     "activity-unjoined": "вышел из %s",
     "activity-unjoined": "вышел из %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Создать",
     "add": "Создать",
     "add-attachment": "Добавить вложение",
     "add-attachment": "Добавить вложение",
     "add-board": "Создать новую доску",
     "add-board": "Создать новую доску",
     "add-card": "Добавить карточку",
     "add-card": "Добавить карточку",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Прикрепить",
     "add-cover": "Прикрепить",
     "add-label": "Добавить метку",
     "add-label": "Добавить метку",
     "add-list": "Добавить список",
     "add-list": "Добавить список",
@@ -31,6 +54,8 @@
     "all-boards": "Все доски",
     "all-boards": "Все доски",
     "and-n-other-card": "И __count__ другая карточка",
     "and-n-other-card": "И __count__ другая карточка",
     "and-n-other-card_plural": "И __count__ другие карточки",
     "and-n-other-card_plural": "И __count__ другие карточки",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Архивировать",
     "archive": "Архивировать",
     "archive-all": "Архивировать все",
     "archive-all": "Архивировать все",
     "archive-board": "Архивировать доску",
     "archive-board": "Архивировать доску",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "Если удалить вложение, его нельзя будет восстановить.",
     "attachment-delete-pop": "Если удалить вложение, его нельзя будет восстановить.",
     "attachmentDeletePopup-title": "Удалить вложение?",
     "attachmentDeletePopup-title": "Удалить вложение?",
     "attachments": "Вложения",
     "attachments": "Вложения",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "Аватар слишком большой (максимум 70кб)",
     "avatar-too-big": "Аватар слишком большой (максимум 70кб)",
     "back": "Назад",
     "back": "Назад",
     "board-change-color": "Изменить цвет",
     "board-change-color": "Изменить цвет",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Изменить фон доски",
     "boardChangeColorPopup-title": "Изменить фон доски",
     "boardChangeTitlePopup-title": "Переименовать доску",
     "boardChangeTitlePopup-title": "Переименовать доску",
     "boardChangeVisibilityPopup-title": "Изменить настройки видимости",
     "boardChangeVisibilityPopup-title": "Изменить настройки видимости",
-    "boardImportBoardPopup-title": "Импортировать доску с Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Меню доски",
     "boardMenuPopup-title": "Меню доски",
     "boards": "Доски",
     "boards": "Доски",
     "bucket-example": "Например “Список дел”",
     "bucket-example": "Например “Список дел”",
@@ -66,11 +92,15 @@
     "card-delete-notice": "Это действие невозможно будет отменить. Все изменения, которые вы вносили в карточку будут потеряны.",
     "card-delete-notice": "Это действие невозможно будет отменить. Все изменения, которые вы вносили в карточку будут потеряны.",
     "card-delete-pop": "Все действия будут удалены из ленты активности и вы не сможете заново открыть карточку. Действие необратимо",
     "card-delete-pop": "Все действия будут удалены из ленты активности и вы не сможете заново открыть карточку. Действие необратимо",
     "card-delete-suggest-archive": "Вы можете заархивировать карточку, чтобы удалить ее с доски и сохранить активность .",
     "card-delete-suggest-archive": "Вы можете заархивировать карточку, чтобы удалить ее с доски и сохранить активность .",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Изменить вложения",
     "card-edit-attachments": "Изменить вложения",
     "card-edit-labels": "Изменить метку",
     "card-edit-labels": "Изменить метку",
     "card-edit-members": "Изменить пользователей",
     "card-edit-members": "Изменить пользователей",
     "card-labels-title": "Редактировать метки.",
     "card-labels-title": "Редактировать метки.",
     "card-members-title": "Добавить или удалить участника.",
     "card-members-title": "Добавить или удалить участника.",
+    "card-start": "Start",
+    "card-start-on": "Starts on",
     "cardAttachmentsPopup-title": "Прикрепить из",
     "cardAttachmentsPopup-title": "Прикрепить из",
     "cardDeletePopup-title": "Удалить карточку?",
     "cardDeletePopup-title": "Удалить карточку?",
     "cardDetailsActionsPopup-title": "Действия в карточке",
     "cardDetailsActionsPopup-title": "Действия в карточке",
@@ -82,26 +112,29 @@
     "change-avatar": "Изменить аватар",
     "change-avatar": "Изменить аватар",
     "change-password": "Изменить пароль",
     "change-password": "Изменить пароль",
     "change-permissions": "Изменить права доступа",
     "change-permissions": "Изменить права доступа",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Изменить аватар",
     "changeAvatarPopup-title": "Изменить аватар",
     "changeLanguagePopup-title": "Сменить язык",
     "changeLanguagePopup-title": "Сменить язык",
     "changePasswordPopup-title": "Изменить пароль",
     "changePasswordPopup-title": "Изменить пароль",
     "changePermissionsPopup-title": "Изменить настройки доступа",
     "changePermissionsPopup-title": "Изменить настройки доступа",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Добавить в  «Избранное»",
     "click-to-star": "Добавить в  «Избранное»",
     "click-to-unstar": "Удалить из «Избранного»",
     "click-to-unstar": "Удалить из «Избранного»",
     "clipboard": "Буфер обмена или drag & drop",
     "clipboard": "Буфер обмена или drag & drop",
     "close": "Закрыть",
     "close": "Закрыть",
     "close-board": "Закрыть доску",
     "close-board": "Закрыть доску",
     "close-board-pop": "Вы можете восстановить доску, нажав  “Архивы” в заголовке.",
     "close-board-pop": "Вы можете восстановить доску, нажав  “Архивы” в заголовке.",
+    "color-black": "черный",
+    "color-blue": "синий",
     "color-green": "зеленый",
     "color-green": "зеленый",
-    "color-yellow": "желтый",
+    "color-lime": "лимоновый",
     "color-orange": "оранджевый",
     "color-orange": "оранджевый",
-    "color-red": "красный",
+    "color-pink": "зорозвый",
     "color-purple": "фиолетовый",
     "color-purple": "фиолетовый",
-    "color-blue": "синий",
+    "color-red": "красный",
     "color-sky": "голубой",
     "color-sky": "голубой",
-    "color-lime": "лимоновый",
-    "color-pink": "зорозвый",
-    "color-black": "черный",
+    "color-yellow": "желтый",
     "comment": "Отправить",
     "comment": "Отправить",
     "comment-placeholder": "Написать комментарий",
     "comment-placeholder": "Написать комментарий",
     "computer": "Загрузить с компьютера",
     "computer": "Загрузить с компьютера",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Создать доску",
     "createBoardPopup-title": "Создать доску",
     "createLabelPopup-title": "Создать метку",
     "createLabelPopup-title": "Создать метку",
     "current": "Текущий",
     "current": "Текущий",
+    "date": "Date",
     "decline": "Понизить",
     "decline": "Понизить",
     "default-avatar": "Стандартный аватар",
     "default-avatar": "Стандартный аватар",
     "delete": "Удалить",
     "delete": "Удалить",
@@ -122,7 +156,10 @@
     "edit": "Редактировать",
     "edit": "Редактировать",
     "edit-avatar": "Изменить аватар",
     "edit-avatar": "Изменить аватар",
     "edit-profile": "Изменить профиль",
     "edit-profile": "Изменить профиль",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Редактирование метки",
     "editLabelPopup-title": "Редактирование метки",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Изменить профиль",
     "editProfilePopup-title": "Изменить профиль",
     "email": "Эл.почта",
     "email": "Эл.почта",
     "email-enrollAccount-subject": "Аккаунт создан для вас здесь __url__",
     "email-enrollAccount-subject": "Аккаунт создан для вас здесь __url__",
@@ -134,9 +171,9 @@
     "email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас на доску \"__board__\" для сотрудничества.\n\nПожайлуйста проследуйте по ссылке:\n\n__url__\n\nСпасибо.",
     "email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас на доску \"__board__\" для сотрудничества.\n\nПожайлуйста проследуйте по ссылке:\n\n__url__\n\nСпасибо.",
     "email-resetPassword-subject": "Перейдите по ссылке, чтобы сбросить пароль __url__",
     "email-resetPassword-subject": "Перейдите по ссылке, чтобы сбросить пароль __url__",
     "email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке.\n\n__url__\n\nThanks.",
     "email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке.\n\n__url__\n\nThanks.",
+    "email-sent": "Email отправлен",
     "email-verifyEmail-subject": "Подтвердите Email перейдя по ссылке __url__",
     "email-verifyEmail-subject": "Подтвердите Email перейдя по ссылке __url__",
     "email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения Email перейдите по ссылке.\n\n__url__\n\nСпасибо.",
     "email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения Email перейдите по ссылке.\n\n__url__\n\nСпасибо.",
-    "email-sent": "Email отправлен",
     "error-board-doesNotExist": "Доска не найдена",
     "error-board-doesNotExist": "Доска не найдена",
     "error-board-notAdmin": "Вы должны обладать правами админстратора, чтобы сделать это",
     "error-board-notAdmin": "Вы должны обладать правами админстратора, чтобы сделать это",
     "error-board-notAMember": "Вы должны быть пользователем доски, чтобы сделать это",
     "error-board-notAMember": "Вы должны быть пользователем доски, чтобы сделать это",
@@ -146,26 +183,33 @@
     "error-user-doesNotExist": "Пользователь не найден",
     "error-user-doesNotExist": "Пользователь не найден",
     "error-user-notAllowSelf": "Нельзя выполнить это действие на себе",
     "error-user-notAllowSelf": "Нельзя выполнить это действие на себе",
     "error-user-notCreated": "Пользователь не создан",
     "error-user-notCreated": "Пользователь не создан",
+    "error-username-taken": "This username is already taken",
+    "export-board": "Export board",
     "filter": "Фильтр",
     "filter": "Фильтр",
     "filter-cards": "Фильтр карточек",
     "filter-cards": "Фильтр карточек",
     "filter-clear": "Очистить фильтр",
     "filter-clear": "Очистить фильтр",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filter is on",
     "filter-on": "Filter is on",
     "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
     "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "Полное имя",
     "fullname": "Полное имя",
     "header-logo-title": "Вернуться к доскам.",
     "header-logo-title": "Вернуться к доскам.",
+    "hide-system-messages": "Hide system messages",
     "home": "Главная",
     "home": "Главная",
     "import": "Импорт",
     "import": "Импорт",
     "import-board": "Импорт с Trello",
     "import-board": "Импорт с Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст",
     "import-board-trello-instruction": "На вашей Trello доске нажмите “Menu” - “More” - “Print and export - “Export JSON” и скопируйте полученный текст",
-    "import-card": "Импортировать карточку Trello",
-    "import-card-trello-instruction": "Перейдите в карточку Trello, выбирите “Share and more” - “Export JSON” и скопируйте полученный текст",
     "import-json-placeholder": "Вставьте JSON сюда",
     "import-json-placeholder": "Вставьте JSON сюда",
-    "import-members-map": "Вы ипортировали доску с пользователями. Пожалуйста, составьте карту пользователей, которых вы хотите импортировать в Wekan пользователей ",
+    "import-map-members": "Map members",
+    "import-members-map": "Вы ипортировали доску с пользователями. Пожалуйста, составьте карту пользователей, которых вы хотите импортировать в Wekan пользователей",
     "import-show-user-mapping": "Пересмотреть карту пользователей",
     "import-show-user-mapping": "Пересмотреть карту пользователей",
     "import-user-select": "Выберите Wekan-пользователя, которого вы хотите использовать в качестве пользователя",
     "import-user-select": "Выберите Wekan-пользователя, которого вы хотите использовать в качестве пользователя",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Информация",
     "info": "Информация",
     "initials": "Инициалы",
     "initials": "Инициалы",
+    "invalid-date": "Invalid date",
     "joined": "вступил",
     "joined": "вступил",
     "just-invited": "Вы только пригласили на эту доску",
     "just-invited": "Вы только пригласили на эту доску",
     "keyboard-shortcuts": "Сочетания клавиш",
     "keyboard-shortcuts": "Сочетания клавиш",
@@ -185,15 +229,20 @@
     "listImportCardPopup-title": "Импортировать Trello карточку",
     "listImportCardPopup-title": "Импортировать Trello карточку",
     "lists": "Списки",
     "lists": "Списки",
     "log-out": "Выйти",
     "log-out": "Выйти",
+    "log-in": "Войти",
     "loginPopup-title": "Войти",
     "loginPopup-title": "Войти",
-    "mapMembersPopup-title": "Карта пользователей",
-    "mapMembersAddPopup-title": "Выбрать Wekan пользователя",
     "memberMenuPopup-title": "Настройки пользователя",
     "memberMenuPopup-title": "Настройки пользователя",
     "members": "Участники",
     "members": "Участники",
     "menu": "Меню",
     "menu": "Меню",
+    "move-selection": "Move selection",
     "moveCardPopup-title": "Переместить карточку",
     "moveCardPopup-title": "Переместить карточку",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
+    "moveSelectionPopup-title": "Move selection",
     "multi-selection": "Выбрать несколько",
     "multi-selection": "Выбрать несколько",
     "multi-selection-on": "Выбрать несколько из",
     "multi-selection-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-archived-cards": "Нет карточек в архиве.",
@@ -202,15 +251,18 @@
     "normal": "Обычный",
     "normal": "Обычный",
     "normal-desc": "Может редактировать карточки. Не может управлять настройками.",
     "normal-desc": "Может редактировать карточки. Не может управлять настройками.",
     "not-accepted-yet": "Приглашение еще не принято",
     "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": "Возможно, эта страница скрыта от незарегистрированных пользователей. Попробуйте <a href='%s'>войти на сайт</a>.",
     "page-maybe-private": "Возможно, эта страница скрыта от незарегистрированных пользователей. Попробуйте <a href='%s'>войти на сайт</a>.",
     "page-not-found": "Страница не найдена.",
     "page-not-found": "Страница не найдена.",
     "password": "Пароль",
     "password": "Пароль",
     "paste-or-dragdrop": "вставьте, или перетащите файл с изображением сюда (только графический фай)",
     "paste-or-dragdrop": "вставьте, или перетащите файл с изображением сюда (только графический фай)",
+    "participating": "Participating",
     "preview": "Предпросмотр",
     "preview": "Предпросмотр",
-    "previewClipboardImagePopup-title": "Предпросмотр",
     "previewAttachedImagePopup-title": "Предпросмотр",
     "previewAttachedImagePopup-title": "Предпросмотр",
+    "previewClipboardImagePopup-title": "Предпросмотр",
     "private": "Закрытая",
     "private": "Закрытая",
     "private-desc": "Эта доска с ограниченным доступом. Только участники могут работать с ней.",
     "private-desc": "Эта доска с ограниченным доступом. Только участники могут работать с ней.",
     "profile": "Профиль",
     "profile": "Профиль",
@@ -220,6 +272,7 @@
     "remove-cover": "Открепить",
     "remove-cover": "Открепить",
     "remove-from-board": "Удалить с доски",
     "remove-from-board": "Удалить с доски",
     "remove-label": "Удалить метку",
     "remove-label": "Удалить метку",
+    "remove-list": "Remove the list",
     "remove-member": "Удалить участника",
     "remove-member": "Удалить участника",
     "remove-member-from-card": "Удалить из карточки",
     "remove-member-from-card": "Удалить из карточки",
     "remove-member-pop": "Удалить участника __name__ (__username__) из доски __boardTitle__? Участник будет удален из всех карточек. Также он получит уведомление о совершаемом действии.",
     "remove-member-pop": "Удалить участника __name__ (__username__) из доски __boardTitle__? Участник будет удален из всех карточек. Также он получит уведомление о совершаемом действии.",
@@ -239,22 +292,33 @@
     "shortcut-show-shortcuts": "Поднять список ярлыков",
     "shortcut-show-shortcuts": "Поднять список ярлыков",
     "shortcut-toggle-filterbar": "Переместить фильтр на бововую панель",
     "shortcut-toggle-filterbar": "Переместить фильтр на бововую панель",
     "shortcut-toggle-sidebar": "Переместить доску на боковую панель",
     "shortcut-toggle-sidebar": "Переместить доску на боковую панель",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Создать учетную запись",
     "signupPopup-title": "Создать учетную запись",
     "star-board-title": "Добавить в «Избранное». Эта доска будет всегда на виду.",
     "star-board-title": "Добавить в «Избранное». Эта доска будет всегда на виду.",
     "starred-boards": "Добавленные в «Избранное»",
     "starred-boards": "Добавленные в «Избранное»",
-    "starred-boards-description": "",
+    "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": "текущая карточка",
+    "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.",
     "unassign-member": "Отменить назначение пользователя",
     "unassign-member": "Отменить назначение пользователя",
     "unsaved-description": "У вас есть несохраненное описание.",
     "unsaved-description": "У вас есть несохраненное описание.",
+    "unwatch": "Unwatch",
     "upload": "Загрзуить",
     "upload": "Загрзуить",
     "upload-avatar": "Загрузить аватар",
     "upload-avatar": "Загрузить аватар",
     "uploaded-avatar": "Загруженный аватар",
     "uploaded-avatar": "Загруженный аватар",
     "username": "Имя пользователя",
     "username": "Имя пользователя",
     "view-it": "Просмотреть",
     "view-it": "Просмотреть",
     "warn-list-archived": "Внимание: Данная карточка находится в списке архива",
     "warn-list-archived": "Внимание: Данная карточка находится в списке архива",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "Что вы хотите сделать?"
     "what-to-do": "Что вы хотите сделать?"
-}
+}

+ 324 - 0
i18n/sr.i18n.json

@@ -0,0 +1,324 @@
+{
+    "accept": "Prihvati",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "Akcije",
+    "activities": "Aktivnosti",
+    "activity": "Aktivnost",
+    "activity-added": "dodao %s u %s",
+    "activity-archived": "arhivirao %s",
+    "activity-attached": "prikačio %s u %s",
+    "activity-created": "kreirao %s",
+    "activity-excluded": "izuzmi %s iz %s",
+    "activity-imported": "uvezao %s u %s iz %s",
+    "activity-imported-board": "uvezao %s iz %s",
+    "activity-joined": "spojio %s",
+    "activity-moved": "premestio %s iz %s u %s",
+    "activity-on": "na %s",
+    "activity-removed": "uklonio %s iz %s",
+    "activity-sent": "poslao %s %s-u",
+    "activity-unjoined": "rastavio %s",
+    "activity-checklist-added": "added checklist to %s",
+    "add": "Dodaj",
+    "add-attachment": "Dodaj dokument",
+    "add-board": "Dodaj novu tablu",
+    "add-card": "Dodaj karticu",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
+    "add-cover": "Dodaj zaglavlje",
+    "add-label": "Dodaj natpis",
+    "add-list": "Dodaj listu",
+    "add-members": "Dodaj Članove",
+    "added": "Dodao",
+    "addMemberPopup-title": "Članovi",
+    "admin": "Administrator",
+    "admin-desc": "Može da pregleda i menja kartice, uklanja članove i menja podešavanja table",
+    "all-boards": "Sve table",
+    "and-n-other-card": "And __count__ other card",
+    "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Primeni",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
+    "archive": "Arhiviraj",
+    "archive-all": "Arhiviraj sve",
+    "archive-board": "Arhiviraj tablu",
+    "archive-card": "Arhiviraj karticu",
+    "archive-list": "Arhiviraj ovu listu",
+    "archive-selection": "Arhiviraj izabrano",
+    "archiveBoardPopup-title": "Da arhiviram tablu ?",
+    "archived-items": "Arhivirane stavke",
+    "archives": "Arhive",
+    "assign-member": "Dodeli člana",
+    "attached": "Prikačeno",
+    "attachment": "Prikačeni dokument",
+    "attachment-delete-pop": "Brisanje prikačenog dokumenta je trajno. Ne postoji vraćanje obrisanog.",
+    "attachmentDeletePopup-title": "Obrisati prikačeni dokument ?",
+    "attachments": "Prikačeni dokumenti",
+    "auto-watch": "Automatically watch boards when create it",
+    "avatar-too-big": "Avatar je prevelik (maksimum je 70Kb)",
+    "back": "Nazad",
+    "board-change-color": "Promeni boju",
+    "board-nb-stars": "%s zvezdice",
+    "board-not-found": "Tabla nije pronađena",
+    "board-private-info": "Ova tabla će biti <strong>privatna<strong>.",
+    "board-public-info": "Ova tabla će biti <strong>javna<strong>.",
+    "boardChangeColorPopup-title": "Promeni pozadinu table",
+    "boardChangeTitlePopup-title": "Preimenuj tablu",
+    "boardChangeVisibilityPopup-title": "Promeni Vidljivost",
+    "boardChangeWatchPopup-title": "Change Watch",
+    "boardMenuPopup-title": "Meni table",
+    "boards": "Table",
+    "bucket-example": "Na primer \"Lista zadataka\"",
+    "cancel": "Otkaži",
+    "card-archived": "Ova kartica je arhivirana",
+    "card-comments-title": "Ova kartica ima %s komentar.",
+    "card-delete-notice": "Brisanje je trajno. Izgubićeš sve akcije povezane sa ovom karticom.",
+    "card-delete-pop": "Sve akcije će biti uklonjene sa liste aktivnosti i kartica neće moći biti ponovo otvorena. Nema vraćanja unazad.",
+    "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Krajnji datum",
+    "card-due-on": "Završava se",
+    "card-edit-attachments": "Uredi priloge",
+    "card-edit-labels": "Uredi natpise",
+    "card-edit-members": "Uredi članove",
+    "card-labels-title": "Promeni natpis na kartici.",
+    "card-members-title": "Dodaj ili ukloni članove table sa kartice.",
+    "card-start": "Početak",
+    "card-start-on": "Počinje",
+    "cardAttachmentsPopup-title": "Attach From",
+    "cardDeletePopup-title": "Delete Card?",
+    "cardDetailsActionsPopup-title": "Card Actions",
+    "cardLabelsPopup-title": "Labels",
+    "cardMembersPopup-title": "Članovi",
+    "cardMorePopup-title": "More",
+    "cards": "Cards",
+    "change": "Change",
+    "change-avatar": "Change Avatar",
+    "change-password": "Change Password",
+    "change-permissions": "Change permissions",
+    "change-settings": "Izmeni podešavanja",
+    "changeAvatarPopup-title": "Change Avatar",
+    "changeLanguagePopup-title": "Change Language",
+    "changePasswordPopup-title": "Change Password",
+    "changePermissionsPopup-title": "Change Permissions",
+    "changeSettingsPopup-title": "Izmeni podešavanja",
+    "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 “Archives” 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 a comment",
+    "computer": "Computer",
+    "create": "Create",
+    "createBoardPopup-title": "Create Board",
+    "createLabelPopup-title": "Create Label",
+    "current": "current",
+    "date": "Datum",
+    "decline": "Decline",
+    "default-avatar": "Default avatar",
+    "delete": "Delete",
+    "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",
+    "editCardStartDatePopup-title": "Izmeni početni datum",
+    "editCardDueDatePopup-title": "Izmeni krajnji datum",
+    "editLabelPopup-title": "Change Label",
+    "editNotificationPopup-title": "Izmeni notifikaciju",
+    "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-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.",
+    "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": "This action on self is not allowed",
+    "error-user-notCreated": "This user is not created",
+    "error-username-taken": "Korisničko ime je već zauzeto",
+    "export-board": "Export board",
+    "filter": "Filter",
+    "filter-cards": "Filter Cards",
+    "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "Nema člana",
+    "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",
+    "fullname": "Full Name",
+    "header-logo-title": "Go back to your boards page.",
+    "hide-system-messages": "Sakrij sistemske poruke",
+    "home": "Home",
+    "import": "Import",
+    "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
+    "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
+    "import-json-placeholder": "Paste your valid JSON data here",
+    "import-map-members": "Mapiraj članove",
+    "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": "Izaberi člana Wekan-a",
+    "info": "Infos",
+    "initials": "Initials",
+    "invalid-date": "Neispravan datum",
+    "joined": "joined",
+    "just-invited": "You are just invited to this board",
+    "keyboard-shortcuts": "Keyboard shortcuts",
+    "label-create": "Create a new 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",
+    "link-card": "Link to this card",
+    "list-archive-cards": "Archive all cards in this list",
+    "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
+    "list-move-cards": "Move all cards in this list",
+    "list-select-cards": "Select all cards in this list",
+    "listActionPopup-title": "List Actions",
+    "listImportCardPopup-title": "Import a Trello card",
+    "lists": "Lists",
+    "log-out": "Log Out",
+    "log-in": "Log In",
+    "loginPopup-title": "Log In",
+    "memberMenuPopup-title": "Member Settings",
+    "members": "Članovi",
+    "menu": "Menu",
+    "move-selection": "Move selection",
+    "moveCardPopup-title": "Move Card",
+    "moveCardToBottom-title": "Premesti na dno",
+    "moveCardToTop-title": "Premesti na vrh",
+    "moveSelectionPopup-title": "Move selection",
+    "multi-selection": "Multi-Selection",
+    "multi-selection-on": "Multi-Selection is on",
+    "muted": "Utišano",
+    "muted-info": "You will never be notified of any changes in this board",
+    "my-boards": "My Boards",
+    "name": "Name",
+    "no-archived-cards": "No archived cards.",
+    "no-archived-lists": "No archived lists.",
+    "no-results": "Nema rezultata",
+    "normal": "Normalno",
+    "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": "opciono",
+    "or": "ili",
+    "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": "Stranica nije pronađena.",
+    "password": "Lozinka",
+    "paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
+    "participating": "Učestvujem",
+    "preview": "Prikaz",
+    "previewAttachedImagePopup-title": "Prikaz",
+    "previewClipboardImagePopup-title": "Prikaz",
+    "private": "Privatno",
+    "private-desc": "This board is private. Only people added to the board can view and edit it.",
+    "profile": "Profil",
+    "public": "Javno",
+    "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": "Ukloni iz table",
+    "remove-label": "Ukloni natpis",
+    "remove-list": "Ukloni listu",
+    "remove-member": "Ukloni člana",
+    "remove-member-from-card": "Ukloni iz kartice",
+    "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": "Ukloni člana ?",
+    "rename": "Preimenuj",
+    "rename-board": "Preimenuj tablu",
+    "restore": "Oporavi",
+    "save": "Snimi",
+    "search": "Pretraga",
+    "select-color": "Izaberi boju",
+    "shortcut-assign-self": "Pridruži sebe trenutnoj kartici",
+    "shortcut-autocomplete-emoji": "Autocomplete emoji",
+    "shortcut-autocomplete-members": "Sam popuni članove",
+    "shortcut-clear-filters": "Očisti sve filtere",
+    "shortcut-close-dialog": "Zatvori dijalog",
+    "shortcut-filter-my-cards": "Filtriraj kartice",
+    "shortcut-show-shortcuts": "Prikaži ovu listu prečica",
+    "shortcut-toggle-filterbar": "Uključi ili isključi bočni meni filtera",
+    "shortcut-toggle-sidebar": "Uključi ili isključi bočni meni table",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
+    "signupPopup-title": "Kreiraj nalog",
+    "star-board-title": "Klikni da označiš zvezdicom ovu tablu. Pokazaće se na vrhu tvoje liste tabli.",
+    "starred-boards": "Table sa zvezdicom",
+    "starred-boards-description": "Table sa zvezdicom se pokazuju na vrhu liste tabli.",
+    "subscribe": "Pretplati se",
+    "team": "Tim",
+    "this-board": "ova tabla",
+    "this-card": "ova kartica",
+    "time": "Vreme",
+    "title": "Naslov",
+    "tracking": "Praćenje",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+    "unassign-member": "Unassign member",
+    "unsaved-description": "Imaš nesnimljen opis.",
+    "unwatch": "Ne posmatraj",
+    "upload": "Upload",
+    "upload-avatar": "Upload an avatar",
+    "uploaded-avatar": "Uploaded an avatar",
+    "username": "Korisničko ime",
+    "view-it": "Pregledaj je",
+    "warn-list-archived": "upozorenje: ova kartica je u arhiviranoj listi",
+    "watch": "Posmatraj",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Osnove",
+    "welcome-list2": "Napredno",
+    "what-to-do": "Šta želiš da uradiš ?"
+}

+ 67 - 6
i18n/tr.i18n.json

@@ -1,5 +1,25 @@
 {
 {
     "accept": "Accept",
     "accept": "Accept",
+    "act-activity-notify": "[Wekan] Activity Notification",
+    "act-addAttachment": "attached __attachment__ to __card__",
+    "act-addComment": "commented on __card__: __comment__",
+    "act-createBoard": "created __board__",
+    "act-createCard": "added __card__ to __list__",
+    "act-createList": "added __list__ to __board__",
+    "act-addBoardMember": "added __member__ to __board__",
+    "act-archivedBoard": "archived __board__",
+    "act-archivedCard": "archived __card__",
+    "act-archivedList": "archived __list__",
+    "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": "İşlemler",
     "actions": "İşlemler",
     "activities": "Aktiviteler",
     "activities": "Aktiviteler",
     "activity": "Etkinlik",
     "activity": "Etkinlik",
@@ -16,10 +36,13 @@
     "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": "unjoined %s",
+    "activity-checklist-added": "added checklist to %s",
     "add": "Ekle",
     "add": "Ekle",
     "add-attachment": "Add an attachment",
     "add-attachment": "Add an attachment",
     "add-board": "Yeni bir pano ekle",
     "add-board": "Yeni bir pano ekle",
     "add-card": "Add a card",
     "add-card": "Add a card",
+    "add-checklist": "Add a checklist",
+    "add-checklist-item": "Add an item to checklist",
     "add-cover": "Add Cover",
     "add-cover": "Add Cover",
     "add-label": "Add the label",
     "add-label": "Add the label",
     "add-list": "Add a list",
     "add-list": "Add a list",
@@ -31,6 +54,8 @@
     "all-boards": "All boards",
     "all-boards": "All boards",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card": "And __count__ other card",
     "and-n-other-card_plural": "And __count__ other cards",
     "and-n-other-card_plural": "And __count__ other cards",
+    "apply": "Apply",
+    "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.",
     "archive": "Arşiv",
     "archive": "Arşiv",
     "archive-all": "Tümünü Arşivle",
     "archive-all": "Tümünü Arşivle",
     "archive-board": "Archive Board",
     "archive-board": "Archive Board",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "Ek dosya silme işlemi kalıcıdır. Geri dönüşü yok",
     "attachment-delete-pop": "Ek dosya silme işlemi kalıcıdır. Geri dönüşü yok",
     "attachmentDeletePopup-title": "Ek Dosya Silinsin Mi?",
     "attachmentDeletePopup-title": "Ek Dosya Silinsin Mi?",
     "attachments": "Ek Dosyalar",
     "attachments": "Ek Dosyalar",
+    "auto-watch": "Automatically watch boards when create it",
     "avatar-too-big": "The avatar is too large (70Kb max)",
     "avatar-too-big": "The avatar is too large (70Kb max)",
     "back": "Geri",
     "back": "Geri",
     "board-change-color": "Change color",
     "board-change-color": "Change color",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeColorPopup-title": "Change Board Background",
     "boardChangeTitlePopup-title": "Pano Adı Değiştirme",
     "boardChangeTitlePopup-title": "Pano Adı Değiştirme",
     "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir",
     "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir",
-    "boardImportBoardPopup-title": "Import board from Trello",
+    "boardChangeWatchPopup-title": "Change Watch",
     "boardMenuPopup-title": "Board Menu",
     "boardMenuPopup-title": "Board Menu",
     "boards": "Panolar",
     "boards": "Panolar",
     "bucket-example": "Like “Bucket List” for example",
     "bucket-example": "Like “Bucket List” for example",
@@ -66,11 +92,15 @@
     "card-delete-notice": "Silme işlemi kalıcıdır. Bu kartla ilişkili tüm eylemleri kaybedersiniz.",
     "card-delete-notice": "Silme işlemi kalıcıdır. Bu kartla ilişkili tüm eylemleri kaybedersiniz.",
     "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-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 archive a card to remove it from the board and preserve the activity.",
     "card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
+    "card-due": "Due",
+    "card-due-on": "Due on",
     "card-edit-attachments": "Edit attachments",
     "card-edit-attachments": "Edit attachments",
     "card-edit-labels": "Edit labels",
     "card-edit-labels": "Edit labels",
     "card-edit-members": "Edit members",
     "card-edit-members": "Edit members",
     "card-labels-title": "Change the labels for the card.",
     "card-labels-title": "Change the labels for the card.",
     "card-members-title": "Add or remove members of the board from 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",
     "cardAttachmentsPopup-title": "Attach From",
     "cardDeletePopup-title": "Kart Silinsin mi?",
     "cardDeletePopup-title": "Kart Silinsin mi?",
     "cardDetailsActionsPopup-title": "Card Actions",
     "cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
     "change-avatar": "Avatar Değiştir",
     "change-avatar": "Avatar Değiştir",
     "change-password": "Parola Değiştir",
     "change-password": "Parola Değiştir",
     "change-permissions": "Change permissions",
     "change-permissions": "Change permissions",
+    "change-settings": "Change Settings",
     "changeAvatarPopup-title": "Avatar Değiştir",
     "changeAvatarPopup-title": "Avatar Değiştir",
     "changeLanguagePopup-title": "Dil Değiştir",
     "changeLanguagePopup-title": "Dil Değiştir",
     "changePasswordPopup-title": "Parola Değiştir",
     "changePasswordPopup-title": "Parola Değiştir",
     "changePermissionsPopup-title": "Yetkileri Değiştirme",
     "changePermissionsPopup-title": "Yetkileri Değiştirme",
+    "changeSettingsPopup-title": "Change Settings",
+    "checklists": "Checklists",
     "click-to-star": "Bu panoyu yıldızlamak için tıkla.",
     "click-to-star": "Bu panoyu yıldızlamak için tıkla.",
     "click-to-unstar": "Bu panunun yıldızını kaldırmak için tıkla.",
     "click-to-unstar": "Bu panunun yıldızını kaldırmak için tıkla.",
     "clipboard": "Clipboard or drag & drop",
     "clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "Pano Oluşturma",
     "createBoardPopup-title": "Pano Oluşturma",
     "createLabelPopup-title": "Etiket Oluşturma",
     "createLabelPopup-title": "Etiket Oluşturma",
     "current": "current",
     "current": "current",
+    "date": "Date",
     "decline": "Decline",
     "decline": "Decline",
     "default-avatar": "Default avatar",
     "default-avatar": "Default avatar",
     "delete": "Sil",
     "delete": "Sil",
@@ -122,7 +156,10 @@
     "edit": "Düzenle",
     "edit": "Düzenle",
     "edit-avatar": "Avatar Değiştir",
     "edit-avatar": "Avatar Değiştir",
     "edit-profile": "Profili Düzenle",
     "edit-profile": "Profili Düzenle",
+    "editCardStartDatePopup-title": "Change start date",
+    "editCardDueDatePopup-title": "Change due date",
     "editLabelPopup-title": "Etiket Değiştirme",
     "editLabelPopup-title": "Etiket Değiştirme",
+    "editNotificationPopup-title": "Edit Notification",
     "editProfilePopup-title": "Profili Düzenle",
     "editProfilePopup-title": "Profili Düzenle",
     "email": "E-posta",
     "email": "E-posta",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
     "email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "This user does not exist",
     "error-user-doesNotExist": "This user does not exist",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notAllowSelf": "This action on self is not allowed",
     "error-user-notCreated": "This user is not created",
     "error-user-notCreated": "This user is not created",
+    "error-username-taken": "This username is already taken",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "Filter",
     "filter": "Filter",
     "filter-cards": "Kartları Süz",
     "filter-cards": "Kartları Süz",
     "filter-clear": "Clear filter",
     "filter-clear": "Clear filter",
+    "filter-no-label": "No label",
+    "filter-no-member": "No member",
     "filter-on": "Filter is on",
     "filter-on": "Filter is on",
     "filter-on-desc": "Bu panodaki kartları süzüyorsunuz. Süzgeci düzenlemek için tıklayın.",
     "filter-on-desc": "Bu panodaki kartları süzüyorsunuz. Süzgeci düzenlemek için tıklayın.",
     "filter-to-selection": "Filter to selection",
     "filter-to-selection": "Filter to selection",
     "fullname": "Ad Soyad",
     "fullname": "Ad Soyad",
     "header-logo-title": "Panolar sayfanıza geri dön.",
     "header-logo-title": "Panolar sayfanıza geri dön.",
+    "hide-system-messages": "Hide system messages",
     "home": "Home",
     "home": "Home",
     "import": "Import",
     "import": "Import",
     "import-board": "import from Trello",
     "import-board": "import from Trello",
+    "import-board-title": "Import board from Trello",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
     "import-board-trello-instruction": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
-    "import-card": "Import a Trello card",
-    "import-card-trello-instruction": "Go to a Trello card, select 'Share and more...' then 'Export JSON' and copy the resulting text",
     "import-json-placeholder": "Paste your valid JSON data here",
     "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-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-show-user-mapping": "Review members mapping",
     "import-user-select": "Pick the Wekan user you want to use as this member",
     "import-user-select": "Pick the Wekan user you want to use as this member",
+    "importMapMembersAddPopup-title": "Select Wekan member",
     "info": "Infos",
     "info": "Infos",
     "initials": "Initials",
     "initials": "Initials",
+    "invalid-date": "Invalid date",
     "joined": "joined",
     "joined": "joined",
     "just-invited": "You are just invited to this board",
     "just-invited": "You are just invited to this board",
     "keyboard-shortcuts": "Keyboard shortcuts",
     "keyboard-shortcuts": "Keyboard shortcuts",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "Import a Trello card",
     "listImportCardPopup-title": "Import a Trello card",
     "lists": "Lists",
     "lists": "Lists",
     "log-out": "Oturum Kapat",
     "log-out": "Oturum Kapat",
+    "log-in": "Oturum Aç",
     "loginPopup-title": "Oturum Aç",
     "loginPopup-title": "Oturum Aç",
-    "mapMembersAddPopup-title": "Select Wekan member",
-    "mapMembersPopup-title": "Map members",
     "memberMenuPopup-title": "Member Settings",
     "memberMenuPopup-title": "Member Settings",
     "members": "Üyeler",
     "members": "Üyeler",
     "menu": "Menü",
     "menu": "Menü",
     "move-selection": "Move selection",
     "move-selection": "Move selection",
     "moveCardPopup-title": "Move Card",
     "moveCardPopup-title": "Move Card",
+    "moveCardToBottom-title": "Move to Bottom",
+    "moveCardToTop-title": "Move to Top",
     "moveSelectionPopup-title": "Move selection",
     "moveSelectionPopup-title": "Move selection",
     "multi-selection": "Multi-Selection",
     "multi-selection": "Multi-Selection",
     "multi-selection-on": "Multi-Selection is on",
     "multi-selection-on": "Multi-Selection is on",
+    "muted": "Muted",
+    "muted-info": "You will never be notified of any changes in this board",
     "my-boards": "Panolarım",
     "my-boards": "Panolarım",
     "name": "Adı",
     "name": "Adı",
     "no-archived-cards": "No archived cards.",
     "no-archived-cards": "No archived cards.",
@@ -205,12 +251,15 @@
     "normal": "Normal",
     "normal": "Normal",
     "normal-desc": "Kartları görüntüler ve düzenler. Ayarları değiştiremez.",
     "normal-desc": "Kartları görüntüler ve düzenler. Ayarları değiştiremez.",
     "not-accepted-yet": "Invitation not accepted yet",
     "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": "isteğe bağlı",
     "optional": "isteğe bağlı",
     "or": "or",
     "or": "or",
     "page-maybe-private": "Bu sayfa özel olabilir. <a href='%s'>Oturum açarak</a> görülebilir.",
     "page-maybe-private": "Bu sayfa özel olabilir. <a href='%s'>Oturum açarak</a> görülebilir.",
     "page-not-found": "Sayda bulunamadı.",
     "page-not-found": "Sayda bulunamadı.",
     "password": "Parola",
     "password": "Parola",
     "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",
     "preview": "Preview",
     "preview": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewAttachedImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
     "previewClipboardImagePopup-title": "Preview",
@@ -223,6 +272,7 @@
     "remove-cover": "Remove Cover",
     "remove-cover": "Remove Cover",
     "remove-from-board": "Remove from Board",
     "remove-from-board": "Remove from Board",
     "remove-label": "Remove the label",
     "remove-label": "Remove the label",
+    "remove-list": "Remove the list",
     "remove-member": "Üyeyi Çıkar",
     "remove-member": "Üyeyi Çıkar",
     "remove-member-from-card": "Karttan Çıkar",
     "remove-member-from-card": "Karttan Çıkar",
     "remove-member-pop": "__boardTitle__ panosundan __name__ (__username__) çıkarılsın mı? Üye, bu panodaki tüm kartlardan çıkarılacak ve bir bildirim alacak.",
     "remove-member-pop": "__boardTitle__ panosundan __name__ (__username__) çıkarılsın mı? Üye, bu panodaki tüm kartlardan çıkarılacak ve bir bildirim alacak.",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-show-shortcuts": "Bring up this shortcuts list",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-filterbar": "Toggle Filter Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
     "shortcut-toggle-sidebar": "Toggle Board Sidebar",
+    "show-cards-minimum-count": "Show cards count if list contains more than",
     "signupPopup-title": "Bir Hesap Oluştur",
     "signupPopup-title": "Bir Hesap Oluştur",
     "star-board-title": "Bu panoyu yıldızlamak için tıkla. Pano listesinin en üstünde gösterilir.",
     "star-board-title": "Bu panoyu yıldızlamak için tıkla. Pano listesinin en üstünde gösterilir.",
     "starred-boards": "Yıldızlı Panolar",
     "starred-boards": "Yıldızlı Panolar",
@@ -250,14 +301,24 @@
     "team": "Takım",
     "team": "Takım",
     "this-board": "bu panoyu",
     "this-board": "bu panoyu",
     "this-card": "bu kart",
     "this-card": "bu kart",
+    "time": "Time",
     "title": "Başlık",
     "title": "Başlık",
+    "tracking": "Tracking",
+    "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
     "unassign-member": "Unassign member",
     "unassign-member": "Unassign member",
     "unsaved-description": "You have an unsaved description.",
     "unsaved-description": "You have an unsaved description.",
+    "unwatch": "Unwatch",
     "upload": "Upload",
     "upload": "Upload",
     "upload-avatar": "Upload an avatar",
     "upload-avatar": "Upload an avatar",
     "uploaded-avatar": "Uploaded an avatar",
     "uploaded-avatar": "Uploaded an avatar",
     "username": "Kullanıcı adı",
     "username": "Kullanıcı adı",
     "view-it": "View it",
     "view-it": "View it",
     "warn-list-archived": "warning: this card is in an archived list",
     "warn-list-archived": "warning: this card is in an archived list",
+    "watch": "Watch",
+    "watching": "Watching",
+    "watching-info": "You will be notified of any change in this board",
+    "welcome-board": "Welcome Board",
+    "welcome-list1": "Basics",
+    "welcome-list2": "Advanced",
     "what-to-do": "What do you want to do?"
     "what-to-do": "What do you want to do?"
-}
+}

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

@@ -1,25 +1,48 @@
 {
 {
     "accept": "接受",
     "accept": "接受",
+    "act-activity-notify": "[Wekan] 活动通知",
+    "act-addAttachment": "添加附件 __attachment__ 至卡片 __card__",
+    "act-addComment": "在 __card__ 发布评论: __comment__",
+    "act-createBoard": "创建看板 __board__",
+    "act-createCard": "添加卡片 __card__  至列表 __list__",
+    "act-createList": "添加列表 __list__  至看板 __board__",
+    "act-addBoardMember": "添加成员 __member__  至看板 __board__",
+    "act-archivedBoard": "归档看板 __board__",
+    "act-archivedCard": "归档卡片 __card__",
+    "act-archivedList": "归档列表 __list__",
+    "act-importBoard": "导入看板 __board__",
+    "act-importCard": "导入卡片 __card__",
+    "act-importList": "导入列表 __list__",
+    "act-joinMember": "添加成员 __member__  至卡片 __card__",
+    "act-moveCard": "从列表 __oldList__  移动卡片 __card__  至列表 __list__",
+    "act-removeBoardMember": "从看板 __board__ 移除成员 __member__",
+    "act-restoredCard": "恢复卡片 __card__  至看板 __board__",
+    "act-unjoinMember": "从卡片 __card__ 移除成员 __member__",
+    "act-withBoardTitle": "[Wekan] 看板 __board__",
+    "act-withCardTitle": "[看板 __board__] 卡片 __card__",
     "actions": "操作",
     "actions": "操作",
     "activities": "活动",
     "activities": "活动",
     "activity": "活动",
     "activity": "活动",
     "activity-added": "添加 %s 至 %s",
     "activity-added": "添加 %s 至 %s",
-    "activity-archived": "删除 %s",
+    "activity-archived": "归档 %s",
     "activity-attached": "添加附件 %s 至 %s",
     "activity-attached": "添加附件 %s 至 %s",
     "activity-created": "创建 %s",
     "activity-created": "创建 %s",
     "activity-excluded": "排除 %s 从 %s",
     "activity-excluded": "排除 %s 从 %s",
     "activity-imported": "导入 %s 至 %s 从 %s 中",
     "activity-imported": "导入 %s 至 %s 从 %s 中",
     "activity-imported-board": "已导入 %s 从 %s 中",
     "activity-imported-board": "已导入 %s 从 %s 中",
-    "activity-joined": "关联 %s",
+    "activity-joined": "关联 %s",
     "activity-moved": "将 %s 从 %s 移动到 %s",
     "activity-moved": "将 %s 从 %s 移动到 %s",
     "activity-on": "在 %s",
     "activity-on": "在 %s",
-    "activity-removed": "移除 %s 从 %s 中",
+    "activity-removed": "从 %s 中移除 %s",
     "activity-sent": "发送 %s 至 %s",
     "activity-sent": "发送 %s 至 %s",
-    "activity-unjoined": "解除关联 %s",
+    "activity-unjoined": "已解除 %s 关联",
+    "activity-checklist-added": "已经将清单添加到 %s",
     "add": "添加",
     "add": "添加",
     "add-attachment": "添加附件",
     "add-attachment": "添加附件",
     "add-board": "添加新看板",
     "add-board": "添加新看板",
     "add-card": "添加卡片",
     "add-card": "添加卡片",
+    "add-checklist": "添加清单",
+    "add-checklist-item": "扩充清单",
     "add-cover": "添加封面",
     "add-cover": "添加封面",
     "add-label": "添加标签",
     "add-label": "添加标签",
     "add-list": "添加清单",
     "add-list": "添加清单",
@@ -31,6 +54,8 @@
     "all-boards": "全部看板",
     "all-boards": "全部看板",
     "and-n-other-card": "和其他 __count__ 个卡片",
     "and-n-other-card": "和其他 __count__ 个卡片",
     "and-n-other-card_plural": "和其他 __count__ 个卡片",
     "and-n-other-card_plural": "和其他 __count__ 个卡片",
+    "apply": "应用",
+    "app-is-offline": "处于离线状态,刷新页面将导致数据丢失。",
     "archive": "归档",
     "archive": "归档",
     "archive-all": "全部归档",
     "archive-all": "全部归档",
     "archive-board": "归档看板",
     "archive-board": "归档看板",
@@ -46,6 +71,7 @@
     "attachment-delete-pop": "删除附件的操作不可逆。",
     "attachment-delete-pop": "删除附件的操作不可逆。",
     "attachmentDeletePopup-title": "删除附件?",
     "attachmentDeletePopup-title": "删除附件?",
     "attachments": "附件",
     "attachments": "附件",
+    "auto-watch": "创建看板时自动关注",
     "avatar-too-big": "头像太大 (最大 70 Kb)",
     "avatar-too-big": "头像太大 (最大 70 Kb)",
     "back": "返回",
     "back": "返回",
     "board-change-color": "更改颜色",
     "board-change-color": "更改颜色",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "修改看板背景",
     "boardChangeColorPopup-title": "修改看板背景",
     "boardChangeTitlePopup-title": "重命名看板",
     "boardChangeTitlePopup-title": "重命名看板",
     "boardChangeVisibilityPopup-title": "更改可视级别",
     "boardChangeVisibilityPopup-title": "更改可视级别",
-    "boardImportBoardPopup-title": "从 Trello 导入看板",
+    "boardChangeWatchPopup-title": "更改关注状态",
     "boardMenuPopup-title": "看板菜单",
     "boardMenuPopup-title": "看板菜单",
     "boards": "看板",
     "boards": "看板",
     "bucket-example": "例如 “目标清单”",
     "bucket-example": "例如 “目标清单”",
@@ -66,11 +92,15 @@
     "card-delete-notice": "彻底删除的操作不可恢复,你将会丢失该卡片相关的所有操作记录。",
     "card-delete-notice": "彻底删除的操作不可恢复,你将会丢失该卡片相关的所有操作记录。",
     "card-delete-pop": "所有的动作将从活动动态中被移除且您将无法重新打开该卡片。此操作无法撤销。",
     "card-delete-pop": "所有的动作将从活动动态中被移除且您将无法重新打开该卡片。此操作无法撤销。",
     "card-delete-suggest-archive": "你可以将卡片从看板中归档至回收箱,但保留相关活动。",
     "card-delete-suggest-archive": "你可以将卡片从看板中归档至回收箱,但保留相关活动。",
+    "card-due": "到期",
+    "card-due-on": "期限",
     "card-edit-attachments": "编辑附件",
     "card-edit-attachments": "编辑附件",
     "card-edit-labels": "编辑标签",
     "card-edit-labels": "编辑标签",
     "card-edit-members": "编辑成员",
     "card-edit-members": "编辑成员",
     "card-labels-title": "更改该卡片上的标签",
     "card-labels-title": "更改该卡片上的标签",
     "card-members-title": "在该卡片中添加或移除看板成员",
     "card-members-title": "在该卡片中添加或移除看板成员",
+    "card-start": "开始",
+    "card-start-on": "始于",
     "cardAttachmentsPopup-title": "附件来源",
     "cardAttachmentsPopup-title": "附件来源",
     "cardDeletePopup-title": "彻底删除卡片?",
     "cardDeletePopup-title": "彻底删除卡片?",
     "cardDetailsActionsPopup-title": "卡片动作",
     "cardDetailsActionsPopup-title": "卡片动作",
@@ -82,10 +112,13 @@
     "change-avatar": "更改头像",
     "change-avatar": "更改头像",
     "change-password": "更改密码",
     "change-password": "更改密码",
     "change-permissions": "更改权限",
     "change-permissions": "更改权限",
+    "change-settings": "更改设置",
     "changeAvatarPopup-title": "更改头像",
     "changeAvatarPopup-title": "更改头像",
     "changeLanguagePopup-title": "更改语言",
     "changeLanguagePopup-title": "更改语言",
     "changePasswordPopup-title": "更改密码",
     "changePasswordPopup-title": "更改密码",
     "changePermissionsPopup-title": "更改权限",
     "changePermissionsPopup-title": "更改权限",
+    "changeSettingsPopup-title": "更改设置",
+    "checklists": "清单",
     "click-to-star": "点此来标记该看板",
     "click-to-star": "点此来标记该看板",
     "click-to-unstar": "点此来去除该看板的标记",
     "click-to-unstar": "点此来去除该看板的标记",
     "clipboard": "剪贴板或者拖放文件",
     "clipboard": "剪贴板或者拖放文件",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "创建看板",
     "createBoardPopup-title": "创建看板",
     "createLabelPopup-title": "创建标签",
     "createLabelPopup-title": "创建标签",
     "current": "当前",
     "current": "当前",
+    "date": "日期",
     "decline": "拒绝",
     "decline": "拒绝",
     "default-avatar": "默认头像",
     "default-avatar": "默认头像",
     "delete": "删除",
     "delete": "删除",
@@ -122,7 +156,10 @@
     "edit": "编辑",
     "edit": "编辑",
     "edit-avatar": "更改头像",
     "edit-avatar": "更改头像",
     "edit-profile": "编辑资料",
     "edit-profile": "编辑资料",
+    "editCardStartDatePopup-title": "修改起始日期",
+    "editCardDueDatePopup-title": "修改截止日期",
     "editLabelPopup-title": "更改标签",
     "editLabelPopup-title": "更改标签",
+    "editNotificationPopup-title": "编辑通知",
     "editProfilePopup-title": "编辑资料",
     "editProfilePopup-title": "编辑资料",
     "email": "邮箱",
     "email": "邮箱",
     "email-enrollAccount-subject": "已为您在 __siteName__ 创建帐号",
     "email-enrollAccount-subject": "已为您在 __siteName__ 创建帐号",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "该用户不存在",
     "error-user-doesNotExist": "该用户不存在",
     "error-user-notAllowSelf": "不允许对自己执行此操作",
     "error-user-notAllowSelf": "不允许对自己执行此操作",
     "error-user-notCreated": "该用户未能成功创建",
     "error-user-notCreated": "该用户未能成功创建",
+    "error-username-taken": "此用户名已存在",
     "export-board": "导出看板",
     "export-board": "导出看板",
     "filter": "过滤",
     "filter": "过滤",
     "filter-cards": "过滤卡片",
     "filter-cards": "过滤卡片",
     "filter-clear": "清空过滤器",
     "filter-clear": "清空过滤器",
+    "filter-no-label": "无标签",
+    "filter-no-member": "无成员",
     "filter-on": "过滤器启用",
     "filter-on": "过滤器启用",
     "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。",
     "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。",
     "filter-to-selection": "要选择的过滤器",
     "filter-to-selection": "要选择的过滤器",
     "fullname": "全称",
     "fullname": "全称",
     "header-logo-title": "返回您的看板页",
     "header-logo-title": "返回您的看板页",
+    "hide-system-messages": "隐藏系统消息",
     "home": "首页",
     "home": "首页",
     "import": "导入",
     "import": "导入",
     "import-board": "从 Trello 导入",
     "import-board": "从 Trello 导入",
+    "import-board-title": "从Trello导入看板",
     "import-board-trello-instruction": "在你的Trello看板中,点击“菜单”,然后选择“更多”,“打印与导出”,“导出为 JSON” 并拷贝结果文本",
     "import-board-trello-instruction": "在你的Trello看板中,点击“菜单”,然后选择“更多”,“打印与导出”,“导出为 JSON” 并拷贝结果文本",
-    "import-card": "导入 Trello 卡片",
-    "import-card-trello-instruction": "进入一个 Trello 卡片,选择“分享与更多”,然后选择 “导出为 JSON” 并且拷贝结果文本",
     "import-json-placeholder": "粘贴您有效的 JSON 数据至此",
     "import-json-placeholder": "粘贴您有效的 JSON 数据至此",
+    "import-map-members": "映射成员",
     "import-members-map": "您导入的看板有一些成员。请将您想导入的成员映射到 Wekan 用户。",
     "import-members-map": "您导入的看板有一些成员。请将您想导入的成员映射到 Wekan 用户。",
     "import-show-user-mapping": "核对成员映射",
     "import-show-user-mapping": "核对成员映射",
     "import-user-select": "选择您想将此成员映射到的 Wekan 用户",
     "import-user-select": "选择您想将此成员映射到的 Wekan 用户",
+    "importMapMembersAddPopup-title": "选择Wekan成员",
     "info": "信息",
     "info": "信息",
     "initials": "缩写",
     "initials": "缩写",
+    "invalid-date": "无效日期",
     "joined": "关联",
     "joined": "关联",
     "just-invited": "您刚刚被邀请加入此看板",
     "just-invited": "您刚刚被邀请加入此看板",
     "keyboard-shortcuts": "键盘快捷键",
     "keyboard-shortcuts": "键盘快捷键",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "导入 Trello 卡片",
     "listImportCardPopup-title": "导入 Trello 卡片",
     "lists": "清单",
     "lists": "清单",
     "log-out": "登出",
     "log-out": "登出",
+    "log-in": "登录",
     "loginPopup-title": "登录",
     "loginPopup-title": "登录",
-    "mapMembersAddPopup-title": "选择 Wekan 成员",
-    "mapMembersPopup-title": "映射成员",
     "memberMenuPopup-title": "成员设置",
     "memberMenuPopup-title": "成员设置",
     "members": "成员",
     "members": "成员",
     "menu": "菜单",
     "menu": "菜单",
     "move-selection": "移动选择",
     "move-selection": "移动选择",
     "moveCardPopup-title": "移动卡片",
     "moveCardPopup-title": "移动卡片",
+    "moveCardToBottom-title": "移动至底端",
+    "moveCardToTop-title": "移动至顶端",
     "moveSelectionPopup-title": "移动选择",
     "moveSelectionPopup-title": "移动选择",
     "multi-selection": "多选",
     "multi-selection": "多选",
     "multi-selection-on": "多选启用",
     "multi-selection-on": "多选启用",
+    "muted": "静默",
+    "muted-info": "你将不会收到此看板的任何变更通知",
     "my-boards": "我的看板",
     "my-boards": "我的看板",
     "name": "名称",
     "name": "名称",
     "no-archived-cards": "没有已归档的卡片",
     "no-archived-cards": "没有已归档的卡片",
@@ -205,12 +251,15 @@
     "normal": "普通",
     "normal": "普通",
     "normal-desc": "可以创建以及编辑卡片,无法更改设置。",
     "normal-desc": "可以创建以及编辑卡片,无法更改设置。",
     "not-accepted-yet": "邀请尚未接受",
     "not-accepted-yet": "邀请尚未接受",
+    "notify-participate": "接收以创建者或成员身份参与的卡片的更新",
+    "notify-watch": "接收所有关注的面板、列表、及卡片的更新",
     "optional": "可选",
     "optional": "可选",
     "or": "或",
     "or": "或",
     "page-maybe-private": "本页面被设为私有. 您必须 <a href='%s'>登录</a>以浏览其中内容。",
     "page-maybe-private": "本页面被设为私有. 您必须 <a href='%s'>登录</a>以浏览其中内容。",
     "page-not-found": "页面不存在。",
     "page-not-found": "页面不存在。",
     "password": "密码",
     "password": "密码",
     "paste-or-dragdrop": "从剪贴板粘贴,或者拖放文件到它上面 (仅限于图片)",
     "paste-or-dragdrop": "从剪贴板粘贴,或者拖放文件到它上面 (仅限于图片)",
+    "participating": "参与",
     "preview": "预览",
     "preview": "预览",
     "previewAttachedImagePopup-title": "预览",
     "previewAttachedImagePopup-title": "预览",
     "previewClipboardImagePopup-title": "预览",
     "previewClipboardImagePopup-title": "预览",
@@ -223,6 +272,7 @@
     "remove-cover": "移除封面",
     "remove-cover": "移除封面",
     "remove-from-board": "从看板中删除",
     "remove-from-board": "从看板中删除",
     "remove-label": "移除标签",
     "remove-label": "移除标签",
+    "remove-list": "删除清单",
     "remove-member": "移除成员",
     "remove-member": "移除成员",
     "remove-member-from-card": "从该卡片中移除",
     "remove-member-from-card": "从该卡片中移除",
     "remove-member-pop": "确定从 __boardTitle__ 中移除 __name__ (__username__) 吗? 该成员将被从该看板的所有卡片中移除,同时他会收到一条提醒。",
     "remove-member-pop": "确定从 __boardTitle__ 中移除 __name__ (__username__) 吗? 该成员将被从该看板的所有卡片中移除,同时他会收到一条提醒。",
@@ -234,7 +284,7 @@
     "search": "搜索",
     "search": "搜索",
     "select-color": "选择颜色",
     "select-color": "选择颜色",
     "shortcut-assign-self": "分配当前卡片给自己",
     "shortcut-assign-self": "分配当前卡片给自己",
-    "shortcut-autocomplete-emojies": "自动补全表情",
+    "shortcut-autocomplete-emoji": "表情符号自动补全",
     "shortcut-autocomplete-members": "自动补全成员",
     "shortcut-autocomplete-members": "自动补全成员",
     "shortcut-clear-filters": "清空全部过滤器",
     "shortcut-clear-filters": "清空全部过滤器",
     "shortcut-close-dialog": "关闭对话框",
     "shortcut-close-dialog": "关闭对话框",
@@ -242,7 +292,8 @@
     "shortcut-show-shortcuts": "显示此快捷键列表",
     "shortcut-show-shortcuts": "显示此快捷键列表",
     "shortcut-toggle-filterbar": "切换过滤器边栏",
     "shortcut-toggle-filterbar": "切换过滤器边栏",
     "shortcut-toggle-sidebar": "切换面板边栏",
     "shortcut-toggle-sidebar": "切换面板边栏",
-    "signupPopup-title": " 创建账户",
+    "show-cards-minimum-count": "当列表中的卡片多于此阈值时将显示数量",
+    "signupPopup-title": "创建账户",
     "star-board-title": "点此来标记该看板,它将会出现在您的看板列表顶部。",
     "star-board-title": "点此来标记该看板,它将会出现在您的看板列表顶部。",
     "starred-boards": "已标记看板",
     "starred-boards": "已标记看板",
     "starred-boards-description": "已标记看板将会出现在您的看板列表顶部。",
     "starred-boards-description": "已标记看板将会出现在您的看板列表顶部。",
@@ -250,14 +301,24 @@
     "team": "团队",
     "team": "团队",
     "this-board": "该看板",
     "this-board": "该看板",
     "this-card": "该卡片",
     "this-card": "该卡片",
+    "time": "时间",
     "title": "标题",
     "title": "标题",
+    "tracking": "跟踪",
+    "tracking-info": "当任何包含您(作为创建者或成员)的卡片发生变更时,您将得到通知。",
     "unassign-member": "取消分配成员",
     "unassign-member": "取消分配成员",
     "unsaved-description": "存在未保存的描述",
     "unsaved-description": "存在未保存的描述",
+    "unwatch": "取消关注",
     "upload": "上传",
     "upload": "上传",
     "upload-avatar": "上传头像",
     "upload-avatar": "上传头像",
     "uploaded-avatar": "头像已经上传",
     "uploaded-avatar": "头像已经上传",
     "username": "用户名",
     "username": "用户名",
     "view-it": "查看",
     "view-it": "查看",
     "warn-list-archived": "警告: 该卡片位于已归档清单中",
     "warn-list-archived": "警告: 该卡片位于已归档清单中",
+    "watch": "关注",
+    "watching": "已关注",
+    "watching-info": "当此看板发生变更时会通知你",
+    "welcome-board": "“欢迎”看板",
+    "welcome-list1": "基本",
+    "welcome-list2": "高阶",
     "what-to-do": "要做什么?"
     "what-to-do": "要做什么?"
 }
 }

+ 73 - 12
i18n/zh-TW.i18n.json

@@ -1,10 +1,30 @@
 {
 {
     "accept": "接受",
     "accept": "接受",
+    "act-activity-notify": "[Wekan] 活動通知",
+    "act-addAttachment": "新增附件__attachment__至__card__",
+    "act-addComment": "評論__card__: __comment__",
+    "act-createBoard": "完成新增 __board__",
+    "act-createCard": "將__card__加入__list__",
+    "act-createList": "新增__list__至__board__",
+    "act-addBoardMember": "在__board__中新增成員__member__",
+    "act-archivedBoard": "封存__board__",
+    "act-archivedCard": "封存__card__",
+    "act-archivedList": "封存__list__",
+    "act-importBoard": "匯入__board__",
+    "act-importCard": "匯入__card__",
+    "act-importList": "匯入__list__",
+    "act-joinMember": "在__card__中新增成員__member__",
+    "act-moveCard": "將__card__從__oldList__移動至__list__",
+    "act-removeBoardMember": "從__board__中移除成員__member__",
+    "act-restoredCard": "將__card__回復至__board__",
+    "act-unjoinMember": "從__card__中移除成員__member__",
+    "act-withBoardTitle": "[Wekan] __board__",
+    "act-withCardTitle": "[__board__] __card__",
     "actions": "操作",
     "actions": "操作",
     "activities": "活動",
     "activities": "活動",
     "activity": "活動",
     "activity": "活動",
     "activity-added": "新增 %s 至 %s",
     "activity-added": "新增 %s 至 %s",
-    "activity-archived": "刪除 %s",
+    "activity-archived": "封存 %s",
     "activity-attached": "新增附件 %s 至 %s",
     "activity-attached": "新增附件 %s 至 %s",
     "activity-created": "建立 %s",
     "activity-created": "建立 %s",
     "activity-excluded": "排除 %s 從 %s",
     "activity-excluded": "排除 %s 從 %s",
@@ -16,10 +36,13 @@
     "activity-removed": "移除 %s 從 %s 中",
     "activity-removed": "移除 %s 從 %s 中",
     "activity-sent": "寄送 %s 至 %s",
     "activity-sent": "寄送 %s 至 %s",
     "activity-unjoined": "解除關聯 %s",
     "activity-unjoined": "解除關聯 %s",
+    "activity-checklist-added": "新增待辦清單至 %s",
     "add": "新增",
     "add": "新增",
     "add-attachment": "新增附件",
     "add-attachment": "新增附件",
     "add-board": "新增看板",
     "add-board": "新增看板",
     "add-card": "新增卡片",
     "add-card": "新增卡片",
+    "add-checklist": "新增待辦清單",
+    "add-checklist-item": "新增項目",
     "add-cover": "新增封面",
     "add-cover": "新增封面",
     "add-label": "新增標籤",
     "add-label": "新增標籤",
     "add-list": "新增清單",
     "add-list": "新增清單",
@@ -31,6 +54,8 @@
     "all-boards": "全部看板",
     "all-boards": "全部看板",
     "and-n-other-card": "和其他 __count__ 個卡片",
     "and-n-other-card": "和其他 __count__ 個卡片",
     "and-n-other-card_plural": "和其他 __count__ 個卡片",
     "and-n-other-card_plural": "和其他 __count__ 個卡片",
+    "apply": "送出",
+    "app-is-offline": "目前狀態為離線,若整重將會造成資料遺失",
     "archive": "刪除",
     "archive": "刪除",
     "archive-all": "全部刪除",
     "archive-all": "全部刪除",
     "archive-board": "刪除看板",
     "archive-board": "刪除看板",
@@ -38,14 +63,15 @@
     "archive-list": "刪除該清單",
     "archive-list": "刪除該清單",
     "archive-selection": "刪除所選內容",
     "archive-selection": "刪除所選內容",
     "archiveBoardPopup-title": "確定要刪除看板嗎?",
     "archiveBoardPopup-title": "確定要刪除看板嗎?",
-    "archived-items": "回收筒",
-    "archives": "回收筒",
+    "archived-items": "封存",
+    "archives": "封存",
     "assign-member": "分配成員",
     "assign-member": "分配成員",
     "attached": "附加",
     "attached": "附加",
     "attachment": "附件",
     "attachment": "附件",
     "attachment-delete-pop": "刪除附件的操作無法還原。",
     "attachment-delete-pop": "刪除附件的操作無法還原。",
     "attachmentDeletePopup-title": "刪除附件?",
     "attachmentDeletePopup-title": "刪除附件?",
     "attachments": "附件",
     "attachments": "附件",
+    "auto-watch": "新增看板時自動加入觀察",
     "avatar-too-big": "大頭貼太大 (最大 70 Kb)",
     "avatar-too-big": "大頭貼太大 (最大 70 Kb)",
     "back": "返回",
     "back": "返回",
     "board-change-color": "更改顏色",
     "board-change-color": "更改顏色",
@@ -56,7 +82,7 @@
     "boardChangeColorPopup-title": "修改看板背景",
     "boardChangeColorPopup-title": "修改看板背景",
     "boardChangeTitlePopup-title": "重新命名看板",
     "boardChangeTitlePopup-title": "重新命名看板",
     "boardChangeVisibilityPopup-title": "更改可視級別",
     "boardChangeVisibilityPopup-title": "更改可視級別",
-    "boardImportBoardPopup-title": "從 Trello 匯入看板",
+    "boardChangeWatchPopup-title": "更改觀察",
     "boardMenuPopup-title": "看板選單",
     "boardMenuPopup-title": "看板選單",
     "boards": "看板",
     "boards": "看板",
     "bucket-example": "例如 “目標清單”",
     "bucket-example": "例如 “目標清單”",
@@ -66,11 +92,15 @@
     "card-delete-notice": "徹底刪除的操作不可復原,你將會遺失該卡片相關的所有操作記錄。",
     "card-delete-notice": "徹底刪除的操作不可復原,你將會遺失該卡片相關的所有操作記錄。",
     "card-delete-pop": "所有的動作將從活動動態中被移除且您將無法重新打開該卡片。此操作無法復原。",
     "card-delete-pop": "所有的動作將從活動動態中被移除且您將無法重新打開該卡片。此操作無法復原。",
     "card-delete-suggest-archive": "你可以將卡片從看板中刪除至回收筒,但保留相關活動。",
     "card-delete-suggest-archive": "你可以將卡片從看板中刪除至回收筒,但保留相關活動。",
+    "card-due": "到期",
+    "card-due-on": "到期",
     "card-edit-attachments": "編輯附件",
     "card-edit-attachments": "編輯附件",
     "card-edit-labels": "編輯標籤",
     "card-edit-labels": "編輯標籤",
     "card-edit-members": "編輯成員",
     "card-edit-members": "編輯成員",
     "card-labels-title": "更改該卡片上的標籤",
     "card-labels-title": "更改該卡片上的標籤",
     "card-members-title": "在該卡片中新增或移除看板成員",
     "card-members-title": "在該卡片中新增或移除看板成員",
+    "card-start": "開始",
+    "card-start-on": "開始",
     "cardAttachmentsPopup-title": "附件來源",
     "cardAttachmentsPopup-title": "附件來源",
     "cardDeletePopup-title": "徹底刪除卡片?",
     "cardDeletePopup-title": "徹底刪除卡片?",
     "cardDetailsActionsPopup-title": "卡片動作",
     "cardDetailsActionsPopup-title": "卡片動作",
@@ -82,10 +112,13 @@
     "change-avatar": "更改大頭貼",
     "change-avatar": "更改大頭貼",
     "change-password": "更改密碼",
     "change-password": "更改密碼",
     "change-permissions": "更改許可權",
     "change-permissions": "更改許可權",
+    "change-settings": "更改設定",
     "changeAvatarPopup-title": "更改大頭貼",
     "changeAvatarPopup-title": "更改大頭貼",
     "changeLanguagePopup-title": "更改語言",
     "changeLanguagePopup-title": "更改語言",
     "changePasswordPopup-title": "更改密碼",
     "changePasswordPopup-title": "更改密碼",
-    "changePermissionsPopup-title": "更改權限",
+    "changePermissionsPopup-title": "更改許可權",
+    "changeSettingsPopup-title": "更改設定",
+    "checklists": "待辦清單",
     "click-to-star": "點此來標記該看板",
     "click-to-star": "點此來標記該看板",
     "click-to-unstar": "點此來去除該看板的標記",
     "click-to-unstar": "點此來去除該看板的標記",
     "clipboard": "剪貼簿貼上或者拖曳檔案",
     "clipboard": "剪貼簿貼上或者拖曳檔案",
@@ -109,6 +142,7 @@
     "createBoardPopup-title": "建立看板",
     "createBoardPopup-title": "建立看板",
     "createLabelPopup-title": "建立標籤",
     "createLabelPopup-title": "建立標籤",
     "current": "目前",
     "current": "目前",
+    "date": "日期",
     "decline": "拒絕",
     "decline": "拒絕",
     "default-avatar": "預設大頭貼",
     "default-avatar": "預設大頭貼",
     "delete": "刪除",
     "delete": "刪除",
@@ -122,7 +156,10 @@
     "edit": "編輯",
     "edit": "編輯",
     "edit-avatar": "更改大頭貼",
     "edit-avatar": "更改大頭貼",
     "edit-profile": "編輯資料",
     "edit-profile": "編輯資料",
+    "editCardStartDatePopup-title": "更改開始日期",
+    "editCardDueDatePopup-title": "更改到期日期",
     "editLabelPopup-title": "更改標籤",
     "editLabelPopup-title": "更改標籤",
+    "editNotificationPopup-title": "更改通知",
     "editProfilePopup-title": "編輯資料",
     "editProfilePopup-title": "編輯資料",
     "email": "電子郵件",
     "email": "電子郵件",
     "email-enrollAccount-subject": "您在 __siteName__ 的帳號已經建立",
     "email-enrollAccount-subject": "您在 __siteName__ 的帳號已經建立",
@@ -146,27 +183,33 @@
     "error-user-doesNotExist": "該使用者不存在",
     "error-user-doesNotExist": "該使用者不存在",
     "error-user-notAllowSelf": "不允許對自己執行此操作",
     "error-user-notAllowSelf": "不允許對自己執行此操作",
     "error-user-notCreated": "該使用者未能成功建立",
     "error-user-notCreated": "該使用者未能成功建立",
+    "error-username-taken": "這個使用者名稱已被使用",
     "export-board": "Export board",
     "export-board": "Export board",
     "filter": "過濾",
     "filter": "過濾",
     "filter-cards": "過濾卡片",
     "filter-cards": "過濾卡片",
     "filter-clear": "清空過濾條件",
     "filter-clear": "清空過濾條件",
+    "filter-no-label": "沒有標籤",
+    "filter-no-member": "沒有成員",
     "filter-on": "過濾條件啟用",
     "filter-on": "過濾條件啟用",
     "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。",
     "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。",
     "filter-to-selection": "要選擇的過濾條件",
     "filter-to-selection": "要選擇的過濾條件",
     "fullname": "全稱",
     "fullname": "全稱",
     "header-logo-title": "返回您的看板頁面",
     "header-logo-title": "返回您的看板頁面",
+    "hide-system-messages": "隱藏系統訊息",
     "home": "首頁",
     "home": "首頁",
     "import": "匯入",
     "import": "匯入",
-    "import-board": "從 Trello 匯入",
+    "import-board": "匯入 Trello 資料",
+    "import-board-title": "匯入在 Trello 的看板",
     "import-board-trello-instruction": "在你的Trello看板中,點選“功能表”,然後選擇“更多”,“列印與匯出”,“匯出為 JSON” 並拷貝結果文本",
     "import-board-trello-instruction": "在你的Trello看板中,點選“功能表”,然後選擇“更多”,“列印與匯出”,“匯出為 JSON” 並拷貝結果文本",
-    "import-card": "匯入 Trello 卡片",
-    "import-card-trello-instruction": "進入一個 Trello 卡片,選擇“分享與更多”,然後選擇 “匯出為 JSON” 並且拷貝結果文本",
     "import-json-placeholder": "貼上您有效的 JSON 資料至此",
     "import-json-placeholder": "貼上您有效的 JSON 資料至此",
+    "import-map-members": "複製成員",
     "import-members-map": "您匯入的看板有一些成員。請將您想匯入的成員映射到 Wekan 使用者。",
     "import-members-map": "您匯入的看板有一些成員。請將您想匯入的成員映射到 Wekan 使用者。",
     "import-show-user-mapping": "核對成員映射",
     "import-show-user-mapping": "核對成員映射",
     "import-user-select": "選擇您想將此成員映射到的 Wekan 使用者",
     "import-user-select": "選擇您想將此成員映射到的 Wekan 使用者",
+    "importMapMembersAddPopup-title": "選擇 Wekan 成員",
     "info": "資訊",
     "info": "資訊",
     "initials": "縮寫",
     "initials": "縮寫",
+    "invalid-date": "無效的日期",
     "joined": "關聯",
     "joined": "關聯",
     "just-invited": "您剛剛被邀請加入此看板",
     "just-invited": "您剛剛被邀請加入此看板",
     "keyboard-shortcuts": "鍵盤快速鍵",
     "keyboard-shortcuts": "鍵盤快速鍵",
@@ -186,17 +229,20 @@
     "listImportCardPopup-title": "匯入 Trello 卡片",
     "listImportCardPopup-title": "匯入 Trello 卡片",
     "lists": "清單",
     "lists": "清單",
     "log-out": "登出",
     "log-out": "登出",
+    "log-in": "登入",
     "loginPopup-title": "登入",
     "loginPopup-title": "登入",
-    "mapMembersAddPopup-title": "選擇 Wekan 成員",
-    "mapMembersPopup-title": "映射成員",
     "memberMenuPopup-title": "成員更改",
     "memberMenuPopup-title": "成員更改",
     "members": "成員",
     "members": "成員",
     "menu": "選單",
     "menu": "選單",
     "move-selection": "移動被選擇的項目",
     "move-selection": "移動被選擇的項目",
     "moveCardPopup-title": "移動卡片",
     "moveCardPopup-title": "移動卡片",
-    "moveSelectionPopup-title": "Move selection",
+    "moveCardToBottom-title": "移至最下面",
+    "moveCardToTop-title": "移至最上面",
+    "moveSelectionPopup-title": "移動選取的項目",
     "multi-selection": "多選",
     "multi-selection": "多選",
     "multi-selection-on": "多選啟用",
     "multi-selection-on": "多選啟用",
+    "muted": "靜音",
+    "muted-info": "您將不會收到有關這個看板的任何訊息",
     "my-boards": "我的看板",
     "my-boards": "我的看板",
     "name": "名稱",
     "name": "名稱",
     "no-archived-cards": "沒有已刪除的卡片",
     "no-archived-cards": "沒有已刪除的卡片",
@@ -205,12 +251,15 @@
     "normal": "普通",
     "normal": "普通",
     "normal-desc": "可以建立以及編輯卡片,無法更改。",
     "normal-desc": "可以建立以及編輯卡片,無法更改。",
     "not-accepted-yet": "邀請尚未接受",
     "not-accepted-yet": "邀請尚未接受",
+    "notify-participate": "接收與你有關的卡片更新",
+    "notify-watch": "接收您關注的看板、清單或卡片的更新",
     "optional": "選擇性的",
     "optional": "選擇性的",
     "or": "或",
     "or": "或",
     "page-maybe-private": "本頁面被設為私有. 您必須 <a href='%s'>登入</a>以瀏覽其中內容。",
     "page-maybe-private": "本頁面被設為私有. 您必須 <a href='%s'>登入</a>以瀏覽其中內容。",
     "page-not-found": "頁面不存在。",
     "page-not-found": "頁面不存在。",
     "password": "密碼",
     "password": "密碼",
     "paste-or-dragdrop": "從剪貼簿貼上,或者拖曳檔案到它上面 (僅限於圖片)",
     "paste-or-dragdrop": "從剪貼簿貼上,或者拖曳檔案到它上面 (僅限於圖片)",
+    "participating": "參與",
     "preview": "預覽",
     "preview": "預覽",
     "previewAttachedImagePopup-title": "預覽",
     "previewAttachedImagePopup-title": "預覽",
     "previewClipboardImagePopup-title": "預覽",
     "previewClipboardImagePopup-title": "預覽",
@@ -223,6 +272,7 @@
     "remove-cover": "移除封面",
     "remove-cover": "移除封面",
     "remove-from-board": "從看板中刪除",
     "remove-from-board": "從看板中刪除",
     "remove-label": "移除標籤",
     "remove-label": "移除標籤",
+    "remove-list": "移除清單",
     "remove-member": "移除成員",
     "remove-member": "移除成員",
     "remove-member-from-card": "從該卡片中移除",
     "remove-member-from-card": "從該卡片中移除",
     "remove-member-pop": "確定從 __boardTitle__ 中移除 __name__ (__username__) 嗎? 該成員將被從該看板的所有卡片中移除,同時他會收到一則提醒。",
     "remove-member-pop": "確定從 __boardTitle__ 中移除 __name__ (__username__) 嗎? 該成員將被從該看板的所有卡片中移除,同時他會收到一則提醒。",
@@ -234,7 +284,7 @@
     "search": "搜尋",
     "search": "搜尋",
     "select-color": "選擇顏色",
     "select-color": "選擇顏色",
     "shortcut-assign-self": "分配目前卡片給自己",
     "shortcut-assign-self": "分配目前卡片給自己",
-    "shortcut-autocomplete-emojies": "自動完成 emojis",
+    "shortcut-autocomplete-emoji": "自動完成表情符號",
     "shortcut-autocomplete-members": "自動補齊成員",
     "shortcut-autocomplete-members": "自動補齊成員",
     "shortcut-clear-filters": "清空全部過濾條件",
     "shortcut-clear-filters": "清空全部過濾條件",
     "shortcut-close-dialog": "關閉對話方塊",
     "shortcut-close-dialog": "關閉對話方塊",
@@ -242,6 +292,7 @@
     "shortcut-show-shortcuts": "顯示此快速鍵清單",
     "shortcut-show-shortcuts": "顯示此快速鍵清單",
     "shortcut-toggle-filterbar": "切換過濾程式邊欄",
     "shortcut-toggle-filterbar": "切換過濾程式邊欄",
     "shortcut-toggle-sidebar": "切換面板邊欄",
     "shortcut-toggle-sidebar": "切換面板邊欄",
+    "show-cards-minimum-count": "顯示卡片數量,當內容超過數量",
     "signupPopup-title": "建立帳戶",
     "signupPopup-title": "建立帳戶",
     "star-board-title": "點此標記該看板,它將會出現在您的看板列表上方。",
     "star-board-title": "點此標記該看板,它將會出現在您的看板列表上方。",
     "starred-boards": "已標記看板",
     "starred-boards": "已標記看板",
@@ -250,14 +301,24 @@
     "team": "團隊",
     "team": "團隊",
     "this-board": "這個看板",
     "this-board": "這個看板",
     "this-card": "這個卡片",
     "this-card": "這個卡片",
+    "time": "時間",
     "title": "標題",
     "title": "標題",
+    "tracking": "追蹤",
+    "tracking-info": "你將會收到與你有關的卡片的所有變更通知",
     "unassign-member": "取消分配成員",
     "unassign-member": "取消分配成員",
     "unsaved-description": "未儲存的描述",
     "unsaved-description": "未儲存的描述",
+    "unwatch": "取消觀察",
     "upload": "上傳",
     "upload": "上傳",
     "upload-avatar": "上傳大頭貼",
     "upload-avatar": "上傳大頭貼",
     "uploaded-avatar": "大頭貼已經上傳",
     "uploaded-avatar": "大頭貼已經上傳",
     "username": "使用者名稱",
     "username": "使用者名稱",
     "view-it": "檢視",
     "view-it": "檢視",
     "warn-list-archived": "警告: 該卡片位於已刪除的清單中",
     "warn-list-archived": "警告: 該卡片位於已刪除的清單中",
+    "watch": "觀察",
+    "watching": "觀察中",
+    "watching-info": "你將會收到關於這個看板所有的變更通知",
+    "welcome-board": "歡迎進入看板",
+    "welcome-list1": "基本",
+    "welcome-list2": "進階",
     "what-to-do": "要做什麼?"
     "what-to-do": "要做什麼?"
 }
 }

BIN
meta/dwrensha-pgp-sig


BIN
meta/keyring


+ 7 - 0
models/activities.js

@@ -35,6 +35,9 @@ Activities.helpers({
   attachment() {
   attachment() {
     return Attachments.findOne(this.attachmentId);
     return Attachments.findOne(this.attachmentId);
   },
   },
+  checklist() {
+    return Checklists.findOne(this.checklistId);
+  },
 });
 });
 
 
 Activities.before.insert((userId, doc) => {
 Activities.before.insert((userId, doc) => {
@@ -102,6 +105,10 @@ if (Meteor.isServer) {
       const attachment = activity.attachment();
       const attachment = activity.attachment();
       params.attachment = attachment._id;
       params.attachment = attachment._id;
     }
     }
+    if (activity.checklistId) {
+      const checklist = activity.checklist();
+      params.checklist = checklist.title;
+    }
     if (board) {
     if (board) {
       const watchingUsers = _.pluck(_.where(board.watchers, {level: 'watching'}), 'userId');
       const watchingUsers = _.pluck(_.where(board.watchers, {level: 'watching'}), 'userId');
       const trackingUsers = _.pluck(_.where(board.watchers, {level: 'tracking'}), 'userId');
       const trackingUsers = _.pluck(_.where(board.watchers, {level: 'tracking'}), 'userId');

+ 1 - 1
models/boards.js

@@ -249,7 +249,7 @@ Boards.mutations({
     return { $set: { title }};
     return { $set: { title }};
   },
   },
 
 
-  setDesciption(description) {
+  setDescription(description) {
     return { $set: {description} };
     return { $set: {description} };
   },
   },
 
 

+ 6 - 0
models/cardComments.js

@@ -57,6 +57,12 @@ CardComments.helpers({
 CardComments.hookOptions.after.update = { fetchPrevious: false };
 CardComments.hookOptions.after.update = { fetchPrevious: false };
 
 
 if (Meteor.isServer) {
 if (Meteor.isServer) {
+  // Comments are often fetched within a card, so we create an index to make these
+  // queries more efficient.
+  Meteor.startup(() => {
+    CardComments._collection._ensureIndex({ cardId: 1, createdAt: -1 });
+  });
+
   CardComments.after.insert((userId, doc) => {
   CardComments.after.insert((userId, doc) => {
     Activities.insert({
     Activities.insert({
       userId,
       userId,

+ 54 - 0
models/cards.js

@@ -56,6 +56,14 @@ Cards.attachSchema(new SimpleSchema({
     type: [String],
     type: [String],
     optional: true,
     optional: true,
   },
   },
+  startAt: {
+    type: Date,
+    optional: true,
+  },
+  dueAt: {
+    type: Date,
+    optional: true,
+  },
   // XXX Should probably be called `authorId`. Is it even needed since we have
   // XXX Should probably be called `authorId`. Is it even needed since we have
   // the `members` field?
   // the `members` field?
   userId: {
   userId: {
@@ -133,6 +141,36 @@ Cards.helpers({
     return cover && cover.url() && cover;
     return cover && cover.url() && cover;
   },
   },
 
 
+  checklists() {
+    return Checklists.find({ cardId: this._id }, { sort: { createdAt: 1 }});
+  },
+
+  checklistItemCount() {
+    const checklists = this.checklists().fetch();
+    return checklists.map((checklist) => {
+      return checklist.itemCount();
+    }).reduce((prev, next) => {
+      return prev + next;
+    }, 0);
+  },
+
+  checklistFinishedCount() {
+    const checklists = this.checklists().fetch();
+    return checklists.map((checklist) => {
+      return checklist.finishedCount();
+    }).reduce((prev, next) => {
+      return prev + next;
+    }, 0);
+  },
+
+  checklistFinished() {
+    return this.hasChecklist() && this.checklistItemCount() === this.checklistFinishedCount();
+  },
+
+  hasChecklist() {
+    return this.checklistItemCount() !== 0;
+  },
+
   absoluteUrl() {
   absoluteUrl() {
     const board = this.board();
     const board = this.board();
     return FlowRouter.url('card', {
     return FlowRouter.url('card', {
@@ -207,6 +245,22 @@ Cards.mutations({
   unsetCover() {
   unsetCover() {
     return { $unset: { coverId: '' }};
     return { $unset: { coverId: '' }};
   },
   },
+
+  setStart(startAt) {
+    return { $set: { startAt }};
+  },
+
+  unsetStart() {
+    return { $unset: { startAt: '' }};
+  },
+
+  setDue(dueAt) {
+    return { $set: { dueAt }};
+  },
+
+  unsetDue() {
+    return { $unset: { dueAt: '' }};
+  },
 });
 });
 
 
 if (Meteor.isServer) {
 if (Meteor.isServer) {

+ 164 - 0
models/checklists.js

@@ -0,0 +1,164 @@
+Checklists = new Mongo.Collection('checklists');
+
+Checklists.attachSchema(new SimpleSchema({
+  cardId: {
+    type: String,
+  },
+  title: {
+    type: String,
+  },
+  items: {
+    type: [Object],
+    defaultValue: [],
+  },
+  'items.$._id': {
+    type: String,
+  },
+  'items.$.title': {
+    type: String,
+  },
+  'items.$.isFinished': {
+    type: Boolean,
+    defaultValue: false,
+  },
+  finishedAt: {
+    type: Date,
+    optional: true,
+  },
+  createdAt: {
+    type: Date,
+    denyUpdate: false,
+  },
+}));
+
+Checklists.helpers({
+  itemCount () {
+    return this.items.length;
+  },
+  finishedCount () {
+    return this.items.filter((item) => {
+      return item.isFinished;
+    }).length;
+  },
+  isFinished () {
+    return 0 !== this.itemCount() && this.itemCount() === this.finishedCount();
+  },
+  getItem (_id) {
+    return _.findWhere(this.items, { _id });
+  },
+  itemIndex(itemId) {
+    return _.pluck(this.items, '_id').indexOf(itemId);
+  },
+});
+
+Checklists.allow({
+  insert(userId, doc) {
+    return allowIsBoardMemberByCard(userId, Cards.findOne(doc.cardId));
+  },
+  update(userId, doc) {
+    return allowIsBoardMemberByCard(userId, Cards.findOne(doc.cardId));
+  },
+  remove(userId, doc) {
+    return allowIsBoardMemberByCard(userId, Cards.findOne(doc.cardId));
+  },
+  fetch: ['userId', 'cardId'],
+});
+
+Checklists.before.insert((userId, doc) => {
+  doc.createdAt = new Date();
+  if (!doc.userId) {
+    doc.userId = userId;
+  }
+});
+
+Checklists.mutations({
+  //for checklist itself
+  setTitle(title){
+    return { $set: { title }};
+  },
+  //for items in checklist
+  addItem(title) {
+    const itemCount = this.itemCount();
+    const _id = `${this._id}${itemCount}`;
+    return { $addToSet: {items: {_id, title, isFinished: false}} };
+  },
+  removeItem(itemId) {
+    return {$pull: {items: {_id : itemId}}};
+  },
+  editItem(itemId, title) {
+    if (this.getItem(itemId)) {
+      const itemIndex = this.itemIndex(itemId);
+      return {
+        $set: {
+          [`items.${itemIndex}.title`]: title,
+        },
+      };
+    }
+    return {};
+  },
+  finishItem(itemId) {
+    if (this.getItem(itemId)) {
+      const itemIndex = this.itemIndex(itemId);
+      return {
+        $set: {
+          [`items.${itemIndex}.isFinished`]: true,
+        },
+      };
+    }
+    return {};
+  },
+  resumeItem(itemId) {
+    if (this.getItem(itemId)) {
+      const itemIndex = this.itemIndex(itemId);
+      return {
+        $set: {
+          [`items.${itemIndex}.isFinished`]: false,
+        },
+      };
+    }
+    return {};
+  },
+  toggleItem(itemId) {
+    const item = this.getItem(itemId);
+    if (item) {
+      const itemIndex = this.itemIndex(itemId);
+      return {
+        $set: {
+          [`items.${itemIndex}.isFinished`]: !item.isFinished,
+        },
+      };
+    }
+    return {};
+  },
+});
+
+if (Meteor.isServer) {
+  Checklists.after.insert((userId, doc) => {
+    Activities.insert({
+      userId,
+      activityType: 'addChecklist',
+      cardId: doc.cardId,
+      boardId: Cards.findOne(doc.cardId).boardId,
+      checklistId: doc._id,
+    });
+  });
+
+  //TODO: so there will be no activity for adding item into checklist, maybe will be implemented in the future.
+  // Checklists.after.update((userId, doc) => {
+  //   console.log('update:', doc)
+    // Activities.insert({
+    //   userId,
+    //   activityType: 'addChecklist',
+    //   boardId: doc.boardId,
+    //   cardId: doc.cardId,
+    //   checklistId: doc._id,
+    // });
+  // });
+
+  Checklists.before.remove((userId, doc) => {
+    const activity = Activities.findOne({ checklistId: doc._id });
+    if (activity) {
+      Activities.remove(activity._id);
+    }
+  });
+}

+ 11 - 0
models/lists.js

@@ -105,6 +105,17 @@ if (Meteor.isServer) {
     });
     });
   });
   });
 
 
+  Lists.before.remove((userId, doc) => {
+    Activities.insert({
+      userId,
+      type: 'list',
+      activityType: 'removeList',
+      boardId: doc.boardId,
+      listId: doc._id,
+      title: doc.title,
+    });
+  });
+
   Lists.after.update((userId, doc) => {
   Lists.after.update((userId, doc) => {
     if (doc.archived) {
     if (doc.archived) {
       Activities.insert({
       Activities.insert({

+ 61 - 17
models/users.js

@@ -1,3 +1,7 @@
+// Sandstorm context is detected using the METEOR_SETTINGS environment variable
+// in the package definition.
+const isSandstorm = Meteor.settings && Meteor.settings.public &&
+                    Meteor.settings.public.sandstorm;
 Users = Meteor.users;
 Users = Meteor.users;
 
 
 Users.attachSchema(new SimpleSchema({
 Users.attachSchema(new SimpleSchema({
@@ -55,6 +59,10 @@ Users.attachSchema(new SimpleSchema({
     type: String,
     type: String,
     optional: true,
     optional: true,
   },
   },
+  'profile.hiddenSystemMessages': {
+    type: Boolean,
+    optional: true,
+  },
   'profile.initials': {
   'profile.initials': {
     type: String,
     type: String,
     optional: true,
     optional: true,
@@ -71,6 +79,10 @@ Users.attachSchema(new SimpleSchema({
     type: [String],
     type: [String],
     optional: true,
     optional: true,
   },
   },
+  'profile.showCardsCountAt': {
+    type: Number,
+    optional: true,
+  },
   'profile.starredBoards': {
   'profile.starredBoards': {
     type: [String],
     type: [String],
     optional: true,
     optional: true,
@@ -147,6 +159,11 @@ Users.helpers({
     return _.contains(notifications, activityId);
     return _.contains(notifications, activityId);
   },
   },
 
 
+  hasHiddenSystemMessages() {
+    const profile = this.profile || {};
+    return profile.hiddenSystemMessages || false;
+  },
+
   getEmailBuffer() {
   getEmailBuffer() {
     const {emailBuffer = []} = this.profile;
     const {emailBuffer = []} = this.profile;
     return emailBuffer;
     return emailBuffer;
@@ -167,6 +184,11 @@ Users.helpers({
     }
     }
   },
   },
 
 
+  getLimitToShowCardsCount() {
+    const profile = this.profile || {};
+    return profile.showCardsCountAt;
+  },
+
   getName() {
   getName() {
     const profile = this.profile || {};
     const profile = this.profile || {};
     return profile.fullname || this.username;
     return profile.fullname || this.username;
@@ -227,6 +249,14 @@ Users.mutations({
       this.addTag(tag);
       this.addTag(tag);
   },
   },
 
 
+  toggleSystem(value = false) {
+    return {
+      $set: {
+        'profile.hiddenSystemMessages': !value,
+      },
+    };
+  },
+
   addNotification(activityId) {
   addNotification(activityId) {
     return {
     return {
       $addToSet: {
       $addToSet: {
@@ -262,6 +292,10 @@ Users.mutations({
   setAvatarUrl(avatarUrl) {
   setAvatarUrl(avatarUrl) {
     return { $set: { 'profile.avatarUrl': avatarUrl }};
     return { $set: { 'profile.avatarUrl': avatarUrl }};
   },
   },
+
+  setShowCardsCountAt(limit) {
+    return { $set: { 'profile.showCardsCountAt': limit } };
+  },
 });
 });
 
 
 Meteor.methods({
 Meteor.methods({
@@ -274,6 +308,14 @@ Meteor.methods({
       Users.update(this.userId, {$set: { username }});
       Users.update(this.userId, {$set: { username }});
     }
     }
   },
   },
+  toggleSystemMessages() {
+    const user = Meteor.user();
+    user.toggleSystem(user.hasHiddenSystemMessages());
+  },
+  changeLimitToShowCardsCount(limit) {
+    check(limit, Number);
+    Meteor.user().setShowCardsCountAt(limit);
+  },
 });
 });
 
 
 if (Meteor.isServer) {
 if (Meteor.isServer) {
@@ -394,24 +436,26 @@ if (Meteor.isServer) {
     return fakeUserId.get() || getUserId();
     return fakeUserId.get() || getUserId();
   };
   };
 
 
-  Users.after.insert((userId, doc) => {
-    const fakeUser = {
-      extendAutoValueContext: {
-        userId: doc._id,
-      },
-    };
-
-    fakeUserId.withValue(doc._id, () => {
-      // Insert the Welcome Board
-      Boards.insert({
-        title: TAPi18n.__('welcome-board'),
-        permission: 'private',
-      }, fakeUser, (err, boardId) => {
-
-        ['welcome-list1', 'welcome-list2'].forEach((title) => {
-          Lists.insert({ title: TAPi18n.__(title), boardId }, fakeUser);
+  if (!isSandstorm) {
+    Users.after.insert((userId, doc) => {
+      const fakeUser = {
+        extendAutoValueContext: {
+          userId: doc._id,
+        },
+      };
+
+      fakeUserId.withValue(doc._id, () => {
+        // Insert the Welcome Board
+        Boards.insert({
+          title: TAPi18n.__('welcome-board'),
+          permission: 'private',
+        }, fakeUser, (err, boardId) => {
+
+          ['welcome-list1', 'welcome-list2'].forEach((title) => {
+            Lists.insert({ title: TAPi18n.__(title), boardId }, fakeUser);
+          });
         });
         });
       });
       });
     });
     });
-  });
+  }
 }
 }

+ 4 - 4
package.json

@@ -1,6 +1,6 @@
 {
 {
   "name": "wekan",
   "name": "wekan",
-  "version": "0.10.1",
+  "version": "0.11.0",
   "description": "The open-source Trello-like kanban",
   "description": "The open-source Trello-like kanban",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
@@ -9,13 +9,13 @@
   },
   },
   "repository": {
   "repository": {
     "type": "git",
     "type": "git",
-    "url": "git+https://github.com/wekan/wekan.git"
+    "url": "git+https://github.com/wefork/wekan.git"
   },
   },
   "license": "MIT",
   "license": "MIT",
   "bugs": {
   "bugs": {
-    "url": "https://github.com/wekan/wekan/issues"
+    "url": "https://github.com/wefork/wekan/issues"
   },
   },
-  "homepage": "https://wekan.io",
+  "homepage": "https://github.com/wefork/wekan",
   "devDependencies": {
   "devDependencies": {
     "eslint": "^2.0.0"
     "eslint": "^2.0.0"
   },
   },

+ 49 - 7
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 = 12,
+    appVersion = 17,
     # Increment this for every release.
     # Increment this for every release.
 
 
-    appMarketingVersion = (defaultText = "0.11.0-rc2"),
+    appMarketingVersion = (defaultText = "0.11.0~2016-11-28"),
     # Human-readable presentation of the app version.
     # Human-readable presentation of the app version.
 
 
     minUpgradableAppVersion = 0,
     minUpgradableAppVersion = 0,
@@ -58,13 +58,14 @@ const pkgdef :Spk.PackageDefinition = (
       ),
       ),
 
 
       website = "https://wekan.io",
       website = "https://wekan.io",
-      codeUrl = "https://github.com/wekan/wekan",
+      codeUrl = "https://github.com/wefork/wekan",
       license = (openSource = mit),
       license = (openSource = mit),
       categories = [productivity, office],
       categories = [productivity, office],
 
 
       author = (
       author = (
-        contactEmail = "mquandalle@wekan.io",
-        pgpSignature = embed "meta/mquandalle-pgp-sig",
+        upstreamAuthor = "Maxime Quandalle",
+        contactEmail = "david@sandstorm.io",
+        pgpSignature = embed "meta/dwrensha-pgp-sig",
       ),
       ),
 
 
       pgpKeyring = embed "meta/keyring",
       pgpKeyring = embed "meta/keyring",
@@ -173,8 +174,48 @@ const pkgdef :Spk.PackageDefinition = (
       #
       #
       # XXX Administrators configuration options aren’t implemented yet, so this
       # XXX Administrators configuration options aren’t implemented yet, so this
       # role is currently useless.
       # role is currently useless.
-      )]
-    )
+      )],
+
+      eventTypes = [(
+         name = "addBoardMember",
+         verbPhrase = (defaultText = "added to board"),
+      ), (
+        name = "createList",
+        verbPhrase = (defaultText = "created new list"),
+      ), (
+        name = "archivedList",
+        verbPhrase = (defaultText = "archived list"),
+      ), (
+        name = "restoredList",
+        verbPhrase = (defaultText = "restored list"),
+      ), (
+        name = "createCard",
+        verbPhrase = (defaultText = "created new card"),
+      ), (
+        name = "moveCard",
+        verbPhrase = (defaultText = "moved card"),
+      ), (
+        name = "archivedCard",
+        verbPhrase = (defaultText = "archived card"),
+      ), (
+        name = "restoredCard",
+        verbPhrase = (defaultText = "restored card"),
+      ), (
+        name = "addComment",
+        verbPhrase = (defaultText = "added comment"),
+      ), (
+        name = "addAttachement",
+        verbPhrase = (defaultText = "added attachment"),
+      ), (
+        name = "joinMember",
+        verbPhrase = (defaultText = "added to card"),
+      ), (
+        name = "unjoinMember",
+        verbPhrase = (defaultText = "removed from card"),
+      ), ],
+    ),
+
+    saveIdentityCaps = true,
   ),
   ),
 );
 );
 
 
@@ -184,6 +225,7 @@ const myCommand :Spk.Manifest.Command = (
   environ = [
   environ = [
     # Note that this defines the *entire* environment seen by your app.
     # Note that this defines the *entire* environment seen by your app.
     (key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
     (key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
+    (key = "SANDSTORM", value = "1"),
     (key = "METEOR_SETTINGS", value = "{\"public\": {\"sandstorm\": true}}")
     (key = "METEOR_SETTINGS", value = "{\"public\": {\"sandstorm\": true}}")
   ]
   ]
 );
 );

+ 282 - 23
sandstorm.js

@@ -21,6 +21,187 @@ const sandstormBoard = {
 };
 };
 
 
 if (isSandstorm && Meteor.isServer) {
 if (isSandstorm && Meteor.isServer) {
+  const fs = require('fs');
+  const Capnp = require('capnp');
+  const Package = Capnp.importSystem('sandstorm/package.capnp');
+  const Powerbox = Capnp.importSystem('sandstorm/powerbox.capnp');
+  const Identity = Capnp.importSystem('sandstorm/identity.capnp');
+  const SandstormHttpBridge =
+    Capnp.importSystem('sandstorm/sandstorm-http-bridge.capnp').SandstormHttpBridge;
+
+  let httpBridge = null;
+  let capnpConnection = null;
+
+  const bridgeConfig = Capnp.parse(
+    Package.BridgeConfig,
+    fs.readFileSync('/sandstorm-http-bridge-config'));
+
+  function getHttpBridge() {
+    if (!httpBridge) {
+      capnpConnection = Capnp.connect('unix:/tmp/sandstorm-api');
+      httpBridge = capnpConnection.restore(null, SandstormHttpBridge);
+    }
+    return httpBridge;
+  }
+
+  Meteor.methods({
+    sandstormClaimIdentityRequest(token, descriptor) {
+      check(token, String);
+      check(descriptor, String);
+
+      const parsedDescriptor = Capnp.parse(
+        Powerbox.PowerboxDescriptor,
+        new Buffer(descriptor, 'base64'),
+        { packed: true });
+
+      const tag = Capnp.parse(Identity.Identity.PowerboxTag, parsedDescriptor.tags[0].value);
+      const permissions = [];
+      if (tag.permissions[1]) {
+        permissions.push('configure');
+      }
+
+      if (tag.permissions[0]) {
+        permissions.push('participate');
+      }
+
+      const sessionId = this.connection.sandstormSessionId();
+      const httpBridge = getHttpBridge();
+      const session = httpBridge.getSessionContext(sessionId).context;
+      const api = httpBridge.getSandstormApi(sessionId).api;
+
+      Meteor.wrapAsync((done) => {
+        session.claimRequest(token).then((response) => {
+          const identity = response.cap.castAs(Identity.Identity);
+          const promises = [api.getIdentityId(identity), identity.getProfile(),
+                            httpBridge.saveIdentity(identity)];
+          return Promise.all(promises).then((responses) => {
+            const identityId = responses[0].id.toString('hex').slice(0, 32);
+            const profile = responses[1].profile;
+            return profile.picture.getUrl().then((response) => {
+              const sandstormInfo = {
+                id: identityId,
+                name: profile.displayName.defaultText,
+                permissions,
+                picture: `${response.protocol}://${response.hostPath}`,
+                preferredHandle: profile.preferredHandle,
+                pronouns: profile.pronouns,
+              };
+
+              const login = Accounts.updateOrCreateUserFromExternalService(
+                'sandstorm', sandstormInfo,
+                { profile: { name: sandstormInfo.name } });
+
+              updateUserPermissions(login.userId, permissions);
+              done();
+            });
+          });
+        }).catch((e) => {
+          done(e, null);
+        });
+      })();
+    },
+  });
+
+  function reportActivity(sessionId, path, type, users, caption) {
+    const httpBridge = getHttpBridge();
+    const session = httpBridge.getSessionContext(sessionId).context;
+    Meteor.wrapAsync((done) => {
+      return Promise.all(users.map((user) => {
+        return httpBridge.getSavedIdentity(user.id).then((response) => {
+          // Call getProfile() to make sure that the identity successfully resolves.
+          // (In C++ we would instead call whenResolved() here.)
+          const identity = response.identity;
+          return identity.getProfile().then(() => {
+            return { identity,
+                     mentioned: !!user.mentioned,
+                     subscribed: !!user.subscribed,
+                   };
+          });
+        }).catch(() => {
+          // Ignore identities that fail to restore. Either they were added before we set
+          // `saveIdentityCaps` to true, or they have lost access to the board.
+        });
+      })).then((maybeUsers) => {
+        const users = maybeUsers.filter((u) => !!u);
+        const event = { path, type, users };
+        if (caption) {
+          event.notification = { caption };
+        }
+
+        return session.activity(event);
+      }).then(() => done(),
+              (e) => done(e));
+    })();
+  }
+
+  Meteor.startup(() => {
+    Activities.after.insert((userId, doc) => {
+      // HACK: We need the connection that's making the request in order to read the
+      // Sandstorm session ID.
+      const invocation = DDP._CurrentInvocation.get(); // eslint-disable-line no-undef
+      if (invocation) {
+        const sessionId = invocation.connection.sandstormSessionId();
+
+        const eventTypes = bridgeConfig.viewInfo.eventTypes;
+
+        const defIdx = eventTypes.findIndex((def) => def.name === doc.activityType );
+        if (defIdx >= 0) {
+          const users = {};
+          function ensureUserListed(userId) {
+            if (!users[userId]) {
+              const user = Meteor.users.findOne(userId);
+              if (user) {
+                users[userId] = { id: user.services.sandstorm.id };
+              } else {
+                return false;
+              }
+            }
+            return true;
+          }
+
+          function mentionedUser(userId) {
+            if (ensureUserListed(userId)) {
+              users[userId].mentioned = true;
+            }
+          }
+
+          function subscribedUser(userId) {
+            if (ensureUserListed(userId)) {
+              users[userId].subscribed = true;
+            }
+          }
+
+          let path = '';
+          let caption = null;
+
+          if (doc.cardId) {
+            path = `b/sandstorm/libreboard/${doc.cardId}`;
+            Cards.findOne(doc.cardId).members.map(subscribedUser);
+          }
+
+          if (doc.memberId) {
+            mentionedUser(doc.memberId);
+          }
+
+          if (doc.activityType === 'addComment') {
+            const comment = CardComments.findOne(doc.commentId);
+            caption = { defaultText: comment.text };
+            const activeMembers =
+              _.pluck(Boards.findOne(sandstormBoard._id).activeMembers(), 'userId');
+            (comment.text.match(/\B@(\w*)/g) || []).forEach((username) => {
+              const user = Meteor.users.findOne({ username: username.slice(1)});
+              if (user && activeMembers.indexOf(user._id) !== -1) {
+                mentionedUser(user._id);
+              }
+            });
+          }
+
+          reportActivity(sessionId, path, defIdx, _.values(users), caption);
+        }
+      }
+    });
+  });
+
   function updateUserPermissions(userId, permissions) {
   function updateUserPermissions(userId, permissions) {
     const isActive = permissions.indexOf('participate') > -1;
     const isActive = permissions.indexOf('participate') > -1;
     const isAdmin = permissions.indexOf('configure') > -1;
     const isAdmin = permissions.indexOf('configure') > -1;
@@ -58,29 +239,6 @@ if (isSandstorm && Meteor.isServer) {
       Location: base + boardPath,
       Location: base + boardPath,
     });
     });
     res.end();
     res.end();
-
-    // `accounts-sandstorm` populate the Users collection when new users
-    // accesses the document, but in case a already known user comes back, we
-    // need to update his associated document to match the request HTTP headers
-    // informations.
-    // XXX We need to update this document even if the initial route is not `/`.
-    // Unfortuanlty I wasn't able to make the Webapp.rawConnectHandlers solution
-    // work.
-    const user = Users.findOne({
-      'services.sandstorm.id': req.headers['x-sandstorm-user-id'],
-    });
-    if (user) {
-      // XXX At this point the user.services.sandstorm credentials haven't been
-      // updated, which mean that the user will have to restart the application
-      // a second time to see its updated name and avatar.
-      Users.update(user._id, {
-        $set: {
-          'profile.fullname': user.services.sandstorm.name,
-          'profile.avatarUrl': user.services.sandstorm.picture,
-        },
-      });
-      updateUserPermissions(user._id, user.services.sandstorm.permissions);
-    }
   });
   });
 
 
   // On the first launch of the instance a user is automatically created thanks
   // On the first launch of the instance a user is automatically created thanks
@@ -126,6 +284,29 @@ if (isSandstorm && Meteor.isServer) {
     updateUserPermissions(doc._id, doc.services.sandstorm.permissions);
     updateUserPermissions(doc._id, doc.services.sandstorm.permissions);
   });
   });
 
 
+  Meteor.startup(() => {
+    Users.find().observeChanges({
+      changed(userId, fields) {
+        const sandstormData = (fields.services || {}).sandstorm || {};
+        if (sandstormData.name) {
+          Users.update(userId, {
+            $set: { 'profile.fullname': sandstormData.name },
+          });
+        }
+
+        if (sandstormData.picture) {
+          Users.update(userId, {
+            $set: { 'profile.avatarUrl': sandstormData.picture },
+          });
+        }
+
+        if (sandstormData.permissions) {
+          updateUserPermissions(userId, sandstormData.permissions);
+        }
+      },
+    });
+  });
+
   // Wekan v0.8 didn’t implement the Sandstorm sharing model and instead kept
   // Wekan v0.8 didn’t implement the Sandstorm sharing model and instead kept
   // the visibility setting (“public” or “private”) in the UI as does the main
   // the visibility setting (“public” or “private”) in the UI as does the main
   // Meteor application. We need to enforce “public” visibility as the sharing
   // Meteor application. We need to enforce “public” visibility as the sharing
@@ -137,6 +318,77 @@ if (isSandstorm && Meteor.isServer) {
 }
 }
 
 
 if (isSandstorm && Meteor.isClient) {
 if (isSandstorm && Meteor.isClient) {
+  let rpcCounter = 0;
+  const rpcs = {};
+
+  window.addEventListener('message', (event) => {
+    if (event.source === window) {
+      // Meteor likes to postmessage itself.
+      return;
+    }
+
+    if ((event.source !== window.parent) ||
+        typeof event.data !== 'object' ||
+        typeof event.data.rpcId !== 'number') {
+      throw new Error(`got unexpected postMessage: ${event}`);
+    }
+
+    const handler = rpcs[event.data.rpcId];
+    if (!handler) {
+      throw new Error(`no such rpc ID for event ${event}`);
+    }
+
+    delete rpcs[event.data.rpcId];
+    handler(event.data);
+  });
+
+  function sendRpc(name, message) {
+    const id = rpcCounter++;
+    message.rpcId = id;
+    const obj = {};
+    obj[name] = message;
+    window.parent.postMessage(obj, '*');
+    return new Promise((resolve, reject) => {
+      rpcs[id] = (response) => {
+        if (response.error) {
+          reject(new Error(response.error));
+        } else {
+          resolve(response);
+        }
+      };
+    });
+  }
+
+  const powerboxDescriptors = {
+    identity: 'EAhQAQEAABEBF1EEAQH_GN1RqXqYhMAAQAERAREBAQ',
+    // Generated using the following code:
+    //
+    // Capnp.serializePacked(
+    //  Powerbox.PowerboxDescriptor,
+    //  { tags: [ {
+    //    id: "13872380404802116888",
+    //    value: Capnp.serialize(Identity.PowerboxTag, { permissions: [true, false] })
+    //  }]}).toString('base64')
+    //      .replace(/\//g, "_")
+    //      .replace(/\+/g, "-");
+  };
+
+  function doRequest(serializedPowerboxDescriptor, onSuccess) {
+    return sendRpc('powerboxRequest', {
+      query: [serializedPowerboxDescriptor],
+    }).then((response) => {
+      if (!response.canceled) {
+        onSuccess(response);
+      }
+    });
+  }
+
+  window.sandstormRequestIdentity = function () {
+    doRequest(powerboxDescriptors.identity, (response) => {
+      Meteor.call('sandstormClaimIdentityRequest', response.token, response.descriptor);
+    });
+  };
+
   // Since the Sandstorm grain is displayed in an iframe of the Sandstorm shell,
   // Since the Sandstorm grain is displayed in an iframe of the Sandstorm shell,
   // we need to explicitly expose meta data like the page title or the URL path
   // we need to explicitly expose meta data like the page title or the URL path
   // so that they could appear in the browser window.
   // so that they could appear in the browser window.
@@ -176,6 +428,13 @@ if (isSandstorm && Meteor.isClient) {
     return url.replace(/^https?:\/\/127\.0\.0\.1:[0-9]{2,5}/, '');
     return url.replace(/^https?:\/\/127\.0\.0\.1:[0-9]{2,5}/, '');
   };
   };
   Meteor.absoluteUrl.defaultOptions = _defaultOptions;
   Meteor.absoluteUrl.defaultOptions = _defaultOptions;
+
+  // XXX Hack to fix https://github.com/wefork/wekan/issues/27
+  // Sandstorm Wekan instances only ever have a single board, so there is no need
+  // to cache per-board subscriptions.
+  SubsManager.prototype.subscribe = function(...params) {
+    return Meteor.subscribe(...params);
+  };
 }
 }
 
 
 // We use this blaze helper in the UI to hide some templates that does not make
 // We use this blaze helper in the UI to hide some templates that does not make

+ 5 - 0
server/lib/utils.js

@@ -5,3 +5,8 @@ allowIsBoardAdmin = function(userId, board) {
 allowIsBoardMember = function(userId, board) {
 allowIsBoardMember = function(userId, board) {
   return board && board.hasMember(userId);
   return board && board.hasMember(userId);
 };
 };
+
+allowIsBoardMemberByCard = function(userId, card) {
+  const board = card.board();
+  return board && board.hasMember(userId);
+};

+ 4 - 4
server/publications/activities.js

@@ -3,16 +3,16 @@
 // 2. The card activity tab
 // 2. The card activity tab
 // We use this publication to paginate for these two publications.
 // We use this publication to paginate for these two publications.
 
 
-Meteor.publish('activities', (kind, id, limit) => {
+Meteor.publish('activities', (kind, id, limit, hideSystem) => {
   check(kind, Match.Where((x) => {
   check(kind, Match.Where((x) => {
     return ['board', 'card'].indexOf(x) !== -1;
     return ['board', 'card'].indexOf(x) !== -1;
   }));
   }));
   check(id, String);
   check(id, String);
   check(limit, Number);
   check(limit, Number);
+  check(hideSystem, Boolean);
 
 
-  return Activities.find({
-    [`${kind}Id`]: id,
-  }, {
+  const selector = (hideSystem) ? {$and: [{activityType: 'addComment'}, {[`${kind}Id`]: id}]} : {[`${kind}Id`]: id};
+  return Activities.find(selector, {
     limit,
     limit,
     sort: {createdAt: -1},
     sort: {createdAt: -1},
   });
   });

+ 21 - 14
server/publications/boards.js

@@ -60,6 +60,7 @@ Meteor.publish('archivedBoards', function() {
 
 
 Meteor.publishRelations('board', function(boardId) {
 Meteor.publishRelations('board', function(boardId) {
   check(boardId, String);
   check(boardId, String);
+  const thisUserId = this.userId;
 
 
   this.cursor(Boards.find({
   this.cursor(Boards.find({
     _id: boardId,
     _id: boardId,
@@ -97,22 +98,28 @@ Meteor.publishRelations('board', function(boardId) {
     this.cursor(Cards.find({ boardId }), function(cardId) {
     this.cursor(Cards.find({ boardId }), function(cardId) {
       this.cursor(CardComments.find({ cardId }));
       this.cursor(CardComments.find({ cardId }));
       this.cursor(Attachments.find({ cardId }));
       this.cursor(Attachments.find({ cardId }));
+      this.cursor(Checklists.find({ cardId }));
     });
     });
 
 
-    // Board members. This publication also includes former board members that
-    // aren't members anymore but may have some activities attached to them in
-    // the history.
-    //
-    this.cursor(Users.find({
-      _id: { $in: _.pluck(board.members, 'userId') },
-    }, { fields: {
-      'username': 1,
-      'profile.fullname': 1,
-      'profile.avatarUrl': 1,
-    }}), function(userId) {
-      // Presence indicators
-      this.cursor(presences.find({ userId }));
-    });
+    if (board.members) {
+      // Board members. This publication also includes former board members that
+      // aren't members anymore but may have some activities attached to them in
+      // the history.
+      const memberIds = _.pluck(board.members, 'userId');
+
+      // We omit the current user because the client should already have that data,
+      // and sending it triggers a subtle bug:
+      // https://github.com/wefork/wekan/issues/15
+      this.cursor(Users.find({
+        _id: { $in: _.without(memberIds, thisUserId)},
+      }, { fields: {
+        'username': 1,
+        'profile.fullname': 1,
+        'profile.avatarUrl': 1,
+      }}));
+
+      this.cursor(presences.find({ userId: { $in: memberIds } }));
+    }
   });
   });
 
 
   return this.ready();
   return this.ready();