diff options
47 files changed, 1124 insertions, 675 deletions
diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..3db61f5f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "packages/kadira:flow-router"] + path = packages/kadira:flow-router + url = https://github.com/wekan/flow-router.git diff --git a/.meteor/packages b/.meteor/packages index 32d7389c..7ede4008 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -50,7 +50,6 @@ arillo:flow-router-helpers audit-argument-checks kadira:blaze-layout kadira:dochead -kadira:flow-router meteorhacks:fast-render meteorhacks:picker meteorhacks:subs-manager @@ -76,3 +75,4 @@ templates:tabs verron:autosize simple:json-routes rajit:bootstrap3-datepicker +kadira:flow-router diff --git a/.travis.yml b/.travis.yml index db105d0a..9a760beb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,25 @@ -sudo: false +sudo: required + +env: + DOCKER_COMPOSE_VERSION: 1.11.2 + +before_install: + - sudo curl -fsSL https://get.docker.com/ | sh + - if [ -e /usr/local/bin/docker-compose ]; then sudo rm /usr/local/bin/docker-compose; fi + - sudo curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose + - sudo chmod +x docker-compose + - sudo mv docker-compose /usr/local/bin + - sudo docker-compose build --no-cache --force-rm + - sudo docker-compose up && docker ps -a + - sudo docker run wekan-app /bin/sh -c "npm test" + language: node_js + node_js: - "0.10.48" + install: - "npm install" + script: - "npm test" @@ -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, fa_IR:fa, fi_FI:fi, pt_BR:pt-BR, ro_RO:ro, zh_CN:zh-CN, zh_TW:zh-TW +lang_map = es_ES:es-ES, fa_IR:fa, fi_FI:fi, hu_HU:hu, 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 2cbc8f25..fa54f905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +# Upcoming Wekan release + +Known bugs: + +* https://github.com/wekan/wekan/issues/784 + +This release fixes the following bugs: + +* Remove invitation code if email sending failed. +* Show customized error msg while invitaion code is wrong during registration. +* Fix "internal error" while registration is done. +* Fix "cannot access disableRegistration of undefined" error. + +Thanks to GitHub user lkisme for contributions. + +# v0.17 2017-03-25 Wekan release + +Known bugs: + +* https://github.com/wekan/wekan/issues/784 + +This release fixes the following bugs: + +* Double slash problem on card pop-ups; +* No need for Array.prototype if using rest operator; +* Fix default font so Chinese is shown correctly. + Still looking for better solution for #914 although + commit had wrong number #707. + +Thanks to GitHub users mo-han, Serubin and vuxor for +their contributions. + # v0.16 2017-03-15 Wekan release Added missing changelog updates. @@ -1,5 +1,5 @@ FROM debian:wheezy -MAINTAINER wefork +MAINTAINER wekan # Declare Arguments ARG NODE_VERSION @@ -13,7 +13,7 @@ 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 NPM_VERSION ${NPM_VERSION:-4.2.0} ENV ARCHITECTURE ${ARCHITECTURE:-linux-x64} ENV SRC_PATH ${SRC_PATH:-./} @@ -44,14 +44,14 @@ RUN \ # 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 --keyserver ha.pool.sks-keyservers.net --recv-keys 9554F04D7259F04124DE6B476D5A82AC7E37093B && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 && \ + gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9 && \ + gpg --refresh-keys ha.pool.sks-keyservers.net && \ gpg --verify SHASUMS256.txt.asc && \ rm -R "$GNUPGHOME" SHASUMS256.txt.asc && \ \ @@ -77,6 +77,7 @@ RUN \ gosu wekan:wekan sh ./install_meteor.sh && \ \ # Build app + source /home/wekan/app/app.env && \ 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 && \ @@ -180,7 +180,7 @@ with [Meteor](https://www.meteor.com). [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/OCtpqb6.png +[screenshot_wefork]: http://i.imgur.com/lzvpeS9.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 diff --git a/app.env b/app.env new file mode 100755 index 00000000..b047d258 --- /dev/null +++ b/app.env @@ -0,0 +1,3 @@ +#!/bin/bash + +export PACKAGE_DIRS="$(pwd)/packages" diff --git a/client/components/main/layouts.styl b/client/components/main/layouts.styl index 1bc92b42..349ee743 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, "Yu Gothic", "Meiryo", sans-serif + font: 14px Roboto, "Helvetica Neue", Arial, Helvetica, sans-serif line-height: 18px color: #4d4d4d diff --git a/client/components/settings/invitationCode.js b/client/components/settings/invitationCode.js index e712c89a..a403d8ab 100644 --- a/client/components/settings/invitationCode.js +++ b/client/components/settings/invitationCode.js @@ -1,6 +1,6 @@ Template.invitationCode.onRendered(() => { - const disableRegistration = Settings.findOne().disableRegistration; - if(!disableRegistration){ + const setting = Settings.findOne(); + if (!setting || !setting.disableRegistration) { $('#invitationcode').hide(); } }); diff --git a/client/config/blazeHelpers.js b/client/config/blazeHelpers.js index ef075907..73ee24b6 100644 --- a/client/config/blazeHelpers.js +++ b/client/config/blazeHelpers.js @@ -18,6 +18,4 @@ Blaze.registerHelper('currentCard', () => { Blaze.registerHelper('getUser', (userId) => Users.findOne(userId)); -Blaze.registerHelper('concat', function (...args) { - return Array.prototype.slice.call(args, 0, -1).join(''); -}); +Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join('')); diff --git a/config/accounts.js b/config/accounts.js index 51c0f49e..279325fb 100644 --- a/config/accounts.js +++ b/config/accounts.js @@ -13,16 +13,20 @@ AccountsTemplates.addFields([{ displayName: 'Invitation Code', required: false, minLength: 6, - errStr: 'Invitation code doesn\'t exist', template: 'invitationCode', }]); +let sendVerificationEmail = false; +if (process.env.MAIL_URL) { + sendVerificationEmail = true; +} + AccountsTemplates.configure({ defaultLayout: 'userFormsLayout', defaultContentRegion: 'content', confirmPassword: false, enablePasswordChange: true, - sendVerificationEmail: true, + sendVerificationEmail, showForgotPasswordLink: true, onLogoutHook() { const homePage = 'home'; @@ -69,4 +73,3 @@ if (Meteor.isServer) { }; }); } - diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json index d7a6a65b..c1ffc478 100644 --- a/i18n/ar.i18n.json +++ b/i18n/ar.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "ماذا تريد أن تنجز?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json index bef0c6e4..ff25cf1f 100644 --- a/i18n/br.i18n.json +++ b/i18n/br.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json index 015a67ac..cf7535b7 100644 --- a/i18n/ca.i18n.json +++ b/i18n/ca.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Avançades", "what-to-do": "Què vols fer?", "admin-panel": "Tauler d'administració", - "system-setting": "Configuració del Sistema", "settings": "Configuració", "people": "Persones", "registration": "Registre", diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json index f2d8b33e..1c254b5c 100644 --- a/i18n/cs.i18n.json +++ b/i18n/cs.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "Co chcete dělat?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json index 4ad3153a..fdefb1f8 100644 --- a/i18n/de.i18n.json +++ b/i18n/de.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Fortgeschritten", "what-to-do": "Was wollen Sie tun?", "admin-panel": "Administration", - "system-setting": "Systemeinstellung", "settings": "Einstellungen", "people": "Nutzer", "registration": "Registrierung", diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 2e2f0ca1..19734045 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -327,7 +327,6 @@ "welcome-list2": "Advanced", "what-to-do": "What do you want to do?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json new file mode 100644 index 00000000..010371f2 --- /dev/null +++ b/i18n/eo.i18n.json @@ -0,0 +1,347 @@ +{ + "accept": "Akcepti", + "act-activity-notify": "[Wekan] Activity Notification", + "act-addAttachment": "attached __attachment__ to __card__", + "act-addComment": "commented on __card__: __comment__", + "act-createBoard": "kreiis __board__", + "act-createCard": "aldonis __card__ al __list__", + "act-createList": "aldonis __card__ al __board__", + "act-addBoardMember": "aldonis __member__ al __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": "aldonis __member__ al __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": "Akcioj", + "activities": "Aktivaĵoj", + "activity": "Aktivaĵo", + "activity-added": "aldonis %s al %s", + "activity-archived": "archived %s", + "activity-attached": "attached %s to %s", + "activity-created": "kreiis %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": "sendis %s al %s", + "activity-unjoined": "unjoined %s", + "activity-checklist-added": "added checklist to %s", + "add": "Aldoni", + "add-attachment": "Add an attachment", + "add-board": "Aldoni novan tavolo", + "add-card": "Aldoni karton", + "add-checklist": "Add a checklist", + "add-checklist-item": "Add an item to checklist", + "add-cover": "Add Cover", + "add-label": "Aldoni etikedo", + "add-list": "Aldoni liston", + "add-members": "Aldoni membrojn", + "added": "Aldonita", + "addMemberPopup-title": "Membroj", + "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": "Apliki", + "app-is-offline": "The application is currently offline, refreshing the page will cause data loss.", + "archive": "Arkivi", + "archive-all": "Arkivi ĉion", + "archive-board": "Archive Board", + "archive-card": "Arkivi karton", + "archive-list": "Arkivi liston", + "archive-selection": "Arkivi elekton", + "archiveBoardPopup-title": "Archive Board?", + "archived-items": "Archived Items", + "archives": "Arkivoj", + "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": "Reen", + "board-change-color": "Ŝanĝi koloron", + "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": "Karto arkivita.", + "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": "Redakti etikedojn", + "card-edit-members": "Redakti membroj", + "card-labels-title": "Change the labels for the card.", + "card-members-title": "Add or remove members of the board from the card.", + "card-start": "Komenco", + "card-start-on": "Komencas je ", + "cardAttachmentsPopup-title": "Attach From", + "cardDeletePopup-title": "Delete Card?", + "cardDetailsActionsPopup-title": "Card Actions", + "cardLabelsPopup-title": "Etikedoj", + "cardMembersPopup-title": "Membroj", + "cardMorePopup-title": "Pli", + "cards": "Karto", + "change": "Ŝanĝi", + "change-avatar": "Change Avatar", + "change-password": "Ŝangi pasvorton", + "change-permissions": "Change permissions", + "change-settings": "Ŝanĝi agordojn", + "changeAvatarPopup-title": "Change Avatar", + "changeLanguagePopup-title": "Ŝanĝi lingvon", + "changePasswordPopup-title": "Ŝangi pasvorton", + "changePermissionsPopup-title": "Change Permissions", + "changeSettingsPopup-title": "Ŝanĝi agordojn", + "checklists": "Checklists", + "click-to-star": "Click to star this board.", + "click-to-unstar": "Click to unstar this board.", + "clipboard": "Clipboard or drag & drop", + "close": "Fermi", + "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": "nigra", + "color-blue": "blua", + "color-green": "verda", + "color-lime": "lime", + "color-orange": "oranĝa", + "color-pink": "pink", + "color-purple": "purple", + "color-red": "ruĝa", + "color-sky": "sky", + "color-yellow": "flava", + "comment": "Komento", + "comment-placeholder": "Skribi komenton", + "computer": "Komputilo", + "create": "Krei", + "createBoardPopup-title": "Krei ", + "createLabelPopup-title": "Create Label", + "current": "current", + "date": "Dato", + "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": "Farite", + "download": "Elŝuti", + "edit": "Redakti", + "edit-avatar": "Change Avatar", + "edit-profile": "Redakti profilo", + "editCardStartDatePopup-title": "Redakti komencdato", + "editCardDueDatePopup-title": "Change due date", + "editLabelPopup-title": "Ŝanĝi etikedo", + "editNotificationPopup-title": "Edit Notification", + "editProfilePopup-title": "Redakti profilo", + "email": "Retpoŝtadreso", + "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": "Malsukcese sendis retpoŝton", + "email-invalid": "Nevalida retpoŝtadreso", + "email-invite": "Inviti per retpoŝto", + "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": "Sendis retpoŝton", + "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": "Via teksto estas nevalida JSON", + "error-json-schema": "Via JSON ne enhavas la ĝustajn informojn en ĝusta formato", + "error-list-doesNotExist": "Tio listo ne ekzistas", + "error-user-doesNotExist": "Tio uzanto ne ekzistas", + "error-user-notAllowSelf": "This action on self is not allowed", + "error-user-notCreated": "Uzanto ne kreita", + "error-username-taken": "Uzantnomo jam prenita", + "export-board": "Export board", + "filter": "Filter", + "filter-cards": "Filter Cards", + "filter-clear": "Clear filter", + "filter-no-label": "Nenia etikedo", + "filter-no-member": "Nenia membro", + "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", + "headerBarCreateBoardPopup-title": "Krei ", + "home": "Hejmo", + "import": "Importi", + "import-board": "Importi de 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": "Informoj", + "initials": "Initials", + "invalid-date": "Invalid date", + "joined": "joined", + "just-invited": "You are just invited to this board", + "keyboard-shortcuts": "Keyboard shortcuts", + "label-create": "Krei novan etikedo", + "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": "Etikedoj", + "language": "Lingvo", + "last-admin-desc": "You can’t change roles because there must be at least one admin.", + "leave-board": "Leave Board", + "link-card": "Ligi al ĉitiu karto", + "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": "Movu ĉiujn kartojn en tiu listo.", + "list-select-cards": "Elektu ĉiujn kartojn en tiu listo.", + "listActionPopup-title": "List Actions", + "listImportCardPopup-title": "Import a Trello card", + "lists": "Listoj", + "log-out": "Elsaluti", + "log-in": "Ensaluti", + "loginPopup-title": "Ensaluti", + "memberMenuPopup-title": "Membraj agordoj", + "members": "Membroj", + "menu": "Menuo", + "move-selection": "Movi elekton", + "moveCardPopup-title": "Movi karton", + "moveCardToBottom-title": "Movi suben", + "moveCardToTop-title": "Movi supren", + "moveSelectionPopup-title": "Movi elekton", + "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": "Nomo", + "no-archived-cards": "No archived cards.", + "no-archived-lists": "No archived lists.", + "no-results": "Neniaj rezultoj", + "normal": "Normala", + "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": "aŭ", + "page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.", + "page-not-found": "Netrovita paĝo.", + "password": "Pasvorto", + "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": "Privata", + "private-desc": "This board is private. Only people added to the board can view and edit it.", + "profile": "Profilo", + "public": "Publika", + "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": "Forigi etikedon", + "remove-list": "Forigi liston", + "remove-member": "Forigi membron", + "remove-member-from-card": "Forigi de karto", + "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": "Renomi", + "rename-board": "Rename Board", + "restore": "Forigi", + "save": "Savi", + "search": "Serĉi", + "select-color": "Elektu koloron", + "shortcut-assign-self": "Assign yourself to current card", + "shortcut-autocomplete-emoji": "Autocomplete emoji", + "shortcut-autocomplete-members": "Autocomplete members", + "shortcut-clear-filters": "Clear all filters", + "shortcut-close-dialog": "Close Dialog", + "shortcut-filter-my-cards": "Filter my cards", + "shortcut-show-shortcuts": "Bring up this shortcuts list", + "shortcut-toggle-filterbar": "Toggle Filter Sidebar", + "shortcut-toggle-sidebar": "Toggle Board Sidebar", + "show-cards-minimum-count": "Show cards count if list contains more than", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", + "signupPopup-title": "Create an Account", + "star-board-title": "Click to star this board. It will show up at top of your boards list.", + "starred-boards": "Starred Boards", + "starred-boards-description": "Starred boards show up at the top of your boards list.", + "subscribe": "Subscribe", + "team": "Teamo", + "this-board": "this board", + "this-card": "this card", + "time": "Tempo", + "title": "Titolo", + "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": "Alŝuti", + "upload-avatar": "Upload an avatar", + "uploaded-avatar": "Uploaded an avatar", + "username": "Uzantnomo", + "view-it": "View it", + "warn-list-archived": "warning: this card is in an archived list", + "watch": "Rigardi", + "watching": "Rigardante", + "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": "Kion vi volas fari?", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Uzantnomo", + "smtp-password": "Pasvorto", + "send-from": "From", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "error-invitation-code-not-exist": "Invitation code doesn't exist" +}
\ No newline at end of file diff --git a/i18n/es-ES.i18n.json b/i18n/es-ES.i18n.json index 578db27d..2ac594f5 100644 --- a/i18n/es-ES.i18n.json +++ b/i18n/es-ES.i18n.json @@ -36,10 +36,13 @@ "activity-removed": "ha eliminado %s de %s", "activity-sent": "ha enviado %s a %s", "activity-unjoined": "ha abandonado %s", + "activity-checklist-added": "added checklist to %s", "add": "Añadir", "add-attachment": "Añadir archivo adjunto", "add-board": "Añadir nuevo tablero", "add-card": "Añadir tarjeta", + "add-checklist": "Add a checklist", + "add-checklist-item": "Add an item to checklist", "add-cover": "Añadir cubierta", "add-label": "Añadir etiqueta", "add-list": "Añadir lista", @@ -115,9 +118,10 @@ "changePasswordPopup-title": "Cambiar la contraseña", "changePermissionsPopup-title": "Cambiar permisos", "changeSettingsPopup-title": "Change Settings", + "checklists": "Checklists", "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.", @@ -192,6 +196,7 @@ "fullname": "Nombre Completo", "header-logo-title": "Volver a tu página de tableros", "hide-system-messages": "Hide system messages", + "headerBarCreateBoardPopup-title": "Crear tablero", "home": "Inicio", "import": "Importar", "import-board": "Importar desde Trello", @@ -289,6 +294,8 @@ "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", + "sidebar-open": "Open Sidebar", + "sidebar-close": "Close Sidebar", "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", @@ -316,5 +323,25 @@ "welcome-board": "Welcome Board", "welcome-list1": "Basics", "welcome-list2": "Advanced", - "what-to-do": "¿Qué quieres hacer?" -} + "what-to-do": "¿Qué quieres hacer?", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Nombre de usuario", + "smtp-password": "Contraseña", + "send-from": "From", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ te ha enviado una invitación", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "error-invitation-code-not-exist": "Invitation code doesn't exist" +}
\ No newline at end of file diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json index 49258953..2f69dbba 100644 --- a/i18n/es.i18n.json +++ b/i18n/es.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Avanzados", "what-to-do": "What do you want to do?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Ajustes", "people": "People", "registration": "Registration", diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json index 8ed0d575..a12d0deb 100644 --- a/i18n/fa.i18n.json +++ b/i18n/fa.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "چه کاری می خواهید انجام دهید؟", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json index bf6912d9..5e88f87d 100644 --- a/i18n/fi.i18n.json +++ b/i18n/fi.i18n.json @@ -35,7 +35,7 @@ "activity-on": "kohteessa %s", "activity-removed": "poistettu %s kohteesta %s", "activity-sent": "lähetetty %s kohteeseen %s", - "activity-unjoined": "peruttu %s liityminen", + "activity-unjoined": "peruttu %s liittyminen", "activity-checklist-added": "lisätty tarkistuslista kohteeseen %s", "add": "Lisää", "add-attachment": "Lisää liitetiedosto", @@ -325,7 +325,6 @@ "welcome-list2": "Edistynyt", "what-to-do": "Mitä haluat tehdä?", "admin-panel": "Hallintapaneeli", - "system-setting": "Järjestelmäasetus", "settings": "Asetukset", "people": "Ihmiset", "registration": "Rekisteröinti", diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json index e370f1bb..db956891 100644 --- a/i18n/fr.i18n.json +++ b/i18n/fr.i18n.json @@ -36,7 +36,7 @@ "activity-removed": "a supprimé %s de %s", "activity-sent": "a envoyé %s vers %s", "activity-unjoined": "a quitté %s", - "activity-checklist-added": "a jouté une liste de vérifications à %s", + "activity-checklist-added": "a ajouté une liste de vérifications à %s", "add": "Ajouter", "add-attachment": "Joindre un fichier", "add-board": "Ajouter un nouveau tableau", @@ -47,7 +47,7 @@ "add-label": "Ajouter une étiquette", "add-list": "Ajouter une liste", "add-members": "Assigner des membres", - "added": "Ajouté", + "added": "Ajouté le", "addMemberPopup-title": "Membres", "admin": "Admin", "admin-desc": "Peut voir et éditer les cartes, supprimer des membres et changer les paramètres du tableau.", @@ -324,25 +324,24 @@ "welcome-list1": "Basiques", "welcome-list2": "Avancés", "what-to-do": "Que voulez-vous faire ?", - "admin-panel": "Admin Panel", - "system-setting": "System Setting", + "admin-panel": "Panneau d'administration", "settings": "Paramètres", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", + "people": "Personne", + "registration": "Inscription", + "disable-self-registration": "Désactiver l'inscription", + "invite": "Inviter", + "invite-people": "Inviter une personne", + "to-boards": "Au(x) tableau(x)", + "email-addresses": "Adresses email", + "smtp-host-description": "L'adresse du serveur SMTP qui gère vos mails.", + "smtp-port-description": "Le port des mails sortants du serveur SMTP.", + "smtp-host": "Hôte SMTP", + "smtp-port": "Port SMTP", "smtp-username": "Nom d'utilisateur", "smtp-password": "Mot de passe", - "send-from": "From", - "invitation-code": "Invitation Code", + "send-from": "De", + "invitation-code": "Code d'invitation", "email-invite-register-subject": "__inviter__ vous a envoyé une invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "error-invitation-code-not-exist": "Invitation code doesn't exist" + "email-invite-register-text": "Cher __user__,\n\n__inviter__ vous invite à le rejoindre sur Wekan pour collaborer.\n\nVeuillez suivre le lien ci-dessous :\n__url__\n\nVotre code d'invitation est : __icode__\n\nMerci.", + "error-invitation-code-not-exist": "Ce code d'invitation n'existe pas." }
\ No newline at end of file diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json index 1c1b16b4..6121caf8 100644 --- a/i18n/he.i18n.json +++ b/i18n/he.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "מתקדם", "what-to-do": "מה תרצה לעשות?", "admin-panel": "מסך ניהול המערכת", - "system-setting": "System Setting", "settings": "הגדרות", "people": "אנשים", "registration": "הרשמה", diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json index fc341867..1183068d 100644 --- a/i18n/it.i18n.json +++ b/i18n/it.i18n.json @@ -294,8 +294,8 @@ "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", - "sidebar-open": "Open Sidebar", - "sidebar-close": "Close Sidebar", + "sidebar-open": "Apri Sidebar", + "sidebar-close": "Chiudi Sidebar", "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", @@ -324,25 +324,24 @@ "welcome-list1": "Basi", "welcome-list2": "Avanzate", "what-to-do": "Cosa vuoi fare?", - "admin-panel": "Admin Panel", - "system-setting": "System Setting", - "settings": "Settings", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "admin-panel": "Pannello dell'Amministratore", + "settings": "Impostazioni", + "people": "Persone", + "registration": "Registrazione", + "disable-self-registration": "Disabilita Auto-registrazione", + "invite": "Invita", + "invite-people": "Invita persone", + "to-boards": "torna alle bacheche(a)", + "email-addresses": "Indirizzi email", + "smtp-host-description": "L'indirizzo del server SMTP che gestisce le tue email.", + "smtp-port-description": "La porta che il tuo server SMTP utilizza per le email in uscita.", "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", + "smtp-port": "Porta SMTP", "smtp-username": "Username", "smtp-password": "Password", - "send-from": "From", - "invitation-code": "Invitation Code", + "send-from": "Da", + "invitation-code": "Codice d'invito", "email-invite-register-subject": "__inviter__ ti ha inviato un invito", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "error-invitation-code-not-exist": "Invitation code doesn't exist" + "email-invite-register-text": "Gentile __user__,\n\n__inviter__ ti ha invitato su Wekan per collaborare.\n\nPer favore segui il link qui sotto:\n__url__\n\nIl tuo codice d'invito è: __icode__\n\nGrazie.", + "error-invitation-code-not-exist": "Il codice d'invito non esiste" }
\ No newline at end of file diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json index 5d565105..ccf03446 100644 --- a/i18n/ja.i18n.json +++ b/i18n/ja.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "高度", "what-to-do": "何をしたいですか?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "設定", "people": "People", "registration": "Registration", diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json index 7fa77f0a..7cb22eec 100644 --- a/i18n/ko.i18n.json +++ b/i18n/ko.i18n.json @@ -1,27 +1,27 @@ { - "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__", + "accept": "확인", + "act-activity-notify": "[Wekan] 활동 알림", + "act-addAttachment": "__attachment__를 __card__에 첨부", + "act-addComment": "__card__에 내용 추가 : __comment__", + "act-createBoard": "__board__ 생성", + "act-createCard": "__list__에 __card__ 추가", + "act-createList": "__board__에 __list__ 추가", + "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": "Activities", + "activities": "활동 내역", "activity": "활동 상태", "activity-added": "%s를 %s에 추가함", "activity-archived": "%s 저장됨", @@ -35,314 +35,313 @@ "activity-on": "%s에", "activity-removed": "%s를 %s에서 삭제함", "activity-sent": "%s를 %s로 보냄", - "activity-unjoined": "unjoined %s", - "activity-checklist-added": "added checklist to %s", + "activity-unjoined": "%s에서 멤버 해제", + "activity-checklist-added": "%s에 체크리스트를 추가함", "add": "추가", - "add-attachment": "Add an attachment", + "add-attachment": "첨부 파일 추가", "add-board": "새로운 보드를 추가", - "add-card": "Add a card", - "add-checklist": "Add a checklist", - "add-checklist-item": "Add an item to checklist", + "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", - "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.", + "all-boards": "전체 보드", + "and-n-other-card": "__count__ 개의 다른 카드", + "and-n-other-card_plural": "__count__ 개의 다른 카드들", + "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": "첨부 파일", - "auto-watch": "Automatically watch boards when create it", - "avatar-too-big": "The avatar is too large (70Kb max)", + "auto-watch": "보드 생성 시 자동으로 감시합니다.", + "avatar-too-big": "아바타 파일이 너무 큽니다. (최대 70Kb)", "back": "뒤로", - "board-change-color": "Change color", - "board-nb-stars": "%s stars", + "board-change-color": "보드 색 변경", + "board-nb-stars": "%s개의 별", "board-not-found": "보드를 찾을 수 없습니다", - "board-private-info": "This board will be <strong>private</strong>.", + "board-private-info": "이 보드는 <strong>비공개</strong>입니다.", "board-public-info": "이 보드는 <strong>공개</strong>로 설정됩니다", - "boardChangeColorPopup-title": "Change Board Background", + "boardChangeColorPopup-title": "보드 배경 변경", "boardChangeTitlePopup-title": "보드 이름 바꾸기", "boardChangeVisibilityPopup-title": "표시 여부 변경", - "boardChangeWatchPopup-title": "Change Watch", - "boardMenuPopup-title": "Board Menu", + "boardChangeWatchPopup-title": "감시상태 변경", + "boardMenuPopup-title": "보드 메뉴", "boards": "보드", - "bucket-example": "Like “Bucket List” for example", + "bucket-example": "예: “프로젝트 이름“ 입력", "cancel": "취소", "card-archived": "이 카드를 보관합니다.", "card-comments-title": "이 카드에 %s 코멘트가 있습니다.", "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-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": "Start", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", + "card-start": "시작일", + "card-start-on": "시작일", + "cardAttachmentsPopup-title": "첨부 파일", "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-settings": "Change Settings", + "change-permissions": "권한 변경", + "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", + "changeSettingsPopup-title": "설정 변경", + "checklists": "체크리스트", + "click-to-star": "보드에 별 추가.", + "click-to-unstar": "보드에 별 삭제.", + "clipboard": "클립보드 또는 드래그 앤 드롭", "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-placeholder": "Write a comment", + "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": "current", - "date": "Date", - "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", + "disambiguateMultiLabelPopup-title": "라벨 액션의 모호성 제거", + "disambiguateMultiMemberPopup-title": "멤버 액션의 모호성 제거", + "discard": "포기", + "done": "완료", "download": "다운로드", "edit": "수정", "edit-avatar": "아바타 변경", - "edit-profile": "Edit Profile", - "editCardStartDatePopup-title": "Change start date", - "editCardDueDatePopup-title": "Change due date", + "edit-profile": "프로필 변경", + "editCardStartDatePopup-title": "시작일 변경", + "editCardDueDatePopup-title": "종료일 변경", "editLabelPopup-title": "라벨 변경", - "editNotificationPopup-title": "Edit Notification", - "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-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", + "email-enrollAccount-subject": "__siteName__에 계정 생성이 완료되었습니다.", + "email-enrollAccount-text": "안녕하세요. __user__님,\n\n시작하려면 아래링크를 클릭해 주세요.\n\n__url__\n\n감사합니다.", + "email-fail": "이메일 전송 실패", + "email-invalid": "잘못된 이메일 주소", + "email-invite": "이메일로 초대", + "email-invite-subject": "__inviter__님이 당신을 초대하였습니다.", + "email-invite-text": "__user__님,\n\n__inviter__님은 협업을 위해 \"__board__\"보드에 가입하도록 초대합니다.\n\n아래 링크를 따라주십시오.\n\n__url__\n\n감사합니다.", + "email-resetPassword-subject": "패스워드 초기화: __siteName__", + "email-resetPassword-text": "안녕하세요 __user__님,\n\n비밀번호를 재설정하려면 아래 링크를 클릭하십시오.\n\n__url__\n\n감사합니다.", + "email-sent": "이메일 전송", + "email-verifyEmail-subject": "이메일 인증: __siteName__", + "email-verifyEmail-text": "안녕하세요. __user__님,\n\n당신의 계정과 이메일을 활성하려면 아래 링크를 클릭하십시오.\n\n__url__\n\n감사합니다.", + "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": "중복된 아이디 입니다.", + "export-board": "보드 내보내기", + "filter": "필터", "filter-cards": "카드 필터", - "filter-clear": "Clear filter", - "filter-no-label": "No label", - "filter-no-member": "No member", - "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": "전체 이름", + "filter-to-selection": "선택 항목으로 필터링", + "fullname": "실명", "header-logo-title": "보드 페이지로 돌아가기.", - "hide-system-messages": "Hide system messages", + "hide-system-messages": "시스템 메시지 숨기기", "headerBarCreateBoardPopup-title": "보드 생성", "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", + "import": "가져오기", + "import-board": "Trello에서 가져오기", + "import-board-title": "Trello에서 보드 가져오기", + "import-board-trello-instruction": "Trello 게시판에서 'Menu' -> 'More' -> 'Print and Export', 'Export 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": "Initials", - "invalid-date": "Invalid date", + "initials": "이니셜", + "invalid-date": "잘못된 날짜", "joined": "참가함", - "just-invited": "You are just invited to this board", - "keyboard-shortcuts": "Keyboard shortcuts", + "just-invited": "보드에 방금 초대되었습니다.", + "keyboard-shortcuts": "키보드 단축키", "label-create": "새로운 라벨 생성", "label-default": "%s 라벨 (기본)", "label-delete-pop": "되돌릴 수 없습니다. 모든 카드에서 라벨을 제거하고, 이력을 제거합니다.", "labels": "라벨", "language": "언어", "last-admin-desc": "적어도 하나의 관리자가 필요하기에 이 역할을 변경할 수 없습니다.", - "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": "로그인", - "memberMenuPopup-title": "Member Settings", + "memberMenuPopup-title": "멤버 설정", "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", + "move-selection": "선택 항목 이동", + "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", - "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", + "not-accepted-yet": "초대장이 수락되지 않았습니다.", + "notify-participate": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음", + "notify-watch": "감시중인 보드, 목록 또는 카드에 대한 변경사항 알림 받음", + "optional": "옵션", + "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", + "paste-or-dragdrop": "이미지 파일을 붙여 넣거나 드래그 앤 드롭 (이미지 전용)", + "participating": "참여", + "preview": "미리보기", + "previewAttachedImagePopup-title": "미리보기", + "previewClipboardImagePopup-title": "미리보기", "private": "비공개", "private-desc": "비공개된 보드입니다. 오직 보드에 추가된 사람들만 보고 수정할 수 있습니다", "profile": "프로파일", "public": "공개", "public-desc": "공개된 보드입니다. 링크를 가진 모든 사람과 구글과 같은 검색 엔진에서 찾아서 볼수 있습니다. 보드에 추가된 사람들만 수정이 가능합니다.", - "quick-access-description": "Star a board to add a shortcut in this bar.", + "quick-access-description": "여기에 바로 가기를 추가하려면 보드에 별 표시를 체크하세요.", "remove-cover": "커버 제거", - "remove-from-board": "Remove from Board", - "remove-label": "Remove the label", - "remove-list": "Remove the list", + "remove-from-board": "보드에서 제거", + "remove-label": "라벨 제거", + "remove-list": "목록 제거", "remove-member": "멤버 제거", "remove-member-from-card": "카드에서 제거", - "remove-member-pop": "__boardTitle__에서 __name__(__username__) 을 제거합니까? 그 멤버는 이 보드의 모든 카드에서 제거됩니다. 그에대한 알람을 받게됩니다.", + "remove-member-pop": "__boardTitle__에서 __name__(__username__) 을 제거합니까? 이 보드의 모든 카드에서 제거됩니다. 해당 내용을 __name__(__username__) 은(는) 알림으로 받게됩니다.", "removeMemberPopup-title": "멤버를 제거합니까?", "rename": "새이름", "rename-board": "보드 이름 바꾸기", - "restore": "Restore", + "restore": "복구", "save": "저장", "search": "검색", "select-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", - "sidebar-open": "Open Sidebar", - "sidebar-close": "Close Sidebar", + "shortcut-assign-self": "현재 카드에 자신을 지정하세요.", + "shortcut-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": "목록에 카드 수량 표시(입력된 수량 넘을 경우 표시)", + "sidebar-open": "사이드바 열기", + "sidebar-close": "사이드바 닫기", "signupPopup-title": "계정 생성", - "star-board-title": "보드에 별을 클릭합니다. 보드 목록에서 최상위로 둘 수 있습니다.", + "star-board-title": "보드에 별 표시를 클릭합니다. 보드 목록에서 최상위로 둘 수 있습니다.", "starred-boards": "별표된 보드", - "starred-boards-description": "별표된 보드들은 보드 목록의 최상단에서 보입니다.", + "starred-boards-description": "별 표시된 보드들은 보드 목록의 최상단에서 보입니다.", "subscribe": "구독", "team": "팀", "this-board": "보드", "this-card": "카드", - "time": "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", - "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": "무엇을 원하나요?", - "admin-panel": "Admin Panel", - "system-setting": "System Setting", + "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": "무엇을 하고 싶으신가요?", + "admin-panel": "관리자 패널", "settings": "설정", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", + "people": "사람", + "registration": "회원가입", + "disable-self-registration": "일반 유저의 회원 가입 막기", + "invite": "초대", + "invite-people": "사람 초대", + "to-boards": "보드로 부터", + "email-addresses": "이메일 주소", + "smtp-host-description": "이메일을 처리하는 SMTP 서버의 주소입니다.", + "smtp-port-description": "SMTP 서버가 보내는 전자 메일에 사용하는 포트입니다.", + "smtp-host": "SMTP 호스트", + "smtp-port": "SMTP 포트", "smtp-username": "사용자 이름", "smtp-password": "암호", - "send-from": "From", - "invitation-code": "Invitation Code", - "email-invite-register-subject": "__inviter__ sent you an invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "error-invitation-code-not-exist": "Invitation code doesn't exist" + "send-from": "보낸 사람", + "invitation-code": "초대 코드", + "email-invite-register-subject": "\"__inviter__ 님이 당신에게 초대장을 보냈습니다.", + "email-invite-register-text": "\"__user__ 님, \n\n__inviter__ 님이 Wekan 보드에 협업을 위하여 초대합니다.\n\n아래 링크를 클릭해주세요 : \n__url__\n\n그리고 초대 코드는 __icode__ 입니다.\n\n감사합니다.", + "error-invitation-code-not-exist": "초대 코드가 존재하지 않습니다." }
\ No newline at end of file diff --git a/i18n/no.i18n.json b/i18n/no.i18n.json index 9f075e2b..aeb69a66 100644 --- a/i18n/no.i18n.json +++ b/i18n/no.i18n.json @@ -85,40 +85,40 @@ "boardChangeWatchPopup-title": "Endre overvåkning", "boardMenuPopup-title": "Tavlemeny", "boards": "Tavler", - "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.", + "bucket-example": "Som \"Bucket List\" for eksempel", + "cancel": "Avbryt", + "card-archived": "Dette kortet er arkivert.", + "card-comments-title": "Dette kortet har %s kommentar.", + "card-delete-notice": "Sletting er permanent. Du vil miste alle hendelser knyttet til dette kortet.", + "card-delete-pop": "Alle handlinger vil fjernes fra feeden for aktiviteter og du vil ikke kunne åpne kortet på nytt. Det er ingen mulighet å angre.", + "card-delete-suggest-archive": "Du kan arkivere kortet for å fjerne det fra tavlen. All aktivitet vil beholdes.", + "card-due": "Frist", + "card-due-on": "Frist til", + "card-edit-attachments": "Rediger vedlegg", + "card-edit-labels": "Rediger etiketter", + "card-edit-members": "Endre medlemmer", + "card-labels-title": "Endre etiketter for kortet.", + "card-members-title": "Legg til eller fjern tavle-medlemmer fra dette kortet.", "card-start": "Start", - "card-start-on": "Starts on", - "cardAttachmentsPopup-title": "Attach From", - "cardDeletePopup-title": "Delete Card?", - "cardDetailsActionsPopup-title": "Card Actions", - "cardLabelsPopup-title": "Labels", + "card-start-on": "Starter på", + "cardAttachmentsPopup-title": "Legg ved fra", + "cardDeletePopup-title": "Slett kort?", + "cardDetailsActionsPopup-title": "Kort-handlinger", + "cardLabelsPopup-title": "Etiketter", "cardMembersPopup-title": "Medlemmer", - "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", + "cardMorePopup-title": "Mer", + "cards": "Kort", + "change": "Endre", + "change-avatar": "Endre avatar", + "change-password": "Endre passord", + "change-permissions": "Endre rettigheter", + "change-settings": "Endre innstillinger", + "changeAvatarPopup-title": "Endre Avatar", + "changeLanguagePopup-title": "Endre språk", + "changePasswordPopup-title": "Endre passord", + "changePermissionsPopup-title": "Endre tillatelser", + "changeSettingsPopup-title": "Endre innstillinger", + "checklists": "Sjekklister", "click-to-star": "Click to star this board.", "click-to-unstar": "Click to unstar this board.", "clipboard": "Clipboard or drag & drop", @@ -154,7 +154,7 @@ "done": "Done", "download": "Download", "edit": "Edit", - "edit-avatar": "Change Avatar", + "edit-avatar": "Endre avatar", "edit-profile": "Edit Profile", "editCardStartDatePopup-title": "Change start date", "editCardDueDatePopup-title": "Change due date", @@ -196,6 +196,7 @@ "fullname": "Full Name", "header-logo-title": "Go back to your boards page.", "hide-system-messages": "Hide system messages", + "headerBarCreateBoardPopup-title": "Create Board", "home": "Home", "import": "Import", "import-board": "import from Trello", @@ -216,7 +217,7 @@ "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", + "labels": "Etiketter", "language": "Language", "last-admin-desc": "You can’t change roles because there must be at least one admin.", "leave-board": "Leave Board", @@ -322,5 +323,25 @@ "welcome-board": "Welcome Board", "welcome-list1": "Basics", "welcome-list2": "Advanced", - "what-to-do": "What do you want to do?" + "what-to-do": "What do you want to do?", + "admin-panel": "Admin Panel", + "settings": "Settings", + "people": "People", + "registration": "Registration", + "disable-self-registration": "Disable Self-Registration", + "invite": "Invite", + "invite-people": "Invite People", + "to-boards": "To board(s)", + "email-addresses": "Email Addresses", + "smtp-host-description": "The address of the SMTP server that handles your emails.", + "smtp-port-description": "The port your SMTP server uses for outgoing emails.", + "smtp-host": "SMTP Host", + "smtp-port": "SMTP Port", + "smtp-username": "Username", + "smtp-password": "Password", + "send-from": "From", + "invitation-code": "Invitation Code", + "email-invite-register-subject": "__inviter__ sent you an invitation", + "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", + "error-invitation-code-not-exist": "Invitation code doesn't exist" }
\ No newline at end of file diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json index 878e1fd1..38172965 100644 --- a/i18n/pl.i18n.json +++ b/i18n/pl.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "Co chcesz zrobić?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json index 7188d809..b16ff973 100644 --- a/i18n/pt-BR.i18n.json +++ b/i18n/pt-BR.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Avançado", "what-to-do": "O que você gostaria de fazer?", "admin-panel": "Painel Administrativo", - "system-setting": "Configuração do Sistema", "settings": "Configurações", "people": "Pessoas", "registration": "Registro", diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json index 50eb00aa..70c32d02 100644 --- a/i18n/ro.i18n.json +++ b/i18n/ro.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "Ce ai vrea sa faci?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json index 967cb1b2..57a05371 100644 --- a/i18n/ru.i18n.json +++ b/i18n/ru.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Advanced", "what-to-do": "Что вы хотите сделать?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Настройки", "people": "People", "registration": "Registration", diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json index dc656c26..78087c40 100644 --- a/i18n/sr.i18n.json +++ b/i18n/sr.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "Napredno", "what-to-do": "Šta želiš da uradiš ?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json index 2aa29211..fb3eee61 100644 --- a/i18n/th.i18n.json +++ b/i18n/th.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "ก้าวหน้า", "what-to-do": "ต้องการทำอะไร", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json index 96a7139d..2e63a44c 100644 --- a/i18n/tr.i18n.json +++ b/i18n/tr.i18n.json @@ -1,348 +1,347 @@ { - "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__", + "accept": "Kabul Et", + "act-activity-notify": "[Wekan] Aktivite Bildirimi", + "act-addAttachment": "__card__ kartına __attachment__ dosyasını ekledi", + "act-addComment": "__card__ kartına bir yorum bırakıt: __comment__", + "act-createBoard": "__board__ panosunu oluşturdu", + "act-createCard": "__card__ kartını ___list__ listesine ekledi.", + "act-createList": "__list__ listesini __board__ panosuna ekledi", + "act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi", + "act-archivedBoard": "__board__ panosunu arşivledi", + "act-archivedCard": "__card__ kartını arşivledi", + "act-archivedList": "__list__ listesini arşivledi", + "act-importBoard": "__board__ panosunu aktardı", + "act-importCard": "__card__ kartını aktardı", + "act-importList": "__list__ listesini aktardı", + "act-joinMember": "__member__ kullanıcısnı __card__ kartına ekledi", + "act-moveCard": "__card__ kartını __oldList__ listesinden __list__ listesine taşıdı", + "act-removeBoardMember": "__board__ panosundan __member__ kullanıcısını çıkarttı", + "act-restoredCard": "__card__ kartını __board__ panosuna geri döndürdü", + "act-unjoinMember": "__member__ kullanıcısnı __card__ kartından çıkarttı", "act-withBoardTitle": "[Wekan] __board__", "act-withCardTitle": "[__board__] __card__", "actions": "İşlemler", "activities": "Aktiviteler", "activity": "Etkinlik", - "activity-added": "added %s to %s", + "activity-added": "%s içine %s ekledi", "activity-archived": "%s arşivledi", - "activity-attached": "attached %s to %s", + "activity-attached": "%s içine %s ekledi", "activity-created": "%s oluşturdu", - "activity-excluded": "excluded %s from %s", - "activity-imported": "imported %s into %s from %s", - "activity-imported-board": "imported %s from %s", - "activity-joined": "joined %s", - "activity-moved": "moved %s from %s to %s", - "activity-on": "on %s", - "activity-removed": "removed %s from %s", - "activity-sent": "sent %s to %s", - "activity-unjoined": "unjoined %s", - "activity-checklist-added": "added checklist to %s", + "activity-excluded": "%s içinden %s çıkarttı", + "activity-imported": "%s i %s içine taşıdı, kaynağı %s", + "activity-imported-board": "%s i %s içinden aktardı", + "activity-joined": "şuna katıldı: %s", + "activity-moved": "%s i %s içinden %s içine taşıdı", + "activity-on": "%s", + "activity-removed": "%s i %s ten kaldırdı", + "activity-sent": "%s i %s e gönderdi", + "activity-unjoined": "%s içinden ayrıldı", + "activity-checklist-added": "%s içine liste ekledi", "add": "Ekle", - "add-attachment": "Add an attachment", + "add-attachment": "Dosya ekle", "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", - "add-members": "Add Members", + "add-card": "Yeni bir kart ekle", + "add-checklist": "Yeni bir liste ekle", + "add-checklist-item": "Listeye yeni bir eleman ekle", + "add-cover": "Kapak resmi ekle", + "add-label": "Etiket Ekle", + "add-list": "Liste ekle", + "add-members": "Üye ekle", "added": "Eklendi", "addMemberPopup-title": "Üyeler", "admin": "Yönetici", "admin-desc": "Kartları görüntüler ve düzenler, üyeleri çıkarır ve pano ayarlarını değiştirir.", - "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", + "all-boards": "Tüm panolar", + "and-n-other-card": "Ve __count__ diğer kart", + "and-n-other-card_plural": "Ve __count__ diğer kart", + "apply": "Uygula", + "app-is-offline": "Uygulama şu an çevrim dışı, saya yenilemek kaydedilmemiş veri kaybına yol açacaktır.", + "archive": "Arşivle", "archive-all": "Tümünü Arşivle", - "archive-board": "Archive Board", - "archive-card": "Archive Card", + "archive-board": "Panoyu Arşivle", + "archive-card": "Kartı arşivle", "archive-list": "Bu listeyi arşivle", - "archive-selection": "Archive selection", - "archiveBoardPopup-title": "Archive Board?", + "archive-selection": "Seçimi arşivle", + "archiveBoardPopup-title": "Pano arşivlensin mi?", "archived-items": "Arşivlenmiş Öğeler", "archives": "Arşiv", - "assign-member": "Assign member", + "assign-member": "Üye ata", "attached": "dosya eklendi", "attachment": "Ek Dosya", "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)", + "auto-watch": "Oluşan yeni panoları otomatik takip et", + "avatar-too-big": "Avatar resmi çok büyük (70Kb maksimum)", "back": "Geri", - "board-change-color": "Change color", - "board-nb-stars": "%s stars", + "board-change-color": "Renk değiştir", + "board-nb-stars": "%s yıldız", "board-not-found": "Pano bulunamadı", - "board-private-info": "This board will be <strong>private</strong>.", + "board-private-info": "Bu pano <strong>gizli</strong> olacak.", "board-public-info": "Bu pano <strong>genel</strong>e açılacaktır.", - "boardChangeColorPopup-title": "Change Board Background", + "boardChangeColorPopup-title": "Pano arkaplan rengini değiştir", "boardChangeTitlePopup-title": "Pano Adı Değiştirme", "boardChangeVisibilityPopup-title": "Görünebilirliği Değiştir", - "boardChangeWatchPopup-title": "Change Watch", - "boardMenuPopup-title": "Board Menu", + "boardChangeWatchPopup-title": "İzleme Durumunu Değiştir", + "boardMenuPopup-title": "Pano menüsü", "boards": "Panolar", - "bucket-example": "Like “Bucket List” for example", + "bucket-example": "Örn: \"Marketten Alacaklarım\"", "cancel": "İptal", "card-archived": "Bu kart arşivlendi.", - "card-comments-title": "This card has %s comment.", + "card-comments-title": "Bu kartta %s yorum var.", "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", + "card-delete-pop": "Son hareketler alanındaki tüm veriler silinecek, ayrıca bu kartı yeniden açamayacaksın. Bu işlemin geri dönüşü yok.", + "card-delete-suggest-archive": "Kartı panodan kaldırıp, buna rağmen aktivitelerini saklamak istiyorsan kartı arşivleyebilirsin.", + "card-due": "şu zamanda:", + "card-due-on": "şu zamanda:", + "card-edit-attachments": "Ek dosyasını düzenle", + "card-edit-labels": "Etiketleri düzenle", + "card-edit-members": "Üyeleri düzenle", + "card-labels-title": "Bu kart için etiketleri düzenle", + "card-members-title": "Karta pano içindeki üyeleri ekler veya çıkartır.", + "card-start": "Başlama", + "card-start-on": "Başlama:", + "cardAttachmentsPopup-title": "Eklenme", "cardDeletePopup-title": "Kart Silinsin mi?", - "cardDetailsActionsPopup-title": "Card Actions", + "cardDetailsActionsPopup-title": "Kart işlemleri", "cardLabelsPopup-title": "Etiketler", "cardMembersPopup-title": "Üyeler", - "cardMorePopup-title": "More", - "cards": "Cards", - "change": "Change", + "cardMorePopup-title": "Daha", + "cards": "Kartlar", + "change": "Değiştir", "change-avatar": "Avatar Değiştir", "change-password": "Parola Değiştir", - "change-permissions": "Change permissions", - "change-settings": "Change Settings", + "change-permissions": "İzinleri değiştir", + "change-settings": "Ayarları değiştir", "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", + "changeSettingsPopup-title": "Ayarları değiştir", + "checklists": "Doğrulama Listeleri", "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", + "clipboard": "Panodan (cliboard) veya sürükle ve bırak ile", "close": "Kapat", - "close-board": "Close Board", + "close-board": "Panoyu kapat", "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": "siyah", + "color-blue": "mavi", + "color-green": "yeşil", + "color-lime": "çim", + "color-orange": "turuncu", + "color-pink": "pembe", + "color-purple": "mor", + "color-red": "kırmızı", + "color-sky": "açık mavi", + "color-yellow": "sarı", "comment": "Yorum Gönder", - "comment-placeholder": "Write a comment", + "comment-placeholder": "Bir yorum yaz", "computer": "Bilgisayar", "create": "Oluştur", "createBoardPopup-title": "Pano Oluşturma", "createLabelPopup-title": "Etiket Oluşturma", - "current": "current", - "date": "Date", - "decline": "Decline", - "default-avatar": "Default avatar", + "current": "mevcut", + "date": "Tarih", + "decline": "Reddet", + "default-avatar": "Varsayılan avatar", "delete": "Sil", "deleteLabelPopup-title": "Etiket Silinsin mi?", "description": "Açıklama", - "disambiguateMultiLabelPopup-title": "Disambiguate Label Action", - "disambiguateMultiMemberPopup-title": "Disambiguate Member Action", - "discard": "Discard", - "done": "Done", + "disambiguateMultiLabelPopup-title": "Etiket işlemini izah et", + "disambiguateMultiMemberPopup-title": "Üye işlemini izah et", + "discard": "ıskartaya çıkart", + "done": "Tamam", "download": "İndir", "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", + "editCardStartDatePopup-title": "Başlangıç tarihini değiştir", + "editCardDueDatePopup-title": "Bitiş tarihini değiştir", + "editLabelPopup-title": "Etiket Değiştir", + "editNotificationPopup-title": "Bildirimi değiştir", "editProfilePopup-title": "Profili Düzenle", "email": "E-posta", - "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": "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", + "email-enrollAccount-subject": "__siteName__ üzerinde hesabın oluşturuldu", + "email-enrollAccount-text": "Merhaba __user__,\n\nBu servisi kullanmaya başlamak için aşağıdaki linke tıklamalısın\n\n__url__\n\nTeşekkürler.", + "email-fail": "E-posta gönderimi başarısız", + "email-invalid": "Geçersiz e-posta", + "email-invite": "E-posta ile davet et", + "email-invite-subject": "__inviter__ size bir davetiye gönderdi", + "email-invite-text": "Sevgili __user__,\n\n__inviter__ seni birlikte çalışmak için \"__board__\" panosuna davet ediyor.\n\nLütfen aşağıdaki linke tıkla:\n\n__url__\n\nTeşekkürler.", + "email-resetPassword-subject": "__siteName__ üzerinde parolanı sıfırla", + "email-resetPassword-text": "Merhaba __user__,\n\nParolanı sıfırlaman için aşağıdaki linke tıklaman yeterli.\n\n__url__\n\nTeşekkürler.", + "email-sent": "E-posta gönderildi", + "email-verifyEmail-subject": "__siteName__ üzerindeki e-posta adresini doğrulama", + "email-verifyEmail-text": "Merhaba __user__,\n\nHesap e-posta adresini doğrulamak için aşağıdaki linke tıklaman yeterli.\n\n__url__\n\nTeşekkürler.", + "error-board-doesNotExist": "Erişmeye çalıştığın pano bulunamadı", + "error-board-notAdmin": "Bu işlemi yapmak için pano yöneticisi olmalısın.", + "error-board-notAMember": "Bu işlemi yapmak için pano içindeki bir üye olmalısın.", + "error-json-malformed": "Girilen metin geçerli bir JSON formatında değil", + "error-json-schema": "Girdiğin JSON metni tüm bilgileri doğru biçimde barındırmıyor", + "error-list-doesNotExist": "Liste bulunamadı", + "error-user-doesNotExist": "Kullanıcı bulunamadı", + "error-user-notAllowSelf": "Bu işlemi kendi üzerinde yapamazsın", + "error-user-notCreated": "Bu üye oluşturulmadı", + "error-username-taken": "Kullanıcı adı zaten alınmış", + "export-board": "Panoyu dışarı aktar", + "filter": "Filtre", + "filter-cards": "Kartları Filtrele", + "filter-clear": "Süzgeci temizle", + "filter-no-label": "Etiket yok", + "filter-no-member": "Üye yok", + "filter-on": "Filtre aktif", + "filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.", + "filter-to-selection": "Seçime göre filtreleme yap", "fullname": "Ad Soyad", "header-logo-title": "Panolar sayfanıza geri dön.", - "hide-system-messages": "Hide system messages", + "hide-system-messages": "Sistem mesajlarını gizle", "headerBarCreateBoardPopup-title": "Pano Oluşturma", - "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", + "home": "Ana Sayfa", + "import": "İçeri aktar", + "import-board": "Trello'dan içeri aktar", + "import-board-title": "Trello'dan panoları içeri aktarır", + "import-board-trello-instruction": "Trello panonuzda, 'Menü'ye gidip, ardıdan, 'daha fazlası' na tıklayın, 'Yazdır ve Çıktı al' sayfasından 'JSON biçiminde çıktı al' diyip, çıkan metni buraya kopyalayın.", + "import-json-placeholder": "Geçerli JSON verisini buraya yapıştırın", + "import-map-members": "Üyeleri eşleştirme", + "import-members-map": "İçe aktardığın panoda bazı kullanıcılar var. Lütfen bu kullanıcıları Wekan panosundaki kullanıcılarla eşleştirin.", + "import-show-user-mapping": "Üye eşleştirmesini kontrol et", + "import-user-select": "Bu üyenin sistemdeki hangi kullanıcı olduğunu seçin", + "importMapMembersAddPopup-title": "Üye seç", + "info": "Bilgiler", + "initials": "İlk Harfleri", + "invalid-date": "Geçersiz tarih", + "joined": "katılma", + "just-invited": "Bu panoya şimdi davet edildin.", + "keyboard-shortcuts": "Klavye kısayolları", "label-create": "Yeni bir etiket oluştur", "label-default": "%s etiket (varsayılan)", "label-delete-pop": "Geri dönüşü yok. Tüm kartlardan bu etiket kaldırılacaktır ve geçmişini yok edecektir.", "labels": "Etiketler", "language": "Dil", - "last-admin-desc": "Rolleri değiştiremezsiniz çünkü burada en az bir yönetici olmalıdır.", - "leave-board": "Leave Board", + "last-admin-desc": "Rolleri değiştiremezsiniz, çünkü burada en az bir yönetici olmalıdır.", + "leave-board": "Panodan ayrıl", "link-card": "Bu kartın bağlantısı", - "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", + "list-archive-cards": "Bu liste içindeki tüm kartları arşivle", + "list-archive-cards-pop": "Bu işlem bu listedeki tüm kartları kaldıracak ve arşivleyecek. Arşivlenmiş kartları görmek ve panoya geri yüklemek için \"Menü\" altından \"Arşivlenmiş Öğeler\"e gidebilirsiniz.", + "list-move-cards": "Listedeki tüm kartları taşı", + "list-select-cards": "Listedeki tüm kartları seç", "listActionPopup-title": "Liste İşlemleri", - "listImportCardPopup-title": "Import a Trello card", - "lists": "Lists", + "listImportCardPopup-title": "Bir Trello kartını içeri aktar", + "lists": "Listeler", "log-out": "Oturum Kapat", "log-in": "Oturum Aç", "loginPopup-title": "Oturum Aç", - "memberMenuPopup-title": "Member Settings", + "memberMenuPopup-title": "Üye ayarları", "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", + "move-selection": "Seçimi taşı", + "moveCardPopup-title": "Kartı taşı", + "moveCardToBottom-title": "Aşağı taşı", + "moveCardToTop-title": "Yukarı taşı", + "moveSelectionPopup-title": "Seçimi taşı", + "multi-selection": "Çoklu seçim", + "multi-selection-on": "Çoklu seçim açık", + "muted": "Sessiz", + "muted-info": "Bu panodaki değişiklikler hakkında bildirim almayacaksınız", "my-boards": "Panolarım", "name": "Adı", - "no-archived-cards": "No archived cards.", - "no-archived-lists": "No archived lists.", + "no-archived-cards": "Arşivlenmiş kart bulunamadı.", + "no-archived-lists": "Arşivlenmiş liste bulunamadı.", "no-results": "Sonuç yok", "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", + "not-accepted-yet": "Davetiye henüz kabul edilmemiş", + "notify-participate": "Oluşturduğunuz veya üye olduğunuz tüm kartlar hakkında bildirim alma", + "notify-watch": "Takip ettiğiniz tüm pano, liste ve kartlar hakkında bildirim alma", "optional": "isteğe bağlı", - "or": "or", + "or": "veya", "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", + "paste-or-dragdrop": "Dosya eklemek için yapıştırabilir, veya (eğer resimse) sürükle bırak yapabilirsiniz", + "participating": "Katılımcılar", + "preview": "Önizleme", + "previewAttachedImagePopup-title": "Önizleme", + "previewClipboardImagePopup-title": "Önizleme", "private": "Özel", "private-desc": "Bu pano özel. Sadece panoya ekli kişiler görüntüleyebilir ve düzenleyebilir.", "profile": "Kullanıcı Sayfası", "public": "Genel", "public-desc": "Bu pano genel. Bağlantı adresi ile herhangi bir kimseye görünür ve Google gibi arama motorlarında gösterilecektir. Panoyu, sadece eklenen kişiler düzenleyebilir.", - "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", + "quick-access-description": "Bu bara kısayol olarak bir pano eklemek için panoyu yıldızlamalısınız", + "remove-cover": "Kapak resmini kaldır", + "remove-from-board": "Panodan kaldır", + "remove-label": "Etiketi kaldır", + "remove-list": "Listeden kaldır", "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.", - "removeMemberPopup-title": "Üyeyi Çıkarmak mı?", - "rename": "Ad değiştir", + "removeMemberPopup-title": "Üye çıkarılsın mı?", + "rename": "Yeniden adlandır", "rename-board": "Pano Adı Değiştirme", - "restore": "Restore", + "restore": "Geri yükleme", "save": "Kaydet", - "search": "Search", + "search": "Arama", "select-color": "Bir renk seç", - "shortcut-assign-self": "Assign yourself to current card", - "shortcut-autocomplete-emoji": "Autocomplete emoji", - "shortcut-autocomplete-members": "Autocomplete members", - "shortcut-clear-filters": "Clear all filters", - "shortcut-close-dialog": "Close Dialog", - "shortcut-filter-my-cards": "Filter my cards", - "shortcut-show-shortcuts": "Bring up this shortcuts list", - "shortcut-toggle-filterbar": "Toggle Filter Sidebar", - "shortcut-toggle-sidebar": "Toggle Board Sidebar", - "show-cards-minimum-count": "Show cards count if list contains more than", - "sidebar-open": "Open Sidebar", - "sidebar-close": "Close Sidebar", + "shortcut-assign-self": "Kendini karta ekle", + "shortcut-autocomplete-emoji": "Otomatik tamamlayan emoji yüz ifadeleri", + "shortcut-autocomplete-members": "Otomatik tamamlayan üye isimleri", + "shortcut-clear-filters": "Tüm filtreleri temizle", + "shortcut-close-dialog": "Diyaloğu kapat", + "shortcut-filter-my-cards": "Kartlarımı filtrele", + "shortcut-show-shortcuts": "Kısayollar listesini getir", + "shortcut-toggle-filterbar": "Filtre kenar çubuğunu aç/kapa", + "shortcut-toggle-sidebar": "Pano kenar çubuğunu aç/kapa", + "show-cards-minimum-count": "Eğer listede şu kadar sayıdan fazla şey varsa kart sayısını göster: ", + "sidebar-open": "Kenar çubuğunu aç", + "sidebar-close": "Kenar çubuğunu kapat", "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", "starred-boards-description": "Yıldızlanmış panolar, pano listenin en üstünde gösterilir.", - "subscribe": "Subscribe", + "subscribe": "Abone ol", "team": "Takım", "this-board": "bu panoyu", "this-card": "bu kart", - "time": "Time", + "time": "Zaman", "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", + "tracking": "Takp", + "tracking-info": "Oluşturduğunuz veya üyesi olduğunuz tüm kartlardaki değişiklikler size bildirim olarak gelecek.", + "unassign-member": "Üyeyi çıkart", + "unsaved-description": "Kaydedilmemiş bir açıklama metnin bulunmakta", + "unwatch": "Takibi bırak", + "upload": "Yükle", + "upload-avatar": "Avatar yükle", + "uploaded-avatar": "Avatar yüklendi", "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?", - "admin-panel": "Admin Panel", - "system-setting": "System Setting", + "view-it": "Görüntüle", + "warn-list-archived": "dikkat: bu kart arşivlenmiş bir liste içinde", + "watch": "Takip Et", + "watching": "Takip Ediliyor", + "watching-info": "Bu pano hakkındaki tüm değişiklikler hakkında tarafınıza bildirim gelecektir", + "welcome-board": "Panoya Hoş Geldiniz", + "welcome-list1": "Temel", + "welcome-list2": "Gelişmiş", + "what-to-do": "Ne yapmak istiyorsunuz?", + "admin-panel": "Yönetici Paneli", "settings": "Ayarlar", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", + "people": "Kullanıcılar", + "registration": "Kayıt", + "disable-self-registration": "Ziyaretçilere kaydı kapa", + "invite": "Davet", + "invite-people": "Kullanıcı davet et", + "to-boards": "Şu pano(lar)a", + "email-addresses": "E-posta adresleri", + "smtp-host-description": "E-posta gönderimi yapan SMTP sunucu adresi", + "smtp-port-description": "E-posta gönderimi yapan SMTP sunucu portu", + "smtp-host": "SMTP sunucu adresi", + "smtp-port": "SMTP portu", "smtp-username": "Kullanıcı adı", "smtp-password": "Parola", - "send-from": "From", - "invitation-code": "Invitation Code", - "email-invite-register-subject": "__inviter__ sent you an invitation", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "error-invitation-code-not-exist": "Invitation code doesn't exist" + "send-from": "Gönderen", + "invitation-code": "Davetiye kodu", + "email-invite-register-subject": "__inviter__ size bir davetiye gönderdi", + "email-invite-register-text": "Sevgili __user__,\n\n__inviter__ Sizi koordine çalışabilmek için Wekan'a davet etti.\n\nLütfen aşağıdaki linke tıklayın:\n__url__\n\nDavetiye kodunuz: __icode__\n\nTeşekkürler.", + "error-invitation-code-not-exist": "Davetiye kodu bulunamadı" }
\ No newline at end of file diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json index c8b18a19..33fad540 100644 --- a/i18n/zh-CN.i18n.json +++ b/i18n/zh-CN.i18n.json @@ -45,7 +45,7 @@ "add-checklist-item": "扩充清单", "add-cover": "添加封面", "add-label": "添加标签", - "add-list": "添加清单", + "add-list": "添加列表", "add-members": "添加成员", "added": "添加", "addMemberPopup-title": "成员", @@ -60,7 +60,7 @@ "archive-all": "全部归档", "archive-board": "归档看板", "archive-card": "归档卡片", - "archive-list": "归档该清单", + "archive-list": "归档该列表", "archive-selection": "归档所选内容", "archiveBoardPopup-title": "确定要归档看板吗?", "archived-items": "已归档项目", @@ -72,7 +72,7 @@ "attachmentDeletePopup-title": "删除附件?", "attachments": "附件", "auto-watch": "创建看板时自动关注", - "avatar-too-big": "头像太大 (最大 70 Kb)", + "avatar-too-big": "头像文件过大 (上限 70 Kb)", "back": "返回", "board-change-color": "更改颜色", "board-nb-stars": "%s 星标", @@ -85,12 +85,12 @@ "boardChangeWatchPopup-title": "更改关注状态", "boardMenuPopup-title": "看板菜单", "boards": "看板", - "bucket-example": "例如 “目标清单”", + "bucket-example": "例如 “遗愿清单”", "cancel": "取消", "card-archived": "该卡片已被归档", "card-comments-title": "该卡片有 %s 条评论", "card-delete-notice": "彻底删除的操作不可恢复,你将会丢失该卡片相关的所有操作记录。", - "card-delete-pop": "所有的动作将从活动动态中被移除且您将无法重新打开该卡片。此操作无法撤销。", + "card-delete-pop": "所有的活动将从活动摘要中被移除且您将无法重新打开该卡片。此操作无法撤销。", "card-delete-suggest-archive": "你可以将卡片从看板中归档至回收箱,但保留相关活动。", "card-due": "到期", "card-due-on": "期限", @@ -103,7 +103,7 @@ "card-start-on": "始于", "cardAttachmentsPopup-title": "附件来源", "cardDeletePopup-title": "彻底删除卡片?", - "cardDetailsActionsPopup-title": "卡片动作", + "cardDetailsActionsPopup-title": "卡片操作", "cardLabelsPopup-title": "标签", "cardMembersPopup-title": "成员", "cardMorePopup-title": "更多", @@ -148,8 +148,8 @@ "delete": "删除", "deleteLabelPopup-title": "删除标签?", "description": "描述", - "disambiguateMultiLabelPopup-title": "消除标签动作歧义", - "disambiguateMultiMemberPopup-title": "消除会员动作歧义", + "disambiguateMultiLabelPopup-title": "标签消歧 [?]", + "disambiguateMultiMemberPopup-title": "成员消歧 [?]", "discard": "放弃", "done": "完成", "download": "下载", @@ -222,13 +222,13 @@ "last-admin-desc": "你不能更改角色,因为至少需要一名管理员。", "leave-board": "离开看板", "link-card": "关联至该卡片", - "list-archive-cards": "归档清单中的所有卡片", - "list-archive-cards-pop": "这将会从本看板中移除该清单中的所有卡片。如果需要浏览已归档的卡片并且将其恢复至看板,请点击\"菜单\">\"回收箱\"", - "list-move-cards": "移动清单中的所有卡片", - "list-select-cards": "选择清单中的所有卡片", - "listActionPopup-title": "清单操作", + "list-archive-cards": "归档列表中的所有卡片", + "list-archive-cards-pop": "这将会从本看板中移除该列表中的所有卡片。如果需要浏览已归档的卡片并且将其恢复至看板,请点击 \"菜单\" > \"回收箱\"", + "list-move-cards": "移动列表中的所有卡片", + "list-select-cards": "选择列表中的所有卡片", + "listActionPopup-title": "列表操作", "listImportCardPopup-title": "导入 Trello 卡片", - "lists": "清单", + "lists": "列表", "log-out": "登出", "log-in": "登录", "loginPopup-title": "登录", @@ -247,7 +247,7 @@ "my-boards": "我的看板", "name": "名称", "no-archived-cards": "没有已归档的卡片", - "no-archived-lists": "没有已归档的清单", + "no-archived-lists": "没有已归档的列表。", "no-results": "无结果", "normal": "普通", "normal-desc": "可以创建以及编辑卡片,无法更改设置。", @@ -273,7 +273,7 @@ "remove-cover": "移除封面", "remove-from-board": "从看板中删除", "remove-label": "移除标签", - "remove-list": "删除清单", + "remove-list": "删除列表", "remove-member": "移除成员", "remove-member-from-card": "从该卡片中移除", "remove-member-pop": "确定从 __boardTitle__ 中移除 __name__ (__username__) 吗? 该成员将被从该看板的所有卡片中移除,同时他会收到一条提醒。", @@ -294,8 +294,8 @@ "shortcut-toggle-filterbar": "切换过滤器边栏", "shortcut-toggle-sidebar": "切换面板边栏", "show-cards-minimum-count": "当列表中的卡片多于此阈值时将显示数量", - "sidebar-open": "Open Sidebar", - "sidebar-close": "Close Sidebar", + "sidebar-open": "打开侧栏", + "sidebar-close": "打开侧栏", "signupPopup-title": "创建账户", "star-board-title": "点此来标记该看板,它将会出现在您的看板列表顶部。", "starred-boards": "已标记看板", @@ -316,33 +316,32 @@ "uploaded-avatar": "头像已经上传", "username": "用户名", "view-it": "查看", - "warn-list-archived": "警告: 该卡片位于已归档清单中", + "warn-list-archived": "警告: 该卡片位于已归档的列表中", "watch": "关注", - "watching": "已关注", + "watching": "关注", "watching-info": "当此看板发生变更时会通知你", "welcome-board": "“欢迎”看板", "welcome-list1": "基本", "welcome-list2": "高阶", "what-to-do": "要做什么?", - "admin-panel": "Admin Panel", - "system-setting": "System Setting", + "admin-panel": "管理面板", "settings": "设置", - "people": "People", - "registration": "Registration", - "disable-self-registration": "Disable Self-Registration", - "invite": "Invite", - "invite-people": "Invite People", - "to-boards": "To board(s)", - "email-addresses": "Email Addresses", - "smtp-host-description": "The address of the SMTP server that handles your emails.", - "smtp-port-description": "The port your SMTP server uses for outgoing emails.", - "smtp-host": "SMTP Host", - "smtp-port": "SMTP Port", + "people": "人员", + "registration": "注册", + "disable-self-registration": "禁止自助注册", + "invite": "邀请", + "invite-people": "邀请人员", + "to-boards": "邀请到看板 (可多选)", + "email-addresses": "电子邮箱地址", + "smtp-host-description": "用于发送邮件的SMTP服务器地址。", + "smtp-port-description": "SMTP服务器端口。", + "smtp-host": "SMTP服务器", + "smtp-port": "SMTP端口", "smtp-username": "用户名", "smtp-password": "密码", - "send-from": "From", - "invitation-code": "Invitation Code", + "send-from": "发件人", + "invitation-code": "邀请码", "email-invite-register-subject": "__inviter__ 向您发出邀请", - "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.", - "error-invitation-code-not-exist": "Invitation code doesn't exist" + "email-invite-register-text": "亲爱的 __user__,\n\n__inviter__ 邀请您加入 Wekan 进行协作。\n\n请访问下面的链接︰\n__url__\n\n您的的邀请码是︰\n__icode__\n\n非常感谢。", + "error-invitation-code-not-exist": "邀请码不存在" }
\ No newline at end of file diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json index 88203b2b..d4d0be62 100644 --- a/i18n/zh-TW.i18n.json +++ b/i18n/zh-TW.i18n.json @@ -325,7 +325,6 @@ "welcome-list2": "進階", "what-to-do": "要做什麼?", "admin-panel": "Admin Panel", - "system-setting": "System Setting", "settings": "Settings", "people": "People", "registration": "Registration", diff --git a/meta/screenshots/board-view.jpg b/meta/screenshots/board-view.jpg Binary files differdeleted file mode 100644 index 6b8ffafe..00000000 --- a/meta/screenshots/board-view.jpg +++ /dev/null diff --git a/meta/screenshots/board_view_01.png b/meta/screenshots/board_view_01.png Binary files differnew file mode 100755 index 00000000..6151a17b --- /dev/null +++ b/meta/screenshots/board_view_01.png diff --git a/meta/screenshots/board_view_02.png b/meta/screenshots/board_view_02.png Binary files differnew file mode 100755 index 00000000..2e745a7b --- /dev/null +++ b/meta/screenshots/board_view_02.png diff --git a/models/settings.js b/models/settings.js index 0e6ab762..0c2da4d3 100644 --- a/models/settings.js +++ b/models/settings.js @@ -35,6 +35,9 @@ Settings.attachSchema(new SimpleSchema({ })); Settings.helpers({ mailUrl () { + if (!this.mailServer.host) { + return null; + } if (!this.mailServer.username && !this.mailServer.password) { return `smtp://${this.mailServer.host}:${this.mailServer.port}/`; } @@ -69,7 +72,7 @@ if (Meteor.isServer) { }); Settings.after.update((userId, doc, fieldNames) => { // assign new values to mail-from & MAIL_URL in environment - if (_.contains(fieldNames, 'mailServer')) { + if (_.contains(fieldNames, 'mailServer') && _.contains(fieldNames, 'host')) { if (!doc.mailServer.username && !doc.mailServer.password) { process.env.MAIL_URL = `smtp://${doc.mailServer.host}:${doc.mailServer.port}/`; } else { @@ -97,13 +100,16 @@ if (Meteor.isServer) { url: FlowRouter.url('sign-up'), }; const lang = author.getLanguage(); - Email.send({ - to: icode.email, - from: Accounts.emailTemplates.from, - subject: TAPi18n.__('email-invite-register-subject', params, lang), - text: TAPi18n.__('email-invite-register-text', params, lang), - }); + if (Settings.findOne().mailUrl()) { + Email.send({ + to: icode.email, + from: Accounts.emailTemplates.from, + subject: TAPi18n.__('email-invite-register-subject', params, lang), + text: TAPi18n.__('email-invite-register-text', params, lang), + }); + } } catch (e) { + InvitationCodes.remove(_id); throw new Meteor.Error('email-fail', e.message); } } diff --git a/models/users.js b/models/users.js index f062df9d..edf1a203 100644 --- a/models/users.js +++ b/models/users.js @@ -91,6 +91,10 @@ Users.attachSchema(new SimpleSchema({ type: [String], optional: true, }, + 'profile.icode': { + type: String, + optional: true, + }, services: { type: Object, optional: true, @@ -379,24 +383,25 @@ if (Meteor.isServer) { board.addMember(user._id); user.addInvite(boardId); - try { - const params = { - user: user.username, - inviter: inviter.username, - board: board.title, - url: board.absoluteUrl(), - }; - const lang = user.getLanguage(); - Email.send({ - to: user.emails[0].address.toLowerCase(), - from: Accounts.emailTemplates.from, - subject: TAPi18n.__('email-invite-subject', params, lang), - text: TAPi18n.__('email-invite-text', params, lang), - }); - } catch (e) { - throw new Meteor.Error('email-fail', e.message); + if (Settings.findOne().mailUrl()) { + try { + const params = { + user: user.username, + inviter: inviter.username, + board: board.title, + url: board.absoluteUrl(), + }; + const lang = user.getLanguage(); + Email.send({ + to: user.emails[0].address.toLowerCase(), + from: Accounts.emailTemplates.from, + subject: TAPi18n.__('email-invite-subject', params, lang), + text: TAPi18n.__('email-invite-text', params, lang), + }); + } catch (e) { + throw new Meteor.Error('email-fail', e.message); + } } - return { username: user.username, email: user.emails[0].address }; }, }); @@ -411,11 +416,12 @@ if (Meteor.isServer) { return user; } - const iCode = options.profile.invitationcode | ''; - - const invitationCode = InvitationCodes.findOne({code: iCode, valid:true}); + if (!options || !options.profile) { + throw new Meteor.Error('error-invitation-code-blank', 'The invitation code is required'); + } + const invitationCode = InvitationCodes.findOne({code: options.profile.invitationcode, email: options.email, valid: true}); if (!invitationCode) { - throw new Meteor.Error('error-invitation-code-not-exist'); + throw new Meteor.Error('error-invitation-code-not-exist', 'The invitation code doesn\'t exist'); }else{ user.profile = {icode: options.profile.invitationcode}; } @@ -497,19 +503,21 @@ if (Meteor.isServer) { //invite user to corresponding boards const disableRegistration = Settings.findOne().disableRegistration; if (disableRegistration) { - const user = Users.findOne(doc._id); - const invitationCode = InvitationCodes.findOne({code: user.profile.icode, valid:true}); + const invitationCode = InvitationCodes.findOne({code: doc.profile.icode, valid:true}); if (!invitationCode) { - throw new Meteor.Error('error-user-notCreated'); + throw new Meteor.Error('error-invitation-code-not-exist'); }else{ invitationCode.boardsToBeInvited.forEach((boardId) => { const board = Boards.findOne(boardId); board.addMember(doc._id); }); - user.profile = {invitedBoards: invitationCode.boardsToBeInvited}; + if (!doc.profile) { + doc.profile = {}; + } + doc.profile.invitedBoards = invitationCode.boardsToBeInvited; + Users.update(doc._id, {$set:{profile: doc.profile}}); InvitationCodes.update(invitationCode._id, {$set: {valid:false}}); } } }); } - diff --git a/package.json b/package.json index 78b84ea8..b4fdfbbe 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "wekan", - "version": "0.11.1-rc1", + "version": "0.17.0", "description": "The open-source Trello-like kanban", "private": true, "scripts": { - "lint": "eslint .", + "lint": "eslint --ignore-pattern 'packages/*' .", "test": "npm run --silent lint" }, "repository": { @@ -15,7 +15,7 @@ "bugs": { "url": "https://github.com/wekan/wekan/issues" }, - "homepage": "https://github.com/wekan/wekan", + "homepage": "https://wekan.github.io", "devDependencies": { "eslint": "^2.0.0" }, diff --git a/packages/kadira:flow-router b/packages/kadira:flow-router new file mode 160000 +Subproject da8154738eddfe43a639bd6b5f400518a4142db diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index b70b3be6..9c5d5438 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 = 17, + appVersion = 19, # Increment this for every release. - appMarketingVersion = (defaultText = "0.11.0~2016-11-28"), + appMarketingVersion = (defaultText = "0.16.0~2017-03-21"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0, @@ -57,8 +57,8 @@ const pkgdef :Spk.PackageDefinition = ( market = (svg = embed "meta/icons/wekan-150.svg"), ), - website = "https://wekan.io", - codeUrl = "https://github.com/wefork/wekan", + website = "https://wekan.github.io", + codeUrl = "https://github.com/wekan/wekan", license = (openSource = mit), categories = [productivity, office], @@ -76,11 +76,15 @@ const pkgdef :Spk.PackageDefinition = ( screenshots = [ ( - width = 512, - height = 330, - jpeg = embed "meta/screenshots/board-view.jpg" + width = 1920, + height = 1133, + png = embed "meta/screenshots/board_view_01.png" + ), + ( + width = 1920, + height = 1133, + png = embed "meta/screenshots/board_view_02.png" ), - # XXX The screenshots should have a standard width and height. ], changeLog = ( diff --git a/server/notifications/email.js b/server/notifications/email.js index 2af6381e..cee874d9 100644 --- a/server/notifications/email.js +++ b/server/notifications/email.js @@ -26,15 +26,17 @@ Meteor.startup(() => { const text = texts.join('\n\n'); user.clearEmailBuffer(); - try { - Email.send({ - to: user.emails[0].address.toLowerCase(), - from: Accounts.emailTemplates.from, - subject: TAPi18n.__('act-activity-notify', {}, user.getLanguage()), - text, - }); - } catch (e) { - return; + if (Settings.findOne().mailUrl()) { + try { + Email.send({ + to: user.emails[0].address.toLowerCase(), + from: Accounts.emailTemplates.from, + subject: TAPi18n.__('act-activity-notify', {}, user.getLanguage()), + text, + }); + } catch (e) { + return; + } } }, 30000); }); |