summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.json4
-rw-r--r--.gitignore2
-rw-r--r--.meteor/packages1
-rw-r--r--.meteor/versions1
-rw-r--r--.tx/config2
-rw-r--r--[-rwxr-xr-x]CHANGELOG.md72
-rw-r--r--Contributing.md61
-rw-r--r--Dockerfile103
-rw-r--r--README.md172
-rw-r--r--client/components/activities/activities.jade14
-rw-r--r--client/components/activities/activities.js4
-rw-r--r--client/components/activities/activities.styl8
-rw-r--r--client/components/boards/boardHeader.js2
-rw-r--r--client/components/cards/cardDate.jade20
-rw-r--r--client/components/cards/cardDate.js228
-rw-r--r--client/components/cards/cardDate.styl58
-rw-r--r--client/components/cards/cardDetails.jade17
-rw-r--r--client/components/cards/cardDetails.js5
-rw-r--r--client/components/cards/cardDetails.styl7
-rw-r--r--client/components/cards/checklists.jade61
-rw-r--r--client/components/cards/checklists.js89
-rw-r--r--client/components/cards/checklists.styl68
-rw-r--r--client/components/cards/minicard.jade13
-rw-r--r--client/components/cards/minicard.styl21
-rw-r--r--client/components/lists/list.js2
-rw-r--r--client/components/lists/listHeader.jade7
-rw-r--r--client/components/lists/listHeader.js14
-rw-r--r--client/components/main/layouts.styl12
-rw-r--r--client/components/sidebar/sidebar.jade30
-rw-r--r--client/components/sidebar/sidebar.js10
-rw-r--r--client/components/sidebar/sidebar.styl23
-rw-r--r--client/components/sidebar/sidebarFilters.jade13
-rw-r--r--client/components/users/userHeader.jade24
-rw-r--r--client/components/users/userHeader.js39
-rw-r--r--client/lib/escapeActions.js2
-rw-r--r--client/lib/filter.js25
-rw-r--r--client/lib/i18n.js29
-rw-r--r--docker-compose.yml74
-rw-r--r--[-rwxr-xr-x]i18n/ar.i18n.json73
-rw-r--r--i18n/br.i18n.json324
-rw-r--r--[-rwxr-xr-x]i18n/ca.i18n.json75
-rw-r--r--i18n/cs.i18n.json75
-rw-r--r--[-rwxr-xr-x]i18n/de.i18n.json265
-rw-r--r--[-rwxr-xr-x]i18n/en.i18n.json34
-rw-r--r--i18n/es-ES.i18n.json73
-rw-r--r--[-rwxr-xr-x]i18n/es.i18n.json155
-rw-r--r--i18n/fa.i18n.json324
-rw-r--r--[-rwxr-xr-x]i18n/fi.i18n.json571
-rw-r--r--[-rwxr-xr-x]i18n/fr.i18n.json79
-rw-r--r--i18n/he.i18n.json77
-rwxr-xr-xi18n/it.i18n.json451
-rw-r--r--[-rwxr-xr-x]i18n/ja.i18n.json251
-rw-r--r--[-rwxr-xr-x]i18n/ko.i18n.json75
-rw-r--r--i18n/pl.i18n.json75
-rw-r--r--[-rwxr-xr-x]i18n/pt-BR.i18n.json73
-rw-r--r--i18n/ro.i18n.json324
-rw-r--r--[-rwxr-xr-x]i18n/ru.i18n.json96
-rw-r--r--i18n/sr.i18n.json324
-rw-r--r--[-rwxr-xr-x]i18n/tr.i18n.json73
-rw-r--r--[-rwxr-xr-x]i18n/zh-CN.i18n.json83
-rw-r--r--i18n/zh-TW.i18n.json85
-rw-r--r--meta/dwrensha-pgp-sigbin0 -> 430 bytes
-rw-r--r--meta/keyringbin3357 -> 4892 bytes
-rw-r--r--models/activities.js7
-rw-r--r--models/boards.js2
-rw-r--r--models/cardComments.js6
-rw-r--r--models/cards.js54
-rw-r--r--models/checklists.js164
-rw-r--r--models/lists.js11
-rw-r--r--models/users.js78
-rw-r--r--package.json8
-rw-r--r--sandstorm-pkgdef.capnp56
-rw-r--r--sandstorm.js305
-rw-r--r--server/lib/utils.js5
-rw-r--r--server/publications/activities.js8
-rw-r--r--server/publications/boards.js35
76 files changed, 5067 insertions, 1044 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
index 87c2e2cf..4808d873 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -117,6 +117,8 @@
"Notifications": true,
"allowIsBoardAdmin": true,
"allowIsBoardMember": true,
- "Emoji": true
+ "allowIsBoardMemberByCard": true,
+ "Emoji": true,
+ "Checklists": true
}
}
diff --git a/.gitignore b/.gitignore
index 564db75d..257d8a85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@
*.sublime-workspace
tmp/
node_modules/
+.vscode/
+.build/* \ No newline at end of file
diff --git a/.meteor/packages b/.meteor/packages
index e57bdb19..32d7389c 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -75,3 +75,4 @@ seriousm:emoji-continued
templates:tabs
verron:autosize
simple:json-routes
+rajit:bootstrap3-datepicker
diff --git a/.meteor/versions b/.meteor/versions
index e1c0b9cf..4ca2f780 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -121,6 +121,7 @@ perak:markdown@1.0.5
promise@0.7.3
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
+rajit:bootstrap3-datepicker@1.5.1
random@1.0.10
rate-limit@1.0.5
reactive-dict@1.1.8
diff --git a/.tx/config b/.tx/config
index 9238fdd3..f2527c8f 100644
--- a/.tx/config
+++ b/.tx/config
@@ -39,7 +39,7 @@ host = https://www.transifex.com
# 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
# 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]
file_filter = i18n/<lang>.i18n.json
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fa4f3b02..1102673e 100755..100644
--- a/CHANGELOG.md
+++ b/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:
@@ -10,6 +73,7 @@ This release adds the following new features:
* 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
is published;
+* New link to the keyboard shortcuts in the board sidebar;
and fixes the following bugs:
@@ -27,14 +91,14 @@ and fixes the following bugs:
Thanks to GitHub users alayek, AlexanderS, choclin, floatinghotpot, ForNeVeR,
PeterDaveHello, seschwar, and TheElf for their contributions.
-# v0.10.1
+# v0.10.1 2015-12-30
This patch release fixes two bugs on Sandstorm:
* Drag and drop was broken;
* Avatars weren’t working.
-# v0.10
+# v0.10 2015-12-22
This release features:
@@ -56,7 +120,7 @@ New languages supported: Arabic, Catalan, Italian, and Russian.
Thanks to GitHub users AlexanderS, fisle, floatinghotpot, FuzzyWuzzie, mnutt,
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
the beginning of our new user interface and continues to improve the overall
diff --git a/Contributing.md b/Contributing.md
index a6da0cb0..82440260 100644
--- a/Contributing.md
+++ b/Contributing.md
@@ -1,62 +1,5 @@
# 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>
diff --git a/Dockerfile b/Dockerfile
index 591d8ca2..b6e8b3df 100644
--- a/Dockerfile
+++ b/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"]
diff --git a/README.md b/README.md
index 7b3eea26..f32f65a8 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,20 @@
# 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.
@@ -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
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
-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
-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]
[![SignUp][indiehosters_button]][indiehosters_saas]
[![Deploy to Scalingo][scalingo_button]][scalingo_deploy]
[![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
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/
[heroku_button]: https://www.herokucdn.com/deploy/button.png
[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
[cloudron_button]: https://cloudron.io/img/button.svg
[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
diff --git a/client/components/activities/activities.jade b/client/components/activities/activities.jade
index 9ff73864..fad147fc 100644
--- a/client/components/activities/activities.jade
+++ b/client/components/activities/activities.jade
@@ -26,6 +26,12 @@ template(name="boardActivities")
+viewer
= comment.text
+ if($eq activityType 'addChecklist')
+ | {{{_ 'activity-checklist-added' cardLink}}}.
+ .activity-checklist(href="{{ card.absoluteUrl }}")
+ +viewer
+ = checklist.title
+
if($eq activityType 'archivedCard')
| {{{_ 'activity-archived' cardLink}}}.
@@ -41,6 +47,9 @@ template(name="boardActivities")
if($eq activityType 'createList')
| {{_ 'activity-added' list.title boardLabel}}.
+ if($eq activityType 'removeList')
+ | {{_ 'activity-removed' title boardLabel}}.
+
if($eq activityType 'importBoard')
| {{{_ 'activity-imported-board' boardLabel sourceLink}}}.
@@ -103,6 +112,11 @@ template(name="cardActivities")
| {{{_ 'activity-attached' attachmentLink cardLabel}}}.
if attachment.isImage
img.attachment-image-preview(src=attachment.url)
+ if($eq activityType 'addChecklist')
+ | {{{_ 'activity-checklist-added' cardLabel}}}.
+ .activity-checklist
+ +viewer
+ = checklist.title
if($eq activityType 'addComment')
+inlinedForm(classNames='js-edit-comment')
diff --git a/client/components/activities/activities.js b/client/components/activities/activities.js
index 0bd6a272..6600849c 100644
--- a/client/components/activities/activities.js
+++ b/client/components/activities/activities.js
@@ -12,10 +12,12 @@ BlazeComponent.extendComponent({
const capitalizedMode = Utils.capitalize(mode);
const id = Session.get(`current${capitalizedMode}`);
const limit = this.page.get() * activitiesPerPage;
+ const user = Meteor.user();
+ const hideSystem = user ? user.hasHiddenSystemMessages() : false;
if (id === null)
return;
- this.subscribe('activities', mode, id, limit, () => {
+ this.subscribe('activities', mode, id, limit, hideSystem, () => {
this.loadNextPageLocked = false;
// If the sibear peak hasn't increased, that mean that there are no more
diff --git a/client/components/activities/activities.styl b/client/components/activities/activities.styl
index 1f0494c7..2285fc0a 100644
--- a/client/components/activities/activities.styl
+++ b/client/components/activities/activities.styl
@@ -26,6 +26,14 @@
margin-top: 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
font-size: 0.8em
color: darken(white, 40%)
diff --git a/client/components/boards/boardHeader.js b/client/components/boards/boardHeader.js
index b72bb162..a76b566a 100644
--- a/client/components/boards/boardHeader.js
+++ b/client/components/boards/boardHeader.js
@@ -33,7 +33,7 @@ Template.boardChangeTitlePopup.events({
const newDesc = tpl.$('.js-board-desc').val().trim();
if (newTitle) {
this.rename(newTitle);
- this.setDesciption(newDesc);
+ this.setDescription(newDesc);
Popup.close();
}
evt.preventDefault();
diff --git a/client/components/cards/cardDate.jade b/client/components/cards/cardDate.jade
new file mode 100644
index 00000000..a2a28bbd
--- /dev/null
+++ b/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}}
diff --git a/client/components/cards/cardDate.js b/client/components/cards/cardDate.js
new file mode 100644
index 00000000..4d129e8e
--- /dev/null
+++ b/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');
diff --git a/client/components/cards/cardDate.styl b/client/components/cards/cardDate.styl
new file mode 100644
index 00000000..1631baa5
--- /dev/null
+++ b/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 \ No newline at end of file
diff --git a/client/components/cards/cardDetails.jade b/client/components/cards/cardDetails.jade
index 734fc7e3..cf113951 100644
--- a/client/components/cards/cardDetails.jade
+++ b/client/components/cards/cardDetails.jade
@@ -35,6 +35,17 @@ template(name="cardDetails")
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
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
if currentUser.isBoardMember
h3.card-details-item-title {{_ 'description'}}
@@ -61,6 +72,10 @@ template(name="cardDetails")
h3.card-details-item-title {{_ 'description'}}
+viewer
= description
+
+ hr
+ +checklists(cardId = _id)
+
if attachments.count
hr
h2
@@ -91,6 +106,8 @@ template(name="cardDetailsActionsPopup")
li: a.js-members {{_ 'card-edit-members'}}
li: a.js-labels {{_ 'card-edit-labels'}}
li: a.js-attachments {{_ 'card-edit-attachments'}}
+ li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
+ li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
hr
ul.pop-over-list
li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index b6f17c23..b7e0ef76 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -65,6 +65,9 @@ BlazeComponent.extendComponent({
[`${CSSEvents.transitionend} .js-card-details`]() {
this.isLoaded.set(true);
},
+ [`${CSSEvents.animationend} .js-card-details`]() {
+ this.isLoaded.set(true);
+ },
};
return [{
@@ -143,6 +146,8 @@ Template.cardDetailsActionsPopup.events({
'click .js-members': Popup.open('cardMembers'),
'click .js-labels': Popup.open('cardLabels'),
'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-to-top'(evt) {
evt.preventDefault();
diff --git a/client/components/cards/cardDetails.styl b/client/components/cards/cardDetails.styl
index d7d29551..f209862c 100644
--- a/client/components/cards/cardDetails.styl
+++ b/client/components/cards/cardDetails.styl
@@ -73,8 +73,13 @@
margin: 15px 0
.card-details-item
+ margin-right: 0.5em
+ &:last-child
+ margin-right: 0
&.card-details-item-labels,
- &.card-details-item-members
+ &.card-details-item-members,
+ &.card-details-item-start,
+ &.card-details-item-due
width: 50%
flex-shrink: 1
diff --git a/client/components/cards/checklists.jade b/client/components/cards/checklists.jade
new file mode 100644
index 00000000..987e6cd9
--- /dev/null
+++ b/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}}
diff --git a/client/components/cards/checklists.js b/client/components/cards/checklists.js
new file mode 100644
index 00000000..5dac7bd3
--- /dev/null
+++ b/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');
diff --git a/client/components/cards/checklists.styl b/client/components/cards/checklists.styl
new file mode 100644
index 00000000..885d7528
--- /dev/null
+++ b/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
diff --git a/client/components/cards/minicard.jade b/client/components/cards/minicard.jade
index 1dfd2f8e..8b46ee74 100644
--- a/client/components/cards/minicard.jade
+++ b/client/components/cards/minicard.jade
@@ -14,7 +14,7 @@ template(name="minicard")
.badges
if 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
if description
.badge.badge-state-image-only(title=description)
@@ -23,3 +23,14 @@ template(name="minicard")
.badge
span.badge-icon.fa.fa-paperclip
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}}
+
diff --git a/client/components/cards/minicard.styl b/client/components/cards/minicard.styl
index 0f6f8ad2..12a89785 100644
--- a/client/components/cards/minicard.styl
+++ b/client/components/cards/minicard.styl
@@ -91,15 +91,34 @@
margin-right: 11px
margin-bottom: 3px
font-size: 0.9em
+
+ &:last-of-type
+ margin-right: 0
.badge-icon,
.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
font-size: 0.9em
padding-left: 2px
line-height: 14px
+ .check-list-text
+ padding-left: 0px
+ line-height: 12px
+
.minicard-members
float: right
diff --git a/client/components/lists/list.js b/client/components/lists/list.js
index e1909783..187d8ec3 100644
--- a/client/components/lists/list.js
+++ b/client/components/lists/list.js
@@ -44,7 +44,7 @@ BlazeComponent.extendComponent({
placeholder: 'minicard-wrapper placeholder',
start(evt, ui) {
ui.placeholder.height(ui.helper.height());
- EscapeActions.executeUpTo('popup');
+ EscapeActions.executeUpTo('popup-close');
boardComponent.setIsDragging(true);
},
stop(evt, ui) {
diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade
index f9fe065f..29aa4282 100644
--- a/client/components/lists/listHeader.jade
+++ b/client/components/lists/listHeader.jade
@@ -6,6 +6,10 @@ template(name="listHeader")
h2.list-header-name(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
= title
+ if showCardsCountForList cards.count
+ = cards.count
+ span.lowercase
+ | {{_ 'cards'}}
if currentUser.isBoardMember
if isWatching
i.list-header-watch-icon.fa.fa-eye
@@ -29,6 +33,9 @@ template(name="listActionPopup")
hr
ul.pop-over-list
li: a.js-close-list {{_ 'archive-list'}}
+ hr
+ ul.pop-over-list
+ li: a.js-remove-list {{_ 'remove-list'}}
template(name="boardLists")
ul.pop-over-list
diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js
index c7ae8e62..f352022d 100644
--- a/client/components/lists/listHeader.js
+++ b/client/components/lists/listHeader.js
@@ -13,6 +13,14 @@ BlazeComponent.extendComponent({
return list.findWatcher(Meteor.userId());
},
+ limitToShowCardsCount() {
+ return Meteor.user().getLimitToShowCardsCount();
+ },
+
+ showCardsCountForList(count) {
+ return count > this.limitToShowCardsCount();
+ },
+
events() {
return [{
'click .js-open-list-menu': Popup.open('listAction'),
@@ -52,4 +60,10 @@ Template.listActionPopup.events({
this.archive();
Popup.close();
},
+ 'click .js-remove-list'(evt) {
+ const currentList = this;
+ evt.preventDefault();
+ Lists.remove(currentList._id);
+ Popup.close();
+ },
});
diff --git a/client/components/main/layouts.styl b/client/components/main/layouts.styl
index 83d4d693..1bc92b42 100644
--- a/client/components/main/layouts.styl
+++ b/client/components/main/layouts.styl
@@ -3,7 +3,7 @@
global-reset()
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
color: #4d4d4d
@@ -351,6 +351,11 @@ a
background: darken(white, 13%)
overflow-y: auto
+ a
+ text-decoration: underline
+ &:hover
+ color: #333
+
.basicTabs-container .tabs-content-container
padding: 0
padding-top: 15px
@@ -374,3 +379,8 @@ a
.wrapper
height: 100%
margin: 0px
+
+.inline-input
+ height: 37px
+ margin: 8px 10px 0 0
+ width: 50px
diff --git a/client/components/sidebar/sidebar.jade b/client/components/sidebar/sidebar.jade
index 4f5586cb..cb0845af 100644
--- a/client/components/sidebar/sidebar.jade
+++ b/client/components/sidebar/sidebar.jade
@@ -3,14 +3,19 @@ template(name="sidebar")
a.sidebar-tongue.js-toggle-sidebar(
class="{{#if isTongueHidden}}is-hidden{{/if}}")
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')
+membersWidget
@@ -30,10 +35,13 @@ template(name="membersWidget")
.board-widget-content
each currentBoard.activeMembers
+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
+ else if currentUser.isBoardAdmin
+ a.member.add-member.js-manage-board-members
+ i.fa.fa-plus
.clearfix
if isInvited
hr
diff --git a/client/components/sidebar/sidebar.js b/client/components/sidebar/sidebar.js
index 0af32f8f..9eab1656 100644
--- a/client/components/sidebar/sidebar.js
+++ b/client/components/sidebar/sidebar.js
@@ -94,6 +94,9 @@ BlazeComponent.extendComponent({
'click .js-hide-sidebar': this.hide,
'click .js-toggle-sidebar': this.toggle,
'click .js-back-home': this.setView,
+ 'click .js-shortcuts'() {
+ FlowRouter.go('shortcuts');
+ },
}];
},
}).register('sidebar');
@@ -134,8 +137,8 @@ Template.memberPopup.events({
Popup.close();
}),
'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) {
Popup.close();
FlowRouter.go('home');
@@ -163,6 +166,9 @@ Template.membersWidget.helpers({
Template.membersWidget.events({
'click .js-member': Popup.open('member'),
'click .js-manage-board-members': Popup.open('addMember'),
+ 'click .sandstorm-powerbox-request-identity'() {
+ window.sandstormRequestIdentity();
+ },
'click .js-member-invite-accept'() {
const boardId = Session.get('currentBoard');
Meteor.user().removeInvite(boardId);
diff --git a/client/components/sidebar/sidebar.styl b/client/components/sidebar/sidebar.styl
index 9007af59..8f2f493e 100644
--- a/client/components/sidebar/sidebar.styl
+++ b/client/components/sidebar/sidebar.styl
@@ -6,11 +6,19 @@
bottom: 0
right: 0
- .sidebar-content
- padding: 12px
+ .sidebar-shadow
+ position: absolute
+ top: 0
+ bottom: 0
+ right: 0
+ left: 0
background: darken(white, 3%)
box-shadow: -10px 0px 5px -10px darken(white, 30%)
z-index: 10
+
+ .sidebar-content
+ padding: 12px
+ margin-bottom: 1.6em
position: absolute
top: 0
bottom: 0
@@ -51,6 +59,7 @@
.member, .card-label
margin-right: 7px
+ margin-top: 5px
.sidebar-list-item-description
flex: 1
@@ -72,6 +81,16 @@
i.fa
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
width: 248px
right: -@width
diff --git a/client/components/sidebar/sidebarFilters.jade b/client/components/sidebar/sidebarFilters.jade
index 2b326493..9a9774bb 100644
--- a/client/components/sidebar/sidebarFilters.jade
+++ b/client/components/sidebar/sidebarFilters.jade
@@ -5,6 +5,12 @@
template(name="filterSidebar")
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
li
a.name.js-toggle-label-filter
@@ -18,6 +24,12 @@ template(name="filterSidebar")
i.fa.fa-check
hr
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
with getUser userId
li(class="{{#if Filter.members.isSelected _id}}active{{/if}}")
@@ -86,4 +98,3 @@ template(name="disambiguateMultiMemberPopup")
template(name="moveSelectionPopup")
+boardLists
-
diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade
index a71e7fc7..ad41e8aa 100644
--- a/client/components/users/userHeader.jade
+++ b/client/components/users/userHeader.jade
@@ -12,10 +12,11 @@ template(name="memberMenuPopup")
ul.pop-over-list
with currentUser
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
ul.pop-over-list
li: a.js-logout {{_ 'log-out'}}
@@ -27,6 +28,8 @@ template(name="editProfilePopup")
input.js-profile-fullname(type="text" value=profile.fullname autofocus)
label
| {{_ 'username'}}
+ span.error.hide.username-taken
+ | {{_ 'error-username-taken'}}
input.js-profile-username(type="text" value=username)
label
| {{_ 'initials'}}
@@ -61,3 +64,16 @@ template(name="changeLanguagePopup")
= name
if isCurrentLanguage
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'}}")
diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js
index 10fdf699..98053ed1 100644
--- a/client/components/users/userHeader.js
+++ b/client/components/users/userHeader.js
@@ -5,6 +5,7 @@ Template.headerUserBar.events({
Template.memberMenuPopup.events({
'click .js-edit-profile': Popup.open('editProfile'),
+ 'click .js-change-settings': Popup.open('changeSettings'),
'click .js-change-avatar': Popup.open('changeAvatar'),
'click .js-change-password': Popup.open('changePassword'),
'click .js-change-language': Popup.open('changeLanguage'),
@@ -26,11 +27,18 @@ Template.editProfilePopup.events({
'profile.fullname': fullname,
'profile.initials': initials,
}});
- // XXX We should report the error to the user.
+
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();
},
});
+
+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();
+ }
+ },
+});
diff --git a/client/lib/escapeActions.js b/client/lib/escapeActions.js
index 49b80422..dc6b05b7 100644
--- a/client/lib/escapeActions.js
+++ b/client/lib/escapeActions.js
@@ -44,7 +44,7 @@ EscapeActions = {
executeLowest() {
return this._execute({
- multipleAction: false,
+ multipleActions: false,
});
},
diff --git a/client/lib/filter.js b/client/lib/filter.js
index 74305284..8129776b 100644
--- a/client/lib/filter.js
+++ b/client/lib/filter.js
@@ -63,6 +63,17 @@ class SetFilter {
this._dep.depend();
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.
@@ -95,16 +106,26 @@ Filter = {
return {};
const filterSelector = {};
+ const emptySelector = {};
+ let includeEmptySelectors = false;
this._fields.forEach((fieldName) => {
const filter = this[fieldName];
- if (filter._isActive())
+ if (filter._isActive()) {
filterSelector[fieldName] = filter._getMongoSelector();
+ emptySelector[fieldName] = filter._getEmptySelector();
+ if (emptySelector[fieldName] !== null) {
+ includeEmptySelectors = true;
+ }
+ }
});
const exceptionsSelector = {_id: {$in: this._exceptions}};
this._exceptionsDep.depend();
- return {$or: [filterSelector, exceptionsSelector]};
+ if (includeEmptySelectors)
+ return {$or: [filterSelector, exceptionsSelector, emptySelector]};
+ else
+ return {$or: [filterSelector, exceptionsSelector]};
},
mongoSelector(additionalSelector) {
diff --git a/client/lib/i18n.js b/client/lib/i18n.js
index a03fb398..34a789e1 100644
--- a/client/lib/i18n.js
+++ b/client/lib/i18n.js
@@ -2,20 +2,19 @@
// the language reactively. If the user is not connected we use the language
// 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);
+ }
+ });
});
diff --git a/docker-compose.yml b/docker-compose.yml
index b9f02a48..35c5bfd1 100644
--- a/docker-compose.yml
+++ b/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
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 225b0975..f534592e 100755..100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.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": "الإجراءات",
"activities": "الأنشطة",
"activity": "النشاط",
@@ -16,10 +36,13 @@
"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": "إضافة قائمة",
@@ -31,6 +54,8 @@
"all-boards": "كل اللوحات",
"and-n-other-card": "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-all": "أرشف الكل",
"archive-board": "أرشف اللوحة",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "حذف المرق هو حذف نهائي . لا يمكن التراجع إذا حذف.",
"attachmentDeletePopup-title": "تريد حذف المرفق ?",
"attachments": "المرفقات",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "حجم ملف الصورة الخاصة بك كبير . لا يمكن أن تتجاوز 70 كيلو أكتي",
"back": "رجوع",
"board-change-color": "تغيير اللومr",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "تعديل خلفية الشاشة",
"boardChangeTitlePopup-title": "إعادة تسمية اللوحة",
"boardChangeVisibilityPopup-title": "تعديل وضوح الرؤية",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "قائمة اللوحة",
"boards": "لوحات",
"bucket-example": "مثل « todo list » على سبيل المثال",
@@ -66,11 +92,15 @@
"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": "إجراءات على البطاقة",
@@ -82,10 +112,13 @@
"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": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "إنشاء لوحة",
"createLabelPopup-title": "إنشاء علامة",
"current": "الحالي",
+ "date": "Date",
"decline": "Decline",
"default-avatar": "صورة شخصية افتراضية",
"delete": "حذف",
@@ -122,7 +156,10 @@
"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": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
"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-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",
"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-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-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": "معلومات",
"initials": "أولية",
+ "invalid-date": "Invalid date",
"joined": "انضمّ",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "اختصار لوحة المفاتيح",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Import a Trello card",
"lists": "القائمات",
"log-out": "تسجيل الخروج",
+ "log-in": "تسجيل الدخول",
"loginPopup-title": "تسجيل الدخول",
- "mapMembersAddPopup-title": "Select Wekan member",
- "mapMembersPopup-title": "Map members",
"memberMenuPopup-title": "أفضليات الأعضاء",
"members": "أعضاء",
"menu": "القائمة",
"move-selection": "Move selection",
"moveCardPopup-title": "نقل البطاقة",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Move 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": "لوحاتي",
"name": "اسم",
"no-archived-cards": "لا يوجد بطاقة في الأرشيف.",
@@ -205,12 +251,15 @@
"normal": "عادي",
"normal-desc": "يمكن مشاهدة و تعديل البطاقات. لا يمكن تغيير إعدادات الضبط.",
"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": "اختياري",
"or": "or",
"page-maybe-private": "قدتكون هذه الصفحة خاصة . قد تستطيع مشاهدتها ب <a href='%s'>تسجيل الدخول</a>.",
"page-not-found": "صفحة غير موجودة",
"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",
@@ -223,6 +272,7 @@
"remove-cover": "حذف الغلاف",
"remove-from-board": "حذف من اللوحة",
"remove-label": "حذف هذه العلامة",
+ "remove-list": "Remove the list",
"remove-member": "حذف العضو",
"remove-member-from-card": "حذف من البطاقة",
"remove-member-pop": "حذف __name__ (__username__) من __boardTitle__ ? سيتم حذف هذا العضو من جميع بطاقة اللوحة مع إرسال إشعار له بذاك.",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "عرض قائمة الإختصارات ،تلك",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-sidebar": "إظهار-إخفاء الشريط الجانبي للوحة",
+ "show-cards-minimum-count": "Show cards count if list contains more than",
"signupPopup-title": "إنشاء حساب",
"star-board-title": "اضغط لإضافة هذه اللوحة إلى المفضلة . سوف يتم إظهارها على رأس بقية اللوحات.",
"starred-boards": "اللوحات المفضلة",
@@ -250,14 +301,24 @@
"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",
"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": "ماذا تريد أن تنجز?"
-}
+} \ No newline at end of file
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
new file mode 100644
index 00000000..8e638b38
--- /dev/null
+++ b/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?"
+} \ No newline at end of file
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index fa223d02..188edcf6 100755..100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Activitats",
"activity": "Activitat",
@@ -16,10 +36,13 @@
"activity-removed": "ha eliminat %s de %s",
"activity-sent": "ha enviat %s %s",
"activity-unjoined": "desassignat %s",
+ "activity-checklist-added": "Checklist afegida a %s",
"add": "Afegeix",
"add-attachment": "Afegeix arxiu adjunt",
"add-board": "Afegeix un nou tauler",
"add-card": "Afegeix fitxa",
+ "add-checklist": "Afegeix una checklist",
+ "add-checklist-item": "Afegeix un ítem",
"add-cover": "Afegeix coberta",
"add-label": "Afegeix etiqueta",
"add-list": "Afegeix llista",
@@ -31,6 +54,8 @@
"all-boards": "Tots els taulers",
"and-n-other-card": "And __count__ other card",
"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-all": "Desa Tot",
"archive-board": "Arxiva tauler",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "L'esborrat d'un arxiu adjunt és permanent. No es pot desfer.",
"attachmentDeletePopup-title": "Esborrar adjunt?",
"attachments": "Adjunts",
+ "auto-watch": "Veure els taulers automàticament després de crear-los",
"avatar-too-big": "L'avatar és massa gran (70Kb max)",
"back": "Enrere",
"board-change-color": "Canvia el color",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Canvia fons",
"boardChangeTitlePopup-title": "Canvia el nom tauler",
"boardChangeVisibilityPopup-title": "Canvia visibilitat",
- "boardImportBoardPopup-title": "Importa tauler des de Trello",
+ "boardChangeWatchPopup-title": "Canvia seguiment",
"boardMenuPopup-title": "Menú del tauler",
"boards": "Taulers",
"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-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-due": "Finalitza",
+ "card-due-on": "Finalitza a",
"card-edit-attachments": "Edita arxius adjunts",
"card-edit-labels": "Edita etiquetes",
"card-edit-members": "Edita membres",
"card-labels-title": "Canvia les etiquetes 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",
"cardDeletePopup-title": "Esborrar fitxa?",
"cardDetailsActionsPopup-title": "Accions de fitxes",
@@ -82,10 +112,13 @@
"change-avatar": "Canvia Avatar",
"change-password": "Canvia la clau",
"change-permissions": "Canvia permisos",
+ "change-settings": "Canvia configuració",
"changeAvatarPopup-title": "Canvia Avatar",
"changeLanguagePopup-title": "Canvia idioma",
"changePasswordPopup-title": "Canvia la contrasenya",
"changePermissionsPopup-title": "Canvia permisos",
+ "changeSettingsPopup-title": "Canvia configuració",
+ "checklists": "Checklists",
"click-to-star": "Fes clic per destacar aquest tauler.",
"click-to-unstar": "Fes clic per deixar de destacar aquest tauler.",
"clipboard": "Portaretalls o estirar i amollar",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Crea tauler",
"createLabelPopup-title": "Crea etiqueta",
"current": "Actual",
+ "date": "Data",
"decline": "Declina",
"default-avatar": "Avatar per defecte",
"delete": "Esborra",
@@ -122,7 +156,10 @@
"edit": "Edita",
"edit-avatar": "Canvia Avatar",
"edit-profile": "Edita el teu Perfil",
+ "editCardStartDatePopup-title": "Canvia data d'inici",
+ "editCardDueDatePopup-title": "Canvia data de finalització",
"editLabelPopup-title": "Canvia etiqueta",
+ "editNotificationPopup-title": "Edita la notificació",
"editProfilePopup-title": "Edita teu Perfil",
"email": "Correu electrònic",
"email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
"error-user-doesNotExist": "L'usuari no existeix",
"error-user-notAllowSelf": "Aquesta acció no està permesa",
"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-cards": "Fitxes de filtre",
"filter-clear": "Elimina filtre",
+ "filter-no-label": "Sense etiqueta",
+ "filter-no-member": "Sense membres",
"filter-on": "Filtra per",
"filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
"filter-to-selection": "Filtra selecció",
"fullname": "Nom complet",
"header-logo-title": "Torna a la teva pàgina de taulers",
+ "hide-system-messages": "Oculta missatges del sistema",
"home": "Inici",
"import": "importa",
"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-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-map-members": "Mapeja el membres",
"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-user-select": "Selecciona l'usuari Wekan que vulguis associar a aquest membre",
+ "importMapMembersAddPopup-title": "Selecciona un membre de Wekan",
"info": "Informacions",
"initials": "Inicials",
+ "invalid-date": "Data invàlida",
"joined": "s'ha unit",
"just-invited": "Has estat convidat a aquest tauler",
"keyboard-shortcuts": "Dreceres de teclat",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "importa una fitxa de Trello",
"lists": "Llistes",
"log-out": "Finalitza la sessió",
+ "log-in": "Ingresa",
"loginPopup-title": "Inicia sessió",
- "mapMembersAddPopup-title": "Selecciona membre de Wekan",
- "mapMembersPopup-title": "Assigna membres",
"memberMenuPopup-title": "Configura membres",
"members": "Membres",
"menu": "Menú",
"move-selection": "Move selection",
"moveCardPopup-title": "Moure fitxa",
+ "moveCardToBottom-title": "Mou a la part inferior",
+ "moveCardToTop-title": "Mou a la part superior",
"moveSelectionPopup-title": "Move selection",
"multi-selection": "Multi-Selecció",
"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",
"name": "Nom",
"no-archived-cards": "No hi ha fitxes arxivades.",
@@ -205,12 +251,15 @@
"normal": "Normal",
"normal-desc": "Podeu veure i editar fitxes. No podeu canviar la configuració.",
"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",
"or": "o",
"page-maybe-private": "Aquesta pàgina és privada. Per veure-la <a href='%s'> entra </a>.",
"page-not-found": "Pàgina no trobada.",
"password": "Contrasenya",
"paste-or-dragdrop": "aferra, o estira i amolla la imatge (només imatge)",
+ "participating": "Participant",
"preview": "Vista prèvia",
"previewAttachedImagePopup-title": "Vista prèvia",
"previewClipboardImagePopup-title": "Vista prèvia",
@@ -223,6 +272,7 @@
"remove-cover": "Elimina coberta",
"remove-from-board": "Elimina del tauler",
"remove-label": "Eliminia etiqueta",
+ "remove-list": "Elimina la llista",
"remove-member": "Elimina membre",
"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ó.",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "Mostra aquesta lista d'accessos directes",
"shortcut-toggle-filterbar": "Canvia la barra lateral 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",
"star-board-title": "Fes clic per destacar aquest tauler. Es mostrarà a la part superior de la llista de taulers.",
"starred-boards": "Taulers destacats",
@@ -250,14 +301,24 @@
"team": "Equip",
"this-board": "aquest tauler",
"this-card": "aquesta fitxa",
+ "time": "Hora",
"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",
"unsaved-description": "Tens una descripció sense desar.",
+ "unwatch": "Suprimeix observació",
"upload": "Puja",
"upload-avatar": "Actualitza avatar",
"uploaded-avatar": "Avatar actualitzat",
"username": "Nom d'Usuari",
"view-it": "Vist",
"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?"
-}
+} \ No newline at end of file
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 30c84748..3db88d56 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Aktivity",
"activity": "Aktivita",
@@ -16,10 +36,13 @@
"activity-removed": "odstraněn %s z %s",
"activity-sent": "%s posláno na %s",
"activity-unjoined": "odpojen %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Přidat",
"add-attachment": "Přidat přílohu",
"add-board": "Přidat nové tablo",
"add-card": "Přidat kartu",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "Přidat obal",
"add-label": "Přidat štítek",
"add-list": "Přidat seznam",
@@ -31,6 +54,8 @@
"all-boards": "Všechna tabla",
"and-n-other-card": "A __count__ další karta(y)",
"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-all": "Archivovat vše",
"archive-board": "Archivovat tablo",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "Smazání přílohy je trvalé. Nejde vrátit zpět.",
"attachmentDeletePopup-title": "Smazat přílohu?",
"attachments": "Přílohy",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "Avatar je příliš velký (70Kb max)",
"back": "Zpět",
"board-change-color": "Změnit barvu",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Změnit pozadí tabla",
"boardChangeTitlePopup-title": "Přejmenovat tablo",
"boardChangeVisibilityPopup-title": "Upravit viditelnost",
- "boardImportBoardPopup-title": "Importovat tablo ze služby Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menu tabla",
"boards": "Tabla",
"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-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-due": "Due",
+ "card-due-on": "Due on",
"card-edit-attachments": "Upravit přílohy",
"card-edit-labels": "Upravit štítky",
"card-edit-members": "Upravit členy",
"card-labels-title": "Změnit štítky 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ář",
"cardDeletePopup-title": "Smazat kartu?",
"cardDetailsActionsPopup-title": "Akce karty",
@@ -82,10 +112,13 @@
"change-avatar": "Změnit avatar",
"change-password": "Změnit heslo",
"change-permissions": "Změnit oprávnění",
+ "change-settings": "Change Settings",
"changeAvatarPopup-title": "Změnit avatar",
"changeLanguagePopup-title": "Změnit jazyk",
"changePasswordPopup-title": "Změnit heslo",
"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-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
"clipboard": "Schránka nebo potáhnout a pustit",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Vytvořit tablo",
"createLabelPopup-title": "Vytvořit štítek",
"current": "Aktuální",
+ "date": "Date",
"decline": "Zamítnout",
"default-avatar": "Výchozí avatar",
"delete": "Smazat",
@@ -122,7 +156,10 @@
"edit": "Upravit",
"edit-avatar": "Změnit avatar",
"edit-profile": "Upravit profil",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Změnit štítek",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Upravit profil",
"email": "Email",
"email-enrollAccount-subject": "Byl vytvořen účet na __siteName__",
@@ -135,7 +172,7 @@
"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-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.",
"error-board-doesNotExist": "Toto tablo neexistuje",
"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-notAllowSelf": "Tato akce pro sebe sama není povolena",
"error-user-notCreated": "Tento uživatel není vytvořen",
+ "error-username-taken": "This username is already taken",
"export-board": "Exportovat tablo",
"filter": "Filtr",
"filter-cards": "Filtrovat karty",
"filter-clear": "Vyčistit filtr",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filtr je zapnut",
"filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.",
"filter-to-selection": "Filtrovat výběr",
"fullname": "Celé jméno",
"header-logo-title": "Jit zpět na stránku s tably.",
+ "hide-system-messages": "Hide system messages",
"home": "Domů",
"import": "Import",
"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-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-map-members": "Map members",
"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-user-select": "Vyber uživatele Wekan, kterého chceš použít pro tohoto člena",
+ "importMapMembersAddPopup-title": "Select Wekan member",
"info": "Informace",
"initials": "Iniciály",
+ "invalid-date": "Invalid date",
"joined": "spojeno",
"just-invited": "Právě jsi byl pozván(a) do tohoto tabla",
"keyboard-shortcuts": "Klávesové zkratky",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Importovat Trello kartu",
"lists": "Seznamy",
"log-out": "Odhlásit",
+ "log-in": "Přihlásit",
"loginPopup-title": "Přihlásit",
- "mapMembersAddPopup-title": "Vybrat Wekan uživatele",
- "mapMembersPopup-title": "Mapovat členy",
"memberMenuPopup-title": "Nastavení uživatele",
"members": "Členové",
"menu": "Menu",
"move-selection": "Přesunout výběr",
"moveCardPopup-title": "Přesunout kartu",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Přesunout výběr",
"multi-selection": "Multi-výběr",
"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",
"name": "Jméno",
"no-archived-cards": "Žádné archivované karty.",
@@ -205,12 +251,15 @@
"normal": "Normální",
"normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
"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ý",
"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-not-found": "Stránka nenalezena.",
"password": "Heslo",
"paste-or-dragdrop": "vložit, nebo přetáhnout a pustit soubor obrázku (pouze obrázek)",
+ "participating": "Participating",
"preview": "Náhled",
"previewAttachedImagePopup-title": "Náhled",
"previewClipboardImagePopup-title": "Náhled",
@@ -223,6 +272,7 @@
"remove-cover": "Odstranit obal",
"remove-from-board": "Odstranit z tabla",
"remove-label": "Odstranit štítek",
+ "remove-list": "Remove the list",
"remove-member": "Odebrat uživatele",
"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.",
@@ -234,7 +284,7 @@
"search": "Hledat",
"select-color": "Vybrat barvu",
"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-clear-filters": "Vyčistit všechny filtry",
"shortcut-close-dialog": "Zavřít dialog",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
"shortcut-toggle-filterbar": "Přepnout lištu filtrování",
"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",
"star-board-title": "Kliknutím přidat tablu hvězdičku. Poté bude zobrazeno navrchu seznamu.",
"starred-boards": "Tabla s hvězdičkou",
@@ -250,14 +301,24 @@
"team": "Tým",
"this-board": "toto tablo",
"this-card": "tuto kartu",
+ "time": "Time",
"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",
"unsaved-description": "Popis neni uložen.",
+ "unwatch": "Unwatch",
"upload": "Nahrát",
"upload-avatar": "Nahrát avatar",
"uploaded-avatar": "Avatar nahrán",
"username": "Uživatelské jméno",
"view-it": "Zobrazit",
"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?"
} \ No newline at end of file
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index 43e12d88..c91a53db 100755..100644
--- a/i18n/de.i18n.json
+++ b/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",
"activities": "Aktivitäten",
"activity": "Aktivität",
@@ -8,45 +28,51 @@
"activity-attached": "hat %s an %s angehängt",
"activity-created": "hat %s erstellt",
"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-on": "on %s",
+ "activity-on": "in %s",
"activity-removed": "hat %s von %s entfernt",
"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-attachment": "Anhang hinzufügen",
"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-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",
- "addMemberPopup-title": "Nutzer",
+ "addMemberPopup-title": "Mitglieder",
"admin": "Admin",
"admin-desc": "Kann Karten anschauen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.",
"all-boards": "Alle Boards",
"and-n-other-card": "und eine andere Karte",
"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-all": "Alles archivieren",
"archive-board": "Board archivieren",
"archive-card": "Karte archivieren",
"archive-list": "Diese Liste archivieren",
"archive-selection": "Auswahl archivieren",
- "archiveBoardPopup-title": "Archive Board?",
+ "archiveBoardPopup-title": "Board archivieren?",
"archived-items": "Archivierte Einträge",
"archives": "Archive",
"assign-member": "Mitglied zuweisen",
"attached": "angehängt",
"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?",
"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",
"board-change-color": "Farbe ändern",
"board-nb-stars": "%s Sterne",
@@ -56,21 +82,25 @@
"boardChangeColorPopup-title": "Boardfarbe ändern",
"boardChangeTitlePopup-title": "Board umbenennen",
"boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Beobachtung ändern",
"boardMenuPopup-title": "Boardmenü",
"boards": "Boards",
- "bucket-example": "Zum Beispiel \"Bucket List\"",
+ "bucket-example": "z.B. \"Löffelliste\"",
"cancel": "Abbrechen",
"card-archived": "Diese Karte wurde archiviert.",
"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-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",
"cardDeletePopup-title": "Karte löschen?",
"cardDetailsActionsPopup-title": "Kartenaktionen",
@@ -78,20 +108,23 @@
"cardMembersPopup-title": "Mitglieder",
"cardMorePopup-title": "Mehr",
"cards": "Karten",
- "change": "Change",
+ "change": "Ändern",
"change-avatar": "Profilbild ändern",
"change-password": "Passwort ändern",
- "change-permissions": "Ändere Berechtigungen",
+ "change-permissions": "Berechtigungen ändern",
+ "change-settings": "Einstellungen ändern",
"changeAvatarPopup-title": "Profilbild ändern",
- "changeLanguagePopup-title": "Sprache ändern...",
+ "changeLanguagePopup-title": "Sprache ä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-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-blue": "blau",
"color-green": "grün",
@@ -106,10 +139,11 @@
"comment-placeholder": "Kommentar schreiben",
"computer": "Computer",
"create": "Erstellen",
- "createBoardPopup-title": "Erstelle ein Board",
+ "createBoardPopup-title": "Board erstellen",
"createLabelPopup-title": "Label erstellen",
"current": "aktuell",
- "decline": "Decline",
+ "date": "Datum",
+ "decline": "Ablehnen",
"default-avatar": "Standard Profilbild",
"delete": "Löschen",
"deleteLabelPopup-title": "Label löschen?",
@@ -117,86 +151,98 @@
"disambiguateMultiLabelPopup-title": "Labels vereinheitlichen",
"disambiguateMultiMemberPopup-title": "Mitglieder vereinheitlichen",
"discard": "Verwerfen",
- "done": "Done",
- "download": "Download",
+ "done": "Erledigt",
+ "download": "Herunterladen",
"edit": "Bearbeiten",
"edit-avatar": "Profilbild ä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",
- "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-cards": "Karten filtern",
"filter-clear": "Filter entfernen",
+ "filter-no-label": "Kein Label",
+ "filter-no-member": "Kein Mitglied",
"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",
- "fullname": "Voller Name",
+ "fullname": "Vollständiger Name",
"header-logo-title": "Zurück zur Board Seite.",
+ "hide-system-messages": "Systemmeldungen ausblenden",
"home": "Home",
"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",
"initials": "Initialien",
+ "invalid-date": "Ungültiges Datum",
"joined": "beigetreten",
- "just-invited": "You are just invited to this board",
+ "just-invited": "Sie wurden soeben zu diesem Board eingeladen",
"keyboard-shortcuts": "Tastaturkürzel",
- "label-create": "Neues Label erstellen.",
+ "label-create": "Neues Label erstellen",
"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",
"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",
"link-card": "Link zu dieser Karte",
"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-select-cards": "Alle Karten in dieser Liste auswählen",
"listActionPopup-title": "Listenaktionen",
- "listImportCardPopup-title": "Import a Trello card",
+ "listImportCardPopup-title": "Eine Trello-Karte importieren",
"lists": "Listen",
"log-out": "Ausloggen",
+ "log-in": "Einloggen",
"loginPopup-title": "Einloggen",
- "mapMembersAddPopup-title": "Select Wekan member",
- "mapMembersPopup-title": "Map members",
"memberMenuPopup-title": "Nutzereinstellungen",
- "members": "Mitglied",
+ "members": "Mitglieder",
"menu": "Menü",
- "move-selection": "Move selection",
+ "move-selection": "Auswahl 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-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",
"name": "Name",
"no-archived-cards": "Keine archivierten Karten.",
@@ -204,60 +250,75 @@
"no-results": "Keine Ergebnisse",
"normal": "Normal",
"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",
"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.",
"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-desc": "Dieses Board ist privat. Nur Nutzer, die zu dem Board gehören, können es anschauen und bearbeiten.",
"profile": "Profil",
"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.",
- "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-from-board": "Von Board entfernen",
"remove-label": "Label entfernen",
+ "remove-list": "Liste entfernen",
"remove-member": "Nutzer 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-board": "Board umbenennen",
"restore": "Wiederherstellen",
"save": "Speichern",
"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-close-dialog": "Dialog schließen",
"shortcut-filter-my-cards": "Meine Karten filtern",
"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",
- "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",
"team": "Team",
"this-board": "dieses Board",
"this-card": "diese Karte",
+ "time": "Zeit",
"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-avatar": "Profilbild hochladen",
"uploaded-avatar": "Profilbild hochgeladen",
- "username": "Nutzername",
+ "username": "Benutzername",
"view-it": "Ansehen",
"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?"
-}
+} \ No newline at end of file
diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json
index f9cf7e82..5d52e390 100755..100644
--- a/i18n/en.i18n.json
+++ b/i18n/en.i18n.json
@@ -36,10 +36,13 @@
"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",
@@ -51,6 +54,7 @@
"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",
@@ -88,11 +92,15 @@
"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",
@@ -104,13 +112,16 @@
"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",
+ "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.",
@@ -131,6 +142,7 @@
"createBoardPopup-title": "Create Board",
"createLabelPopup-title": "Create Label",
"current": "current",
+ "date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Delete",
@@ -144,22 +156,24 @@
"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.\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-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.\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-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-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-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",
@@ -169,15 +183,19 @@
"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",
@@ -191,6 +209,7 @@
"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",
@@ -253,6 +272,7 @@
"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.",
@@ -272,6 +292,7 @@
"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",
@@ -280,6 +301,7 @@
"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.",
@@ -299,4 +321,4 @@
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?"
-}
+} \ No newline at end of file
diff --git a/i18n/es-ES.i18n.json b/i18n/es-ES.i18n.json
index 22aeb704..578db27d 100644
--- a/i18n/es-ES.i18n.json
+++ b/i18n/es-ES.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Actividad",
"activity": "Actividad",
@@ -31,6 +51,8 @@
"all-boards": "Todos los tableros",
"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": "Guardar",
"archive-all": "Guardar Todo",
"archive-board": "Archivar tablero",
@@ -46,6 +68,7 @@
"attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
"attachmentDeletePopup-title": "¿Borrar adjunto?",
"attachments": "Adjuntos",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "El avatar es demasiado grande (70Kb max)",
"back": "Atrás",
"board-change-color": "Cambiar color",
@@ -56,7 +79,7 @@
"boardChangeColorPopup-title": "Cambiar fondo",
"boardChangeTitlePopup-title": "Renombrar tablero",
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
- "boardImportBoardPopup-title": "Importar tablero desde Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menú del tablero",
"boards": "Tableros",
"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-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-due": "Due",
+ "card-due-on": "Due on",
"card-edit-attachments": "Editar archivos adjuntos",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar miembros",
"card-labels-title": "Cambia las etiquetas de 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",
"cardDeletePopup-title": "¿Borrar tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de tarjeta",
@@ -82,13 +109,15 @@
"change-avatar": "Cambiar Avatar",
"change-password": "Cambiar la contraseña",
"change-permissions": "Cambiar permisos",
+ "change-settings": "Change Settings",
"changeAvatarPopup-title": "Cambiar Avatar",
"changeLanguagePopup-title": "Cambiar idioma",
"changePasswordPopup-title": "Cambiar la contraseña",
"changePermissionsPopup-title": "Cambiar permisos",
+ "changeSettingsPopup-title": "Change Settings",
"click-to-star": "Haz clic para 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-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.",
@@ -109,6 +138,7 @@
"createBoardPopup-title": "Crear tablero",
"createLabelPopup-title": "Crear etiqueta",
"current": "actual",
+ "date": "Date",
"decline": "Denegar",
"default-avatar": "Avatar por defecto",
"delete": "Borrar",
@@ -122,7 +152,10 @@
"edit": "Editar",
"edit-avatar": "Cambiar Avatar",
"edit-profile": "Edita tu Perfil",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Cambiar etiqueta",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Editar Perfil",
"email": "Correo electrónico",
"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-notAllowSelf": "Esa acción en si misma no está permitida",
"error-user-notCreated": "Este usuario no se ha creado",
+ "error-username-taken": "This username is already taken",
"export-board": "Exportar tablero",
"filter": "Filtrar",
"filter-cards": "Filtrar Tarjetas",
"filter-clear": "Eliminar filtro",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filtrar por",
"filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
"filter-to-selection": "Filtrar selección",
"fullname": "Nombre Completo",
"header-logo-title": "Volver a tu página de tableros",
+ "hide-system-messages": "Hide system messages",
"home": "Inicio",
"import": "Importar",
"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-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-map-members": "Map members",
"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-user-select": "Escoja el usuario Wekan que desea utilizar como miembro",
+ "importMapMembersAddPopup-title": "Select Wekan member",
"info": "Informaciones",
"initials": "Iniciales",
+ "invalid-date": "Invalid date",
"joined": "se ha unido",
"just-invited": "Has sido invitado a este tablero",
"keyboard-shortcuts": "Atajos de teclado",
@@ -186,17 +225,20 @@
"listImportCardPopup-title": "Importar tarjeta de Trello",
"lists": "Listas",
"log-out": "Finalizar la sesión",
+ "log-in": "Log In",
"loginPopup-title": "Iniciar sesión",
- "mapMembersAddPopup-title": "Selecciona un miembro de Wekan",
- "mapMembersPopup-title": "Asignar miembros",
"memberMenuPopup-title": "Configurar miembros",
"members": "Miembros",
"menu": "Menú",
"move-selection": "Mover selección",
"moveCardPopup-title": "Mover Tarjeta",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Mover selección",
"multi-selection": "Multi-Selección",
"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",
"name": "Nombre",
"no-archived-cards": "No hay tarjetas archivadas.",
@@ -205,12 +247,15 @@
"normal": "Normal",
"normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuració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",
"or": "o",
"page-maybe-private": "Esta página es privada. Para verla tienes que <a href='%s'>entrar</a>.",
"page-not-found": "Página no encontrada.",
"password": "Contraseña",
"paste-or-dragdrop": "para pegar, o hacer drag & drop de un archivo (solo imágenes)",
+ "participating": "Participating",
"preview": "Vista previa",
"previewAttachedImagePopup-title": "Vista previa",
"previewClipboardImagePopup-title": "Vista previa",
@@ -223,6 +268,7 @@
"remove-cover": "Eliminar cubierta",
"remove-from-board": "Eliminar del tablero",
"remove-label": "Eliminar etiqueta",
+ "remove-list": "Remove the list",
"remove-member": "Eliminar Miembro",
"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.",
@@ -234,7 +280,7 @@
"search": "Buscar",
"select-color": "Selecciona un color",
"shortcut-assign-self": "Asignarme la tarjeta actual",
- "shortcut-autocomplete-emojies": "Autocompletar emojies",
+ "shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocompletar miembros",
"shortcut-clear-filters": "Eliminar todos los filters",
"shortcut-close-dialog": "Cierra el Dialogo",
@@ -242,6 +288,7 @@
"shortcut-show-shortcuts": "Mostrar atajos de teclado",
"shortcut-toggle-filterbar": "Mostrar/Ocultar la barra lateral de filtrado",
"shortcut-toggle-sidebar": "Menú lateral del Tablero",
+ "show-cards-minimum-count": "Show cards count if list contains more than",
"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.",
"starred-boards": "Tableros Destacados",
@@ -250,14 +297,24 @@
"team": "Equipo",
"this-board": "este tablero",
"this-card": "esta tarjeta",
+ "time": "Time",
"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",
"unsaved-description": "Tienes una descripción sin guardar.",
+ "unwatch": "Unwatch",
"upload": "Subir",
"upload-avatar": "Subir avatar",
"uploaded-avatar": "Avatar actualizado",
"username": "Nombre de usuario",
"view-it": "Visto",
"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?"
-} \ No newline at end of file
+}
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index b4af8f5a..4f20036b 100755..100644
--- a/i18n/es.i18n.json
+++ b/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",
"activities": "Activities",
"activity": "Actividad",
@@ -16,10 +36,13 @@
"activity-removed": "eliminado %s de %s",
"activity-sent": "enviado %s a %s",
"activity-unjoined": "unjoined %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Añadir",
"add-attachment": "Añadir un adjunto",
"add-board": "Añadir un nuevo tablero",
"add-card": "Add a card",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "Añadir cubierta",
"add-label": "Add the label",
"add-list": "Add a list",
@@ -31,6 +54,8 @@
"all-boards": "Tableros",
"and-n-other-card": "And __count__ other card",
"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-all": "Guardar Todo",
"archive-board": "Archive Board",
@@ -40,12 +65,13 @@
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Items archivados",
"archives": "Archives",
- "assign-member": "Assign member",
+ "assign-member": "Asignar miembros",
"attached": "adjuntado",
"attachment": "Adjunto",
"attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
"attachmentDeletePopup-title": "¿Borrar adjunto?",
"attachments": "Adjuntos",
+ "auto-watch": "Vigilar tableros automáticamente cuando se crean",
"avatar-too-big": "The avatar is too large (70Kb max)",
"back": "Atrás",
"board-change-color": "Cambiar color",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Renombrar tablero",
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Cambiar Vigilancia",
"boardMenuPopup-title": "Board Menu",
"boards": "Tableros",
"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-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": "Motivo",
+ "card-due-on": "Debido a",
"card-edit-attachments": "Edit attachments",
"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-members-title": "Añadir o eliminar miembros del tablero desde la ficha.",
+ "card-start": "Empezar",
+ "card-start-on": "Empieza",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "¿Borrar ficha?",
"cardDetailsActionsPopup-title": "Card Actions",
@@ -82,12 +112,15 @@
"change-avatar": "Cambiar Avatar",
"change-password": "Cambiar la clave",
"change-permissions": "Cambiar permisos",
+ "change-settings": "Cambiar Preferencias",
"changeAvatarPopup-title": "Cambiar Avatar",
"changeLanguagePopup-title": "Cambiar idioma",
"changePasswordPopup-title": "Cambiar la clave",
"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",
"close": "Cerrar",
"close-board": "Cerrar el tablero",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Crear tablero",
"createLabelPopup-title": "Crear etiqueta",
"current": "actual",
+ "date": "Fecha",
"decline": "Decline",
"default-avatar": "Avatar por defecto",
"delete": "Borrar",
@@ -122,7 +156,10 @@
"edit": "Editar",
"edit-avatar": "Cambiar Avatar",
"edit-profile": "Edit Profile",
+ "editCardStartDatePopup-title": "Cambiar fecha de inicio",
+ "editCardDueDatePopup-title": "Cambiar fecha de motivo",
"editLabelPopup-title": "Cambiar etiqueta",
+ "editNotificationPopup-title": "Editar Notificación",
"editProfilePopup-title": "Edit Profile",
"email": "Correo electrónico",
"email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,74 +183,86 @@
"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": "Este nombre de usuario ya está en uso",
"export-board": "Export board",
"filter": "Filter",
"filter-cards": "Fichas de filtro",
"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-to-selection": "Filter to selection",
"fullname": "Nombre Completo",
"header-logo-title": "Volver a tu página de tableros",
+ "hide-system-messages": "Ocultar los mensajes del sistema",
"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-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-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-show-user-mapping": "Review members mapping",
"import-user-select": "Pick the Wekan user you want to use as this member",
+ "importMapMembersAddPopup-title": "Seleccionar un miembro de Wekan",
"info": "Informaciones",
- "initials": "Initials",
+ "initials": "Iniciales",
+ "invalid-date": "Fecha no Válida",
"joined": "se ha unido",
"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-delete-pop": "No se puede deshacer. Esto eliminará esta etiqueta de todas las fichas y destruirá su historia.",
"labels": "Etiquetas",
"language": "Idioma",
"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",
"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-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"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-in": "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",
"menu": "Menu",
- "move-selection": "Move selection",
+ "move-selection": "Mover selección",
"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",
"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",
"normal": "Normal",
"normal-desc": "Puedes ver y editar fichas. No puedes cambiar la configuración.",
"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",
- "or": "or",
+ "or": "o",
"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.",
"password": "Clave",
"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-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.",
"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.",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"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-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.",
"removeMemberPopup-title": "¿Eliminar miembro?",
"rename": "Renombrar",
"rename-board": "Renombrar tablero",
- "restore": "Restore",
+ "restore": "Restaurar",
"save": "Guardar",
"search": "Buscar",
"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-toggle-filterbar": "Toggle Filter 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",
"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-description": "Los tableros destacados se mostrarán en la parte superior de tu lista de tableros.",
- "subscribe": "Suscribe",
+ "subscribe": "Suscribirse",
"team": "Equipo",
"this-board": "este tablero",
"this-card": "esta ficha",
+ "time": "Hora",
"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",
- "view-it": "View it",
+ "view-it": "Verlo",
"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?"
-}
+} \ No newline at end of file
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
new file mode 100644
index 00000000..cb0beffe
--- /dev/null
+++ b/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": "چه کاری می خواهید انجام دهید؟"
+} \ No newline at end of file
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index caab4faf..5d52e390 100755..100644
--- a/i18n/fi.i18n.json
+++ b/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-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-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-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-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",
- "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",
- "moveCardPopup-title": "Siirrä kortti",
+ "moveCardPopup-title": "Move Card",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"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?"
+} \ No newline at end of file
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index adc4baa4..985681a2 100755..100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Activités",
"activity": "Activité",
@@ -16,10 +36,13 @@
"activity-removed": "a supprimé %s vers %s",
"activity-sent": "a envoyé %s vers %s",
"activity-unjoined": "a quitté %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Ajouter",
"add-attachment": "Joindre un fichier",
"add-board": "Ajouter un nouveau tableau",
"add-card": "Ajouter une carte",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "Ajouter la couverture",
"add-label": "Ajouter une étiquette",
"add-list": "Ajouter une liste",
@@ -31,6 +54,8 @@
"all-boards": "Tous les tableaux",
"and-n-other-card": "Et __count__ autre carte",
"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-all": "Tout archiver",
"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.",
"attachmentDeletePopup-title": "Supprimer la pièce jointe ?",
"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)",
"back": "Retour",
"board-change-color": "Changer la couleur",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Change la fond du tableau",
"boardChangeTitlePopup-title": "Renommer le tableau",
"boardChangeVisibilityPopup-title": "Changer la visibilité",
- "boardImportBoardPopup-title": "Importer le tableau depuis Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menu du tableau",
"boards": "Tableaux",
"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-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-due": "Due",
+ "card-due-on": "Due on",
"card-edit-attachments": "Editer les pièces jointes",
"card-edit-labels": "Editer les étiquettes",
"card-edit-members": "Modifier les membres",
"card-labels-title": "Modifier les étiquettes de 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",
"cardDeletePopup-title": "Supprimer la carte ?",
"cardDetailsActionsPopup-title": "Actions sur la carte",
@@ -82,10 +112,13 @@
"change-avatar": "Changer l'avatar",
"change-password": "Changer le mot de passe",
"change-permissions": "Changer les permissions",
+ "change-settings": "Modifier les paramètres",
"changeAvatarPopup-title": "Changer l'avatar",
"changeLanguagePopup-title": "Changer la langue",
"changePasswordPopup-title": "Changer le mot de passe",
"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-unstar": "Cliquez pour retirer ce tableau des favoris.",
"clipboard": "Presse-papier ou glisser-déposer",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Créer un tableau",
"createLabelPopup-title": "Créer un étiquette",
"current": "courant",
+ "date": "Date",
"decline": "Refuser",
"default-avatar": "Avatar par défaut",
"delete": "Supprimer",
@@ -122,7 +156,10 @@
"edit": "Éditer",
"edit-avatar": "Changer l'avatar",
"edit-profile": "Éditer le profil",
+ "editCardStartDatePopup-title": "Modifier la date de début",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Changer l'étiquette",
+ "editNotificationPopup-title": "Modifier la Notification",
"editProfilePopup-title": "Éditer le profil",
"email": "Email",
"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-user-doesNotExist": "Cet utilisateur n’existe pas",
"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",
"filter": "Filtrer",
"filter-cards": "Filtrer les cartes",
"filter-clear": "Retirer les filtres",
+ "filter-no-label": "Aucun libellé",
+ "filter-no-member": "Aucun membre",
"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-to-selection": "Filtre vers la sélection",
"fullname": "Nom complet",
"header-logo-title": "Retourner à la page des tableaux",
+ "hide-system-messages": "Masquer les messages système",
"home": "Accueil",
"import": "Importer",
"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-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-user-select": "Pick the Wekan user you want to use as this member",
+ "importMapMembersAddPopup-title": "Sélectionner le membre Wekan",
"info": "Infos",
"initials": "Initiales",
+ "invalid-date": "Date invalide",
"joined": "a joint",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Raccourcis clavier",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Importer une carte Trello",
"lists": "Listes",
"log-out": "Déconnexion",
+ "log-in": "Connexion",
"loginPopup-title": "Connexion",
- "mapMembersAddPopup-title": "Sélectioner le membre Wekan",
- "mapMembersPopup-title": "Associer les membres",
"memberMenuPopup-title": "Préférence de membre",
"members": "Membres",
"menu": "Menu",
"move-selection": "Déplacer la sélection",
"moveCardPopup-title": "Déplacer la carte",
+ "moveCardToBottom-title": "Aller en bas",
+ "moveCardToTop-title": "Aller en haut",
"moveSelectionPopup-title": "Déplacer la sélection",
"multi-selection": "Sélection multiple",
"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",
"name": "Nom",
"no-archived-cards": "Pas de carte archivée.",
@@ -205,12 +251,15 @@
"normal": "Normal",
"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",
+ "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",
"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-not-found": "Page non trouvée",
"password": "Mot de passe",
"paste-or-dragdrop": "pour coller, ou glissez-déposez une image ici (seulement une image)",
+ "participating": "Participating",
"preview": "Prévisualiser",
"previewAttachedImagePopup-title": "Prévisualiser",
"previewClipboardImagePopup-title": "Prévisualiser",
@@ -223,6 +272,7 @@
"remove-cover": "Enlever la couverture",
"remove-from-board": "Retirer du tableau",
"remove-label": "Retirer cette étiquette",
+ "remove-list": "Supprimer la liste",
"remove-member": "Supprimer le membre",
"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.",
@@ -234,7 +284,7 @@
"search": "Chercher",
"select-color": "Choisissez une couleur",
"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-clear-filters": "Retirer tous les filtres",
"shortcut-close-dialog": "Fermer le dialogue",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
"shortcut-toggle-filterbar": "Afficher/Cacher la barre latérale des filtres",
"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",
"star-board-title": "Cliquer pour ajouter ce tableau aux favoris. Il sera affiché en haut de votre liste de tableaux.",
"starred-boards": "Tableaux favoris",
@@ -250,14 +301,24 @@
"team": "Équipe",
"this-board": "ce tableau",
"this-card": "cette carte",
+ "time": "Time",
"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",
"unsaved-description": "Vous avez une description non sauvegardée",
+ "unwatch": "Unwatch",
"upload": "Télécharger",
"upload-avatar": "Télécharger un avatar",
"uploaded-avatar": "Avatar téléchargé",
"username": "Nom d'utilisateur",
"view-it": "Le voir",
"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 ?"
} \ No newline at end of file
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index f08f430b..be7ef0a0 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -1,10 +1,30 @@
{
"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": "פעולות",
"activities": "פעילויות",
"activity": "פעילות",
"activity-added": "%s נוסף ל%s",
- "activity-archived": "%s בארכיון",
+ "activity-archived": "%s אורכב",
"activity-attached": "%s צורף ל%s",
"activity-created": "%s נוצר",
"activity-excluded": "%s לא נכלל ב%s",
@@ -16,10 +36,13 @@
"activity-removed": "%s הוסר מ%s",
"activity-sent": "%s נשלח ל%s",
"activity-unjoined": "בטל צירוף %s",
+ "activity-checklist-added": "רשימת משימות התווספה ל- %s",
"add": "הוסף",
"add-attachment": "הוסף קובץ",
"add-board": "הוסף לוח חדש",
"add-card": "הוסף כרטיס",
+ "add-checklist": "הוסף רשימת משימות",
+ "add-checklist-item": "הוסף פריט לרשימת משימות",
"add-cover": "הוסף כיסוי",
"add-label": "הוסף תווית",
"add-list": "הוסף רשימה",
@@ -31,6 +54,8 @@
"all-boards": "כל הלוחות",
"and-n-other-card": "ו __count__ כרטיס אחר",
"and-n-other-card_plural": "ו __count__ כרטיסים אחרים",
+ "apply": "אשר שינויים",
+ "app-is-offline": "המערכת למטה כרגע, ריענון של הדף יגרום לאבדן מידע",
"archive": "אחסן בארכיון",
"archive-all": "אחסן הכל בארכיון",
"archive-board": "אחסן לוח בארכיון",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "מחיקת קובץ מצורף הינה סופית. אין דרך חזרה.",
"attachmentDeletePopup-title": "למחוק קובץ מצורף?",
"attachments": "קבצים מצורפים",
+ "auto-watch": "עקוב באופן אוטומטי אחרי לוחות אחרי שהם נוצרים",
"avatar-too-big": "האווטאר גדול מידי (מקס 70Kb)",
"back": "חזור",
"board-change-color": "שנה צבע",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "שנה רקע ללוח",
"boardChangeTitlePopup-title": "שנה שם ללוח",
"boardChangeVisibilityPopup-title": "שנה תצוגה",
- "boardImportBoardPopup-title": "ייבא לוח מטרלו",
+ "boardChangeWatchPopup-title": "שנה את הגדרת המעקב",
"boardMenuPopup-title": "תפריט לוח",
"boards": "לוחות",
"bucket-example": "כמו “Bucket List” לדוגמא",
@@ -66,11 +92,15 @@
"card-delete-notice": "מחיקה היא סופית. תאבדו את כל הפעולות המשויכות לכרטיס זה.",
"card-delete-pop": "כל הפעולות יוסרו מלוח הפעילות ולא תוכלו לפתוח מחדש את הכרטיס. אין דרך חזרה.",
"card-delete-suggest-archive": "באפשרותך לאחסן בארכיון כרטיס כדי להסירו מהלוח ולשמר את הפעילות.",
+ "card-due": "תאריך יעד",
+ "card-due-on": "תאריך יעד",
"card-edit-attachments": "ערוך קבצים מצורפים",
- "card-edit-labels": "ערוך תוויות ",
+ "card-edit-labels": "ערוך תוויות",
"card-edit-members": "ערוך חברים",
"card-labels-title": "שנה תוויות לכרטיס.",
"card-members-title": "הוסף או הסר את חברי הלוח מהכרטיס",
+ "card-start": "התחל",
+ "card-start-on": "מתחיל ב-",
"cardAttachmentsPopup-title": "צרף מ",
"cardDeletePopup-title": "למחוק כרטיס?",
"cardDetailsActionsPopup-title": "פעולות על הכרטיס",
@@ -82,10 +112,13 @@
"change-avatar": "שנה אווטאר",
"change-password": "שנה סיסמא",
"change-permissions": "שנה הרשאות",
+ "change-settings": "שנה הגדרות",
"changeAvatarPopup-title": "שנה אווטאר",
"changeLanguagePopup-title": "שנה שפה",
"changePasswordPopup-title": "שנה סיסמא",
"changePermissionsPopup-title": "שנה הרשאות",
+ "changeSettingsPopup-title": "שנה הגדרות",
+ "checklists": "רשימות",
"click-to-star": "לחץ להוספת הלוח למועדפים",
"click-to-unstar": "לחץ להסרת הלוח מהמועדפים.",
"clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "צור לוח",
"createLabelPopup-title": "צור תווית",
"current": "נוכחי",
+ "date": "תאריך",
"decline": "סרב",
"default-avatar": "אווטאר דיפולטי",
"delete": "מחק",
@@ -122,7 +156,10 @@
"edit": "ערוך",
"edit-avatar": "שנה אווטאר",
"edit-profile": "ערוך פרופיל",
+ "editCardStartDatePopup-title": "שנה זמן התחלה",
+ "editCardDueDatePopup-title": "שנה זמן סיום",
"editLabelPopup-title": "שנה תווית",
+ "editNotificationPopup-title": "שנה התראה",
"editProfilePopup-title": "ערוך פרופיל",
"email": "אמייל",
"email-enrollAccount-subject": "חשבון נוצר עבורך ב __siteName__",
@@ -146,27 +183,33 @@
"error-user-doesNotExist": "משתמש זה לא קיים",
"error-user-notAllowSelf": "פעולה זו איננה מותרת",
"error-user-notCreated": "משתמש זה לא נוצר",
+ "error-username-taken": "המשתמש כבר קיים במערכת",
"export-board": "ייצא לוח",
"filter": "מסנן",
"filter-cards": "סנן כרטיסים",
"filter-clear": "נקה מסנן",
+ "filter-no-label": "אין תווית",
+ "filter-no-member": "המשתמש לא קיים",
"filter-on": "מסנן פועל",
"filter-on-desc": "מסנן כרטיסים בלוח זה פועל. יש ללחוץ כאן לעריכת המסנן.",
"filter-to-selection": "סנן את הבחירה",
"fullname": "שם מלא",
"header-logo-title": "חזור לדף הלוחות שלך.",
+ "hide-system-messages": "הסתר הודעות מערכת",
"home": "בית",
"import": "ייבא",
"import-board": "ייבא מטרלו",
+ "import-board-title": "ייבא לוח מטרלו",
"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-map-members": "מפֱה חברים",
"import-members-map": "הלוחות המיובאים שלך מכילים חברים. בבקשה מפה את החברים שתרצה לייבא כמשתמשים",
"import-show-user-mapping": "צפה במיפוי חברים",
"import-user-select": "בחר במשתמש עבור חבר זה",
+ "importMapMembersAddPopup-title": "בחר משתמש",
"info": "אינפורמציה",
"initials": "ראשי תיבות",
+ "invalid-date": "תאריך שגוי",
"joined": "הצטרף",
"just-invited": "הוזמנת ללוח זה",
"keyboard-shortcuts": "קיצורי מקלדת",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "ייבא כרטיס מטרלו",
"lists": "רשימות",
"log-out": "התנתק",
+ "log-in": "התחבר",
"loginPopup-title": "התחבר",
- "mapMembersAddPopup-title": "בחר חבר",
- "mapMembersPopup-title": "מפה חברים",
"memberMenuPopup-title": "הגדרות חבר",
"members": "חברים",
"menu": "תפריט",
"move-selection": "הזז בחירה",
"moveCardPopup-title": "הזז כרטיס",
+ "moveCardToBottom-title": "העבר כרטיס לתחתית הרשימה",
+ "moveCardToTop-title": "העבר כרטיס לראש הרשימה ",
"moveSelectionPopup-title": "הזז בחירה",
"multi-selection": "בחירה מרובה",
"multi-selection-on": "בחירה מרובה פועלת",
+ "muted": "השתק",
+ "muted-info": "מעתה אתה לא תקבל עוד התראות על שינויים בלוח זה",
"my-boards": "הלוחות שלי",
"name": "שם",
"no-archived-cards": "אין כרטיסים מאוחסנים בארכיון.",
@@ -205,12 +251,15 @@
"normal": "נורמלי",
"normal-desc": "יכול לצפות ולערוך כרטיסים. לא יכול לשנות הגדרות.",
"not-accepted-yet": "הזמנה לא התקבלה עדיין",
+ "notify-participate": "קבל התראות על שינויים בכרטיסים שיצרת או שבהם אתה חבר",
+ "notify-watch": "קבל התראות על עדכונים בכל לוח, רשימה או כרטיס שבהם אתה חבר",
"optional": "אופציונלי",
"or": "או",
"page-maybe-private": "יתכן שדף זה פרטי. תוכלו לצפות על ידי <a href='%s'>התחברות למערכת</a>",
"page-not-found": "דף לא נמצא.",
"password": "סיסמא",
"paste-or-dragdrop": "בכדי להדביק או drag & drop קובץ תמונה (תמונה בלבד)",
+ "participating": "Participating",
"preview": "תצוגה מקדימה",
"previewAttachedImagePopup-title": "תצוגה מקדימה",
"previewClipboardImagePopup-title": "תצוגה מקדימה",
@@ -223,6 +272,7 @@
"remove-cover": "הסר כיסוי",
"remove-from-board": "הסר מהלוח",
"remove-label": "הסר תווית",
+ "remove-list": "הסר מהרשימה",
"remove-member": "הסר חבר",
"remove-member-from-card": "הסר מהכרטיס",
"remove-member-pop": "הסר __name__ (__username__) מ __boardTitle__? החבר יוסר מכל הכרטיסים בלוח זה. הוא יקבל על כך הודעה.",
@@ -234,7 +284,7 @@
"search": "חפש",
"select-color": "בחר צבע",
"shortcut-assign-self": "הקצה את עצמך לכרטיס הנוכחי",
- "shortcut-autocomplete-emojies": "השלמה אוטומטית של אימוג'יז",
+ "shortcut-autocomplete-emoji": "השלמה אוטומטית לפרצופונים (Emoji)",
"shortcut-autocomplete-members": "השלמה אוטומטית של חברים",
"shortcut-clear-filters": "נקה את כל המסננים",
"shortcut-close-dialog": "סגור חלון",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "הבא רשימת קיצורי דרך זו",
"shortcut-toggle-filterbar": "החלף מצבי מסנן",
"shortcut-toggle-sidebar": "החלף מצבי מסנן",
+ "show-cards-minimum-count": "הצג מספר כרטיסים אם הרשימה מכיל יותר כרטיסים מ-",
"signupPopup-title": "צור חשבון",
"star-board-title": "בלחיצה על הכווכב של הלוח יתווסף הלוח לראש רשימת הלוחות שלך.",
"starred-boards": "לוחות שסומנו בכוכב",
@@ -250,14 +301,24 @@
"team": "צוות",
"this-board": "לוח זה",
"this-card": "כרטיס זה",
+ "time": "זמן",
"title": "כותרת",
+ "tracking": "Tracking",
+ "tracking-info": "אתה תקבל התראות על שינויים בכרטיסים שיצרת או שאתה חבר בהם",
"unassign-member": "בטל הקצאת חבר",
"unsaved-description": "יש לך תיאור לא שמור.",
+ "unwatch": "הספק מעקב",
"upload": "העלה/טען",
"upload-avatar": "העלה/ טען אווטאר",
"uploaded-avatar": "אווטאר הועלה/נטען",
"username": "שם משתמש",
"view-it": "צפה",
"warn-list-archived": "אזהרה: הכרטיס נמצא ברשימה שהועברה לארכיון",
+ "watch": "עקוב",
+ "watching": "עוקב",
+ "watching-info": "מעתה אתה תקבל התראות על עדכונים בלוח זה",
+ "welcome-board": "ברוך הבא ללוח",
+ "welcome-list1": "Basics",
+ "welcome-list2": "Advanced",
"what-to-do": "מה תרצה לעשות?"
} \ No newline at end of file
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index 07026fd4..7ddfa678 100755
--- a/i18n/it.i18n.json
+++ b/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",
"activities": "Attività",
"activity": "Attività",
- "activity-added": "aggiunto %s a %s",
+ "activity-added": "ha aggiunto %s a %s",
"activity-archived": "archiviato %s",
"activity-attached": "allegato %s a %s",
"activity-created": "creato %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-on": "su %s",
"activity-removed": "rimosso %s da %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-attachment": "Aggiungi allegato",
"add-board": "Aggiungi una nuova bachecha",
"add-card": "Aggiungi una scheda",
+ "add-checklist": "Aggiungi una checklist",
+ "add-checklist-item": "Aggiungi un elemento alla checklist",
"add-cover": "Aggiungi copertina",
"add-label": "Aggiungi l'etichetta",
"add-list": "Aggiungi una lista",
@@ -31,21 +54,24 @@
"all-boards": "Tutte le bacheche",
"and-n-other-card": "E __count__ altra scheda",
"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-all": "Archivia tutto",
"archive-board": "Archivia bacheca",
"archive-card": "Archivia scheda",
"archive-list": "Archivia questa lista",
"archive-selection": "Archivia selezione",
- "archiveBoardPopup-title": "Archive Board?",
+ "archiveBoardPopup-title": "Archivia Bacheca?",
"archived-items": "Elementi archiviati",
- "archives": "Archives",
- "assign-member": "Assegna membri",
+ "archives": "Archivi",
+ "assign-member": "Aggiungi membro",
"attached": "allegato",
"attachment": "Allegato",
"attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile annullare.",
"attachmentDeletePopup-title": "Eliminare l'allegato?",
"attachments": "Allegati",
+ "auto-watch": "Segui automaticamente le bacheche quando le crei",
"avatar-too-big": "L'avatar è troppo grande (max 70Kb)",
"back": "Indietro",
"board-change-color": "Cambia colore",
@@ -56,208 +82,243 @@
"boardChangeColorPopup-title": "Cambia sfondo della bacheca",
"boardChangeTitlePopup-title": "Rinomina bacheca",
"boardChangeVisibilityPopup-title": "Cambia visibilità",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Cambia faccia",
"boardMenuPopup-title": "Menu bacheca",
"boards": "Bacheche",
- "bucket-example": "Like “Bucket List” for example",
+ "bucket-example": "Per esempio come \"una lista di cose da fare\"",
"cancel": "Cancella",
"card-archived": "Questa scheda è archiviata.",
"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-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-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",
- "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",
- "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-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",
- "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-in": "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",
- "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",
- "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",
- "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",
- "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-avatar": "Upload an avatar",
- "uploaded-avatar": "Uploaded an avatar",
+ "upload-avatar": "Carica un avatar",
+ "uploaded-avatar": "Avatar caricato",
"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?"
+} \ No newline at end of file
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index 6cde68c6..da89a5d3 100755..100644
--- a/i18n/ja.i18n.json
+++ b/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": "操作",
- "activities": "Activities",
+ "activities": "アクティビティ",
"activity": "アクティビティ",
"activity-added": "%s を %s に追加しました",
"activity-archived": "%s をアーカイブしました",
@@ -15,49 +35,55 @@
"activity-on": "%s",
"activity-removed": "%s を %s から削除しました",
"activity-sent": "%s を %s に送りました",
- "activity-unjoined": "unjoined %s",
+ "activity-unjoined": "%s への参加を止めました",
+ "activity-checklist-added": "%s にチェックリストを追加しました",
"add": "追加",
- "add-attachment": "Add an attachment",
+ "add-attachment": "添付ファイルの追加",
"add-board": "ボード追加",
- "add-card": "Add a card",
+ "add-card": "カードの追加",
+ "add-checklist": "チェックリストの追加",
+ "add-checklist-item": "チェックリストに項目を追加",
"add-cover": "カバーの追加",
- "add-label": "Add the label",
- "add-list": "Add a list",
- "add-members": "Add Members",
+ "add-label": "ラベルの追加",
+ "add-list": "リストの追加",
+ "add-members": "メンバーの追加",
"added": "追加しました",
"addMemberPopup-title": "メンバー",
"admin": "管理",
"admin-desc": "カードの閲覧と編集、メンバーの削除、ボードの設定変更が可能",
- "all-boards": "All boards",
+ "all-boards": "全てのボード",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
+ "apply": "適用",
+ "app-is-offline": "現在オフラインです。ページを更新すると保存していないデータは失われます。",
"archive": "アーカイブ",
"archive-all": "すべてをアーカイブ",
- "archive-board": "Archive Board",
- "archive-card": "Archive Card",
+ "archive-board": "ボードをアーカイブ",
+ "archive-card": "カードをアーカイブ",
"archive-list": "このリストをアーカイブ",
- "archive-selection": "Archive selection",
- "archiveBoardPopup-title": "Archive Board?",
+ "archive-selection": "選択したものをアーカイブ",
+ "archiveBoardPopup-title": "ボードをアーカイブしますか?",
"archived-items": "アーカイブされたアイテム",
- "archives": "Archives",
- "assign-member": "Assign member",
+ "archives": "アーカイブ",
+ "assign-member": "メンバーの割当",
"attached": "添付されました",
"attachment": "添付ファイル",
"attachment-delete-pop": "添付ファイルの削除をすると取り消しできません。",
"attachmentDeletePopup-title": "添付ファイルを削除しますか?",
"attachments": "添付ファイル",
- "avatar-too-big": "The avatar is too large (70Kb max)",
+ "auto-watch": "作成したボードは自動的に監視する",
+ "avatar-too-big": "アバターが大きすぎます(最大70KB)",
"back": "戻る",
- "board-change-color": "Change color",
+ "board-change-color": "色の変更",
"board-nb-stars": "%s stars",
"board-not-found": "ボードが見つかりません",
"board-private-info": "This board will be <strong>private</strong>.",
"board-public-info": "ボードは公開されます。",
- "boardChangeColorPopup-title": "Change Board Background",
+ "boardChangeColorPopup-title": "ボードの背景を変更",
"boardChangeTitlePopup-title": "ボード名の変更",
"boardChangeVisibilityPopup-title": "公開範囲の変更",
- "boardImportBoardPopup-title": "Import board from Trello",
- "boardMenuPopup-title": "Board Menu",
+ "boardChangeWatchPopup-title": "Change Watch",
+ "boardMenuPopup-title": "ボードメニュー",
"boards": "ボード",
"bucket-example": "Like “Bucket List” for example",
"cancel": "キャンセル",
@@ -66,70 +92,81 @@
"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-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-members-title": "カードからボードメンバーを追加・削除する",
+ "card-start": "開始",
+ "card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "カードを削除しますか?",
- "cardDetailsActionsPopup-title": "Card Actions",
+ "cardDetailsActionsPopup-title": "カード操作",
"cardLabelsPopup-title": "ラベル",
"cardMembersPopup-title": "メンバー",
"cardMorePopup-title": "さらに見る",
- "cards": "Cards",
- "change": "Change",
+ "cards": "カード",
+ "change": "変更",
"change-avatar": "アバターの変更",
"change-password": "パスワードの変更",
- "change-permissions": "Change permissions",
+ "change-permissions": "権限の変更",
+ "change-settings": "設定の変更",
"changeAvatarPopup-title": "アバターの変更",
"changeLanguagePopup-title": "言語の変更",
"changePasswordPopup-title": "パスワードの変更",
"changePermissionsPopup-title": "パーミッションの変更",
+ "changeSettingsPopup-title": "設定の変更",
+ "checklists": "チェックリスト",
"click-to-star": "ボードにスターをつける",
"click-to-unstar": "ボードからスターを外す",
- "clipboard": "Clipboard or drag & drop",
+ "clipboard": "クリップボードもしくはドラッグ&ドロップ",
"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.",
- "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-placeholder": "Write a comment",
+ "comment-placeholder": "コメントを書く",
"computer": "コンピューター",
"create": "作成",
"createBoardPopup-title": "ボードの作成",
"createLabelPopup-title": "ラベルの作成",
- "current": "current",
- "decline": "Decline",
- "default-avatar": "Default avatar",
+ "current": "現在",
+ "date": "日付",
+ "decline": "拒否",
+ "default-avatar": "デフォルトのアバター",
"delete": "削除",
"deleteLabelPopup-title": "ラベルを削除しますか?",
"description": "詳細",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
"disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
- "discard": "Discard",
- "done": "Done",
+ "discard": "捨てる",
+ "done": "完了",
"download": "ダウンロード",
"edit": "編集",
"edit-avatar": "アバターの変更",
- "edit-profile": "Edit Profile",
+ "edit-profile": "プロフィールの編集",
+ "editCardStartDatePopup-title": "開始日の変更",
+ "editCardDueDatePopup-title": "期限の変更",
"editLabelPopup-title": "ラベルの変更",
- "editProfilePopup-title": "Edit Profile",
+ "editNotificationPopup-title": "通知の変更",
+ "editProfilePopup-title": "プロフィールの編集",
"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-fail": "メールの送信に失敗しました",
+ "email-invalid": "無効なメールアドレス",
+ "email-invite": "メールで招待",
"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__",
@@ -137,83 +174,95 @@
"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-doesNotExist": "ボードがありません",
"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",
+ "error-user-doesNotExist": "ユーザーが存在しません",
+ "error-user-notAllowSelf": "この操作は許可されていません",
+ "error-user-notCreated": "ユーザーが作成されていません",
+ "error-username-taken": "このユーザ名は既に使用されています",
+ "export-board": "ボードのエクスポート",
+ "filter": "フィルター",
"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-to-selection": "Filter to selection",
"fullname": "フルネーム",
"header-logo-title": "自分のボードページに戻る。",
+ "hide-system-messages": "システムメッセージを隠す",
"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-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-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": "情報",
"initials": "Initials",
+ "invalid-date": "無効な日付",
"joined": "参加しました",
"just-invited": "You are just invited to this board",
- "keyboard-shortcuts": "Keyboard shortcuts",
+ "keyboard-shortcuts": "キーボード・ショートカット",
"label-create": "ラベル作成",
"label-default": "%s ラベル(デフォルト)",
"label-delete-pop": "この操作は取り消しできません。このラベルはすべてのカードから外され履歴からも見えなくなります。",
"labels": "ラベル",
"language": "言語",
"last-admin-desc": "最低でも1人以上の管理者が必要なためロールを変更できません。",
- "leave-board": "Leave Board",
+ "leave-board": "ボードから退出する",
"link-card": "このカードへのリンク",
- "list-archive-cards": "Archive all cards in this list",
+ "list-archive-cards": "リストの全カードをアーカイブする",
"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": "操作一覧",
- "listImportCardPopup-title": "Import a Trello card",
- "lists": "Lists",
+ "listImportCardPopup-title": "Trelloのカードをインポート",
+ "lists": "リスト",
"log-out": "ログアウト",
+ "log-in": "ログイン",
"loginPopup-title": "ログイン",
- "mapMembersAddPopup-title": "Select Wekan member",
- "mapMembersPopup-title": "Map members",
- "memberMenuPopup-title": "Member Settings",
+ "memberMenuPopup-title": "メンバー設定",
"members": "メンバー",
"menu": "メニュー",
"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": "自分のボード",
"name": "名前",
- "no-archived-cards": "No archived cards.",
- "no-archived-lists": "No archived lists.",
+ "no-archived-cards": "アーカイブされたボードはありません",
+ "no-archived-lists": "アーカイブされたリストはありません",
"no-results": "該当するものはありません",
"normal": "通常",
"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": "任意",
"or": "or",
"page-maybe-private": "このページはプライベートです。<a href='%s'>ログイン</a>して見てください。",
"page-not-found": "ページが見つかりません。",
"password": "パスワード",
"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-desc": "このボードはプライベートです。ボードメンバーのみが閲覧・編集可能です。",
"profile": "プロフィール",
@@ -221,10 +270,11 @@
"public-desc": "このボードはパブリックです。リンクを知っていれば誰でもアクセス可能でGoogleのような検索エンジンの結果に表示されます。このボードに追加されている人だけがカード追加が可能です。",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"remove-cover": "カバーの削除",
- "remove-from-board": "Remove from Board",
- "remove-label": "Remove the label",
+ "remove-from-board": "ボードから外す",
+ "remove-label": "ラベルを外す",
+ "remove-list": "リストの除去",
"remove-member": "メンバーを外す",
- "remove-member-from-card": "カードから取り除く",
+ "remove-member-from-card": "カードから外す",
"remove-member-pop": "__boardTitle__ から __name__ (__username__) を外しますか?メンバーはこのボードのすべてのカードから外れ、通知を受けます。",
"removeMemberPopup-title": "メンバーを外しますか?",
"rename": "名前変更",
@@ -233,15 +283,16 @@
"save": "保存",
"search": "検索",
"select-color": "色を選択",
- "shortcut-assign-self": "Assign yourself to current card",
+ "shortcut-assign-self": "自分をこのカードに割り当てる",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"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-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": "アカウント作成",
"star-board-title": "ボードにスターをつけると自分のボード一覧のトップに表示されます。",
"starred-boards": "スターのついたボード",
@@ -250,14 +301,24 @@
"team": "チーム",
"this-board": "このボード",
"this-card": "このカード",
+ "time": "時間",
"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",
"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": "ユーザー名",
"view-it": "View it",
"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": "何をしたいですか?"
+} \ No newline at end of file
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 823a221d..315aef0e 100755..100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.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": "동작",
"activities": "Activities",
"activity": "활동 상태",
@@ -16,10 +36,13 @@
"activity-removed": "%s를 %s에서 삭제함",
"activity-sent": "%s를 %s로 보냄",
"activity-unjoined": "unjoined %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "추가",
"add-attachment": "Add an attachment",
"add-board": "새로운 보드를 추가",
"add-card": "Add a card",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "커버 추가",
"add-label": "Add the label",
"add-list": "Add a list",
@@ -31,6 +54,8 @@
"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-all": "모두 보관",
"archive-board": "Archive Board",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "영구 첨부파일을 삭제합니다. 되돌릴 수 없습니다.",
"attachmentDeletePopup-title": "첨부 파일을 삭제합니까?",
"attachments": "첨부 파일",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "The avatar is too large (70Kb max)",
"back": "뒤로",
"board-change-color": "Change color",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "보드 이름 바꾸기",
"boardChangeVisibilityPopup-title": "표시 여부 변경",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "보드",
"bucket-example": "Like “Bucket List” for example",
@@ -66,11 +92,15 @@
"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-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": "카드의 라벨 변경.",
"card-members-title": "카드에서 보드의 멤버를 추가하거나 삭제합니다.",
+ "card-start": "Start",
+ "card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "카드를 삭제합니까?",
"cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
"change-avatar": "아바타 변경",
"change-password": "암호 변경",
"change-permissions": "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": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "보드 생성",
"createLabelPopup-title": "라벨 생성",
"current": "current",
+ "date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "삭제",
@@ -122,7 +156,10 @@
"edit": "수정",
"edit-avatar": "아바타 변경",
"edit-profile": "Edit Profile",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "라벨 변경",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
"email": "이메일",
"email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
"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-clear": "Clear filter",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filter is on",
"filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.",
"filter-to-selection": "Filter to selection",
"fullname": "전체 이름",
"header-logo-title": "보드 페이지로 돌아가기.",
+ "hide-system-messages": "Hide system messages",
"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-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-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": "정보",
"initials": "Initials",
+ "invalid-date": "Invalid date",
"joined": "참가함",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Import a Trello card",
"lists": "Lists",
"log-out": "로그아웃",
+ "log-in": "로그인",
"loginPopup-title": "로그인",
- "mapMembersAddPopup-title": "Select Wekan member",
- "mapMembersPopup-title": "Map members",
"memberMenuPopup-title": "Member Settings",
"members": "멤버",
"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": "내 보드",
"name": "이름",
"no-archived-cards": "No archived cards.",
@@ -205,12 +251,15 @@
"normal": "표준",
"normal-desc": "카드를 보거나 수정할 수 있습니다. 설정값은 변경할 수 없습니다.",
"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": "옴션",
"or": "or",
"page-maybe-private": "이 페이지를 비공개일 수 있습니다. 이것을 보고 싶으면 <a href='%s'>로그인</a>을 하십시오.",
"page-not-found": "페이지를 찾지 못 했습니다",
"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",
@@ -223,6 +272,7 @@
"remove-cover": "커버 제거",
"remove-from-board": "Remove from Board",
"remove-label": "Remove the label",
+ "remove-list": "Remove the list",
"remove-member": "멤버 제거",
"remove-member-from-card": "카드에서 제거",
"remove-member-pop": "__boardTitle__에서 __name__(__username__) 을 제거합니까? 그 멤버는 이 보드의 모든 카드에서 제거됩니다. 그에대한 알람을 받게됩니다.",
@@ -242,6 +292,7 @@
"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": "계정 생성",
"star-board-title": "보드에 별을 클릭합니다. 보드 목록에서 최상위로 둘 수 있습니다.",
"starred-boards": "별표된 보드",
@@ -250,14 +301,24 @@
"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": "Unassign member",
"unsaved-description": "You have an unsaved description.",
+ "unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Upload an avatar",
"uploaded-avatar": "Uploaded an avatar",
"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?"
-}
+ "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": "무엇을 원하나요?"
+} \ No newline at end of file
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index d44bccdb..53367442 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Aktywności",
"activity": "Aktywność",
@@ -16,10 +36,13 @@
"activity-removed": "usunięto %s z %s",
"activity-sent": "wysłano %s z %s",
"activity-unjoined": "odłączono %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Dodaj",
"add-attachment": "Dodaj załącznik",
"add-board": "Dodaj nową tablicę",
"add-card": "Dodaj kartę",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "Dodaj okładkę",
"add-label": "Dodaj etykietę",
"add-list": "Dodaj listę",
@@ -31,6 +54,8 @@
"all-boards": "Wszystkie tablice",
"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": "Zarchiwizuj",
"archive-all": "Zarchiwizuj wszystkie",
"archive-board": "Zarchiwizuj tablicę",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "Usunięcie załącznika jest nieodwracalne.",
"attachmentDeletePopup-title": "Usunąć załącznik?",
"attachments": "Załączniki",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "Avatar jest za duży (maksymalnie 70Kb)",
"back": "Wstecz",
"board-change-color": "Zmień kolor",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Zmień tło tablicy",
"boardChangeTitlePopup-title": "Zmień nazwę tablicy",
"boardChangeVisibilityPopup-title": "Zmień widoczność",
- "boardImportBoardPopup-title": "Zaimportuj tablicę z Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menu tablicy",
"boards": "Tablice",
"bucket-example": "Like “Bucket List” for example",
@@ -64,13 +90,17 @@
"card-archived": "Ta karta jest zarchiwizowana.",
"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-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-due": "Due",
+ "card-due-on": "Due on",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-labels": "Edytuj etykiety",
"card-edit-members": "Edytuj członków",
"card-labels-title": "Zmień etykiety 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",
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
"change-avatar": "Zmień Avatar",
"change-password": "Zmień hasło",
"change-permissions": "Zmień uprawnienia",
+ "change-settings": "Change Settings",
"changeAvatarPopup-title": "Zmień Avatar",
"changeLanguagePopup-title": "Zmień język",
"changePasswordPopup-title": "Zmień hasło",
"changePermissionsPopup-title": "Zmień uprawnienia",
+ "changeSettingsPopup-title": "Change Settings",
+ "checklists": "Checklists",
"click-to-star": "Kliknij by odznaczyć tę tablicę.",
"click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.",
"clipboard": "Schowek lub przeciągnij & upuść",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Utwórz tablicę",
"createLabelPopup-title": "Utwórz etykietę",
"current": "obecny",
+ "date": "Date",
"decline": "Odrzuć",
"default-avatar": "Domyślny avatar",
"delete": "Usuń",
@@ -122,7 +156,10 @@
"edit": "Edytuj",
"edit-avatar": "Zmień Avatar",
"edit-profile": "Edytuj profil",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Zmień etykietę",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edytuj profil",
"email": "Email",
"email-enrollAccount-subject": "Konto zostało utworzone na __siteName__",
@@ -146,27 +183,33 @@
"error-user-doesNotExist": "Ten użytkownik nie istnieje",
"error-user-notAllowSelf": "Ta akcje nie jest dozwolona",
"error-user-notCreated": "Ten użytkownik nie został stworzony",
+ "error-username-taken": "This username is already taken",
"export-board": "Eksportuj tablicę",
"filter": "Filtr",
"filter-cards": "Odfiltruj karty",
"filter-clear": "Usuń filter",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filtr jest włączony",
"filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
"filter-to-selection": "Odfiltruj zaznaczenie",
"fullname": "Full Name",
"header-logo-title": "Wróć do swojej strony z tablicami.",
+ "hide-system-messages": "Hide system messages",
"home": "Strona główna",
"import": "Importu",
"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-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-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-show-user-mapping": "Przejrzyj wybranych członków",
"import-user-select": "Pick the Wekan user you want to use as this member",
+ "importMapMembersAddPopup-title": "Select Wekan member",
"info": "Informacje",
"initials": "Initials",
+ "invalid-date": "Invalid date",
"joined": "dołączył",
"just-invited": "Właśnie zostałeś zaproszony do tej tablicy",
"keyboard-shortcuts": "Skróty klawiaturowe",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Zaimportuj kartę z Trello",
"lists": "Listy",
"log-out": "Wyloguj",
+ "log-in": "Zaloguj",
"loginPopup-title": "Zaloguj",
- "mapMembersAddPopup-title": "Wybierz członka Wekan",
- "mapMembersPopup-title": "Map members",
"memberMenuPopup-title": "Member Settings",
"members": "Członkowie",
"menu": "Menu",
"move-selection": "Przenieś zaznaczone",
"moveCardPopup-title": "Przenieś kartę",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Przenieś zaznaczone",
"multi-selection": "Wielokrotne zaznaczenie",
"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",
"name": "Nazwa",
"no-archived-cards": "Brak zarchiwizowanych kart.",
@@ -205,12 +251,15 @@
"normal": "Normal",
"normal-desc": "Może widzieć i edytować karty. Nie może zmieniać ustawiań.",
"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",
"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-not-found": "Strona nie znaleziona.",
"password": "Hasło",
"paste-or-dragdrop": "wklej lub przeciągnij & upuść obrazek",
+ "participating": "Participating",
"preview": "Podgląd",
"previewAttachedImagePopup-title": "Podgląd",
"previewClipboardImagePopup-title": "Podgląd",
@@ -223,6 +272,7 @@
"remove-cover": "Usuń okładkę",
"remove-from-board": "Usuń z tablicy",
"remove-label": "Usuń etykietę",
+ "remove-list": "Remove the list",
"remove-member": "Usuń członka",
"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.",
@@ -234,7 +284,7 @@
"search": "Wyszukaj",
"select-color": "Wybierz kolor",
"shortcut-assign-self": "Przypisz siebie do obecnej karty",
- "shortcut-autocomplete-emojies": "Autocomplete emojies",
+ "shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
"shortcut-clear-filters": "Usuń wszystkie filtry",
"shortcut-close-dialog": "Zamknij okno",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "Przypnij do listy skrótów",
"shortcut-toggle-filterbar": "Przełącz boczny pasek filtru",
"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",
"star-board-title": "Click to star this board. It will show up at top of your boards list.",
"starred-boards": "Odznaczone tablice",
@@ -250,14 +301,24 @@
"team": "Zespół",
"this-board": "ta tablica",
"this-card": "ta karta",
+ "time": "Time",
"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",
"unsaved-description": "You have an unsaved description.",
+ "unwatch": "Unwatch",
"upload": "Wyślij",
"upload-avatar": "Wyślij avatar",
"uploaded-avatar": "Wysłany avatar",
"username": "Nazwa użytkownika",
"view-it": "Zobacz",
"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ć?"
} \ No newline at end of file
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 189d4298..2912787d 100755..100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -1,5 +1,25 @@
{
"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",
"activities": "Atividades",
"activity": "Atividade",
@@ -16,10 +36,13 @@
"activity-removed": "removeu %s de %s",
"activity-sent": "enviou %s de %s",
"activity-unjoined": "saiu de %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Novo",
"add-attachment": "Adicionar um anexo",
"add-board": "Criar um quadro novo",
"add-card": "Adicionar um cartão",
+ "add-checklist": "Add a checklist",
+ "add-checklist-item": "Add an item to checklist",
"add-cover": "Adicionar Capa",
"add-label": "Adicionar a Etiqueta",
"add-list": "Adicionar uma lista",
@@ -31,6 +54,8 @@
"all-boards": "Todos os quadros",
"and-n-other-card": "E __count__ outro cartão",
"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-all": "Arquivar Tudo",
"archive-board": "Arquivar Quadro",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "Excluir um anexo é permanente. Não será possível recuperá-lo.",
"attachmentDeletePopup-title": "Excluir Anexo?",
"attachments": "Anexos",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "Imagem de avatar muito grande (máx 70KB)",
"back": "Voltar",
"board-change-color": "Alterar cor",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Alterar Tela de Fundo",
"boardChangeTitlePopup-title": "Renomear Quadro",
"boardChangeVisibilityPopup-title": "Alterar Visibilidade",
- "boardImportBoardPopup-title": "Importar quadro do Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menu do Quadro",
"boards": "Quadros",
"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-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-due": "Due",
+ "card-due-on": "Due on",
"card-edit-attachments": "Editar anexos",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar membros",
"card-labels-title": "Alterar etiquetas do 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",
"cardDeletePopup-title": "Excluir Cartão?",
"cardDetailsActionsPopup-title": "Ações do cartão",
@@ -82,10 +112,13 @@
"change-avatar": "Alterar Avatar",
"change-password": "Alterar Senha",
"change-permissions": "Alterar permissões",
+ "change-settings": "Change Settings",
"changeAvatarPopup-title": "Alterar Avatar",
"changeLanguagePopup-title": "Alterar Idioma",
"changePasswordPopup-title": "Alterar Senha",
"changePermissionsPopup-title": "Alterar Permissões",
+ "changeSettingsPopup-title": "Change Settings",
+ "checklists": "Checklists",
"click-to-star": "Marcar quadro como favorito.",
"click-to-unstar": "Remover quadro dos favoritos.",
"clipboard": "Área de Transferência ou arraste e solte",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Criar Quadro",
"createLabelPopup-title": "Criar Etiqueta",
"current": "atual",
+ "date": "Date",
"decline": "Rejeitar",
"default-avatar": "Avatar padrão",
"delete": "Excluir",
@@ -122,7 +156,10 @@
"edit": "Editar",
"edit-avatar": "Alterar Avatar",
"edit-profile": "Editar Perfil",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Alterar Etiqueta",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Editar Perfil",
"email": "E-mail",
"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-notAllowSelf": "Esta ação em você mesmo não é permitida",
"error-user-notCreated": "Este usuário não foi criado",
+ "error-username-taken": "This username is already taken",
"export-board": "Exportar quadro",
"filter": "Filtrar",
"filter-cards": "Filtrar Cartões",
"filter-clear": "Limpar filtro",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filtro está ativo",
"filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
"filter-to-selection": "Filtrar esta seleção",
"fullname": "Nome Completo",
"header-logo-title": "Voltar para a lista de quadros.",
+ "hide-system-messages": "Hide system messages",
"home": "Início",
"import": "Importar",
"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-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-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-show-user-mapping": "Revisar mapeamento dos membros",
"import-user-select": "Selecione o usuário Wekan que você gostaria de usar como este membro",
+ "importMapMembersAddPopup-title": "Select Wekan member",
"info": "Informações",
"initials": "Iniciais",
+ "invalid-date": "Invalid date",
"joined": "juntou-se",
"just-invited": "Você já foi convidado para este quadro",
"keyboard-shortcuts": "Atalhos do teclado",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Importe um cartão do Trello",
"lists": "Listas",
"log-out": "Sair",
+ "log-in": "Entrar",
"loginPopup-title": "Entrar",
- "mapMembersAddPopup-title": "Selecione um membro Wekan",
- "mapMembersPopup-title": "Mapear membros",
"memberMenuPopup-title": "Configuração de Membros",
"members": "Membros",
"menu": "Menu",
"move-selection": "Mover seleção",
"moveCardPopup-title": "Mover Cartão",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Mover seleção",
"multi-selection": "Multi-Seleção",
"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",
"name": "Nome",
"no-archived-cards": "Nenhum cartão arquivado",
@@ -205,12 +251,15 @@
"normal": "Normal",
"normal-desc": "Pode ver e editar cartões. Não pode alterar configurações.",
"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",
"or": "ou",
"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.",
"password": "Senha",
"paste-or-dragdrop": "para colar, ou arraste e solte o arquivo da imagem para ca (somente imagens)",
+ "participating": "Participating",
"preview": "Previsualizar",
"previewAttachedImagePopup-title": "Previsualizar",
"previewClipboardImagePopup-title": "Previsualizar",
@@ -223,6 +272,7 @@
"remove-cover": "Remover Capa",
"remove-from-board": "Remover do Quadro",
"remove-label": "Remover Etiqueta",
+ "remove-list": "Remove the list",
"remove-member": "Remover Membro",
"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.",
@@ -234,7 +284,7 @@
"search": "Buscar",
"select-color": "Selecione uma cor",
"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-clear-filters": "Limpar todos filtros",
"shortcut-close-dialog": "Fechar dialogo",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "Mostrar lista de atalhos",
"shortcut-toggle-filterbar": "Alternar barra de filtro",
"shortcut-toggle-sidebar": "Fechar barra lateral.",
+ "show-cards-minimum-count": "Show cards count if list contains more than",
"signupPopup-title": "Criar uma Conta",
"star-board-title": "Clique para marcar este quadro como favorito. Ele aparecerá no topo na lista dos seus quadros.",
"starred-boards": "Quadros Favoritos",
@@ -250,14 +301,24 @@
"team": "Equipe",
"this-board": "este quadro",
"this-card": "este cartão",
+ "time": "Time",
"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",
"unsaved-description": "Você possui uma descrição não salva",
+ "unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Carregar um avatar",
"uploaded-avatar": "Avatar carregado",
"username": "Nome de usuário",
"view-it": "Visualizar",
"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?"
} \ No newline at end of file
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
new file mode 100644
index 00000000..da2f3bb6
--- /dev/null
+++ b/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?"
+} \ No newline at end of file
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index a2319a27..fd98b49f 100755..100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -1,5 +1,25 @@
{
"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": "Активность",
@@ -16,10 +36,13 @@
"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": "Добавить список",
@@ -31,6 +54,8 @@
"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": "Архивировать доску",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "Если удалить вложение, его нельзя будет восстановить.",
"attachmentDeletePopup-title": "Удалить вложение?",
"attachments": "Вложения",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "Аватар слишком большой (максимум 70кб)",
"back": "Назад",
"board-change-color": "Изменить цвет",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Изменить фон доски",
"boardChangeTitlePopup-title": "Переименовать доску",
"boardChangeVisibilityPopup-title": "Изменить настройки видимости",
- "boardImportBoardPopup-title": "Импортировать доску с Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Меню доски",
"boards": "Доски",
"bucket-example": "Например “Список дел”",
@@ -66,11 +92,15 @@
"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": "Действия в карточке",
@@ -82,26 +112,29 @@
"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": "Буфер обмена или drag & drop",
"close": "Закрыть",
"close-board": "Закрыть доску",
"close-board-pop": "Вы можете восстановить доску, нажав “Архивы” в заголовке.",
+ "color-black": "черный",
+ "color-blue": "синий",
"color-green": "зеленый",
- "color-yellow": "желтый",
+ "color-lime": "лимоновый",
"color-orange": "оранджевый",
- "color-red": "красный",
+ "color-pink": "зорозвый",
"color-purple": "фиолетовый",
- "color-blue": "синий",
+ "color-red": "красный",
"color-sky": "голубой",
- "color-lime": "лимоновый",
- "color-pink": "зорозвый",
- "color-black": "черный",
+ "color-yellow": "желтый",
"comment": "Отправить",
"comment-placeholder": "Написать комментарий",
"computer": "Загрузить с компьютера",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Создать доску",
"createLabelPopup-title": "Создать метку",
"current": "Текущий",
+ "date": "Date",
"decline": "Понизить",
"default-avatar": "Стандартный аватар",
"delete": "Удалить",
@@ -122,7 +156,10 @@
"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": "Аккаунт создан для вас здесь __url__",
@@ -134,9 +171,9 @@
"email-invite-text": "Дорогой __user__,\n\n__inviter__ пригласил вас на доску \"__board__\" для сотрудничества.\n\nПожайлуйста проследуйте по ссылке:\n\n__url__\n\nСпасибо.",
"email-resetPassword-subject": "Перейдите по ссылке, чтобы сбросить пароль __url__",
"email-resetPassword-text": "Привет __user__,\n\nДля сброса пароля перейдите по ссылке.\n\n__url__\n\nThanks.",
+ "email-sent": "Email отправлен",
"email-verifyEmail-subject": "Подтвердите Email перейдя по ссылке __url__",
"email-verifyEmail-text": "Привет __user__,\n\nДля подтверждения Email перейдите по ссылке.\n\n__url__\n\nСпасибо.",
- "email-sent": "Email отправлен",
"error-board-doesNotExist": "Доска не найдена",
"error-board-notAdmin": "Вы должны обладать правами админстратора, чтобы сделать это",
"error-board-notAMember": "Вы должны быть пользователем доски, чтобы сделать это",
@@ -146,26 +183,33 @@
"error-user-doesNotExist": "Пользователь не найден",
"error-user-notAllowSelf": "Нельзя выполнить это действие на себе",
"error-user-notCreated": "Пользователь не создан",
+ "error-username-taken": "This username is already taken",
+ "export-board": "Export board",
"filter": "Фильтр",
"filter-cards": "Фильтр карточек",
"filter-clear": "Очистить фильтр",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filter is on",
"filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
"filter-to-selection": "Filter to selection",
"fullname": "Полное имя",
"header-logo-title": "Вернуться к доскам.",
+ "hide-system-messages": "Hide system messages",
"home": "Главная",
"import": "Импорт",
"import-board": "Импорт с Trello",
+ "import-board-title": "Import board from Trello",
"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-members-map": "Вы ипортировали доску с пользователями. Пожалуйста, составьте карту пользователей, которых вы хотите импортировать в Wekan пользователей ",
+ "import-map-members": "Map members",
+ "import-members-map": "Вы ипортировали доску с пользователями. Пожалуйста, составьте карту пользователей, которых вы хотите импортировать в Wekan пользователей",
"import-show-user-mapping": "Пересмотреть карту пользователей",
"import-user-select": "Выберите Wekan-пользователя, которого вы хотите использовать в качестве пользователя",
+ "importMapMembersAddPopup-title": "Select Wekan member",
"info": "Информация",
"initials": "Инициалы",
+ "invalid-date": "Invalid date",
"joined": "вступил",
"just-invited": "Вы только пригласили на эту доску",
"keyboard-shortcuts": "Сочетания клавиш",
@@ -185,15 +229,20 @@
"listImportCardPopup-title": "Импортировать Trello карточку",
"lists": "Списки",
"log-out": "Выйти",
+ "log-in": "Войти",
"loginPopup-title": "Войти",
- "mapMembersPopup-title": "Карта пользователей",
- "mapMembersAddPopup-title": "Выбрать Wekan пользователя",
"memberMenuPopup-title": "Настройки пользователя",
"members": "Участники",
"menu": "Меню",
+ "move-selection": "Move selection",
"moveCardPopup-title": "Переместить карточку",
+ "moveCardToBottom-title": "Move to Bottom",
+ "moveCardToTop-title": "Move to Top",
+ "moveSelectionPopup-title": "Move selection",
"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": "Нет карточек в архиве.",
@@ -202,15 +251,18 @@
"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": "Предпросмотр",
- "previewClipboardImagePopup-title": "Предпросмотр",
"previewAttachedImagePopup-title": "Предпросмотр",
+ "previewClipboardImagePopup-title": "Предпросмотр",
"private": "Закрытая",
"private-desc": "Эта доска с ограниченным доступом. Только участники могут работать с ней.",
"profile": "Профиль",
@@ -220,6 +272,7 @@
"remove-cover": "Открепить",
"remove-from-board": "Удалить с доски",
"remove-label": "Удалить метку",
+ "remove-list": "Remove the list",
"remove-member": "Удалить участника",
"remove-member-from-card": "Удалить из карточки",
"remove-member-pop": "Удалить участника __name__ (__username__) из доски __boardTitle__? Участник будет удален из всех карточек. Также он получит уведомление о совершаемом действии.",
@@ -239,22 +292,33 @@
"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": "",
+ "starred-boards-description": "Starred boards show up at the top of your boards list.",
"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": "Что вы хотите сделать?"
-}
+} \ No newline at end of file
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
new file mode 100644
index 00000000..af7b4efc
--- /dev/null
+++ b/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š ?"
+} \ No newline at end of file
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index c05833bb..47336f66 100755..100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.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": "İşlemler",
"activities": "Aktiviteler",
"activity": "Etkinlik",
@@ -16,10 +36,13 @@
"activity-removed": "removed %s from %s",
"activity-sent": "sent %s to %s",
"activity-unjoined": "unjoined %s",
+ "activity-checklist-added": "added checklist to %s",
"add": "Ekle",
"add-attachment": "Add an attachment",
"add-board": "Yeni bir pano ekle",
"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",
@@ -31,6 +54,8 @@
"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": "Arşiv",
"archive-all": "Tümünü Arşivle",
"archive-board": "Archive Board",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "Ek dosya silme işlemi kalıcıdır. Geri dönüşü yok",
"attachmentDeletePopup-title": "Ek Dosya Silinsin Mi?",
"attachments": "Ek Dosyalar",
+ "auto-watch": "Automatically watch boards when create it",
"avatar-too-big": "The avatar is too large (70Kb max)",
"back": "Geri",
"board-change-color": "Change color",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Pano Adı Değiştirme",
"boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir",
- "boardImportBoardPopup-title": "Import board from Trello",
+ "boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Panolar",
"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-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": "Kart Silinsin mi?",
"cardDetailsActionsPopup-title": "Card Actions",
@@ -82,10 +112,13 @@
"change-avatar": "Avatar Değiştir",
"change-password": "Parola Değiştir",
"change-permissions": "Change permissions",
+ "change-settings": "Change Settings",
"changeAvatarPopup-title": "Avatar Değiştir",
"changeLanguagePopup-title": "Dil Değiştir",
"changePasswordPopup-title": "Parola Değiştir",
"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-unstar": "Bu panunun yıldızını kaldırmak için tıkla.",
"clipboard": "Clipboard or drag & drop",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "Pano Oluşturma",
"createLabelPopup-title": "Etiket Oluşturma",
"current": "current",
+ "date": "Date",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Sil",
@@ -122,7 +156,10 @@
"edit": "Düzenle",
"edit-avatar": "Avatar Değiştir",
"edit-profile": "Profili Düzenle",
+ "editCardStartDatePopup-title": "Change start date",
+ "editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Etiket Değiştirme",
+ "editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Profili Düzenle",
"email": "E-posta",
"email-enrollAccount-subject": "An account created for you on __siteName__",
@@ -146,27 +183,33 @@
"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": "Kartları Süz",
"filter-clear": "Clear filter",
+ "filter-no-label": "No label",
+ "filter-no-member": "No member",
"filter-on": "Filter is on",
"filter-on-desc": "Bu panodaki kartları süzüyorsunuz. Süzgeci düzenlemek için tıklayın.",
"filter-to-selection": "Filter to selection",
"fullname": "Ad Soyad",
"header-logo-title": "Panolar sayfanıza geri dön.",
+ "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-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-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",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "Import a Trello card",
"lists": "Lists",
"log-out": "Oturum Kapat",
+ "log-in": "Oturum Aç",
"loginPopup-title": "Oturum Aç",
- "mapMembersAddPopup-title": "Select Wekan member",
- "mapMembersPopup-title": "Map members",
"memberMenuPopup-title": "Member Settings",
"members": "Üyeler",
"menu": "Menü",
"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": "Panolarım",
"name": "Adı",
"no-archived-cards": "No archived cards.",
@@ -205,12 +251,15 @@
"normal": "Normal",
"normal-desc": "Kartları görüntüler ve düzenler. Ayarları değiştiremez.",
"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ı",
"or": "or",
"page-maybe-private": "Bu sayfa özel olabilir. <a href='%s'>Oturum açarak</a> görülebilir.",
"page-not-found": "Sayda bulunamadı.",
"password": "Parola",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
+ "participating": "Participating",
"preview": "Preview",
"previewAttachedImagePopup-title": "Preview",
"previewClipboardImagePopup-title": "Preview",
@@ -223,6 +272,7 @@
"remove-cover": "Remove Cover",
"remove-from-board": "Remove from Board",
"remove-label": "Remove the label",
+ "remove-list": "Remove the list",
"remove-member": "Üyeyi Çı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.",
@@ -242,6 +292,7 @@
"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": "Bir Hesap Oluştur",
"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",
@@ -250,14 +301,24 @@
"team": "Takım",
"this-board": "bu panoyu",
"this-card": "bu kart",
+ "time": "Time",
"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",
"unsaved-description": "You have an unsaved description.",
+ "unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Upload an avatar",
"uploaded-avatar": "Uploaded an avatar",
"username": "Kullanıcı adı",
"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?"
-}
+} \ No newline at end of file
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 4cfd03f0..0f5871c3 100755..100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -1,25 +1,48 @@
{
"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": "操作",
"activities": "活动",
"activity": "活动",
"activity-added": "添加 %s 至 %s",
- "activity-archived": "删除 %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-joined": "已关联 %s",
"activity-moved": "将 %s 从 %s 移动到 %s",
"activity-on": "在 %s",
- "activity-removed": "移除 %s 从 %s 中",
+ "activity-removed": "从 %s 中移除 %s",
"activity-sent": "发送 %s 至 %s",
- "activity-unjoined": "解除关联 %s",
+ "activity-unjoined": "已解除 %s 关联",
+ "activity-checklist-added": "已经将清单添加到 %s",
"add": "添加",
"add-attachment": "添加附件",
"add-board": "添加新看板",
"add-card": "添加卡片",
+ "add-checklist": "添加清单",
+ "add-checklist-item": "扩充清单",
"add-cover": "添加封面",
"add-label": "添加标签",
"add-list": "添加清单",
@@ -31,6 +54,8 @@
"all-boards": "全部看板",
"and-n-other-card": "和其他 __count__ 个卡片",
"and-n-other-card_plural": "和其他 __count__ 个卡片",
+ "apply": "应用",
+ "app-is-offline": "处于离线状态,刷新页面将导致数据丢失。",
"archive": "归档",
"archive-all": "全部归档",
"archive-board": "归档看板",
@@ -46,6 +71,7 @@
"attachment-delete-pop": "删除附件的操作不可逆。",
"attachmentDeletePopup-title": "删除附件?",
"attachments": "附件",
+ "auto-watch": "创建看板时自动关注",
"avatar-too-big": "头像太大 (最大 70 Kb)",
"back": "返回",
"board-change-color": "更改颜色",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "修改看板背景",
"boardChangeTitlePopup-title": "重命名看板",
"boardChangeVisibilityPopup-title": "更改可视级别",
- "boardImportBoardPopup-title": "从 Trello 导入看板",
+ "boardChangeWatchPopup-title": "更改关注状态",
"boardMenuPopup-title": "看板菜单",
"boards": "看板",
"bucket-example": "例如 “目标清单”",
@@ -66,11 +92,15 @@
"card-delete-notice": "彻底删除的操作不可恢复,你将会丢失该卡片相关的所有操作记录。",
"card-delete-pop": "所有的动作将从活动动态中被移除且您将无法重新打开该卡片。此操作无法撤销。",
"card-delete-suggest-archive": "你可以将卡片从看板中归档至回收箱,但保留相关活动。",
+ "card-due": "到期",
+ "card-due-on": "期限",
"card-edit-attachments": "编辑附件",
"card-edit-labels": "编辑标签",
"card-edit-members": "编辑成员",
"card-labels-title": "更改该卡片上的标签",
"card-members-title": "在该卡片中添加或移除看板成员",
+ "card-start": "开始",
+ "card-start-on": "始于",
"cardAttachmentsPopup-title": "附件来源",
"cardDeletePopup-title": "彻底删除卡片?",
"cardDetailsActionsPopup-title": "卡片动作",
@@ -82,10 +112,13 @@
"change-avatar": "更改头像",
"change-password": "更改密码",
"change-permissions": "更改权限",
+ "change-settings": "更改设置",
"changeAvatarPopup-title": "更改头像",
"changeLanguagePopup-title": "更改语言",
"changePasswordPopup-title": "更改密码",
"changePermissionsPopup-title": "更改权限",
+ "changeSettingsPopup-title": "更改设置",
+ "checklists": "清单",
"click-to-star": "点此来标记该看板",
"click-to-unstar": "点此来去除该看板的标记",
"clipboard": "剪贴板或者拖放文件",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "创建看板",
"createLabelPopup-title": "创建标签",
"current": "当前",
+ "date": "日期",
"decline": "拒绝",
"default-avatar": "默认头像",
"delete": "删除",
@@ -122,7 +156,10 @@
"edit": "编辑",
"edit-avatar": "更改头像",
"edit-profile": "编辑资料",
+ "editCardStartDatePopup-title": "修改起始日期",
+ "editCardDueDatePopup-title": "修改截止日期",
"editLabelPopup-title": "更改标签",
+ "editNotificationPopup-title": "编辑通知",
"editProfilePopup-title": "编辑资料",
"email": "邮箱",
"email-enrollAccount-subject": "已为您在 __siteName__ 创建帐号",
@@ -146,27 +183,33 @@
"error-user-doesNotExist": "该用户不存在",
"error-user-notAllowSelf": "不允许对自己执行此操作",
"error-user-notCreated": "该用户未能成功创建",
+ "error-username-taken": "此用户名已存在",
"export-board": "导出看板",
"filter": "过滤",
"filter-cards": "过滤卡片",
"filter-clear": "清空过滤器",
+ "filter-no-label": "无标签",
+ "filter-no-member": "无成员",
"filter-on": "过滤器启用",
"filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。",
"filter-to-selection": "要选择的过滤器",
"fullname": "全称",
"header-logo-title": "返回您的看板页",
+ "hide-system-messages": "隐藏系统消息",
"home": "首页",
"import": "导入",
"import-board": "从 Trello 导入",
+ "import-board-title": "从Trello导入看板",
"import-board-trello-instruction": "在你的Trello看板中,点击“菜单”,然后选择“更多”,“打印与导出”,“导出为 JSON” 并拷贝结果文本",
- "import-card": "导入 Trello 卡片",
- "import-card-trello-instruction": "进入一个 Trello 卡片,选择“分享与更多”,然后选择 “导出为 JSON” 并且拷贝结果文本",
"import-json-placeholder": "粘贴您有效的 JSON 数据至此",
+ "import-map-members": "映射成员",
"import-members-map": "您导入的看板有一些成员。请将您想导入的成员映射到 Wekan 用户。",
"import-show-user-mapping": "核对成员映射",
"import-user-select": "选择您想将此成员映射到的 Wekan 用户",
+ "importMapMembersAddPopup-title": "选择Wekan成员",
"info": "信息",
"initials": "缩写",
+ "invalid-date": "无效日期",
"joined": "关联",
"just-invited": "您刚刚被邀请加入此看板",
"keyboard-shortcuts": "键盘快捷键",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "导入 Trello 卡片",
"lists": "清单",
"log-out": "登出",
+ "log-in": "登录",
"loginPopup-title": "登录",
- "mapMembersAddPopup-title": "选择 Wekan 成员",
- "mapMembersPopup-title": "映射成员",
"memberMenuPopup-title": "成员设置",
"members": "成员",
"menu": "菜单",
"move-selection": "移动选择",
"moveCardPopup-title": "移动卡片",
+ "moveCardToBottom-title": "移动至底端",
+ "moveCardToTop-title": "移动至顶端",
"moveSelectionPopup-title": "移动选择",
"multi-selection": "多选",
"multi-selection-on": "多选启用",
+ "muted": "静默",
+ "muted-info": "你将不会收到此看板的任何变更通知",
"my-boards": "我的看板",
"name": "名称",
"no-archived-cards": "没有已归档的卡片",
@@ -205,12 +251,15 @@
"normal": "普通",
"normal-desc": "可以创建以及编辑卡片,无法更改设置。",
"not-accepted-yet": "邀请尚未接受",
+ "notify-participate": "接收以创建者或成员身份参与的卡片的更新",
+ "notify-watch": "接收所有关注的面板、列表、及卡片的更新",
"optional": "可选",
"or": "或",
"page-maybe-private": "本页面被设为私有. 您必须 <a href='%s'>登录</a>以浏览其中内容。",
"page-not-found": "页面不存在。",
"password": "密码",
"paste-or-dragdrop": "从剪贴板粘贴,或者拖放文件到它上面 (仅限于图片)",
+ "participating": "参与",
"preview": "预览",
"previewAttachedImagePopup-title": "预览",
"previewClipboardImagePopup-title": "预览",
@@ -223,6 +272,7 @@
"remove-cover": "移除封面",
"remove-from-board": "从看板中删除",
"remove-label": "移除标签",
+ "remove-list": "删除清单",
"remove-member": "移除成员",
"remove-member-from-card": "从该卡片中移除",
"remove-member-pop": "确定从 __boardTitle__ 中移除 __name__ (__username__) 吗? 该成员将被从该看板的所有卡片中移除,同时他会收到一条提醒。",
@@ -234,7 +284,7 @@
"search": "搜索",
"select-color": "选择颜色",
"shortcut-assign-self": "分配当前卡片给自己",
- "shortcut-autocomplete-emojies": "自动补全表情",
+ "shortcut-autocomplete-emoji": "表情符号自动补全",
"shortcut-autocomplete-members": "自动补全成员",
"shortcut-clear-filters": "清空全部过滤器",
"shortcut-close-dialog": "关闭对话框",
@@ -242,7 +292,8 @@
"shortcut-show-shortcuts": "显示此快捷键列表",
"shortcut-toggle-filterbar": "切换过滤器边栏",
"shortcut-toggle-sidebar": "切换面板边栏",
- "signupPopup-title": " 创建账户",
+ "show-cards-minimum-count": "当列表中的卡片多于此阈值时将显示数量",
+ "signupPopup-title": "创建账户",
"star-board-title": "点此来标记该看板,它将会出现在您的看板列表顶部。",
"starred-boards": "已标记看板",
"starred-boards-description": "已标记看板将会出现在您的看板列表顶部。",
@@ -250,14 +301,24 @@
"team": "团队",
"this-board": "该看板",
"this-card": "该卡片",
+ "time": "时间",
"title": "标题",
+ "tracking": "跟踪",
+ "tracking-info": "当任何包含您(作为创建者或成员)的卡片发生变更时,您将得到通知。",
"unassign-member": "取消分配成员",
"unsaved-description": "存在未保存的描述",
+ "unwatch": "取消关注",
"upload": "上传",
"upload-avatar": "上传头像",
"uploaded-avatar": "头像已经上传",
"username": "用户名",
"view-it": "查看",
"warn-list-archived": "警告: 该卡片位于已归档清单中",
+ "watch": "关注",
+ "watching": "已关注",
+ "watching-info": "当此看板发生变更时会通知你",
+ "welcome-board": "“欢迎”看板",
+ "welcome-list1": "基本",
+ "welcome-list2": "高阶",
"what-to-do": "要做什么?"
} \ No newline at end of file
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index 9479acd3..6658bea7 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -1,10 +1,30 @@
{
"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": "操作",
"activities": "活動",
"activity": "活動",
"activity-added": "新增 %s 至 %s",
- "activity-archived": "刪除 %s",
+ "activity-archived": "封存 %s",
"activity-attached": "新增附件 %s 至 %s",
"activity-created": "建立 %s",
"activity-excluded": "排除 %s 從 %s",
@@ -16,10 +36,13 @@
"activity-removed": "移除 %s 從 %s 中",
"activity-sent": "寄送 %s 至 %s",
"activity-unjoined": "解除關聯 %s",
+ "activity-checklist-added": "新增待辦清單至 %s",
"add": "新增",
"add-attachment": "新增附件",
"add-board": "新增看板",
"add-card": "新增卡片",
+ "add-checklist": "新增待辦清單",
+ "add-checklist-item": "新增項目",
"add-cover": "新增封面",
"add-label": "新增標籤",
"add-list": "新增清單",
@@ -31,6 +54,8 @@
"all-boards": "全部看板",
"and-n-other-card": "和其他 __count__ 個卡片",
"and-n-other-card_plural": "和其他 __count__ 個卡片",
+ "apply": "送出",
+ "app-is-offline": "目前狀態為離線,若整重將會造成資料遺失",
"archive": "刪除",
"archive-all": "全部刪除",
"archive-board": "刪除看板",
@@ -38,14 +63,15 @@
"archive-list": "刪除該清單",
"archive-selection": "刪除所選內容",
"archiveBoardPopup-title": "確定要刪除看板嗎?",
- "archived-items": "回收筒",
- "archives": "回收筒",
+ "archived-items": "封存",
+ "archives": "封存",
"assign-member": "分配成員",
"attached": "附加",
"attachment": "附件",
"attachment-delete-pop": "刪除附件的操作無法還原。",
"attachmentDeletePopup-title": "刪除附件?",
"attachments": "附件",
+ "auto-watch": "新增看板時自動加入觀察",
"avatar-too-big": "大頭貼太大 (最大 70 Kb)",
"back": "返回",
"board-change-color": "更改顏色",
@@ -56,7 +82,7 @@
"boardChangeColorPopup-title": "修改看板背景",
"boardChangeTitlePopup-title": "重新命名看板",
"boardChangeVisibilityPopup-title": "更改可視級別",
- "boardImportBoardPopup-title": "從 Trello 匯入看板",
+ "boardChangeWatchPopup-title": "更改觀察",
"boardMenuPopup-title": "看板選單",
"boards": "看板",
"bucket-example": "例如 “目標清單”",
@@ -66,11 +92,15 @@
"card-delete-notice": "徹底刪除的操作不可復原,你將會遺失該卡片相關的所有操作記錄。",
"card-delete-pop": "所有的動作將從活動動態中被移除且您將無法重新打開該卡片。此操作無法復原。",
"card-delete-suggest-archive": "你可以將卡片從看板中刪除至回收筒,但保留相關活動。",
+ "card-due": "到期",
+ "card-due-on": "到期",
"card-edit-attachments": "編輯附件",
"card-edit-labels": "編輯標籤",
"card-edit-members": "編輯成員",
"card-labels-title": "更改該卡片上的標籤",
"card-members-title": "在該卡片中新增或移除看板成員",
+ "card-start": "開始",
+ "card-start-on": "開始",
"cardAttachmentsPopup-title": "附件來源",
"cardDeletePopup-title": "徹底刪除卡片?",
"cardDetailsActionsPopup-title": "卡片動作",
@@ -82,10 +112,13 @@
"change-avatar": "更改大頭貼",
"change-password": "更改密碼",
"change-permissions": "更改許可權",
+ "change-settings": "更改設定",
"changeAvatarPopup-title": "更改大頭貼",
"changeLanguagePopup-title": "更改語言",
"changePasswordPopup-title": "更改密碼",
- "changePermissionsPopup-title": "更改權限",
+ "changePermissionsPopup-title": "更改許可權",
+ "changeSettingsPopup-title": "更改設定",
+ "checklists": "待辦清單",
"click-to-star": "點此來標記該看板",
"click-to-unstar": "點此來去除該看板的標記",
"clipboard": "剪貼簿貼上或者拖曳檔案",
@@ -109,6 +142,7 @@
"createBoardPopup-title": "建立看板",
"createLabelPopup-title": "建立標籤",
"current": "目前",
+ "date": "日期",
"decline": "拒絕",
"default-avatar": "預設大頭貼",
"delete": "刪除",
@@ -122,7 +156,10 @@
"edit": "編輯",
"edit-avatar": "更改大頭貼",
"edit-profile": "編輯資料",
+ "editCardStartDatePopup-title": "更改開始日期",
+ "editCardDueDatePopup-title": "更改到期日期",
"editLabelPopup-title": "更改標籤",
+ "editNotificationPopup-title": "更改通知",
"editProfilePopup-title": "編輯資料",
"email": "電子郵件",
"email-enrollAccount-subject": "您在 __siteName__ 的帳號已經建立",
@@ -146,27 +183,33 @@
"error-user-doesNotExist": "該使用者不存在",
"error-user-notAllowSelf": "不允許對自己執行此操作",
"error-user-notCreated": "該使用者未能成功建立",
+ "error-username-taken": "這個使用者名稱已被使用",
"export-board": "Export board",
"filter": "過濾",
"filter-cards": "過濾卡片",
"filter-clear": "清空過濾條件",
+ "filter-no-label": "沒有標籤",
+ "filter-no-member": "沒有成員",
"filter-on": "過濾條件啟用",
"filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。",
"filter-to-selection": "要選擇的過濾條件",
"fullname": "全稱",
"header-logo-title": "返回您的看板頁面",
+ "hide-system-messages": "隱藏系統訊息",
"home": "首頁",
"import": "匯入",
- "import-board": "從 Trello 匯入",
+ "import-board": "匯入 Trello 資料",
+ "import-board-title": "匯入在 Trello 的看板",
"import-board-trello-instruction": "在你的Trello看板中,點選“功能表”,然後選擇“更多”,“列印與匯出”,“匯出為 JSON” 並拷貝結果文本",
- "import-card": "匯入 Trello 卡片",
- "import-card-trello-instruction": "進入一個 Trello 卡片,選擇“分享與更多”,然後選擇 “匯出為 JSON” 並且拷貝結果文本",
"import-json-placeholder": "貼上您有效的 JSON 資料至此",
+ "import-map-members": "複製成員",
"import-members-map": "您匯入的看板有一些成員。請將您想匯入的成員映射到 Wekan 使用者。",
"import-show-user-mapping": "核對成員映射",
"import-user-select": "選擇您想將此成員映射到的 Wekan 使用者",
+ "importMapMembersAddPopup-title": "選擇 Wekan 成員",
"info": "資訊",
"initials": "縮寫",
+ "invalid-date": "無效的日期",
"joined": "關聯",
"just-invited": "您剛剛被邀請加入此看板",
"keyboard-shortcuts": "鍵盤快速鍵",
@@ -186,17 +229,20 @@
"listImportCardPopup-title": "匯入 Trello 卡片",
"lists": "清單",
"log-out": "登出",
+ "log-in": "登入",
"loginPopup-title": "登入",
- "mapMembersAddPopup-title": "選擇 Wekan 成員",
- "mapMembersPopup-title": "映射成員",
"memberMenuPopup-title": "成員更改",
"members": "成員",
"menu": "選單",
"move-selection": "移動被選擇的項目",
"moveCardPopup-title": "移動卡片",
- "moveSelectionPopup-title": "Move selection",
+ "moveCardToBottom-title": "移至最下面",
+ "moveCardToTop-title": "移至最上面",
+ "moveSelectionPopup-title": "移動選取的項目",
"multi-selection": "多選",
"multi-selection-on": "多選啟用",
+ "muted": "靜音",
+ "muted-info": "您將不會收到有關這個看板的任何訊息",
"my-boards": "我的看板",
"name": "名稱",
"no-archived-cards": "沒有已刪除的卡片",
@@ -205,12 +251,15 @@
"normal": "普通",
"normal-desc": "可以建立以及編輯卡片,無法更改。",
"not-accepted-yet": "邀請尚未接受",
+ "notify-participate": "接收與你有關的卡片更新",
+ "notify-watch": "接收您關注的看板、清單或卡片的更新",
"optional": "選擇性的",
"or": "或",
"page-maybe-private": "本頁面被設為私有. 您必須 <a href='%s'>登入</a>以瀏覽其中內容。",
"page-not-found": "頁面不存在。",
"password": "密碼",
"paste-or-dragdrop": "從剪貼簿貼上,或者拖曳檔案到它上面 (僅限於圖片)",
+ "participating": "參與",
"preview": "預覽",
"previewAttachedImagePopup-title": "預覽",
"previewClipboardImagePopup-title": "預覽",
@@ -223,6 +272,7 @@
"remove-cover": "移除封面",
"remove-from-board": "從看板中刪除",
"remove-label": "移除標籤",
+ "remove-list": "移除清單",
"remove-member": "移除成員",
"remove-member-from-card": "從該卡片中移除",
"remove-member-pop": "確定從 __boardTitle__ 中移除 __name__ (__username__) 嗎? 該成員將被從該看板的所有卡片中移除,同時他會收到一則提醒。",
@@ -234,7 +284,7 @@
"search": "搜尋",
"select-color": "選擇顏色",
"shortcut-assign-self": "分配目前卡片給自己",
- "shortcut-autocomplete-emojies": "自動完成 emojis",
+ "shortcut-autocomplete-emoji": "自動完成表情符號",
"shortcut-autocomplete-members": "自動補齊成員",
"shortcut-clear-filters": "清空全部過濾條件",
"shortcut-close-dialog": "關閉對話方塊",
@@ -242,6 +292,7 @@
"shortcut-show-shortcuts": "顯示此快速鍵清單",
"shortcut-toggle-filterbar": "切換過濾程式邊欄",
"shortcut-toggle-sidebar": "切換面板邊欄",
+ "show-cards-minimum-count": "顯示卡片數量,當內容超過數量",
"signupPopup-title": "建立帳戶",
"star-board-title": "點此標記該看板,它將會出現在您的看板列表上方。",
"starred-boards": "已標記看板",
@@ -250,14 +301,24 @@
"team": "團隊",
"this-board": "這個看板",
"this-card": "這個卡片",
+ "time": "時間",
"title": "標題",
+ "tracking": "追蹤",
+ "tracking-info": "你將會收到與你有關的卡片的所有變更通知",
"unassign-member": "取消分配成員",
"unsaved-description": "未儲存的描述",
+ "unwatch": "取消觀察",
"upload": "上傳",
"upload-avatar": "上傳大頭貼",
"uploaded-avatar": "大頭貼已經上傳",
"username": "使用者名稱",
"view-it": "檢視",
"warn-list-archived": "警告: 該卡片位於已刪除的清單中",
+ "watch": "觀察",
+ "watching": "觀察中",
+ "watching-info": "你將會收到關於這個看板所有的變更通知",
+ "welcome-board": "歡迎進入看板",
+ "welcome-list1": "基本",
+ "welcome-list2": "進階",
"what-to-do": "要做什麼?"
} \ No newline at end of file
diff --git a/meta/dwrensha-pgp-sig b/meta/dwrensha-pgp-sig
new file mode 100644
index 00000000..0ee50fa4
--- /dev/null
+++ b/meta/dwrensha-pgp-sig
Binary files differ
diff --git a/meta/keyring b/meta/keyring
index e34b146d..b4d58533 100644
--- a/meta/keyring
+++ b/meta/keyring
Binary files differ
diff --git a/models/activities.js b/models/activities.js
index aa2ea3ec..7d262ec6 100644
--- a/models/activities.js
+++ b/models/activities.js
@@ -35,6 +35,9 @@ Activities.helpers({
attachment() {
return Attachments.findOne(this.attachmentId);
},
+ checklist() {
+ return Checklists.findOne(this.checklistId);
+ },
});
Activities.before.insert((userId, doc) => {
@@ -102,6 +105,10 @@ if (Meteor.isServer) {
const attachment = activity.attachment();
params.attachment = attachment._id;
}
+ if (activity.checklistId) {
+ const checklist = activity.checklist();
+ params.checklist = checklist.title;
+ }
if (board) {
const watchingUsers = _.pluck(_.where(board.watchers, {level: 'watching'}), 'userId');
const trackingUsers = _.pluck(_.where(board.watchers, {level: 'tracking'}), 'userId');
diff --git a/models/boards.js b/models/boards.js
index 3051ef1e..14943d61 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -249,7 +249,7 @@ Boards.mutations({
return { $set: { title }};
},
- setDesciption(description) {
+ setDescription(description) {
return { $set: {description} };
},
diff --git a/models/cardComments.js b/models/cardComments.js
index ce6edf3c..070c148e 100644
--- a/models/cardComments.js
+++ b/models/cardComments.js
@@ -57,6 +57,12 @@ CardComments.helpers({
CardComments.hookOptions.after.update = { fetchPrevious: false };
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) => {
Activities.insert({
userId,
diff --git a/models/cards.js b/models/cards.js
index 84fbb6c2..f6bd0b06 100644
--- a/models/cards.js
+++ b/models/cards.js
@@ -56,6 +56,14 @@ Cards.attachSchema(new SimpleSchema({
type: [String],
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
// the `members` field?
userId: {
@@ -133,6 +141,36 @@ Cards.helpers({
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() {
const board = this.board();
return FlowRouter.url('card', {
@@ -207,6 +245,22 @@ Cards.mutations({
unsetCover() {
return { $unset: { coverId: '' }};
},
+
+ setStart(startAt) {
+ return { $set: { startAt }};
+ },
+
+ unsetStart() {
+ return { $unset: { startAt: '' }};
+ },
+
+ setDue(dueAt) {
+ return { $set: { dueAt }};
+ },
+
+ unsetDue() {
+ return { $unset: { dueAt: '' }};
+ },
});
if (Meteor.isServer) {
diff --git a/models/checklists.js b/models/checklists.js
new file mode 100644
index 00000000..35be4dcc
--- /dev/null
+++ b/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);
+ }
+ });
+}
diff --git a/models/lists.js b/models/lists.js
index 9ae2e4f7..682fb096 100644
--- a/models/lists.js
+++ b/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) => {
if (doc.archived) {
Activities.insert({
diff --git a/models/users.js b/models/users.js
index 790ee0a1..58513231 100644
--- a/models/users.js
+++ b/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.attachSchema(new SimpleSchema({
@@ -55,6 +59,10 @@ Users.attachSchema(new SimpleSchema({
type: String,
optional: true,
},
+ 'profile.hiddenSystemMessages': {
+ type: Boolean,
+ optional: true,
+ },
'profile.initials': {
type: String,
optional: true,
@@ -71,6 +79,10 @@ Users.attachSchema(new SimpleSchema({
type: [String],
optional: true,
},
+ 'profile.showCardsCountAt': {
+ type: Number,
+ optional: true,
+ },
'profile.starredBoards': {
type: [String],
optional: true,
@@ -147,6 +159,11 @@ Users.helpers({
return _.contains(notifications, activityId);
},
+ hasHiddenSystemMessages() {
+ const profile = this.profile || {};
+ return profile.hiddenSystemMessages || false;
+ },
+
getEmailBuffer() {
const {emailBuffer = []} = this.profile;
return emailBuffer;
@@ -167,6 +184,11 @@ Users.helpers({
}
},
+ getLimitToShowCardsCount() {
+ const profile = this.profile || {};
+ return profile.showCardsCountAt;
+ },
+
getName() {
const profile = this.profile || {};
return profile.fullname || this.username;
@@ -227,6 +249,14 @@ Users.mutations({
this.addTag(tag);
},
+ toggleSystem(value = false) {
+ return {
+ $set: {
+ 'profile.hiddenSystemMessages': !value,
+ },
+ };
+ },
+
addNotification(activityId) {
return {
$addToSet: {
@@ -262,6 +292,10 @@ Users.mutations({
setAvatarUrl(avatarUrl) {
return { $set: { 'profile.avatarUrl': avatarUrl }};
},
+
+ setShowCardsCountAt(limit) {
+ return { $set: { 'profile.showCardsCountAt': limit } };
+ },
});
Meteor.methods({
@@ -274,6 +308,14 @@ Meteor.methods({
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) {
@@ -394,24 +436,26 @@ if (Meteor.isServer) {
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);
+ });
});
});
});
- });
+ }
}
diff --git a/package.json b/package.json
index e8511309..f7669b05 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "0.10.1",
+ "version": "0.11.0",
"description": "The open-source Trello-like kanban",
"private": true,
"scripts": {
@@ -9,13 +9,13 @@
},
"repository": {
"type": "git",
- "url": "git+https://github.com/wekan/wekan.git"
+ "url": "git+https://github.com/wefork/wekan.git"
},
"license": "MIT",
"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": {
"eslint": "^2.0.0"
},
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index d9e7da3d..b70b3be6 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
- appVersion = 12,
+ appVersion = 17,
# 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.
minUpgradableAppVersion = 0,
@@ -58,13 +58,14 @@ const pkgdef :Spk.PackageDefinition = (
),
website = "https://wekan.io",
- codeUrl = "https://github.com/wekan/wekan",
+ codeUrl = "https://github.com/wefork/wekan",
license = (openSource = mit),
categories = [productivity, office],
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",
@@ -173,8 +174,48 @@ const pkgdef :Spk.PackageDefinition = (
#
# XXX Administrators configuration options aren’t implemented yet, so this
# 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 = [
# Note that this defines the *entire* environment seen by your app.
(key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),
+ (key = "SANDSTORM", value = "1"),
(key = "METEOR_SETTINGS", value = "{\"public\": {\"sandstorm\": true}}")
]
);
diff --git a/sandstorm.js b/sandstorm.js
index e7a67f76..3e04d79f 100644
--- a/sandstorm.js
+++ b/sandstorm.js
@@ -21,6 +21,187 @@ const sandstormBoard = {
};
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) {
const isActive = permissions.indexOf('participate') > -1;
const isAdmin = permissions.indexOf('configure') > -1;
@@ -58,29 +239,6 @@ if (isSandstorm && Meteor.isServer) {
Location: base + boardPath,
});
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
@@ -126,6 +284,29 @@ if (isSandstorm && Meteor.isServer) {
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
// the visibility setting (“public” or “private”) in the UI as does the main
// Meteor application. We need to enforce “public” visibility as the sharing
@@ -137,6 +318,77 @@ if (isSandstorm && Meteor.isServer) {
}
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,
// we need to explicitly expose meta data like the page title or the URL path
// 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}/, '');
};
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
diff --git a/server/lib/utils.js b/server/lib/utils.js
index b59671fb..bc3807bb 100644
--- a/server/lib/utils.js
+++ b/server/lib/utils.js
@@ -5,3 +5,8 @@ allowIsBoardAdmin = function(userId, board) {
allowIsBoardMember = function(userId, board) {
return board && board.hasMember(userId);
};
+
+allowIsBoardMemberByCard = function(userId, card) {
+ const board = card.board();
+ return board && board.hasMember(userId);
+};
diff --git a/server/publications/activities.js b/server/publications/activities.js
index 38c61ebf..14459bf8 100644
--- a/server/publications/activities.js
+++ b/server/publications/activities.js
@@ -3,16 +3,16 @@
// 2. The card activity tab
// 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) => {
return ['board', 'card'].indexOf(x) !== -1;
}));
check(id, String);
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,
sort: {createdAt: -1},
});
diff --git a/server/publications/boards.js b/server/publications/boards.js
index cd3ef238..133082dd 100644
--- a/server/publications/boards.js
+++ b/server/publications/boards.js
@@ -60,6 +60,7 @@ Meteor.publish('archivedBoards', function() {
Meteor.publishRelations('board', function(boardId) {
check(boardId, String);
+ const thisUserId = this.userId;
this.cursor(Boards.find({
_id: boardId,
@@ -97,22 +98,28 @@ Meteor.publishRelations('board', function(boardId) {
this.cursor(Cards.find({ boardId }), function(cardId) {
this.cursor(CardComments.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();