feat: Add API key authentication (#1254)

Closes #945
This commit is contained in:
Samuel
2025-11-06 20:56:48 +01:00
committed by GitHub
parent 5a2564f575
commit b4cbd32bf2
75 changed files with 1501 additions and 94 deletions
+55
View File
@@ -235,6 +235,58 @@ updateUserAvatar.failure = (id, error) => ({
},
});
const createUserApiKey = (id) => ({
type: ActionTypes.USER_API_KEY_CREATE,
payload: {
id,
},
});
createUserApiKey.success = (user, apiKey) => ({
type: ActionTypes.USER_API_KEY_CREATE__SUCCESS,
payload: {
user,
apiKey,
},
});
createUserApiKey.failure = (id, error) => ({
type: ActionTypes.USER_API_KEY_CREATE__FAILURE,
payload: {
id,
error,
},
});
const deleteUserApiKey = (id) => ({
type: ActionTypes.USER_API_KEY_DELETE,
payload: {
id,
},
});
deleteUserApiKey.success = (user) => ({
type: ActionTypes.USER_API_KEY_DELETE__SUCCESS,
payload: {
user,
},
});
deleteUserApiKey.failure = (id, error) => ({
type: ActionTypes.USER_API_KEY_DELETE__FAILURE,
payload: {
id,
error,
},
});
const clearUserApiKeyValue = (id) => ({
type: ActionTypes.USER_API_KEY_VALUE_CLEAR,
payload: {
id,
},
});
const deleteUser = (id) => ({
type: ActionTypes.USER_DELETE,
payload: {
@@ -359,6 +411,9 @@ export default {
updateUserUsername,
clearUserUsernameUpdateError,
updateUserAvatar,
createUserApiKey,
deleteUserApiKey,
clearUserApiKeyValue,
deleteUser,
handleUserDelete,
addUserToCard,
+4
View File
@@ -33,6 +33,9 @@ const updateUserUsername = (id, data, headers) =>
const updateUserAvatar = (id, data, headers) => http.post(`/users/${id}/avatar`, data, headers);
const createUserApiKey = (userId, headers) =>
socket.post(`/users/${userId}/api-key`, undefined, headers);
const deleteUser = (id, headers) => socket.delete(`/users/${id}`, undefined, headers);
export default {
@@ -45,5 +48,6 @@ export default {
updateUserPassword,
updateUserUsername,
updateUserAvatar,
createUserApiKey,
deleteUser,
};
@@ -121,7 +121,7 @@ const ActionsStep = React.memo(({ boardMembershipId, title, onBack, onClose }) =
)}
{user.organization && (
<div className={styles.information}>
<Icon name="briefcase" className={styles.informationIcon} />
<Icon name="building" className={styles.informationIcon} />
{user.organization}
</div>
)}
@@ -20,7 +20,7 @@ import styles from './SmtpPane.module.scss';
const SmtpPane = React.memo(() => {
const config = useSelector(selectors.selectConfig);
const smtpTest = useSelector(selectors.selectSmtpTest);
const smtpTestState = useSelector(selectors.selectSmtpTestState);
const dispatch = useDispatch();
const [t] = useTranslation();
@@ -196,14 +196,14 @@ const SmtpPane = React.memo(() => {
<Button
type="button"
content={t('action.sendTestEmail')}
loading={smtpTest.isLoading}
disabled={smtpTest.isLoading}
loading={smtpTestState.isLoading}
disabled={smtpTestState.isLoading}
onClick={handleTestClick}
/>
)}
</div>
</Form>
{smtpTest.logs && (
{smtpTestState.logs && (
<>
<Divider horizontal>
<Header as="h4">
@@ -215,7 +215,7 @@ const SmtpPane = React.memo(() => {
<TextArea
readOnly
as={TextareaAutosize}
value={smtpTest.logs.join('\n')}
value={smtpTestState.logs.join('\n')}
className={styles.testLog}
/>
</>
@@ -14,6 +14,7 @@ import selectors from '../../../../selectors';
import entryActions from '../../../../entry-actions';
import { useSteps } from '../../../../hooks';
import SelectRoleStep from './SelectRoleStep';
import ApiKeyStep from './ApiKeyStep';
import ConfirmationStep from '../../ConfirmationStep';
import EditUserInformationStep from '../../../users/EditUserInformationStep';
import EditUserUsernameStep from '../../../users/EditUserUsernameStep';
@@ -28,6 +29,7 @@ const StepTypes = {
EDIT_EMAIL: 'EDIT_EMAIL',
EDIT_PASSWORD: 'EDIT_PASSWORD',
EDIT_ROLE: 'EDIT_ROLE',
API_KEY: 'API_KEY',
ACTIVATE: 'ACTIVATE',
DEACTIVATE: 'DEACTIVATE',
DELETE: 'DELETE',
@@ -39,6 +41,7 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
const activeUsersLimit = useSelector(selectors.selectActiveUsersLimit);
const activeUsersTotal = useSelector(selectors.selectActiveUsersTotal);
const user = useSelector((state) => selectUserById(state, userId));
const isCurrentUser = useSelector((state) => user.id === selectors.selectCurrentUserId(state));
const dispatch = useDispatch();
const [t] = useTranslation();
@@ -99,6 +102,10 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
openStep(StepTypes.EDIT_ROLE);
}, [openStep]);
const handleApiKeyClick = useCallback(() => {
openStep(StepTypes.API_KEY);
}, [openStep]);
const handleActivateClick = useCallback(() => {
openStep(StepTypes.ACTIVATE);
}, [openStep]);
@@ -133,6 +140,8 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
onClose={onClose}
/>
);
case StepTypes.API_KEY:
return <ApiKeyStep userId={userId} onBack={handleBack} onClose={onClose} />;
case StepTypes.ACTIVATE:
return (
<ConfirmationStep
@@ -209,7 +218,7 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
})}
</Menu.Item>
)}
{!user.lockedFieldNames.includes('role') && (
{!user.lockedFieldNames.includes('role') && !isCurrentUser && (
<Menu.Item className={styles.menuItem} onClick={handleEditRoleClick}>
<Icon name="sun outline" className={styles.menuItemIcon} />
{t('action.editRole', {
@@ -217,31 +226,44 @@ const ActionsStep = React.memo(({ userId, onClose }) => {
})}
</Menu.Item>
)}
<Menu.Item
disabled={
user.isDeactivated &&
activeUsersLimit !== null &&
activeUsersTotal >= activeUsersLimit
}
className={styles.menuItem}
onClick={user.isDeactivated ? handleActivateClick : handleDeactivateClick}
>
<Icon name={user.isDeactivated ? 'plus' : 'close'} className={styles.menuItemIcon} />
{user.isDeactivated
? t('action.activateUser', {
context: 'title',
})
: t('action.deactivateUser', {
context: 'title',
})}
<Menu.Item className={styles.menuItem} onClick={handleApiKeyClick}>
<Icon name="key" className={styles.menuItemIcon} />
{t('common.apiKey', {
context: 'title',
})}
</Menu.Item>
{user.isDeactivated && !user.isDefaultAdmin && (
<Menu.Item className={styles.menuItem} onClick={handleDeleteClick}>
<Icon name="trash alternate outline" className={styles.menuItemIcon} />
{t('action.deleteUser', {
context: 'title',
})}
</Menu.Item>
{!isCurrentUser && (
<>
<Menu.Item
disabled={
user.isDeactivated &&
activeUsersLimit !== null &&
activeUsersTotal >= activeUsersLimit
}
className={styles.menuItem}
onClick={user.isDeactivated ? handleActivateClick : handleDeactivateClick}
>
<Icon
name={user.isDeactivated ? 'plus' : 'close'}
className={styles.menuItemIcon}
/>
{user.isDeactivated
? t('action.activateUser', {
context: 'title',
})
: t('action.deactivateUser', {
context: 'title',
})}
</Menu.Item>
{user.isDeactivated && !user.isDefaultAdmin && (
<Menu.Item className={styles.menuItem} onClick={handleDeleteClick}>
<Icon name="trash alternate outline" className={styles.menuItemIcon} />
{t('action.deleteUser', {
context: 'title',
})}
</Menu.Item>
)}
</>
)}
</Menu>
</Popup.Content>
@@ -0,0 +1,169 @@
/*!
* Copyright (c) 2025 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
import React, { useCallback, useMemo, useState } from 'react';
import PropTypes from 'prop-types';
import { useDispatch, useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
import { Button, Icon, Input, Message } from 'semantic-ui-react';
import { Popup } from '../../../../lib/custom-ui';
import selectors from '../../../../selectors';
import entryActions from '../../../../entry-actions';
import { useSteps } from '../../../../hooks';
import ConfirmationStep from '../../ConfirmationStep';
import styles from './ApiKeyStep.module.scss';
const StepTypes = {
REGENERATE: 'REGENERATE',
DELETE: 'DELETE',
};
const ApiKeyStep = React.memo(({ userId, onBack, onClose }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const user = useSelector((state) => selectUserById(state, userId));
const dispatch = useDispatch();
const [t] = useTranslation();
const [step, openStep, handleBack] = useSteps();
const [isCopied, setIsCopied] = useState(false);
const handleGenerateClick = useCallback(() => {
if (user.apiKeyPrefix) {
openStep(StepTypes.REGENERATE);
} else {
dispatch(entryActions.createUserApiKey(userId));
}
}, [userId, user.apiKeyPrefix, dispatch, openStep]);
const handleRegenerateConfirm = useCallback(() => {
dispatch(entryActions.createUserApiKey(userId));
handleBack();
}, [userId, dispatch, handleBack]);
const handleDeleteConfirm = useCallback(() => {
dispatch(entryActions.deleteUserApiKey(userId));
onClose();
}, [userId, onClose, dispatch]);
const handleDeleteClick = useCallback(() => {
openStep(StepTypes.DELETE);
}, [openStep]);
const handleCopyClick = useCallback(() => {
if (isCopied) {
return;
}
navigator.clipboard.writeText(user.apiKeyState.value);
setIsCopied(true);
setTimeout(() => {
setIsCopied(false);
}, 1000);
}, [user.apiKeyState.value, isCopied]);
if (step) {
switch (step.type) {
case StepTypes.REGENERATE:
return (
<ConfirmationStep
title="common.regenerateApiKey"
content="common.areYouSureYouWantToRegenerateThisApiKey"
buttonContent="action.regenerateApiKey"
onConfirm={handleRegenerateConfirm}
onBack={handleBack}
/>
);
case StepTypes.DELETE:
return (
<ConfirmationStep
title="common.deleteApiKey"
content="common.areYouSureYouWantToDeleteThisApiKey"
buttonContent="action.deleteApiKey"
onConfirm={handleDeleteConfirm}
onBack={handleBack}
/>
);
default:
}
}
return (
<>
<Popup.Header onBack={onBack}>
{t('common.apiKey', {
context: 'title',
})}
</Popup.Header>
<Popup.Content>
{user.apiKeyPrefix ? (
<>
{!user.apiKeyState.isCreating &&
(user.apiKeyState.value ? (
<>
<Message
positive
header={t('common.apiKeyCreated', {
context: 'title',
})}
content={t('common.saveThisKeyItWillNotBeShownAgain')}
/>
<div className={styles.valueWrapper}>
<Input fluid readOnly value={user.apiKeyState.value} className={styles.value} />
<Button className={styles.copyButton} onClick={handleCopyClick}>
<Icon fitted name={isCopied ? 'check' : 'copy'} />
</Button>
</div>
</>
) : (
<Message
warning
header={`${user.apiKeyPrefix}_...`}
content={t('common.fullKeyIsHiddenForSecurityReasons')}
/>
))}
<Button
fluid
content={t('action.regenerateApiKey')}
loading={user.apiKeyState.isCreating}
disabled={user.apiKeyState.isCreating}
className={styles.actionButton}
onClick={handleGenerateClick}
/>
<Button
fluid
content={t('action.deleteApiKey')}
className={styles.actionButton}
onClick={handleDeleteClick}
/>
</>
) : (
<>
<div className={styles.content}>{t('common.noApiKeyCreated')}</div>
<Button
fluid
positive
content={t('action.createApiKey')}
loading={user.apiKeyState.isCreating}
disabled={user.apiKeyState.isCreating}
onClick={handleGenerateClick}
/>
</>
)}
</Popup.Content>
</>
);
});
ApiKeyStep.propTypes = {
userId: PropTypes.string.isRequired,
onBack: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
export default ApiKeyStep;
@@ -0,0 +1,65 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
:global(#app) {
.actionButton {
background: transparent;
box-shadow: none;
color: #6b808c;
font-weight: normal;
margin-top: 8px;
padding: 6px 11px;
text-align: left;
text-decoration: underline;
transition: background 0.3s ease;
&:hover {
background: #e9e9e9;
}
}
.content {
margin-bottom: 6px;
}
.copyButton {
background: #ebeef0;
box-shadow: none;
border-radius: 3px;
box-sizing: content-box;
color: #516b7a;
display: none;
height: 30px;
margin: 0;
min-height: auto;
outline: none;
padding: 4px;
position: absolute;
right: 0;
top: 0;
transition: background 85ms ease;
width: 20px;
&:hover {
background: #dfe3e6;
color: #4c4c4c;
}
}
.value input {
overflow: hidden;
text-overflow: ellipsis;
}
.valueWrapper {
position: relative;
&:hover:not(:has(input:focus)) {
.copyButton {
display: block;
}
}
}
}
@@ -6,11 +6,13 @@
import React, { useMemo } from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { useSelector } from 'react-redux';
import { useDispatch, useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
import { Button, Icon, Table } from 'semantic-ui-react';
import { useEventCallback } from '../../../../lib/hooks';
import selectors from '../../../../selectors';
import entryActions from '../../../../entry-actions';
import { usePopupInClosableContext } from '../../../../hooks';
import { UserRoleIcons } from '../../../../constants/Icons';
import ActionsStep from './ActionsStep';
@@ -22,21 +24,62 @@ const Item = React.memo(({ id }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const user = useSelector((state) => selectUserById(state, id));
const currentUserId = useSelector(selectors.selectCurrentUserId);
const dispatch = useDispatch();
const [t] = useTranslation();
const ActionsPopup = usePopupInClosableContext(ActionsStep);
const handleActionsPopupClose = useEventCallback(() => {
if (user.apiKeyState.value) {
dispatch(entryActions.clearUserApiKeyValue(id));
}
}, [id, user.apiKeyState.value, dispatch]);
const ActionsPopup = usePopupInClosableContext(ActionsStep, {
onClose: handleActionsPopupClose,
});
return (
<Table.Row className={classNames(user.isDeactivated && styles.wrapperDeactivated)}>
<Table.Row
className={classNames(styles.wrapper, user.isDeactivated && styles.wrapperDeactivated)}
>
<Table.Cell>
<UserAvatar id={id} />
<div className={styles.user}>
<UserAvatar id={id} />
<div>
{user.name}
{user.id === currentUserId && (
<div className={styles.note}>{t('common.currentUser')}</div>
)}
</div>
</div>
</Table.Cell>
<Table.Cell>
{user.email}
{user.username && <div className={styles.note}>@{user.username}</div>}
</Table.Cell>
<Table.Cell>
{user.phone && (
<div className={styles.information}>
<Icon name="phone" className={styles.icon} />
{user.phone}
</div>
)}
{user.organization && (
<div className={styles.information}>
<Icon name="building" className={styles.icon} />
{user.organization}
</div>
)}
{user.apiKeyPrefix && (
<div className={classNames(styles.information, styles.informationApiKey)}>
<Icon name="key" className={styles.icon} />
{user.apiKeyPrefix}_...
</div>
)}
</Table.Cell>
<Table.Cell>{user.name}</Table.Cell>
<Table.Cell>{user.username || '-'}</Table.Cell>
<Table.Cell>{user.email}</Table.Cell>
<Table.Cell className={styles.roleCell}>
<Icon name={UserRoleIcons[user.role]} className={styles.roleIcon} />
<Icon name={UserRoleIcons[user.role]} className={styles.icon} />
{t(`common.${user.role}`)}
</Table.Cell>
<Table.Cell textAlign="right">
@@ -9,12 +9,43 @@
margin-right: 0;
}
.icon {
color: #888888;
margin: 0 0.35714286em 0 0;
}
.information {
font-size: 13px;
&:not(:last-of-type) {
margin-bottom: 4px;
}
}
.informationApiKey {
color: #cf513d;
.icon {
color: inherit;
}
}
.note {
color: #888888;
}
.roleCell {
white-space: nowrap;
}
.roleIcon {
margin: 0 0.35714286em 0 0;
.user {
align-items: center;
display: flex;
gap: 8px;
}
.wrapper {
color: #212121;
}
.wrapperDeactivated {
@@ -1,8 +1,3 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
@@ -18,7 +13,7 @@ import styles from './UsersPane.module.scss';
const UsersPane = React.memo(() => {
const activeUsersLimit = useSelector(selectors.selectActiveUsersLimit);
const users = useSelector(selectors.selectUsersExceptCurrent);
const users = useSelector(selectors.selectUsers);
const activeUsersTotal = useSelector(selectors.selectActiveUsersTotal);
const canAdd = useSelector((state) => {
@@ -48,7 +43,9 @@ const UsersPane = React.memo(() => {
return (
user.email.includes(cleanSearch) ||
user.name.toLowerCase().includes(cleanSearch) ||
(user.username && user.username.includes(cleanSearch))
(user.username && user.username.includes(cleanSearch)) ||
(user.organization && user.organization.toLowerCase().includes(cleanSearch)) ||
(user.apiKeyPrefix && user.apiKeyPrefix.toLowerCase().includes(cleanSearch))
);
}),
[users, isDeactivatedVisible, cleanSearch],
@@ -81,9 +78,8 @@ const UsersPane = React.memo(() => {
<Table.Header>
<Table.Row>
<Table.HeaderCell />
<Table.HeaderCell width={4}>{t('common.name')}</Table.HeaderCell>
<Table.HeaderCell width={4}>{t('common.username')}</Table.HeaderCell>
<Table.HeaderCell width={4}>{t('common.email')}</Table.HeaderCell>
<Table.HeaderCell width={4}>{t('common.identity')}</Table.HeaderCell>
<Table.HeaderCell width={4}>{t('common.information')}</Table.HeaderCell>
<Table.HeaderCell>{t('common.role')}</Table.HeaderCell>
<Table.HeaderCell />
</Table.Row>
@@ -101,7 +97,6 @@ const UsersPane = React.memo(() => {
className={styles.toggleDeactivatedButton}
onClick={handleToggleDeactivatedClick}
/>
{canAdd && (
<AddPopup>
<Button
@@ -42,14 +42,19 @@ const createMessage = (error) => {
}
};
const EditUserEmailStep = React.memo(({ id, withPasswordConfirmation, onBack, onClose }) => {
const EditUserEmailStep = React.memo(({ id, onBack, onClose }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const {
email,
isSsoUser,
emailUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
(state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
);
const dispatch = useDispatch();
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -199,13 +204,11 @@ const EditUserEmailStep = React.memo(({ id, withPasswordConfirmation, onBack, on
EditUserEmailStep.propTypes = {
id: PropTypes.string.isRequired,
withPasswordConfirmation: PropTypes.bool,
onBack: PropTypes.func,
onClose: PropTypes.func.isRequired,
};
EditUserEmailStep.defaultProps = {
withPasswordConfirmation: false,
onBack: undefined,
};
@@ -38,14 +38,17 @@ const createMessage = (error) => {
}
};
const EditUserPasswordStep = React.memo(({ id, withPasswordConfirmation, onBack, onClose }) => {
const EditUserPasswordStep = React.memo(({ id, onBack, onClose }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const {
data: defaultData,
isSubmitting,
error,
} = useSelector((state) => selectUserById(state, id).passwordUpdateForm);
isSsoUser,
passwordUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
(state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
);
const dispatch = useDispatch();
const [t] = useTranslation();
@@ -168,13 +171,11 @@ const EditUserPasswordStep = React.memo(({ id, withPasswordConfirmation, onBack,
EditUserPasswordStep.propTypes = {
id: PropTypes.string.isRequired,
withPasswordConfirmation: PropTypes.bool,
onBack: PropTypes.func,
onClose: PropTypes.func.isRequired,
};
EditUserPasswordStep.defaultProps = {
withPasswordConfirmation: false,
onBack: undefined,
};
@@ -42,14 +42,19 @@ const createMessage = (error) => {
}
};
const EditUserUsernameStep = React.memo(({ id, withPasswordConfirmation, onBack, onClose }) => {
const EditUserUsernameStep = React.memo(({ id, onBack, onClose }) => {
const selectUserById = useMemo(() => selectors.makeSelectUserById(), []);
const {
username,
isSsoUser,
usernameUpdateForm: { data: defaultData, isSubmitting, error },
} = useSelector((state) => selectUserById(state, id));
const withPasswordConfirmation = useSelector(
(state) => id === selectors.selectCurrentUserId(state) && !isSsoUser,
);
const dispatch = useDispatch();
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -199,13 +204,11 @@ const EditUserUsernameStep = React.memo(({ id, withPasswordConfirmation, onBack,
EditUserUsernameStep.propTypes = {
id: PropTypes.string.isRequired,
withPasswordConfirmation: PropTypes.bool,
onBack: PropTypes.func,
onClose: PropTypes.func.isRequired,
};
EditUserUsernameStep.defaultProps = {
withPasswordConfirmation: false,
onBack: undefined,
};
@@ -80,7 +80,7 @@ const AccountPane = React.memo(() => {
</Divider>
{isUsernameEditable && (
<div className={styles.action}>
<EditUserUsernamePopup id={user.id} withPasswordConfirmation={!user.isSsoUser}>
<EditUserUsernamePopup id={user.id}>
<Button className={styles.actionButton}>
{t('action.editUsername', {
context: 'title',
@@ -91,7 +91,7 @@ const AccountPane = React.memo(() => {
)}
{isEmailEditable && (
<div className={styles.action}>
<EditUserEmailPopup id={user.id} withPasswordConfirmation={!user.isSsoUser}>
<EditUserEmailPopup id={user.id}>
<Button className={styles.actionButton}>
{t('action.editEmail', {
context: 'title',
@@ -102,7 +102,7 @@ const AccountPane = React.memo(() => {
)}
{isPasswordEditable && (
<div className={styles.action}>
<EditUserPasswordPopup id={user.id} withPasswordConfirmation={!user.isSsoUser}>
<EditUserPasswordPopup id={user.id}>
<Button className={styles.actionButton}>
{t('action.editPassword', {
context: 'title',
+7
View File
@@ -102,6 +102,13 @@ export default {
USER_AVATAR_UPDATE: 'USER_AVATAR_UPDATE',
USER_AVATAR_UPDATE__SUCCESS: 'USER_AVATAR_UPDATE__SUCCESS',
USER_AVATAR_UPDATE__FAILURE: 'USER_AVATAR_UPDATE__FAILURE',
USER_API_KEY_CREATE: 'USER_API_KEY_CREATE',
USER_API_KEY_CREATE__SUCCESS: 'USER_API_KEY_CREATE__SUCCESS',
USER_API_KEY_CREATE__FAILURE: 'USER_API_KEY_CREATE__FAILURE',
USER_API_KEY_DELETE: 'USER_API_KEY_DELETE',
USER_API_KEY_DELETE__SUCCESS: 'USER_API_KEY_DELETE__SUCCESS',
USER_API_KEY_DELETE__FAILURE: 'USER_API_KEY_DELETE__FAILURE',
USER_API_KEY_VALUE_CLEAR: 'USER_API_KEY_VALUE_CLEAR',
USER_DELETE: 'USER_DELETE',
USER_DELETE__SUCCESS: 'USER_DELETE__SUCCESS',
USER_DELETE__FAILURE: 'USER_DELETE__FAILURE',
+3
View File
@@ -71,6 +71,9 @@ export default {
USER_USERNAME_UPDATE_ERROR_CLEAR: `${PREFIX}/USER_USERNAME_UPDATE_ERROR_CLEAR`,
CURRENT_USER_USERNAME_UPDATE_ERROR_CLEAR: `${PREFIX}/CURRENT_USER_USERNAME_UPDATE_ERROR_CLEAR`,
CURRENT_USER_AVATAR_UPDATE: `${PREFIX}/CURRENT_USER_AVATAR_UPDATE`,
USER_API_KEY_CREATE: `${PREFIX}/USER_API_KEY_CREATE`,
USER_API_KEY_DELETE: `${PREFIX}/USER_API_KEY_DELETE`,
USER_API_KEY_VALUE_CLEAR: `${PREFIX}/USER_API_KEY_VALUE_CLEAR`,
USER_DELETE: `${PREFIX}/USER_DELETE`,
USER_DELETE_HANDLE: `${PREFIX}/USER_DELETE_HANDLE`,
USER_TO_CARD_ADD: `${PREFIX}/USER_TO_CARD_ADD`,
+24
View File
@@ -141,6 +141,27 @@ const updateCurrentUserAvatar = (data) => ({
},
});
const createUserApiKey = (id) => ({
type: EntryActionTypes.USER_API_KEY_CREATE,
payload: {
id,
},
});
const deleteUserApiKey = (id) => ({
type: EntryActionTypes.USER_API_KEY_DELETE,
payload: {
id,
},
});
const clearUserApiKeyValue = (id) => ({
type: EntryActionTypes.USER_API_KEY_VALUE_CLEAR,
payload: {
id,
},
});
const deleteUser = (id) => ({
type: EntryActionTypes.USER_DELETE,
payload: {
@@ -245,6 +266,9 @@ export default {
clearUserUsernameUpdateError,
clearCurrentUserUsernameUpdateError,
updateCurrentUserAvatar,
createUserApiKey,
deleteUserApiKey,
clearUserApiKeyValue,
deleteUser,
handleUserDelete,
addUserToCard,
+17
View File
@@ -40,6 +40,8 @@ export default {
'سيتم حفظ جميع التغييرات تلقائياً<br />بعد استعادة الإتصال.',
alphabetically: 'أبجدياً',
alwaysDisplayCardCreator: 'عرض منشئ البطاقة دائماً',
apiKeyCreated_title: 'تم إنشاء مفتاح API',
apiKey_title: 'مفتاح API',
archive: 'أرشيف',
archiveCard_title: 'أرشفة البطاقة',
archiveCards_title: 'أرشفة البطاقات',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'هل أنت متأكد أنك تريد تعيين مدير المشروع هذا كمالك؟',
areYouSureYouWantToDeactivateThisUser: 'هل أنت متأكد أنك تريد إلغاء تفعيل هذا المستخدم؟',
areYouSureYouWantToDeleteThisApiKey: 'هل أنت متأكد أنك تريد حذف مفتاح API هذا؟',
areYouSureYouWantToDeleteThisAttachment: 'هل أنت متأكد أنك تريد حذف هذا المرفق؟',
areYouSureYouWantToDeleteThisBackgroundImage: 'هل أنت متأكد أنك تريد حذف صورة الخلفية هذه؟',
areYouSureYouWantToDeleteThisBoard: 'هل أنت متأكد أنك تريد حذف هذه اللوحة؟',
@@ -73,6 +76,8 @@ export default {
areYouSureYouWantToLeaveProject: 'هل أنت متأكد أنك تريد مغادرة المشروع؟',
areYouSureYouWantToMakeThisProjectPrivate: 'هل أنت متأكد أنك تريد جعل هذا المشروع خاصاً؟',
areYouSureYouWantToMakeThisProjectShared: 'هل أنت متأكد أنك تريد مشاركة هذا المشروع؟',
areYouSureYouWantToRegenerateThisApiKey:
'هل أنت متأكد أنك تريد إعادة إنشاء مفتاح API هذا؟ لن يعمل المفتاح السابق بعد الآن.',
areYouSureYouWantToRemoveThisManagerFromProject:
'هل أنت متأكد أنك تريد إزالة هذا المدير من المشروع؟',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -125,6 +130,7 @@ export default {
createTextFile_title: 'إنشاء ملف نصي',
creator: 'المنشئ',
currentPassword: 'كلمة المرور الحالية',
currentUser: 'المستخدم الحالي',
customFieldGroup_title: 'مجموعة الحقل المخصص',
customFieldGroups_title: 'مجموعات الحقول المخصصة',
customField_title: 'الحقل المخصص',
@@ -136,6 +142,7 @@ export default {
defaultFrom: 'افتراضي من',
defaultView_title: 'العرض الافتراضي',
deleteAllBoardsToBeAbleToDeleteThisProject: 'احذف جميع اللوحات لتتمكن من حذف هذا المشروع',
deleteApiKey_title: 'حذف مفتاح API',
deleteAttachment_title: 'حذف المرفق',
deleteBackgroundImage_title: 'حذف صورة الخلفية',
deleteBoard_title: 'حذف اللوحة',
@@ -191,6 +198,8 @@ export default {
forTeamBasedProjects: 'للمشاريع الجماعية.',
fromComputer_title: 'من الكمبيوتر',
fromTrello: 'من Trello',
fullKeyIsHiddenForSecurityReasons:
'المفتاح الكامل مخفي لأسباب أمنية. قم بإعادة إنشائه لإنشاء واحد جديد.',
general: 'عام',
gradients: 'التدرجات',
grid: 'الشبكة',
@@ -198,7 +207,9 @@ export default {
hideFromProjectListAndFavorites: 'إخفاء من قائمة المشاريع والمفضلة',
host: 'المضيف',
hours: 'ساعات',
identity: 'الهوية',
importBoard_title: 'استيراد اللوحة',
information: 'المعلومات',
invalidCurrentPassword: 'كلمة المرور الحالية غير صالحة',
kanban: 'كانبان',
labels: 'الملصقات',
@@ -227,6 +238,7 @@ export default {
newUsername: 'مستخدم جديد',
newVersionAvailable: 'إصدار جديد متاح',
newestFirst: 'الأحدث أولاً',
noApiKeyCreated: 'لم يتم إنشاء مفتاح API.',
noBoards: 'لا توجد لوحات',
noCardsFound: 'لم يتم العثور على بطاقات.',
noConnectionToServer: 'لا يوجد اتصال بالخادم',
@@ -254,10 +266,12 @@ export default {
projectNotFound_title: 'المشروع غير موجود',
projectOwner: 'مالك المشروع',
referenceDataAndKnowledgeStorage: 'تخزين البيانات المرجعية والمعرفة.',
regenerateApiKey_title: 'إعادة إنشاء مفتاح API',
rejectUnauthorizedTlsCertificates: 'رفض شهادات TLS غير المصرح بها',
removeManager_title: 'إزالة المدير',
removeMember_title: 'إزالة العضو',
role: 'الدور',
saveThisKeyItWillNotBeShownAgain: 'احفظ هذا المفتاح — لن يتم عرضه مرة أخرى!',
searchCards: 'البحث عن البطاقات...',
searchCustomFieldGroups: 'البحث عن مجموعات الحقول المخصصة...',
searchCustomFields: 'البحث عن الحقول المخصصة...',
@@ -369,6 +383,7 @@ export default {
archiveCards_title: 'أرشفة البطاقات',
assignAsOwner: 'تعيين كمالك',
cancel: 'إلغاء',
createApiKey: 'إنشاء مفتاح API',
createBoard: 'إنشاء لوحة',
createCustomFieldGroup: 'إنشاء مجموعة حقل مخصص',
createFile: 'إنشاء ملف',
@@ -378,6 +393,7 @@ export default {
deactivateUser: 'إلغاء تفعيل المستخدم',
deactivateUser_title: 'إلغاء تفعيل المستخدم',
delete: 'حذف',
deleteApiKey: 'حذف مفتاح API',
deleteAttachment: 'حذف المرفق',
deleteAvatar: 'حذف الصورة الرمزية',
deleteBackgroundImage: 'حذف صورة الخلفية',
@@ -436,6 +452,7 @@ export default {
move: 'نقل',
moveCard_title: 'نقل البطاقة',
moveList_title: 'نقل القائمة',
regenerateApiKey: 'إعادة إنشاء مفتاح API',
remove: 'حذف',
removeAssignee: 'إزالة المكلف',
removeColor: 'إزالة اللون',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Всички промени ще бъдат автоматично запазени<br />след възстановяване на връзката.',
alphabetically: 'По азбучен ред',
alwaysDisplayCardCreator: 'Винаги показвай създателя на картата',
apiKeyCreated_title: 'API ключ създаден',
apiKey_title: 'API ключ',
archive: 'Архив',
archiveCard_title: 'Архивиране на карта',
archiveCards_title: 'Архивиране на карти',
@@ -51,6 +53,7 @@ export default {
'Сигурни ли сте, че искате да назначите този мениджър на проекта като собственик?',
areYouSureYouWantToDeactivateThisUser:
'Сигурни ли сте, че искате да деактивирате този потребител?',
areYouSureYouWantToDeleteThisApiKey: 'Сигурни ли сте, че искате да изтриете този API ключ?',
areYouSureYouWantToDeleteThisAttachment:
'Сигурни ли сте, че искате да изтриете този прикачен файл?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -82,6 +85,8 @@ export default {
'Сигурни ли сте, че искате да направите този проект частен?',
areYouSureYouWantToMakeThisProjectShared:
'Сигурни ли сте, че искате да споделите този проект?',
areYouSureYouWantToRegenerateThisApiKey:
'Сигурни ли сте, че искате да регенерирате този API ключ? Предишният ключ няма да работи повече.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Сигурни ли сте, че искате да премахнете този мениджър от проекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -136,6 +141,7 @@ export default {
createTextFile_title: 'Създаване на текстов файл',
creator: 'Създател',
currentPassword: 'Текуща парола',
currentUser: 'Текущ потребител',
customFieldGroup_title: 'Група персонализирани полета',
customFieldGroups_title: 'Групи персонализирани полета',
customField_title: 'Персонализирано поле',
@@ -148,6 +154,7 @@ export default {
defaultView_title: 'Изглед по подразбиране',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Изтрийте всички табла, за да можете да изтриете този проект',
deleteApiKey_title: 'Изтриване на API ключ',
deleteAttachment_title: 'Изтриване на прикачен файл',
deleteBackgroundImage_title: 'Изтриване на фоново изображение',
deleteBoard_title: 'Изтриване на табло',
@@ -203,6 +210,8 @@ export default {
forTeamBasedProjects: 'За екипни проекти.',
fromComputer_title: 'От компютър',
fromTrello: 'От Trello',
fullKeyIsHiddenForSecurityReasons:
'Пълният ключ е скрит от съображения за сигурност. Регенерирайте го, за да създадете нов.',
general: 'Общ',
gradients: 'Градиенти',
grid: 'Мрежа',
@@ -210,7 +219,9 @@ export default {
hideFromProjectListAndFavorites: 'Скриване от списъка с проекти и любими',
host: 'Хост',
hours: 'Часове',
identity: 'Самоличност',
importBoard_title: 'Импортиране на табло',
information: 'Информация',
invalidCurrentPassword: 'Невалидна текуща парола',
kanban: 'Канбан',
labels: 'Етикети',
@@ -239,6 +250,7 @@ export default {
newUsername: 'Ново потребителско име',
newVersionAvailable: 'Налична е нова версия',
newestFirst: 'Първо най-новите',
noApiKeyCreated: 'Няма създаден API ключ.',
noBoards: 'Няма табла',
noCardsFound: 'Не са намерени карти.',
noConnectionToServer: 'Няма връзка със сървъра',
@@ -266,10 +278,12 @@ export default {
projectNotFound_title: 'Проектът не е намерен',
projectOwner: 'Собственик на проект',
referenceDataAndKnowledgeStorage: 'Съхранение на референтни данни и знания.',
regenerateApiKey_title: 'Регенериране на API ключ',
rejectUnauthorizedTlsCertificates: 'Отхвърляне на неоторизирани TLS сертификати',
removeManager_title: 'Премахване на мениджър',
removeMember_title: 'Премахване на член',
role: 'Роля',
saveThisKeyItWillNotBeShownAgain: 'Запазете този ключ — няма да бъде показан отново!',
searchCards: 'Търсене на карти...',
searchCustomFieldGroups: 'Търсене на групи персонализирани полета...',
searchCustomFields: 'Търсене на персонализирани полета...',
@@ -383,6 +397,7 @@ export default {
archiveCards_title: 'Архивиране на карти',
assignAsOwner: 'Назначаване като собственик',
cancel: 'Отказ',
createApiKey: 'Създаване на API ключ',
createBoard: 'Създаване на табло',
createCustomFieldGroup: 'Създаване на група персонализирани полета',
createFile: 'Създаване на файл',
@@ -392,6 +407,7 @@ export default {
deactivateUser: 'Деактивиране на потребител',
deactivateUser_title: 'Деактивиране на потребител',
delete: 'Изтриване',
deleteApiKey: 'Изтриване на API ключ',
deleteAttachment: 'Изтриване на прикачения файл',
deleteAvatar: 'Изтриване на аватар',
deleteBackgroundImage: 'Изтриване на фоново изображение',
@@ -450,6 +466,7 @@ export default {
move: 'Преместване',
moveCard_title: 'Преместване на карта',
moveList_title: 'Преместване на списък',
regenerateApiKey: 'Регенериране на API ключ',
remove: 'Премахване',
removeAssignee: 'Премахване на изпълнител',
removeColor: 'Премахване на цвят',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Všechny změny budou automaticky uloženy<br />po obnovení spojení.',
alphabetically: 'Abecedně',
alwaysDisplayCardCreator: 'Vždy zobrazit tvůrce karty',
apiKeyCreated_title: 'API klíč vytvořen',
apiKey_title: 'API klíč',
archive: 'Archivovat',
archiveCard_title: 'Archivovat kartu',
archiveCards_title: 'Archiv karet',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Opravdu chcete tohoto správce přiřadit jako vlastníka?',
areYouSureYouWantToDeactivateThisUser: 'Opravdu chcete deaktivovat tohoto uživatele?',
areYouSureYouWantToDeleteThisApiKey: 'Opravdu chcete smazat tento API klíč?',
areYouSureYouWantToDeleteThisAttachment: 'Opravdu chcete smazat tuto přílohu?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Opravdu chcete tento obrázek na pozadí odstranit?',
@@ -75,6 +78,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Opravdu chcete tento projekt nastavit jako soukromý?',
areYouSureYouWantToMakeThisProjectShared: 'Opravdu chcete tento projekt sdílet?',
areYouSureYouWantToRegenerateThisApiKey:
'Opravdu chcete znovu vygenerovat tento API klíč? Předchozí klíč již nebude fungovat.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Opravdu chcete tohoto správce z projektu odebrat?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -127,6 +132,7 @@ export default {
createTextFile_title: 'Vytvořit textový soubor',
creator: 'Tvůrce',
currentPassword: 'Aktuální heslo',
currentUser: 'Aktuální uživatel',
customFieldGroup_title: 'Skupina vlastního pole',
customFieldGroups_title: 'Skupina vlastních polí',
customField_title: 'Vlastní pole',
@@ -139,6 +145,7 @@ export default {
defaultView_title: 'Výchozí zobrazení',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Pro smazání tohoto projektu je třeba nejprve smazat všechny nástěnky',
deleteApiKey_title: 'Smazat API klíč',
deleteAttachment_title: 'Smazat přílohu',
deleteBackgroundImage_title: 'Smazat obrázek pozadí',
deleteBoard_title: 'Smazat nástěnku',
@@ -194,6 +201,8 @@ export default {
forTeamBasedProjects: 'Pro týmové projekty.',
fromComputer_title: 'Z počítače',
fromTrello: 'Z Trella',
fullKeyIsHiddenForSecurityReasons:
'Celý klíč je z bezpečnostních důvodů skrytý. Vygenerujte ho znovu pro vytvoření nového.',
general: 'Obecné',
gradients: 'Přechody',
grid: 'Mřížka',
@@ -201,7 +210,9 @@ export default {
hideFromProjectListAndFavorites: 'Skrýt ze seznamu projektů a oblíbených položek',
host: 'Host',
hours: 'Hodiny',
identity: 'Identita',
importBoard_title: 'Importovat nástěnku',
information: 'Informace',
invalidCurrentPassword: 'Neplatné aktuální heslo',
kanban: 'Kanban',
labels: 'Štítky',
@@ -230,6 +241,7 @@ export default {
newUsername: 'Nové uživatelské jméno',
newVersionAvailable: 'Nová verze je k dispozici',
newestFirst: 'Nejnovější',
noApiKeyCreated: 'Nebyl vytvořen žádný API klíč.',
noBoards: 'Žádné nástěnky',
noCardsFound: 'Nebyly nalezeny žádné karty.',
noConnectionToServer: 'Není spojení k serveru',
@@ -257,10 +269,12 @@ export default {
projectNotFound_title: 'Projekt nenalezen',
projectOwner: 'Vlastník projektu',
referenceDataAndKnowledgeStorage: 'Uchovávání referenčních údajů a znalostí.',
regenerateApiKey_title: 'Znovu vygenerovat API klíč',
rejectUnauthorizedTlsCertificates: 'Odmítnout neautorizované TLS certifikáty',
removeManager_title: 'Odstranit správce',
removeMember_title: 'Odstranit člena',
role: 'Role',
saveThisKeyItWillNotBeShownAgain: 'Uložte si tento klíč — již nebude znovu zobrazen!',
searchCards: 'Hledat karty...',
searchCustomFieldGroups: 'Hledat skupiny vlastních polí...',
searchCustomFields: 'Hledat vlastní pole...',
@@ -373,6 +387,7 @@ export default {
archiveCards_title: 'Archiv karet',
assignAsOwner: 'Přiřadit jako vlastníka',
cancel: 'Zrušit',
createApiKey: 'Vytvořit API klíč',
createBoard: 'Vytvořit nástěnku',
createCustomFieldGroup: 'Vytvořit vlastní skupinu polí',
createFile: 'Vytvořit soubor',
@@ -382,6 +397,7 @@ export default {
deactivateUser: 'Deaktivace uživatele',
deactivateUser_title: 'Deaktivace uživatele',
delete: 'Smazat',
deleteApiKey: 'Smazat API klíč',
deleteAttachment: 'Smazat přílohu',
deleteAvatar: 'Smazat avatar',
deleteBackgroundImage: 'Smazat obrázek pozadí',
@@ -440,6 +456,7 @@ export default {
move: 'Přesunout',
moveCard_title: 'Přesunout kartu',
moveList_title: 'Přesunout seznam',
regenerateApiKey: 'Znovu vygenerovat API klíč',
remove: 'Odstranit',
removeAssignee: 'Odstranit přiřazení',
removeColor: 'Smazat barvu',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Alle ændringer vil automatisk blive gemt<br />ved genoprettelse af forbindelsen.',
alphabetically: 'Alfabetisk',
alwaysDisplayCardCreator: 'Vis altid kortets skaber',
apiKeyCreated_title: 'API-nøgle oprettet',
apiKey_title: 'API-nøgle',
archive: 'Arkiv',
archiveCard_title: 'Arkiver kort',
archiveCards_title: 'Arkiver kort',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Er du sikker på, at du vil sætte denne projektleder som ejer?',
areYouSureYouWantToDeactivateThisUser: 'Er du sikker på, at du vil deaktivere denne bruger?',
areYouSureYouWantToDeleteThisApiKey: 'Er du sikker på, at du vil slette denne API-nøgle?',
areYouSureYouWantToDeleteThisAttachment:
'Er du sikker på at du vil slette denne vedhæftede fil?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -78,6 +81,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Er du sikker på at du vil gøre dette projekt privat?',
areYouSureYouWantToMakeThisProjectShared: 'Er du sikker på at du vil dele dette projekt?',
areYouSureYouWantToRegenerateThisApiKey:
'Er du sikker på, at du vil regenerere denne API-nøgle? Den forrige nøgle vil ikke længere virke.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Er du sikker på at du vil fjerne denne projektleder fra projektet?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -131,6 +136,7 @@ export default {
createTextFile_title: 'Opret tekstfil',
creator: 'Skaber',
currentPassword: 'Nuværende adgangskode',
currentUser: 'Nuværende bruger',
customFieldGroup_title: 'Brugerdefineret feltgruppe',
customFieldGroups_title: 'Brugerdefinerede feltgrupper',
customField_title: 'Brugerdefineret felt',
@@ -143,6 +149,7 @@ export default {
defaultView_title: 'Standard visning',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Slet alle tavler for at kunne slette dette projekt.',
deleteApiKey_title: 'Slet API-nøgle',
deleteAttachment_title: 'Slet vedhæftning',
deleteBackgroundImage_title: 'Slet baggrundsbillede',
deleteBoard_title: 'Slet tavle',
@@ -198,6 +205,8 @@ export default {
forTeamBasedProjects: 'For team-baserede projekter.',
fromComputer_title: 'Fra computer',
fromTrello: 'Fra Trello',
fullKeyIsHiddenForSecurityReasons:
'Den fulde nøgle er skjult af sikkerhedsmæssige årsager. Regenerer den for at oprette en ny.',
general: 'Generelt',
gradients: 'Gradienter',
grid: 'Gitter',
@@ -205,7 +214,9 @@ export default {
hideFromProjectListAndFavorites: 'Skjul fra projektliste og favoritter',
host: 'Vært',
hours: 'Timer',
identity: 'Identitet',
importBoard_title: 'Importer tavle',
information: 'Information',
invalidCurrentPassword: 'Nuværende adgangskode er ugyldig',
kanban: 'Kanban',
labels: 'Labels',
@@ -234,6 +245,7 @@ export default {
newUsername: 'Nyt brugernavn',
newVersionAvailable: 'Ny version tilgængelig',
newestFirst: 'Nyeste først',
noApiKeyCreated: 'Ingen API-nøgle oprettet.',
noBoards: 'Ingen tavler',
noCardsFound: 'Ingen kort fundet.',
noConnectionToServer: 'Ingen forbindelse til serveren',
@@ -261,10 +273,12 @@ export default {
projectNotFound_title: 'Projekt ikke fundet',
projectOwner: 'Projektejer',
referenceDataAndKnowledgeStorage: 'Reference data og vidensopbevaring.',
regenerateApiKey_title: 'Regenerer API-nøgle',
rejectUnauthorizedTlsCertificates: 'Afvis uautoriserede TLS-certifikater',
removeManager_title: 'Fjern projektleder',
removeMember_title: 'Fjern medlem',
role: 'Rolle',
saveThisKeyItWillNotBeShownAgain: 'Gem denne nøgle — den vises ikke igen!',
searchCards: 'Søg efter kort...',
searchCustomFieldGroups: 'Søg efter brugerdefinerede feltgrupper...',
searchCustomFields: 'Søg efter brugerdefinerede felter...',
@@ -378,6 +392,7 @@ export default {
archiveCards_title: 'Arkivér kort',
assignAsOwner: 'Sæt som ejer',
cancel: 'Annuller',
createApiKey: 'Opret API-nøgle',
createBoard: 'Opret tavle',
createCustomFieldGroup: 'Opret brugerdefineret feltgruppe',
createFile: 'Opret fil',
@@ -387,6 +402,7 @@ export default {
deactivateUser: 'Deaktivér bruger',
deactivateUser_title: 'Deaktivér bruger',
delete: 'Slet',
deleteApiKey: 'Slet API-nøgle',
deleteAttachment: 'Slet vedhæftning',
deleteAvatar: 'Slet profilbillede',
deleteBackgroundImage: 'Slet baggrundsbillede',
@@ -445,6 +461,7 @@ export default {
move: 'Flyt',
moveCard_title: 'Flyt kort',
moveList_title: 'Flyt liste',
regenerateApiKey: 'Regenerer API-nøgle',
remove: 'Fjern',
removeAssignee: 'Fjern ansvarlig',
removeColor: 'Fjern farve',
+19
View File
@@ -40,6 +40,8 @@ export default {
'Alle Änderungen werden automatisch gespeichert, sobald die Verbindung wiederhergestellt wurde.',
alphabetically: 'Alphabetisch',
alwaysDisplayCardCreator: 'Kartenersteller immer anzeigen',
apiKeyCreated_title: 'API-Schlüssel erstellt',
apiKey_title: 'API-Schlüssel',
archive: 'Archiv',
archiveCard_title: 'Karte archivieren',
archiveCards_title: 'Karten archivieren',
@@ -53,6 +55,8 @@ export default {
'Sind Sie sicher, dass Sie diesen Projektleiter als Eigentümer festlegen möchten?',
areYouSureYouWantToDeactivateThisUser:
'Sind Sie sicher, dass Sie diesen Benutzer deaktivieren möchten?',
areYouSureYouWantToDeleteThisApiKey:
'Sind Sie sicher, dass Sie diesen API-Schlüssel löschen möchten?',
areYouSureYouWantToDeleteThisAttachment:
'Sind Sie sicher, dass Sie diesen Anhang löschen möchten?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -90,6 +94,8 @@ export default {
'Sind Sie sicher, dass Sie dieses Projekt privat machen möchten?',
areYouSureYouWantToMakeThisProjectShared:
'Sind Sie sicher, dass Sie dieses Projekt freigeben möchten?',
areYouSureYouWantToRegenerateThisApiKey:
'Sind Sie sicher, dass Sie diesen API-Schlüssel neu generieren möchten? Der vorherige Schlüssel wird nicht mehr funktionieren.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Sind Sie sicher, dass Sie diesen Projektleiter aus dem Projekt entfernen möchten?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -145,6 +151,7 @@ export default {
createTextFile_title: 'Textdatei erstellen',
creator: 'Ersteller',
currentPassword: 'Derzeitiges Passwort',
currentUser: 'Aktueller Benutzer',
customFieldGroup_title: 'Feldgruppe',
customFieldGroups_title: 'Benutzerdefinierte Feldgruppen',
customField_title: 'Feldgruppe',
@@ -157,6 +164,7 @@ export default {
defaultView_title: 'Standardansicht',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Löschen Sie alle Arbeitsbereiche, um dieses Projekt löschen zu können',
deleteApiKey_title: 'API-Schlüssel löschen',
deleteAttachment_title: 'Anhang löschen',
deleteBackgroundImage_title: 'Hintergrundbild löschen',
deleteBoard_title: 'Arbeitsbereich löschen',
@@ -212,6 +220,8 @@ export default {
forTeamBasedProjects: 'Für teambasierte Projekte.',
fromComputer_title: 'Vom Computer',
fromTrello: 'Von Trello',
fullKeyIsHiddenForSecurityReasons:
'Der vollständige Schlüssel ist aus Sicherheitsgründen verborgen. Generieren Sie ihn neu, um einen neuen zu erstellen.',
general: 'Allgemein',
gradients: 'Verläufe',
grid: 'Raster',
@@ -219,7 +229,9 @@ export default {
hideFromProjectListAndFavorites: 'Aus Projektliste und Favoriten ausblenden',
host: 'Host',
hours: 'Stunden',
identity: 'Identität',
importBoard_title: 'Arbeitsbereich importieren',
information: 'Information',
invalidCurrentPassword: 'Das aktuelle Passwort ist falsch',
kanban: 'Kanban',
labels: 'Labels',
@@ -248,6 +260,7 @@ export default {
newUsername: 'Neuer Benutzername',
newVersionAvailable: 'Neue Version verfügbar',
newestFirst: 'Neueste zuerst',
noApiKeyCreated: 'Kein API-Schlüssel erstellt.',
noBoards: 'Keine Arbeitsbereiche',
noCardsFound: 'Keine Karten gefunden.',
noConnectionToServer: 'Keine Verbindung zum Server',
@@ -275,10 +288,13 @@ export default {
projectNotFound_title: 'Projekt nicht gefunden',
projectOwner: 'Projektleitung',
referenceDataAndKnowledgeStorage: 'Speichern von Wissen und Referenzen.',
regenerateApiKey_title: 'API-Schlüssel neu generieren',
rejectUnauthorizedTlsCertificates: 'Nicht autorisierte TLS-Zertifikate ablehnen',
removeManager_title: 'Projektleiter entfernen',
removeMember_title: 'Mitglied entfernen',
role: 'Rolle',
saveThisKeyItWillNotBeShownAgain:
'Speichern Sie diesen Schlüssel — er wird nicht erneut angezeigt!',
searchCards: 'Karte suchen...',
searchCustomFieldGroups: 'Benutzerdefinierte Feldgruppen suchen...',
searchCustomFields: 'In Feldgruppen suchen...',
@@ -393,6 +409,7 @@ export default {
archiveCards_title: 'Karten archivieren',
assignAsOwner: 'Als Eigentümer zuweisen',
cancel: 'Abbrechen',
createApiKey: 'API-Schlüssel erstellen',
createBoard: 'Arbeitsbereich erstellen',
createCustomFieldGroup: 'Feldgruppe erstellen',
createFile: 'Datei erstellen',
@@ -402,6 +419,7 @@ export default {
deactivateUser: 'Benutzer deaktivieren',
deactivateUser_title: 'Benutzer deaktivieren',
delete: 'Löschen',
deleteApiKey: 'API-Schlüssel löschen',
deleteAttachment: 'Anhang löschen',
deleteAvatar: 'Avatar löschen',
deleteBackgroundImage: 'Hintergrundbild löschen',
@@ -460,6 +478,7 @@ export default {
move: 'Verschieben',
moveCard_title: 'Karte bewegen',
moveList_title: 'Liste verschieben',
regenerateApiKey: 'API-Schlüssel neu generieren',
remove: 'Löschen',
removeAssignee: 'Zuständigen entfernen',
removeColor: 'Farbe löschen',
+18
View File
@@ -40,6 +40,8 @@ export default {
'Όλες οι αλλαγές θα αποθηκευτούν αυτόματα<br />όταν αποκατασταθεί η σύνδεση.',
alphabetically: 'Αλφαβητικά',
alwaysDisplayCardCreator: 'Πάντα εμφάνιση δημιουργού κάρτας',
apiKeyCreated_title: 'Δημιουργήθηκε κλειδί API',
apiKey_title: 'Κλειδί API',
archive: 'Αρχειοθέτηση',
archiveCard_title: 'Αρχειοθέτηση κάρτας',
archiveCards_title: 'Αρχειοθέτηση καρτών',
@@ -52,6 +54,8 @@ export default {
'Είστε σίγουροι ότι θέλετε να ορίσετε αυτόν τον διαχειριστή έργου ως ιδιοκτήτη;',
areYouSureYouWantToDeactivateThisUser:
'Είστε σίγουροι ότι θέλετε να απενεργοποιήσετε αυτόν τον χρήστη;',
areYouSureYouWantToDeleteThisApiKey:
'Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το κλειδί API;',
areYouSureYouWantToDeleteThisAttachment:
'Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το συνημμένο;',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -89,6 +93,8 @@ export default {
'Είστε σίγουροι ότι θέλετε να κάνετε αυτό το έργο ιδιωτικό;',
areYouSureYouWantToMakeThisProjectShared:
'Είστε σίγουροι ότι θέλετε να κάνετε αυτό το έργο κοινόχρηστο;',
areYouSureYouWantToRegenerateThisApiKey:
'Είστε βέβαιοι ότι θέλετε να αναδημιουργήσετε αυτό το κλειδί API; Το προηγούμενο κλειδί δεν θα λειτουργεί πλέον.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Είστε σίγουροι ότι θέλετε να αφαιρέσετε αυτόν τον διαχειριστή από το έργο;',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -143,6 +149,7 @@ export default {
createTextFile_title: 'Δημιουργία αρχείου κειμένου',
creator: 'Δημιουργός',
currentPassword: 'Τρέχων κωδικός',
currentUser: 'Τρέχων χρήστης',
customFieldGroup_title: 'Ομάδα προσαρμοσμένων πεδίων',
customFieldGroups_title: 'Ομάδες προσαρμοσμένων πεδίων',
customField_title: 'Προσαρμοσμένο πεδίο',
@@ -155,6 +162,7 @@ export default {
defaultView_title: 'Προεπιλεγμένη προβολή',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Διαγράψτε όλους τους πίνακες για να μπορέσετε να διαγράψετε αυτό το έργο',
deleteApiKey_title: 'Διαγραφή κλειδιού API',
deleteAttachment_title: 'Διαγραφή συνημμένου',
deleteBackgroundImage_title: 'Διαγραφή εικόνας φόντου',
deleteBoard_title: 'Διαγραφή πίνακα',
@@ -210,6 +218,8 @@ export default {
forTeamBasedProjects: 'Για έργα βασισμένα σε ομάδες.',
fromComputer_title: 'Από υπολογιστή',
fromTrello: 'Από Trello',
fullKeyIsHiddenForSecurityReasons:
'Το πλήρες κλειδί είναι κρυφό για λόγους ασφαλείας. Αναδημιουργήστε το για να δημιουργήσετε ένα νέο.',
general: 'Γενικά',
gradients: 'Διαβαθμίσεις',
grid: 'Πλέγμα',
@@ -217,7 +227,9 @@ export default {
hideFromProjectListAndFavorites: 'Απόκρυψη από τη λίστα έργων και τα αγαπημένα',
host: 'Κεντρικός υπολογιστής',
hours: 'Ώρες',
identity: 'Ταυτότητα',
importBoard_title: 'Εισαγωγή πίνακα',
information: 'Πληροφορίες',
invalidCurrentPassword: 'Μη έγκυρος τρέχων κωδικός',
kanban: 'Kanban',
labels: 'Ετικέτες',
@@ -246,6 +258,7 @@ export default {
newUsername: 'Νέο όνομα χρήστη',
newVersionAvailable: 'Διαθέσιμη νέα έκδοση',
newestFirst: 'Νεότερα πρώτα',
noApiKeyCreated: 'Δεν έχει δημιουργηθεί κλειδί API.',
noBoards: 'Δεν υπάρχουν πίνακες',
noCardsFound: 'Δεν βρέθηκαν κάρτες.',
noConnectionToServer: 'Δεν υπάρχει σύνδεση με τον διακομιστή',
@@ -273,10 +286,12 @@ export default {
projectNotFound_title: 'Το έργο δεν βρέθηκε',
projectOwner: 'Ιδιοκτήτης έργου',
referenceDataAndKnowledgeStorage: 'Αποθήκευση δεδομένων και γνώσης αναφοράς.',
regenerateApiKey_title: 'Αναδημιουργία κλειδιού API',
rejectUnauthorizedTlsCertificates: 'Απόρριψη μη εξουσιοδοτημένων πιστοποιητικών TLS',
removeManager_title: 'Αφαίρεση διαχειριστή',
removeMember_title: 'Αφαίρεση μέλους',
role: 'Ρόλος',
saveThisKeyItWillNotBeShownAgain: 'Αποθηκεύστε αυτό το κλειδί — δεν θα εμφανιστεί ξανά!',
searchCards: 'Αναζήτηση καρτών...',
searchCustomFieldGroups: 'Αναζήτηση ομάδων προσαρμοσμένων πεδίων...',
searchCustomFields: 'Αναζήτηση προσαρμοσμένων πεδίων...',
@@ -397,6 +412,7 @@ export default {
archiveCards_title: 'Αρχειοθέτηση καρτών',
assignAsOwner: 'Ορισμός ως ιδιοκτήτης',
cancel: 'Ακύρωση',
createApiKey: 'Δημιουργία κλειδιού API',
createBoard: 'Δημιουργία πίνακα',
createCustomFieldGroup: 'Δημιουργία ομάδας προσαρμοσμένων πεδίων',
createFile: 'Δημιουργία αρχείου',
@@ -406,6 +422,7 @@ export default {
deactivateUser: 'Απενεργοποίηση χρήστη',
deactivateUser_title: 'Απενεργοποίηση χρήστη',
delete: 'Διαγραφή',
deleteApiKey: 'Διαγραφή κλειδιού API',
deleteAttachment: 'Διαγραφή συνημμένου',
deleteAvatar: 'Διαγραφή avatar',
deleteBackgroundImage: 'Διαγραφή εικόνας φόντου',
@@ -464,6 +481,7 @@ export default {
move: 'Μετακίνηση',
moveCard_title: 'Μετακίνηση κάρτας',
moveList_title: 'Μετακίνηση λίστας',
regenerateApiKey: 'Αναδημιουργία κλειδιού API',
remove: 'Αφαίρεση',
removeAssignee: 'Αφαίρεση υπευθύνου',
removeColor: 'Αφαίρεση χρώματος',
+17
View File
@@ -40,6 +40,8 @@ export default {
'All changes will be automatically saved<br />after connection restored.',
alphabetically: 'Alphabetically',
alwaysDisplayCardCreator: 'Always display card creator',
apiKeyCreated_title: 'API Key Created',
apiKey_title: 'API Key',
archive: 'Archive',
archiveCard_title: 'Archive Card',
archiveCards_title: 'Archive Cards',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Are you sure you want to assign this project manager as owner?',
areYouSureYouWantToDeactivateThisUser: 'Are you sure you want to deactivate this user?',
areYouSureYouWantToDeleteThisApiKey: 'Are you sure you want to delete this API key?',
areYouSureYouWantToDeleteThisAttachment: 'Are you sure you want to delete this attachment?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Are you sure you want to delete this background image?',
@@ -78,6 +81,8 @@ export default {
'Are you sure you want to make this project private?',
areYouSureYouWantToMakeThisProjectShared:
'Are you sure you want to make this project shared?',
areYouSureYouWantToRegenerateThisApiKey:
'Are you sure you want to regenerate this API key? The previous key will no longer work.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Are you sure you want to remove this manager from the project?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -130,6 +135,7 @@ export default {
createTextFile_title: 'Create Text File',
creator: 'Creator',
currentPassword: 'Current password',
currentUser: 'Current user',
customFieldGroup_title: 'Custom Field Group',
customFieldGroups_title: 'Custom Field Groups',
customField_title: 'Custom Field',
@@ -142,6 +148,7 @@ export default {
defaultView_title: 'Default View',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Delete all boards to be able to delete this project',
deleteApiKey_title: 'Delete API Key',
deleteAttachment_title: 'Delete Attachment',
deleteBackgroundImage_title: 'Delete Background Image',
deleteBoard_title: 'Delete Board',
@@ -197,6 +204,8 @@ export default {
forTeamBasedProjects: 'For team-based projects.',
fromComputer_title: 'From Computer',
fromTrello: 'From Trello',
fullKeyIsHiddenForSecurityReasons:
'The full key is hidden for security reasons. Regenerate it to create a new one.',
general: 'General',
gradients: 'Gradients',
grid: 'Grid',
@@ -204,7 +213,9 @@ export default {
hideFromProjectListAndFavorites: 'Hide from project list and favorites',
host: 'Host',
hours: 'Hours',
identity: 'Identity',
importBoard_title: 'Import Board',
information: 'Information',
invalidCurrentPassword: 'Invalid current password',
kanban: 'Kanban',
labels: 'Labels',
@@ -233,6 +244,7 @@ export default {
newUsername: 'New username',
newVersionAvailable: 'New version available',
newestFirst: 'Newest first',
noApiKeyCreated: 'No API key created.',
noBoards: 'No boards',
noCardsFound: 'No cards found.',
noConnectionToServer: 'No connection to server',
@@ -260,10 +272,12 @@ export default {
projectNotFound_title: 'Project Not Found',
projectOwner: 'Project owner',
referenceDataAndKnowledgeStorage: 'Reference data and knowledge storage.',
regenerateApiKey_title: 'Regenerate API Key',
rejectUnauthorizedTlsCertificates: 'Reject unauthorized TLS certificates',
removeManager_title: 'Remove Manager',
removeMember_title: 'Remove Member',
role: 'Role',
saveThisKeyItWillNotBeShownAgain: 'Save this key — it will not be shown again!',
searchCards: 'Search cards...',
searchCustomFieldGroups: 'Search custom field groups...',
searchCustomFields: 'Search custom fields...',
@@ -376,6 +390,7 @@ export default {
archiveCards_title: 'Archive Cards',
assignAsOwner: 'Assign as owner',
cancel: 'Cancel',
createApiKey: 'Create API key',
createBoard: 'Create board',
createCustomFieldGroup: 'Create custom field group',
createFile: 'Create file',
@@ -385,6 +400,7 @@ export default {
deactivateUser: 'Deactivate user',
deactivateUser_title: 'Deactivate User',
delete: 'Delete',
deleteApiKey: 'Delete API key',
deleteAttachment: 'Delete attachment',
deleteAvatar: 'Delete avatar',
deleteBackgroundImage: 'Delete background image',
@@ -443,6 +459,7 @@ export default {
move: 'Move',
moveCard_title: 'Move Card',
moveList_title: 'Move List',
regenerateApiKey: 'Regenerate API key',
remove: 'Remove',
removeAssignee: 'Remove assignee',
removeColor: 'Remove color',
+17
View File
@@ -35,6 +35,8 @@ export default {
'All changes will be automatically saved<br />after connection restored.',
alphabetically: 'Alphabetically',
alwaysDisplayCardCreator: 'Always display card creator',
apiKeyCreated_title: 'API Key Created',
apiKey_title: 'API Key',
archive: 'Archive',
archiveCard_title: 'Archive Card',
archiveCards_title: 'Archive Cards',
@@ -44,6 +46,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Are you sure you want to assign this project manager as owner?',
areYouSureYouWantToDeactivateThisUser: 'Are you sure you want to deactivate this user?',
areYouSureYouWantToDeleteThisApiKey: 'Are you sure you want to delete this API key?',
areYouSureYouWantToDeleteThisAttachment: 'Are you sure you want to delete this attachment?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Are you sure you want to delete this background image?',
@@ -73,6 +76,8 @@ export default {
'Are you sure you want to make this project private?',
areYouSureYouWantToMakeThisProjectShared:
'Are you sure you want to make this project shared?',
areYouSureYouWantToRegenerateThisApiKey:
'Are you sure you want to regenerate this API key? The previous key will no longer work.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Are you sure you want to remove this manager from the project?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -125,6 +130,7 @@ export default {
createTextFile_title: 'Create Text File',
creator: 'Creator',
currentPassword: 'Current password',
currentUser: 'Current user',
customFieldGroup_title: 'Custom Field Group',
customFieldGroups_title: 'Custom Field Groups',
customField_title: 'Custom Field',
@@ -137,6 +143,7 @@ export default {
defaultView_title: 'Default View',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Delete all boards to be able to delete this project',
deleteApiKey_title: 'Delete API Key',
deleteAttachment_title: 'Delete Attachment',
deleteBackgroundImage_title: 'Delete Background Image',
deleteBoard_title: 'Delete Board',
@@ -192,6 +199,8 @@ export default {
forTeamBasedProjects: 'For team-based projects.',
fromComputer_title: 'From Computer',
fromTrello: 'From Trello',
fullKeyIsHiddenForSecurityReasons:
'The full key is hidden for security reasons. Regenerate it to create a new one.',
general: 'General',
gradients: 'Gradients',
grid: 'Grid',
@@ -199,7 +208,9 @@ export default {
hideFromProjectListAndFavorites: 'Hide from project list and favorites',
host: 'Host',
hours: 'Hours',
identity: 'Identity',
importBoard_title: 'Import Board',
information: 'Information',
invalidCurrentPassword: 'Invalid current password',
kanban: 'Kanban',
labels: 'Labels',
@@ -228,6 +239,7 @@ export default {
newUsername: 'New username',
newVersionAvailable: 'New version available',
newestFirst: 'Newest first',
noApiKeyCreated: 'No API key created.',
noBoards: 'No boards',
noCardsFound: 'No cards found.',
noConnectionToServer: 'No connection to server',
@@ -255,10 +267,12 @@ export default {
projectNotFound_title: 'Project Not Found',
projectOwner: 'Project owner',
referenceDataAndKnowledgeStorage: 'Reference data and knowledge storage.',
regenerateApiKey_title: 'Regenerate API Key',
rejectUnauthorizedTlsCertificates: 'Reject unauthorized TLS certificates',
removeManager_title: 'Remove Manager',
removeMember_title: 'Remove Member',
role: 'Role',
saveThisKeyItWillNotBeShownAgain: 'Save this key — it will not be shown again!',
searchCards: 'Search cards...',
searchCustomFieldGroups: 'Search custom field groups...',
searchCustomFields: 'Search custom fields...',
@@ -371,6 +385,7 @@ export default {
archiveCards_title: 'Archive Cards',
assignAsOwner: 'Assign as owner',
cancel: 'Cancel',
createApiKey: 'Create API key',
createBoard: 'Create board',
createCustomFieldGroup: 'Create custom field group',
createFile: 'Create file',
@@ -380,6 +395,7 @@ export default {
deactivateUser: 'Deactivate user',
deactivateUser_title: 'Deactivate User',
delete: 'Delete',
deleteApiKey: 'Delete API key',
deleteAttachment: 'Delete attachment',
deleteAvatar: 'Delete avatar',
deleteBackgroundImage: 'Delete background image',
@@ -438,6 +454,7 @@ export default {
move: 'Move',
moveCard_title: 'Move Card',
moveList_title: 'Move List',
regenerateApiKey: 'Regenerate API key',
remove: 'Remove',
removeAssignee: 'Remove assignee',
removeColor: 'Remove color',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Todos los cambios se guardarán automáticamente<br />cuando se restablezca la conexión.',
alphabetically: 'Alfabéticamente',
alwaysDisplayCardCreator: 'Mostrar siempre el creador de la tarjeta',
apiKeyCreated_title: 'Clave API creada',
apiKey_title: 'Clave API',
archive: 'Archivar',
archiveCard_title: 'Archivar tarjeta',
archiveCards_title: 'Archivar tarjetas',
@@ -50,6 +52,7 @@ export default {
'¿Estás seguro de que quieres asignar este gestor de proyecto como propietario?',
areYouSureYouWantToDeactivateThisUser:
'¿Estás seguro de que quieres desactivar este usuario?',
areYouSureYouWantToDeleteThisApiKey: '¿Estás seguro de que quieres eliminar esta clave API?',
areYouSureYouWantToDeleteThisAttachment:
'¿Estás seguro de que quieres eliminar este archivo adjunto?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -82,6 +85,8 @@ export default {
'¿Estás seguro de que quieres hacer este proyecto privado?',
areYouSureYouWantToMakeThisProjectShared:
'¿Estás seguro de que quieres hacer este proyecto compartido?',
areYouSureYouWantToRegenerateThisApiKey:
'¿Estás seguro de que quieres regenerar esta clave API? La clave anterior ya no funcionará.',
areYouSureYouWantToRemoveThisManagerFromProject:
'¿Estás seguro de que quieres eliminar este gestor del proyecto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -136,6 +141,7 @@ export default {
createTextFile_title: 'Crear archivo de texto',
creator: 'Creador',
currentPassword: 'Contraseña actual',
currentUser: 'Usuario actual',
customFieldGroup_title: 'Grupo de campos personalizados',
customFieldGroups_title: 'Grupos de campos personalizados',
customField_title: 'Campo personalizado',
@@ -148,6 +154,7 @@ export default {
defaultView_title: 'Vista por defecto',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Elimina todos los tableros para poder eliminar este proyecto',
deleteApiKey_title: 'Eliminar clave API',
deleteAttachment_title: 'Eliminar archivo adjunto',
deleteBackgroundImage_title: 'Eliminar imagen de fondo',
deleteBoard_title: 'Eliminar tablero',
@@ -203,6 +210,8 @@ export default {
forTeamBasedProjects: 'Para proyectos en equipo.',
fromComputer_title: 'Desde el ordenador',
fromTrello: 'Desde Trello',
fullKeyIsHiddenForSecurityReasons:
'La clave completa está oculta por razones de seguridad. Regénérala para crear una nueva.',
general: 'General',
gradients: 'Degradados',
grid: 'Cuadrícula',
@@ -210,7 +219,9 @@ export default {
hideFromProjectListAndFavorites: 'Ocultar de la lista de proyectos y favoritos',
host: 'Host',
hours: 'Horas',
identity: 'Identidad',
importBoard_title: 'Importar tablero',
information: 'Información',
invalidCurrentPassword: 'Contraseña actual incorrecta',
kanban: 'Kanban',
labels: 'Etiquetas',
@@ -239,6 +250,7 @@ export default {
newUsername: 'Nuevo nombre de usuario',
newVersionAvailable: 'Nueva versión disponible',
newestFirst: 'Más recientes primero',
noApiKeyCreated: 'No se ha creado ninguna clave API.',
noBoards: 'Sin tableros',
noCardsFound: 'No se encontraron tarjetas.',
noConnectionToServer: 'Sin conexión al servidor',
@@ -266,10 +278,12 @@ export default {
projectNotFound_title: 'Proyecto no encontrado',
projectOwner: 'Propietario del proyecto',
referenceDataAndKnowledgeStorage: 'Almacenamiento de datos de referencia y conocimiento.',
regenerateApiKey_title: 'Regenerar clave API',
rejectUnauthorizedTlsCertificates: 'Rechazar certificados TLS no autorizados',
removeManager_title: 'Eliminar gestor',
removeMember_title: 'Eliminar miembro',
role: 'Rol',
saveThisKeyItWillNotBeShownAgain: '¡Guarda esta clave, no se mostrará de nuevo!',
searchCards: 'Buscar tarjetas...',
searchCustomFieldGroups: 'Buscar grupos de campos personalizados...',
searchCustomFields: 'Buscar campos personalizados...',
@@ -384,6 +398,7 @@ export default {
archiveCards_title: 'Archivar tarjetas',
assignAsOwner: 'Asignar como propietario',
cancel: 'Cancelar',
createApiKey: 'Crear clave API',
createBoard: 'Crear tablero',
createCustomFieldGroup: 'Crear grupo de campos personalizados',
createFile: 'Crear archivo',
@@ -393,6 +408,7 @@ export default {
deactivateUser: 'Desactivar usuario',
deactivateUser_title: 'Desactivar usuario',
delete: 'Eliminar',
deleteApiKey: 'Eliminar clave API',
deleteAttachment: 'Eliminar archivo adjunto',
deleteAvatar: 'Eliminar avatar',
deleteBackgroundImage: 'Eliminar imagen de fondo',
@@ -451,6 +467,7 @@ export default {
move: 'Mover',
moveCard_title: 'Mover tarjeta',
moveList_title: 'Mover lista',
regenerateApiKey: 'Regenerar clave API',
remove: 'Eliminar',
removeAssignee: 'Eliminar asignado',
removeColor: 'Eliminar color',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Kõik muudatused salvestatakse automaatselt<br />pärast ühenduse taastamist.',
alphabetically: 'Tähestiku järgi',
alwaysDisplayCardCreator: 'Näita alati kaardi loojat',
apiKeyCreated_title: 'API võti loodud',
apiKey_title: 'API võti',
archive: 'Arhiveeri',
archiveCard_title: 'Arhiveeri kaart',
archiveCards_title: 'Arhiveeri kaardid',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Oled kindel, et soovid seda projektihaldurit omanikuks määrata?',
areYouSureYouWantToDeactivateThisUser: 'Oled kindel, et soovid seda kasutajat deaktiveerida?',
areYouSureYouWantToDeleteThisApiKey: 'Kas olete kindel, et soovite seda API võtit kustutada?',
areYouSureYouWantToDeleteThisAttachment: 'Oled kindel, et soovid seda manusi kustutada?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Oled kindel, et soovid seda taustapilla kustutada?',
@@ -79,6 +82,8 @@ export default {
'Oled kindel, et soovid seda projekti privaatseks muuta?',
areYouSureYouWantToMakeThisProjectShared:
'Oled kindel, et soovid seda projekti jagatavaks määrata?',
areYouSureYouWantToRegenerateThisApiKey:
'Kas olete kindel, et soovite seda API võtit taastada? Eelmine võti ei tööta enam.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Oled kindel, et soovid seda haldurit projektist eemaldada?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -131,6 +136,7 @@ export default {
createTextFile_title: 'Loo tekstifail',
creator: 'Looja',
currentPassword: 'Praegune parool',
currentUser: 'Praegune kasutaja',
customFieldGroup_title: 'Kohandatud väljade grupp',
customFieldGroups_title: 'Kohandatud väljade grupid',
customField_title: 'Kohandatud väli',
@@ -143,6 +149,7 @@ export default {
defaultView_title: 'Vaikimisi vaade',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Kustuta kõik tahvlid, et seda projekti kustutada',
deleteApiKey_title: 'Kustuta API võti',
deleteAttachment_title: 'Kustuta manus',
deleteBackgroundImage_title: 'Kustuta taustapilt',
deleteBoard_title: 'Kustuta tahvel',
@@ -198,6 +205,8 @@ export default {
forTeamBasedProjects: 'Töögrupi põhised projektid.',
fromComputer_title: 'Arvutist',
fromTrello: 'Trellost',
fullKeyIsHiddenForSecurityReasons:
'Täielik võti on turvakaalutlustel peidetud. Taasta see, et luua uus.',
general: 'Üldine',
gradients: 'Gradiendid',
grid: 'Grill',
@@ -205,7 +214,9 @@ export default {
hideFromProjectListAndFavorites: 'Peida projektiloendist ja lemmikutest',
host: 'Host',
hours: 'Tunnid',
identity: 'Identiteet',
importBoard_title: 'Impordi tahvel',
information: 'Informatsioon',
invalidCurrentPassword: 'Vale praegune parool',
kanban: 'Kanban',
labels: 'Sildid',
@@ -234,6 +245,7 @@ export default {
newUsername: 'Uus kasutajanimi',
newVersionAvailable: 'Uus versioon saadaval',
newestFirst: 'Kõige uuem',
noApiKeyCreated: 'API võtit pole loodud.',
noBoards: 'Tahvleid pole',
noCardsFound: 'Kaarte ei leitud.',
noConnectionToServer: 'Ühendust serveriga ei leitud',
@@ -261,10 +273,12 @@ export default {
projectNotFound_title: 'Projekt ei leitud',
projectOwner: 'Projekti omanik',
referenceDataAndKnowledgeStorage: 'Viideandmete ja teadmise salvestamiseks.',
regenerateApiKey_title: 'Taasta API võti',
rejectUnauthorizedTlsCertificates: 'Lükka tagasi volitamata TLS-sertifikaadid',
removeManager_title: 'Eemalda haldur',
removeMember_title: 'Eemalda liige',
role: 'Roll',
saveThisKeyItWillNotBeShownAgain: 'Salvesta see võti — seda ei näidata enam!',
searchCards: 'Kaartide otsimine...',
searchCustomFieldGroups: 'Kohandatud väljade gruppide otsimine...',
searchCustomFields: 'Kohandatud väljade otsimine...',
@@ -378,6 +392,7 @@ export default {
archiveCards_title: 'Arhiveeri kaardid',
assignAsOwner: 'Määra omanikuks',
cancel: 'Tühista',
createApiKey: 'Loo API võti',
createBoard: 'Loo tahvel',
createCustomFieldGroup: 'Loo kohandatud väljade grupp',
createFile: 'Loo fail',
@@ -387,6 +402,7 @@ export default {
deactivateUser: 'Deaktiveeri kasutaja',
deactivateUser_title: 'Deaktiveeri kasutaja',
delete: 'Kustuta',
deleteApiKey: 'Kustuta API võti',
deleteAttachment: 'Kustuta manus',
deleteAvatar: 'Kustuta avatar',
deleteBackgroundImage: 'Kustuta taustapilt',
@@ -445,6 +461,7 @@ export default {
move: 'Liiguta',
moveCard_title: 'Liiguta kaart',
moveList_title: 'Liiguta nimekiri',
regenerateApiKey: 'Taasta API võti',
remove: 'Eemalda',
removeAssignee: 'Eemalda vastutaja',
removeColor: 'Eemalda värv',
+17
View File
@@ -40,6 +40,8 @@ export default {
'تمام تغییرات به صورت خودکار ذخیره می‌شوند<br />بعد از بازیابی ارتباط.',
alphabetically: 'بر اساس حروف الفبا',
alwaysDisplayCardCreator: 'همیشه سازنده کارت را نمایش بده',
apiKeyCreated_title: 'کلید API ایجاد شد',
apiKey_title: 'کلید API',
archive: 'آرشیو',
archiveCard_title: 'آرشیو کارت',
archiveCards_title: 'آرشیو کارت‌ها',
@@ -50,6 +52,7 @@ export default {
'آیا مطمئن هستید که می‌خواهید این مدیر پروژه را به عنوان مالک تعیین کنید؟',
areYouSureYouWantToDeactivateThisUser:
'آیا مطمئن هستید که می‌خواهید این کاربر را غیرفعال کنید؟',
areYouSureYouWantToDeleteThisApiKey: 'آیا مطمئن هستید که می‌خواهید این کلید API را حذف کنید؟',
areYouSureYouWantToDeleteThisAttachment:
'آیا مطمئن هستید که می‌خواهید این پیوست را حذف کنید؟',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -81,6 +84,8 @@ export default {
'آیا مطمئن هستید که می‌خواهید این پروژه را خصوصی کنید؟',
areYouSureYouWantToMakeThisProjectShared:
'آیا مطمئن هستید که می‌خواهید این پروژه را به اشتراک بگذارید؟',
areYouSureYouWantToRegenerateThisApiKey:
'آیا مطمئن هستید که می‌خواهید این کلید API را بازسازی کنید؟ کلید قبلی دیگر کار نخواهد کرد.',
areYouSureYouWantToRemoveThisManagerFromProject:
'آیا مطمئن هستید که می‌خواهید این مدیر را از پروژه حذف کنید؟',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -134,6 +139,7 @@ export default {
createTextFile_title: 'ایجاد فایل متنی',
creator: 'سازنده',
currentPassword: 'رمز عبور فعلی',
currentUser: 'کاربر فعلی',
customFieldGroup_title: 'گروه فیلد سفارشی',
customFieldGroups_title: 'گروه‌های فیلد سفارشی',
customField_title: 'فیلد سفارشی',
@@ -146,6 +152,7 @@ export default {
defaultView_title: 'نمای پیش‌فرض',
deleteAllBoardsToBeAbleToDeleteThisProject:
'همه بردها را حذف کنید تا بتوانید این پروژه را حذف کنید',
deleteApiKey_title: 'حذف کلید API',
deleteAttachment_title: 'حذف پیوست',
deleteBackgroundImage_title: 'حذف تصویر پس‌زمینه',
deleteBoard_title: 'حذف برد',
@@ -201,6 +208,8 @@ export default {
forTeamBasedProjects: 'برای پروژه‌های تیمی.',
fromComputer_title: 'از کامپیوتر',
fromTrello: 'از Trello',
fullKeyIsHiddenForSecurityReasons:
'کلید کامل به دلایل امنیتی مخفی است. آن را بازسازی کنید تا یک کلید جدید ایجاد شود.',
general: 'عمومی',
gradients: 'گرادیان‌ها',
grid: 'شبکه',
@@ -208,7 +217,9 @@ export default {
hideFromProjectListAndFavorites: 'مخفی کردن از لیست پروژه‌ها و علاقه‌مندی‌ها',
host: 'میزبان',
hours: 'ساعت‌ها',
identity: 'هویت',
importBoard_title: 'وارد کردن برد',
information: 'اطلاعات',
invalidCurrentPassword: 'رمز عبور فعلی نامعتبر است',
kanban: 'کانبان',
labels: 'برچسب‌ها',
@@ -237,6 +248,7 @@ export default {
newUsername: 'نام کاربری جدید',
newVersionAvailable: 'نسخه جدید موجود است',
newestFirst: 'جدیدترین اول',
noApiKeyCreated: 'هیچ کلید API ایجاد نشده است.',
noBoards: 'بردی وجود ندارد',
noCardsFound: 'کارتی یافت نشد.',
noConnectionToServer: 'ارتباط با سرور قطع است',
@@ -264,10 +276,12 @@ export default {
projectNotFound_title: 'پروژه یافت نشد',
projectOwner: 'مالک پروژه',
referenceDataAndKnowledgeStorage: 'ذخیره‌سازی داده‌های مرجع و دانش.',
regenerateApiKey_title: 'بازسازی کلید API',
rejectUnauthorizedTlsCertificates: 'رد کردن گواهی‌نامه‌های TLS غیرمجاز',
removeManager_title: 'حذف مدیر',
removeMember_title: 'حذف عضو',
role: 'نقش',
saveThisKeyItWillNotBeShownAgain: 'این کلید را ذخیره کنید — دیگر نشان داده نخواهد شد!',
searchCards: 'جستجوی کارت‌ها...',
searchCustomFieldGroups: 'جستجوی گروه‌های فیلد سفارشی...',
searchCustomFields: 'جستجوی فیلدهای سفارشی...',
@@ -380,6 +394,7 @@ export default {
archiveCards_title: 'آرشیو کارت‌ها',
assignAsOwner: 'تعیین به عنوان مالک',
cancel: 'لغو',
createApiKey: 'ایجاد کلید API',
createBoard: 'ایجاد برد',
createCustomFieldGroup: 'ایجاد گروه فیلد سفارشی',
createFile: 'ایجاد فایل',
@@ -389,6 +404,7 @@ export default {
deactivateUser: 'غیرفعال کردن کاربر',
deactivateUser_title: 'غیرفعال کردن کاربر',
delete: 'حذف',
deleteApiKey: 'حذف کلید API',
deleteAttachment: 'حذف پیوست',
deleteAvatar: 'حذف آواتار',
deleteBackgroundImage: 'حذف تصویر پس‌زمینه',
@@ -447,6 +463,7 @@ export default {
move: 'انتقال',
moveCard_title: 'انتقال کارت',
moveList_title: 'انتقال لیست',
regenerateApiKey: 'بازسازی کلید API',
remove: 'حذف',
removeAssignee: 'حذف مسئول',
removeColor: 'حذف رنگ',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Kaikki muutokset tallennetaan automaattisesti<br />yhteyden palautuessa.',
alphabetically: 'Aakkosjärjestyksessä',
alwaysDisplayCardCreator: 'Näytä aina kortin luoja',
apiKeyCreated_title: 'API-avain luotu',
apiKey_title: 'API-avain',
archive: 'Arkistoi',
archiveCard_title: 'Arkistoi kortti',
archiveCards_title: 'Arkistoi kortit',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Haluatko varmasti asettaa tämän projektipäällikön omistajaksi?',
areYouSureYouWantToDeactivateThisUser: 'Haluatko varmasti poistaa tämän käyttäjän käytöstä?',
areYouSureYouWantToDeleteThisApiKey: 'Haluatko varmasti poistaa tämän API-avaimen?',
areYouSureYouWantToDeleteThisAttachment: 'Haluatko varmasti poistaa tämän liitteen?',
areYouSureYouWantToDeleteThisBackgroundImage: 'Haluatko varmasti poistaa tämän taustakuvan?',
areYouSureYouWantToDeleteThisBoard: 'Haluatko varmasti poistaa tämän taulun?',
@@ -75,6 +78,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Haluatko varmasti tehdä tästä projektista yksityisen?',
areYouSureYouWantToMakeThisProjectShared: 'Haluatko varmasti jakaa tämän projektin?',
areYouSureYouWantToRegenerateThisApiKey:
'Haluatko varmasti luoda uuden API-avaimen? Edellinen avain ei enää toimi.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Haluatko varmasti poistaa tämän ylläpitäjän projektista?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -127,6 +132,7 @@ export default {
createTextFile_title: 'Luo tekstitiedosto',
creator: 'Luoja',
currentPassword: 'Nykyinen salasana',
currentUser: 'Nykyinen käyttäjä',
customFieldGroup_title: 'Mukautettujen kenttien ryhmä',
customFieldGroups_title: 'Mukautettujen kenttien ryhmät',
customField_title: 'Mukautettu kenttä',
@@ -139,6 +145,7 @@ export default {
defaultView_title: 'Oletusnäkymä',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Poista kaikki taulut, jotta voit poistaa tämän projektin',
deleteApiKey_title: 'Poista API-avain',
deleteAttachment_title: 'Poista liite',
deleteBackgroundImage_title: 'Poista taustakuva',
deleteBoard_title: 'Poista taulu',
@@ -194,6 +201,8 @@ export default {
forTeamBasedProjects: 'Tiimipohjaisiin projekteihin.',
fromComputer_title: 'Tietokoneelta',
fromTrello: 'Trellosta',
fullKeyIsHiddenForSecurityReasons:
'Koko avain on piilotettu turvallisuussyistä. Luo se uudelleen saadaksesi uuden.',
general: 'Yleinen',
gradients: 'Liukuvärit',
grid: 'Ruudukko',
@@ -201,7 +210,9 @@ export default {
hideFromProjectListAndFavorites: 'Piilota projektilistasta ja suosikeista',
host: 'Isäntä',
hours: 'Tunnit',
identity: 'Henkilöllisyys',
importBoard_title: 'Tuo taulu',
information: 'Tiedot',
invalidCurrentPassword: 'Virheellinen nykyinen salasana',
kanban: 'Kanban',
labels: 'Tunnisteet',
@@ -230,6 +241,7 @@ export default {
newUsername: 'Uusi käyttäjänimi',
newVersionAvailable: 'Uusi versio saatavilla',
newestFirst: 'Uusimmat ensin',
noApiKeyCreated: 'API-avainta ei ole luotu.',
noBoards: 'Ei tauluja',
noCardsFound: 'Kortteja ei löytynyt.',
noConnectionToServer: 'Ei yhteyttä palvelimeen',
@@ -257,10 +269,12 @@ export default {
projectNotFound_title: 'Projektia ei löytynyt',
projectOwner: 'Projektin omistaja',
referenceDataAndKnowledgeStorage: 'Viitetiedot ja tietovarasto.',
regenerateApiKey_title: 'Luo API-avain uudelleen',
rejectUnauthorizedTlsCertificates: 'Hylkää valtuuttamattomat TLS-varmenteet',
removeManager_title: 'Poista ylläpitäjä',
removeMember_title: 'Poista jäsen',
role: 'Rooli',
saveThisKeyItWillNotBeShownAgain: 'Tallenna tämä avain — sitä ei näytetä uudelleen!',
searchCards: 'Etsi kortteja...',
searchCustomFieldGroups: 'Etsi mukautettujen kenttien ryhmiä...',
searchCustomFields: 'Etsi mukautettuja kenttiä...',
@@ -377,6 +391,7 @@ export default {
archiveCards_title: 'Arkistoi kortit',
assignAsOwner: 'Aseta omistajaksi',
cancel: 'Peruuta',
createApiKey: 'Luo API-avain',
createBoard: 'Luo taulu',
createCustomFieldGroup: 'Luo mukautettujen kenttien ryhmä',
createFile: 'Luo tiedosto',
@@ -386,6 +401,7 @@ export default {
deactivateUser: 'Poista käyttäjä käytöstä',
deactivateUser_title: 'Poista käyttäjä käytöstä',
delete: 'Poista',
deleteApiKey: 'Poista API-avain',
deleteAttachment: 'Poista liite',
deleteAvatar: 'Poista avatar',
deleteBackgroundImage: 'Poista taustakuva',
@@ -444,6 +460,7 @@ export default {
move: 'Siirrä',
moveCard_title: 'Siirrä kortti',
moveList_title: 'Siirrä lista',
regenerateApiKey: 'Luo API-avain uudelleen',
remove: 'Poista',
removeAssignee: 'Poista vastuuhenkilö',
removeColor: 'Poista väri',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Toutes les modifications seront automatiquement enregistrées<br />une fois la connexion rétablie.',
alphabetically: 'Alphabétique',
alwaysDisplayCardCreator: 'Toujours afficher le créateur de la carte',
apiKeyCreated_title: 'Clé API créée',
apiKey_title: 'Clé API',
archive: 'Archiver',
archiveCard_title: 'Archiver la carte',
archiveCards_title: 'Cartes archivées',
@@ -50,6 +52,7 @@ export default {
'Êtes-vous sûr de vouloir attribuer ce responsable de projet comme propriétaire ?',
areYouSureYouWantToDeactivateThisUser:
'Etes-vous sûr de vouloir désactiver cet utilisateur ?',
areYouSureYouWantToDeleteThisApiKey: 'Êtes-vous sûr de vouloir supprimer cette clé API ?',
areYouSureYouWantToDeleteThisAttachment:
'Êtes-vous sûr de vouloir supprimer cette pièce jointe ?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -81,6 +84,8 @@ export default {
'Êtes-vous sûr de vouloir rendre ce projet privé ?',
areYouSureYouWantToMakeThisProjectShared:
"Etes-vous sûr de vouloir transformer ce projet en projet d'équipe ?",
areYouSureYouWantToRegenerateThisApiKey:
'Êtes-vous sûr de vouloir régénérer cette clé API ? La clé précédente ne fonctionnera plus.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Êtes-vous sûr de vouloir supprimer ce responsable du projet ?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -135,6 +140,7 @@ export default {
createTextFile_title: 'Créer un fichier texte',
creator: 'Créateur',
currentPassword: 'Mot de passe actuel',
currentUser: 'Utilisateur actuel',
customFieldGroup_title: 'Groupe de champs personnalisés',
customFieldGroups_title: 'Groupes de champs personnalisés',
customField_title: 'Champ personnalisé',
@@ -147,6 +153,7 @@ export default {
defaultView_title: 'Vue par défaut',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Supprimer tous les tableaux pour pouvoir supprimer ce projet.',
deleteApiKey_title: 'Supprimer la clé API',
deleteAttachment_title: 'Supprimer la pièce jointe',
deleteBackgroundImage_title: 'Supprimer limage darrière-plan',
deleteBoard_title: 'Supprimer le tableau',
@@ -202,6 +209,8 @@ export default {
forTeamBasedProjects: 'Pour les projets basés sur une équipe.',
fromComputer_title: "Depuis l'ordinateur",
fromTrello: 'Depuis Trello',
fullKeyIsHiddenForSecurityReasons:
'La clé complète est masquée pour des raisons de sécurité. Régénérez-la pour en créer une nouvelle.',
general: 'Général',
gradients: 'Dégradés',
grid: 'Grille',
@@ -209,7 +218,9 @@ export default {
hideFromProjectListAndFavorites: 'Masquer de la liste des projets et des favoris',
host: 'Hôte',
hours: 'Heures',
identity: 'Identité',
importBoard_title: 'Importer un tableau',
information: 'Information',
invalidCurrentPassword: 'Mot de passe actuel invalide',
kanban: 'Kanban',
labels: 'Étiquettes',
@@ -238,6 +249,7 @@ export default {
newUsername: "Nouveau nom d'utilisateur",
newVersionAvailable: 'Une nouvelle version est disponible',
newestFirst: 'Le plus récent en premier',
noApiKeyCreated: 'Aucune clé API créée.',
noBoards: 'Pas de tableau',
noCardsFound: 'Aucune carte trouvée.',
noConnectionToServer: 'Pas de connexion au serveur',
@@ -265,10 +277,12 @@ export default {
projectNotFound_title: 'Projet introuvable',
projectOwner: 'Propriétaire de projet',
referenceDataAndKnowledgeStorage: 'Stockage de données de référence et de connaissances.',
regenerateApiKey_title: 'Régénérer la clé API',
rejectUnauthorizedTlsCertificates: 'Rejeter les certificats TLS non autorisés',
removeManager_title: 'Supprimer le responsable',
removeMember_title: 'Supprimer le membre',
role: 'Rôle',
saveThisKeyItWillNotBeShownAgain: 'Enregistrez cette clé — elle ne sera plus affichée !',
searchCards: 'Rechercher une carte...',
searchCustomFieldGroups: 'Chercher un groupe de champs personnalisés...',
searchCustomFields: 'Chercher un champ personnalisé...',
@@ -382,6 +396,7 @@ export default {
archiveCards_title: 'Archiver les cartes',
assignAsOwner: 'Assigner comme propriétaire',
cancel: 'Annuler',
createApiKey: 'Créer une clé API',
createBoard: 'Créer un tableau',
createCustomFieldGroup: 'Créer un groupe de champs personnalisés',
createFile: 'Créer un fichier',
@@ -391,6 +406,7 @@ export default {
deactivateUser: 'Désactiver lutilisateur',
deactivateUser_title: 'Désactiver lutilisateur',
delete: 'Supprimer',
deleteApiKey: 'Supprimer la clé API',
deleteAttachment: 'Supprimer la pièce jointe',
deleteAvatar: "Supprimer l'avatar",
deleteBackgroundImage: 'Supprimer limage darrière-plan',
@@ -449,6 +465,7 @@ export default {
move: 'Déplacer',
moveCard_title: 'Déplacer la carte',
moveList_title: 'Déplacer la liste',
regenerateApiKey: 'Régénérer la clé API',
remove: 'Supprimer',
removeAssignee: 'Retirer le responsable',
removeColor: 'Supprimer la couleur',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Az összes változás automatikusan mentésre kerül<br />a kapcsolat helyreállása után.',
alphabetically: 'ABC sorrendben',
alwaysDisplayCardCreator: 'Mindig jelenjen meg a kártya készítője',
apiKeyCreated_title: 'API kulcs létrehozva',
apiKey_title: 'API kulcs',
archive: 'Archív',
archiveCard_title: 'Archív kártya',
archiveCards_title: 'Archív kártyák',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Biztosan tulajdonosként jelöli ki ezt a projektmenedzsert?',
areYouSureYouWantToDeactivateThisUser: 'Biztosan deaktiválni szeretné ezt a felhasználót?',
areYouSureYouWantToDeleteThisApiKey: 'Biztosan törölni szeretné ezt az API kulcsot?',
areYouSureYouWantToDeleteThisAttachment: 'Biztosan törölni szeretné ezt a mellékletet?',
areYouSureYouWantToDeleteThisBackgroundImage: 'Biztosan törli ezt a háttérképet?',
areYouSureYouWantToDeleteThisBoard: 'Biztosan törölni szeretné ezt a táblát?',
@@ -72,6 +75,8 @@ export default {
areYouSureYouWantToLeaveProject: 'Biztosan el akarja hagyni a projektet?',
areYouSureYouWantToMakeThisProjectPrivate: 'Biztosan priváttá teszi ezt a projektet?',
areYouSureYouWantToMakeThisProjectShared: 'Biztosan megosztottá teszi ezt a projektet?',
areYouSureYouWantToRegenerateThisApiKey:
'Biztosan újra szeretné generálni ezt az API kulcsot? Az előző kulcs többé nem fog működni.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Biztosan eltávolítja ezt a menedzsert a projektből?',
areYouSureYouWantToRemoveThisMemberFromBoard: 'Biztosan eltávolítja ezt a tagot a tábláról?',
@@ -125,6 +130,7 @@ export default {
createTextFile_title: 'Szövegfájl létrehozása',
creator: 'Létrehozta',
currentPassword: 'Jelenlegi jelszó',
currentUser: 'Jelenlegi felhasználó',
customFieldGroup_title: 'Egyedi mezőcsoport',
customFieldGroups_title: 'Egyedi mezőcsoportok',
customField_title: 'Egyedi mező',
@@ -137,6 +143,7 @@ export default {
defaultView_title: 'Alapértelmezett nézet',
deleteAllBoardsToBeAbleToDeleteThisProject:
'A projekt törléséhez törölni kell az összes táblát.',
deleteApiKey_title: 'API kulcs törlése',
deleteAttachment_title: 'Melléklet törlése',
deleteBackgroundImage_title: 'Háttérkép törlése',
deleteBoard_title: 'Tábla törlése',
@@ -192,6 +199,8 @@ export default {
forTeamBasedProjects: 'Csapatalapú projektekhez.',
fromComputer_title: 'Számítógépről',
fromTrello: 'Trello-ról',
fullKeyIsHiddenForSecurityReasons:
'A teljes kulcs biztonsági okokból rejtett. Generálja újra egy új létrehozásához.',
general: 'Általános',
gradients: 'Színátmenetek',
grid: 'Rács',
@@ -199,7 +208,9 @@ export default {
hideFromProjectListAndFavorites: 'Elrejtés a projektlistából és a kedvencekből',
host: 'Host',
hours: 'Órák',
identity: 'Személyazonosság',
importBoard_title: 'Tábla importálása',
information: 'Információ',
invalidCurrentPassword: 'Érvénytelen jelenlegi jelszó',
kanban: 'Kanban',
labels: 'Címkék',
@@ -228,6 +239,7 @@ export default {
newUsername: 'Új felhasználónév',
newVersionAvailable: 'Új verzió érhető el',
newestFirst: 'Újabbak előre',
noApiKeyCreated: 'Nincs API kulcs létrehozva.',
noBoards: 'Nincsenek táblák',
noCardsFound: 'Nem található kártya.',
noConnectionToServer: 'Nincs kapcsolat a szerverrel',
@@ -255,10 +267,12 @@ export default {
projectNotFound_title: 'Projekt nem található',
projectOwner: 'Projekt tulajdonos',
referenceDataAndKnowledgeStorage: 'Referenciaadatok és tudástár.',
regenerateApiKey_title: 'API kulcs újragenerálása',
rejectUnauthorizedTlsCertificates: 'Jogosulatlan TLS tanúsítványok elutasítása',
removeManager_title: 'Menedzser eltávolítása',
removeMember_title: 'Tag eltávolítása',
role: 'Szerepkör',
saveThisKeyItWillNotBeShownAgain: 'Mentse el ezt a kulcsot — nem jelenik meg újra!',
searchCards: 'Kártyák keresése..',
searchCustomFieldGroups: 'Egyedi mezőcsoportok keresése...',
searchCustomFields: 'Egyedi mezők keresése...',
@@ -378,6 +392,7 @@ export default {
archiveCards_title: 'Archív kártyák',
assignAsOwner: 'Hozzárendelés tulajdonosnak',
cancel: 'Mégsem',
createApiKey: 'API kulcs létrehozása',
createBoard: 'Tábla létrehozása',
createCustomFieldGroup: 'Egyedi mezőcsoport létrehozása',
createFile: 'Fájl létrehozása',
@@ -387,6 +402,7 @@ export default {
deactivateUser: 'Felhasználó inaktiválása',
deactivateUser_title: 'Felhasználó inaktiválása',
delete: 'Törlés',
deleteApiKey: 'API kulcs törlése',
deleteAttachment: 'Melléklet törlése',
deleteAvatar: 'Avatar törlése',
deleteBackgroundImage: 'Háttérkép törlése',
@@ -445,6 +461,7 @@ export default {
move: 'Áthelyezés',
moveCard_title: 'Kártya áthelyezése',
moveList_title: 'Lista áthelyezése',
regenerateApiKey: 'API kulcs újragenerálása',
remove: 'Eltávolítás',
removeAssignee: 'Felelős eltávolítása',
removeColor: 'Szín eltávolítása',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Semua perubahan akan disimpan<br />setelah koneksi pulih.',
alphabetically: 'Berdasarkan abjad',
alwaysDisplayCardCreator: 'Selalu tampilkan pembuat kartu',
apiKeyCreated_title: 'Kunci API Dibuat',
apiKey_title: 'Kunci API',
archive: 'Arsip',
archiveCard_title: 'Arsipkan kartu',
archiveCards_title: 'Arsipkan kartu',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Apakah Anda yakin ingin menetapkan manajer proyek ini sebagai pemilik?',
areYouSureYouWantToDeactivateThisUser: 'Apakah Anda yakin ingin menonaktifkan pengguna ini?',
areYouSureYouWantToDeleteThisApiKey: 'Apakah Anda yakin ingin menghapus kunci API ini?',
areYouSureYouWantToDeleteThisAttachment: 'Apakah anda ingin menghapus lampiran ini?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Apakah Anda yakin ingin menghapus gambar latar belakang ini?',
@@ -78,6 +81,8 @@ export default {
'Apakah Anda yakin ingin menjadikan proyek ini pribadi?',
areYouSureYouWantToMakeThisProjectShared:
'Apakah Anda yakin ingin menjadikan proyek ini bersama?',
areYouSureYouWantToRegenerateThisApiKey:
'Apakah Anda yakin ingin membuat ulang kunci API ini? Kunci sebelumnya tidak akan berfungsi lagi.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Apakah anda ingin menghapus manajer ini dari papan ini?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -132,6 +137,7 @@ export default {
createTextFile_title: 'Buat berkas teks',
creator: 'Pembuat',
currentPassword: 'Kata sandi sekarang',
currentUser: 'Pengguna saat ini',
customFieldGroup_title: 'Grup bidang kustom',
customFieldGroups_title: 'Grup bidang kustom',
customField_title: 'Bidang kustom',
@@ -144,6 +150,7 @@ export default {
defaultView_title: 'Tampilan default',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Hapus semua papan untuk dapat menghapus proyek ini',
deleteApiKey_title: 'Hapus Kunci API',
deleteAttachment_title: 'Hapus lampiran',
deleteBackgroundImage_title: 'Hapus gambar latar belakang',
deleteBoard_title: 'Hapus papan',
@@ -199,6 +206,8 @@ export default {
forTeamBasedProjects: 'Untuk proyek berbasis tim.',
fromComputer_title: 'Dari komputer',
fromTrello: 'Dari Trello',
fullKeyIsHiddenForSecurityReasons:
'Kunci lengkap disembunyikan karena alasan keamanan. Buat ulang untuk membuat yang baru.',
general: 'Umum',
gradients: 'Gradien',
grid: 'Kisi',
@@ -206,7 +215,9 @@ export default {
hideFromProjectListAndFavorites: 'Sembunyikan dari daftar proyek dan favorit',
host: 'Host',
hours: 'Jam',
identity: 'Identitas',
importBoard_title: 'Impor papan',
information: 'Informasi',
invalidCurrentPassword: 'Kata sandi saat ini tidak valid',
kanban: 'Kanban',
labels: 'Label',
@@ -235,6 +246,7 @@ export default {
newUsername: 'Username baru',
newVersionAvailable: 'Versi baru tersedia',
newestFirst: 'Terbaru dulu',
noApiKeyCreated: 'Belum ada kunci API yang dibuat.',
noBoards: 'Tidak ada papan',
noCardsFound: 'Tidak ada kartu ditemukan.',
noConnectionToServer: 'Tidak ada koneksi ke server',
@@ -262,10 +274,12 @@ export default {
projectNotFound_title: 'Proyek tidak ditemukan',
projectOwner: 'Pemilik proyek',
referenceDataAndKnowledgeStorage: 'Penyimpanan data referensi dan pengetahuan.',
regenerateApiKey_title: 'Buat Ulang Kunci API',
rejectUnauthorizedTlsCertificates: 'Tolak sertifikat TLS yang tidak sah',
removeManager_title: 'Hapus manager',
removeMember_title: 'Hapus anggota',
role: 'Peran',
saveThisKeyItWillNotBeShownAgain: 'Simpan kunci ini — tidak akan ditampilkan lagi!',
searchCards: 'Cari kartu...',
searchCustomFieldGroups: 'Cari grup bidang kustom...',
searchCustomFields: 'Cari bidang kustom...',
@@ -379,6 +393,7 @@ export default {
archiveCards_title: 'Arsipkan kartu',
assignAsOwner: 'Tetapkan sebagai pemilik',
cancel: 'Batal',
createApiKey: 'Buat kunci API',
createBoard: 'Tambah papan',
createCustomFieldGroup: 'Buat grup bidang kustom',
createFile: 'Tambah berkas',
@@ -388,6 +403,7 @@ export default {
deactivateUser: 'Nonaktifkan pengguna',
deactivateUser_title: 'Nonaktifkan pengguna',
delete: 'Hapus',
deleteApiKey: 'Hapus kunci API',
deleteAttachment: 'Hapus lampiran',
deleteAvatar: 'Hapus avatar',
deleteBackgroundImage: 'Hapus gambar latar belakang',
@@ -446,6 +462,7 @@ export default {
move: 'Pindah',
moveCard_title: 'Pindahkan kartu',
moveList_title: 'Pindahkan daftar',
regenerateApiKey: 'Buat ulang kunci API',
remove: 'Hapus',
removeAssignee: 'Hapus penerima tugas',
removeColor: 'Hapus warna',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Tutte le modifiche verranno salvate<br />al ripristino della connessione.',
alphabetically: 'In ordine alfabetico',
alwaysDisplayCardCreator: 'Mostra sempre il creatore della scheda',
apiKeyCreated_title: 'Chiave API creata',
apiKey_title: 'Chiave API',
archive: 'Archivia',
archiveCard_title: 'Archivia scheda',
archiveCards_title: 'Archivia schede',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Sei sicuro di voler assegnare questo project manager come proprietario?',
areYouSureYouWantToDeactivateThisUser: 'Sei sicuro di voler disattivare questo utente?',
areYouSureYouWantToDeleteThisApiKey: 'Sei sicuro di voler eliminare questa chiave API?',
areYouSureYouWantToDeleteThisAttachment: 'Sei sicuro di voler eliminare questo allegato?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Sei sicuro di voler eliminare questa immagine di sfondo?',
@@ -78,6 +81,8 @@ export default {
'Sei sicuro di voler rendere questo progetto privato?',
areYouSureYouWantToMakeThisProjectShared:
'Sei sicuro di voler rendere questo progetto condiviso?',
areYouSureYouWantToRegenerateThisApiKey:
'Sei sicuro di voler rigenerare questa chiave API? La chiave precedente non funzionerà più.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Sei sicuro di voler rimuovere questo amministratore dal progetto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -132,6 +137,7 @@ export default {
createTextFile_title: 'Crea file di testo',
creator: 'Creatore',
currentPassword: 'Password attuale',
currentUser: 'Utente corrente',
customFieldGroup_title: 'Campi personalizzati',
customFieldGroups_title: 'Campi personalizzati',
customField_title: 'Campo personalizzato',
@@ -144,6 +150,7 @@ export default {
defaultView_title: 'Vista predefinita',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Elimina tutte le bacheche per poter eliminare questo progetto.',
deleteApiKey_title: 'Elimina chiave API',
deleteAttachment_title: 'Elimina allegato',
deleteBackgroundImage_title: 'Elimina immagine di sfondo',
deleteBoard_title: 'Elimina bacheca',
@@ -199,6 +206,8 @@ export default {
forTeamBasedProjects: 'Per progetti di gruppo.',
fromComputer_title: 'Dal computer',
fromTrello: 'Da Trello',
fullKeyIsHiddenForSecurityReasons:
'La chiave completa è nascosta per motivi di sicurezza. Rigenerala per crearne una nuova.',
general: 'Generale',
gradients: 'Gradiente',
grid: 'Griglia',
@@ -206,7 +215,9 @@ export default {
hideFromProjectListAndFavorites: 'Nascondi dalla lista dei progetti e dai preferiti',
host: 'Host',
hours: 'Ore',
identity: 'Identità',
importBoard_title: 'Importa board',
information: 'Informazione',
invalidCurrentPassword: 'Password corrente non valida',
kanban: 'Kanban',
labels: 'Etichette',
@@ -235,6 +246,7 @@ export default {
newUsername: 'Nuovo username',
newVersionAvailable: 'Nuova versione disponibile',
newestFirst: 'Dal più recente',
noApiKeyCreated: 'Nessuna chiave API creata.',
noBoards: 'Nessuna bacheca',
noCardsFound: 'Nessuna scheda trovata.',
noConnectionToServer: 'Nessuna connessione al server',
@@ -262,10 +274,12 @@ export default {
projectNotFound_title: 'Progetto non trovato',
projectOwner: 'Proprietario del progetto',
referenceDataAndKnowledgeStorage: 'Dati di riferimento e di archiviazione.',
regenerateApiKey_title: 'Rigenera chiave API',
rejectUnauthorizedTlsCertificates: 'Rifiuta certificati TLS non autorizzati',
removeManager_title: 'Rimuovi manager',
removeMember_title: 'Rimuovi membro',
role: 'Ruolo',
saveThisKeyItWillNotBeShownAgain: 'Salva questa chiave — non verrà più mostrata!',
searchCards: 'Cerca schede...',
searchCustomFieldGroups: 'Cerca campi personalizzati...',
searchCustomFields: 'Cerca campi personalizzati...',
@@ -380,6 +394,7 @@ export default {
archiveCards_title: 'Archivia schede',
assignAsOwner: 'Assegna come proprietario',
cancel: 'Annulla',
createApiKey: 'Crea chiave API',
createBoard: 'Crea bacheca',
createCustomFieldGroup: 'Crea campi personalizzati',
createFile: 'Crea file',
@@ -389,6 +404,7 @@ export default {
deactivateUser: 'Disattiva utente',
deactivateUser_title: 'Disattiva utente',
delete: 'Elimina',
deleteApiKey: 'Elimina chiave API',
deleteAttachment: 'Elimina allegato',
deleteAvatar: 'Elimina avatar',
deleteBackgroundImage: 'Elimina immagine di sfondo',
@@ -447,6 +463,7 @@ export default {
move: 'Muovi',
moveCard_title: 'Muovi scheda',
moveList_title: 'Muovi lista',
regenerateApiKey: 'Rigenera chiave API',
remove: 'Rimuovi',
removeAssignee: 'Rimuovi assegnatario',
removeColor: 'Rimuovi colore',
+17
View File
@@ -40,6 +40,8 @@ export default {
'全ての変更は接続回復後<br />自動的に保存されます。',
alphabetically: 'アルファベット順',
alwaysDisplayCardCreator: 'カード作成者を常に表示',
apiKeyCreated_title: 'APIキーが作成されました',
apiKey_title: 'APIキー',
archive: 'アーカイブ',
archiveCard_title: 'カードをアーカイブ',
archiveCards_title: 'カードをアーカイブ',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'このプロジェクトマネージャーをオーナーに割り当ててもよろしいですか?',
areYouSureYouWantToDeactivateThisUser: 'このユーザーを非アクティブにしてもよろしいですか?',
areYouSureYouWantToDeleteThisApiKey: 'このAPIキーを削除してもよろしいですか?',
areYouSureYouWantToDeleteThisAttachment: 'この添付ファイルを削除してもよろしいですか?',
areYouSureYouWantToDeleteThisBackgroundImage: 'この背景画像を削除してもよろしいですか?',
areYouSureYouWantToDeleteThisBoard: 'このボードを削除してもよろしいですか?',
@@ -75,6 +78,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'このプロジェクトをプライベートにしてもよろしいですか?',
areYouSureYouWantToMakeThisProjectShared: 'このプロジェクトを共有にしてもよろしいですか?',
areYouSureYouWantToRegenerateThisApiKey:
'このAPIキーを再生成してもよろしいですか?以前のキーは使用できなくなります。',
areYouSureYouWantToRemoveThisManagerFromProject:
'このマネージャーをプロジェクトから外してもよろしいですか?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -128,6 +133,7 @@ export default {
createTextFile_title: 'テキストファイルを作成',
creator: '作成者',
currentPassword: '現在のパスワード',
currentUser: '現在のユーザー',
customFieldGroup_title: 'カスタムフィールドグループ',
customFieldGroups_title: 'カスタムフィールドグループ',
customField_title: 'カスタムフィールド',
@@ -140,6 +146,7 @@ export default {
defaultView_title: 'デフォルトビュー',
deleteAllBoardsToBeAbleToDeleteThisProject:
'このプロジェクトを削除するには、すべてのボードを削除してください',
deleteApiKey_title: 'APIキーを削除',
deleteAttachment_title: '添付ファイルを削除',
deleteBackgroundImage_title: '背景画像を削除',
deleteBoard_title: 'ボードを削除',
@@ -195,6 +202,8 @@ export default {
forTeamBasedProjects: 'チームベースプロジェクト用。',
fromComputer_title: 'コンピューターから',
fromTrello: 'Trelloから',
fullKeyIsHiddenForSecurityReasons:
'セキュリティ上の理由により、完全なキーは非表示になっています。新しいキーを作成するには再生成してください。',
general: '一般',
gradients: 'グラデーション',
grid: 'グリッド',
@@ -202,7 +211,9 @@ export default {
hideFromProjectListAndFavorites: 'プロジェクトリストとお気に入りから非表示',
host: 'ホスト',
hours: '時間',
identity: '身元',
importBoard_title: 'インポートボード',
information: '情報',
invalidCurrentPassword: '現在のパスワードが無効',
kanban: 'カンバン',
labels: 'ラベル',
@@ -231,6 +242,7 @@ export default {
newUsername: '新しいユーザー名',
newVersionAvailable: '新しいバージョンが利用可能',
newestFirst: '新しい順',
noApiKeyCreated: 'APIキーが作成されていません。',
noBoards: 'ボードがありません',
noCardsFound: 'カードが見つかりません。',
noConnectionToServer: 'サーバーへ接続されていません',
@@ -258,10 +270,12 @@ export default {
projectNotFound_title: 'プロジェクトがありません',
projectOwner: 'プロジェクトオーナー',
referenceDataAndKnowledgeStorage: '参照データと知識の保存。',
regenerateApiKey_title: 'APIキーを再生成',
rejectUnauthorizedTlsCertificates: '未承認のTLS証明書を拒否',
removeManager_title: 'マネージャーを削除',
removeMember_title: 'メンバーを削除',
role: '役割',
saveThisKeyItWillNotBeShownAgain: 'このキーを保存してください。再表示されません!',
searchCards: 'カードを検索...',
searchCustomFieldGroups: 'カスタムフィールドグループを検索...',
searchCustomFields: 'カスタムフィールドを検索...',
@@ -376,6 +390,7 @@ export default {
archiveCards_title: 'カードをアーカイブ',
assignAsOwner: 'オーナーとして割り当て',
cancel: 'キャンセル',
createApiKey: 'APIキーを作成',
createBoard: 'ボードを作成',
createCustomFieldGroup: 'カスタムフィールドグループを作成',
createFile: 'ファイルを作成',
@@ -385,6 +400,7 @@ export default {
deactivateUser: 'ユーザーを非アクティブにする',
deactivateUser_title: 'ユーザーを非アクティブにする',
delete: '削除',
deleteApiKey: 'APIキーを削除',
deleteAttachment: '添付ファイルを削除',
deleteAvatar: 'アバターを削除',
deleteBackgroundImage: '背景画像を削除',
@@ -443,6 +459,7 @@ export default {
move: '移動',
moveCard_title: 'カードを移動',
moveList_title: 'リストを移動',
regenerateApiKey: 'APIキーを再生成',
remove: '削除',
removeAssignee: '担当者を削除',
removeColor: '色を削除',
+17
View File
@@ -40,6 +40,8 @@ export default {
'연결이 복구되면 모든 변경 사항이<br />자동으로 저장됩니다.',
alphabetically: '알파벳순',
alwaysDisplayCardCreator: '항상 카드 생성자 표시',
apiKeyCreated_title: 'API 키 생성됨',
apiKey_title: 'API 키',
archive: '보관',
archiveCard_title: '카드 보관',
archiveCards_title: '카드들 보관',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'이 프로젝트 관리자를 소유자로 지정하시겠습니까?',
areYouSureYouWantToDeactivateThisUser: '이 사용자를 비활성화하시겠습니까?',
areYouSureYouWantToDeleteThisApiKey: '이 API 키를 삭제하시겠습니까?',
areYouSureYouWantToDeleteThisAttachment: '이 첨부 파일을 삭제하시겠습니까?',
areYouSureYouWantToDeleteThisBackgroundImage: '이 배경 이미지를 삭제하시겠습니까?',
areYouSureYouWantToDeleteThisBoard: '이 보드를 삭제하시겠습니까?',
@@ -71,6 +74,8 @@ export default {
areYouSureYouWantToLeaveProject: '이 프로젝트를 떠나시겠습니까?',
areYouSureYouWantToMakeThisProjectPrivate: '이 프로젝트를 비공개로 만드시겠습니까?',
areYouSureYouWantToMakeThisProjectShared: '이 프로젝트를 공유하시겠습니까?',
areYouSureYouWantToRegenerateThisApiKey:
'이 API 키를 재생성하시겠습니까? 이전 키는 더 이상 작동하지 않습니다.',
areYouSureYouWantToRemoveThisManagerFromProject: '이 관리자를 프로젝트에서 제거하시겠습니까?',
areYouSureYouWantToRemoveThisMemberFromBoard: '이 멤버를 보드에서 제거하시겠습니까?',
assignAsOwner_title: '소유자로 지정',
@@ -123,6 +128,7 @@ export default {
createTextFile_title: '텍스트 파일 생성',
creator: '생성자',
currentPassword: '현재 비밀번호',
currentUser: '현재 사용자',
customFieldGroup_title: '사용자 정의 필드 그룹',
customFieldGroups_title: '사용자 정의 필드 그룹들',
customField_title: '사용자 정의 필드',
@@ -134,6 +140,7 @@ export default {
defaultFrom: '기본 발신자',
defaultView_title: '기본 보기',
deleteAllBoardsToBeAbleToDeleteThisProject: '이 프로젝트를 삭제하려면 모든 보드를 삭제하세요',
deleteApiKey_title: 'API 키 삭제',
deleteAttachment_title: '첨부 파일 삭제',
deleteBackgroundImage_title: '배경 이미지 삭제',
deleteBoard_title: '보드 삭제',
@@ -189,6 +196,8 @@ export default {
forTeamBasedProjects: '팀 기반 프로젝트용.',
fromComputer_title: '컴퓨터에서',
fromTrello: 'Trello에서',
fullKeyIsHiddenForSecurityReasons:
'보안상의 이유로 전체 키가 숨겨져 있습니다. 새 키를 만들려면 재생성하십시오.',
general: '일반',
gradients: '그라데이션',
grid: '격자',
@@ -196,7 +205,9 @@ export default {
hideFromProjectListAndFavorites: '프로젝트 목록과 즐겨찾기에서 숨기기',
host: '호스트',
hours: '시간',
identity: '신원',
importBoard_title: '보드 가져오기',
information: '정보',
invalidCurrentPassword: '잘못된 현재 비밀번호',
kanban: '칸반',
labels: '라벨',
@@ -225,6 +236,7 @@ export default {
newUsername: '새 사용자 이름',
newVersionAvailable: '새 버전 사용 가능',
newestFirst: '최신순',
noApiKeyCreated: '생성된 API 키가 없습니다.',
noBoards: '보드 없음',
noCardsFound: '카드를 찾을 수 없음.',
noConnectionToServer: '서버에 연결되지 않음',
@@ -252,10 +264,12 @@ export default {
projectNotFound_title: '프로젝트를 찾을 수 없음',
projectOwner: '프로젝트 소유자',
referenceDataAndKnowledgeStorage: '참조 데이터 및 지식 저장소.',
regenerateApiKey_title: 'API 키 재생성',
rejectUnauthorizedTlsCertificates: '승인되지 않은 TLS 인증서 거부',
removeManager_title: '관리자 제거',
removeMember_title: '멤버 제거',
role: '역할',
saveThisKeyItWillNotBeShownAgain: '이 키를 저장하세요. 다시 표시되지 않습니다!',
searchCards: '카드 검색...',
searchCustomFieldGroups: '사용자 정의 필드 그룹 검색...',
searchCustomFields: '사용자 정의 필드 검색...',
@@ -373,6 +387,7 @@ export default {
archiveCards_title: '카드들 보관',
assignAsOwner: '소유자로 지정',
cancel: '취소',
createApiKey: 'API 키 생성',
createBoard: '보드 생성',
createCustomFieldGroup: '사용자 정의 필드 그룹 생성',
createFile: '파일 생성',
@@ -382,6 +397,7 @@ export default {
deactivateUser: '사용자 비활성화',
deactivateUser_title: '사용자 비활성화',
delete: '삭제',
deleteApiKey: 'API 키 삭제',
deleteAttachment: '첨부 파일 삭제',
deleteAvatar: '아바타 삭제',
deleteBackgroundImage: '배경 이미지 삭제',
@@ -440,6 +456,7 @@ export default {
move: '이동',
moveCard_title: '카드 이동',
moveList_title: '목록 이동',
regenerateApiKey: 'API 키 재생성',
remove: '제거',
removeAssignee: '담당자 제거',
removeColor: '색상 제거',
+18
View File
@@ -40,6 +40,8 @@ export default {
'Alle wijzigingen worden automatisch opgeslagen<br />nadat de verbinding is hersteld.',
alphabetically: 'Alfabetisch',
alwaysDisplayCardCreator: 'Kaartmaker altijd weergeven',
apiKeyCreated_title: 'API-sleutel aangemaakt',
apiKey_title: 'API-sleutel',
archive: 'Archief',
archiveCard_title: 'Kaart archiveren',
archiveCards_title: 'Kaarten archiveren',
@@ -49,6 +51,8 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Weet u zeker dat u deze projectmanager als eigenaar wilt toewijzen?',
areYouSureYouWantToDeactivateThisUser: 'Weet u zeker dat u deze gebruiker wilt deactiveren?',
areYouSureYouWantToDeleteThisApiKey:
'Weet je zeker dat je deze API-sleutel wilt verwijderen?',
areYouSureYouWantToDeleteThisAttachment: 'Weet u zeker dat u deze bijlage wilt verwijderen?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Weet u zeker dat u deze achtergrondafbeelding wilt verwijderen?',
@@ -77,6 +81,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate: 'Weet u zeker dat u dit project privé wilt maken?',
areYouSureYouWantToMakeThisProjectShared:
'Weet u zeker dat u dit project gedeeld wilt maken?',
areYouSureYouWantToRegenerateThisApiKey:
'Weet je zeker dat je deze API-sleutel opnieuw wilt genereren? De vorige sleutel werkt niet meer.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Weet u zeker dat u deze manager uit het project wilt verwijderen?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -130,6 +136,7 @@ export default {
createTextFile_title: 'Tekstbestand aanmaken',
creator: 'Maker',
currentPassword: 'Huidig wachtwoord',
currentUser: 'Huidige gebruiker',
customFieldGroup_title: 'Aangepaste veldgroep',
customFieldGroups_title: 'Aangepaste veldgroepen',
customField_title: 'Aangepast veld',
@@ -142,6 +149,7 @@ export default {
defaultView_title: 'Standaardweergave',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Verwijder alle borden om dit project te kunnen verwijderen',
deleteApiKey_title: 'API-sleutel verwijderen',
deleteAttachment_title: 'Bijlage verwijderen',
deleteBackgroundImage_title: 'Achtergrondafbeelding verwijderen',
deleteBoard_title: 'Bord verwijderen',
@@ -197,6 +205,8 @@ export default {
forTeamBasedProjects: 'Voor teamgebaseerde projecten.',
fromComputer_title: 'Van computer',
fromTrello: 'Van Trello',
fullKeyIsHiddenForSecurityReasons:
'De volledige sleutel is om veiligheidsredenen verborgen. Genereer deze opnieuw om een nieuwe te maken.',
general: 'Algemeen',
gradients: 'Verlopen',
grid: 'Raster',
@@ -204,7 +214,9 @@ export default {
hideFromProjectListAndFavorites: 'Verbergen uit projectlijst en favorieten',
host: 'Host',
hours: 'Uren',
identity: 'Identiteit',
importBoard_title: 'Bord importeren',
information: 'Informatie',
invalidCurrentPassword: 'Ongeldig huidig wachtwoord',
kanban: 'Kanban',
labels: 'Labels',
@@ -233,6 +245,7 @@ export default {
newUsername: 'Nieuwe gebruikersnaam',
newVersionAvailable: 'Nieuwe versie beschikbaar',
newestFirst: 'Nieuwste eerst',
noApiKeyCreated: 'Geen API-sleutel aangemaakt.',
noBoards: 'Geen borden',
noCardsFound: 'Geen kaarten gevonden.',
noConnectionToServer: 'Geen verbinding met server',
@@ -260,10 +273,12 @@ export default {
projectNotFound_title: 'Project niet gevonden',
projectOwner: 'Projecteigenaar',
referenceDataAndKnowledgeStorage: 'Referentiegegevens en kennisopslag.',
regenerateApiKey_title: 'API-sleutel opnieuw genereren',
rejectUnauthorizedTlsCertificates: 'Niet-geautoriseerde TLS-certificaten weigeren',
removeManager_title: 'Manager verwijderen',
removeMember_title: 'Lid verwijderen',
role: 'Rol',
saveThisKeyItWillNotBeShownAgain: 'Bewaar deze sleutel — deze wordt niet opnieuw getoond!',
searchCards: 'Kaarten zoeken...',
searchCustomFieldGroups: 'Aangepaste veldgroepen zoeken...',
searchCustomFields: 'Aangepaste velden zoeken...',
@@ -380,6 +395,7 @@ export default {
archiveCards_title: 'Kaarten archiveren',
assignAsOwner: 'Toewijzen als eigenaar',
cancel: 'Annuleren',
createApiKey: 'API-sleutel aanmaken',
createBoard: 'Bord aanmaken',
createCustomFieldGroup: 'Aangepaste veldgroep aanmaken',
createFile: 'Bestand aanmaken',
@@ -389,6 +405,7 @@ export default {
deactivateUser: 'Gebruiker deactiveren',
deactivateUser_title: 'Gebruiker deactiveren',
delete: 'Verwijderen',
deleteApiKey: 'API-sleutel verwijderen',
deleteAttachment: 'Bijlage verwijderen',
deleteAvatar: 'Avatar verwijderen',
deleteBackgroundImage: 'Achtergrondafbeelding verwijderen',
@@ -447,6 +464,7 @@ export default {
move: 'Verplaatsen',
moveCard_title: 'Kaart verplaatsen',
moveList_title: 'Lijst verplaatsen',
regenerateApiKey: 'API-sleutel opnieuw genereren',
remove: 'Verwijderen',
removeAssignee: 'Toegewezene verwijderen',
removeColor: 'Kleur verwijderen',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Wszystkie zmiany zostaną automatycznie zapisane<br />po przywróceniu połączenia.',
alphabetically: 'Alfabetycznie',
alwaysDisplayCardCreator: 'Zawsze pokazuj twórcę karty',
apiKeyCreated_title: 'Klucz API utworzony',
apiKey_title: 'Klucz API',
archive: 'Archiwum',
archiveCard_title: 'Archiwizuj kartę',
archiveCards_title: 'Archiwizuj karty',
@@ -50,6 +52,7 @@ export default {
'Jesteś pewien że chcesz przypisać tego zarządcę jako właściciela projektu?',
areYouSureYouWantToDeactivateThisUser:
'Jesteś pewien że chcesz dezaktywować tego użytkownika?',
areYouSureYouWantToDeleteThisApiKey: 'Czy na pewno chcesz usunąć ten klucz API?',
areYouSureYouWantToDeleteThisAttachment: 'Jesteś pewien że chcesz usunąć ten załącznik?',
areYouSureYouWantToDeleteThisBackgroundImage: 'Jesteś pewien że chcesz usunąć to tło?',
areYouSureYouWantToDeleteThisBoard: 'Jesteś pewien że chcesz usunąć tę tablicę?',
@@ -77,6 +80,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Jesteś pewien że chcesz uczynić ten projekt prywatnym?',
areYouSureYouWantToMakeThisProjectShared: 'Jesteś pewien że chcesz udostępnić ten projekt?',
areYouSureYouWantToRegenerateThisApiKey:
'Czy na pewno chcesz wygenerować ponownie ten klucz API? Poprzedni klucz przestanie działać.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Jesteś pewien że chcesz usunąć tego zarządcę z projektu?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -130,6 +135,7 @@ export default {
createTextFile_title: 'Utwórz plik tekstowy',
creator: 'Twórca',
currentPassword: 'Obecne hasło',
currentUser: 'Bieżący użytkownik',
customFieldGroup_title: 'Grupa pól własnych',
customFieldGroups_title: 'Grupy pól własnych',
customField_title: 'Własne pole',
@@ -142,6 +148,7 @@ export default {
defaultView_title: 'Domyślny widok',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Usuń wszystkie tablice, aby móc usunąć ten projekt',
deleteApiKey_title: 'Usuń klucz API',
deleteAttachment_title: 'Usuń załącznik',
deleteBackgroundImage_title: 'Usuń tło',
deleteBoard_title: 'Usuń tablicę',
@@ -197,6 +204,8 @@ export default {
forTeamBasedProjects: 'Dla projektów zespołowych.',
fromComputer_title: 'Z komputera',
fromTrello: 'Z Trello',
fullKeyIsHiddenForSecurityReasons:
'Pełny klucz jest ukryty ze względów bezpieczeństwa. Wygeneruj go ponownie, aby utworzyć nowy.',
general: 'Ogólne',
gradients: 'Gradienty',
grid: 'Siatka',
@@ -204,7 +213,9 @@ export default {
hideFromProjectListAndFavorites: 'Ukryj z listy projektów i ulubionych',
host: 'Host',
hours: 'Godzin',
identity: 'Tożsamość',
importBoard_title: 'Importuj tablicę',
information: 'Informacja',
invalidCurrentPassword: 'Błędne obecne hasło',
kanban: 'Kanban',
labels: 'Oznaczenia',
@@ -233,6 +244,7 @@ export default {
newUsername: 'Nowa nazwa użytkownika',
newVersionAvailable: 'Nowa wersja dostępna',
newestFirst: 'Najpierw najnowsze',
noApiKeyCreated: 'Nie utworzono klucza API.',
noBoards: 'Brak tablic',
noCardsFound: 'Nie znaleziono kart.',
noConnectionToServer: 'Brak połączenia z serwerem',
@@ -260,10 +272,12 @@ export default {
projectNotFound_title: 'Projektu nie znaleziono',
projectOwner: 'Właściciel projektu',
referenceDataAndKnowledgeStorage: 'Odnoś się do danych i przechowuj wiedzę.',
regenerateApiKey_title: 'Wygeneruj ponownie klucz API',
rejectUnauthorizedTlsCertificates: 'Odrzuć nieautoryzowane certyfikaty TLS',
removeManager_title: 'Usuń zarządcę',
removeMember_title: 'Usuń członka',
role: 'Rola',
saveThisKeyItWillNotBeShownAgain: 'Zapisz ten klucz — nie zostanie ponownie wyświetlony!',
searchCards: 'Szukaj kart...',
searchCustomFieldGroups: 'Szukaj grup pól własnych...',
searchCustomFields: 'Szukaj pól własnych...',
@@ -377,6 +391,7 @@ export default {
archiveCards_title: 'Archiwizuj karty',
assignAsOwner: 'Przypisz jako właściciela',
cancel: 'Anuluj',
createApiKey: 'Utwórz klucz API',
createBoard: 'Utwórz tablicę',
createCustomFieldGroup: 'Utwórz grupę pól własnych',
createFile: 'Utwórz plik',
@@ -386,6 +401,7 @@ export default {
deactivateUser: 'Dezaktywuj użytkownika',
deactivateUser_title: 'Dezaktywuj użytkownika',
delete: 'Usuń',
deleteApiKey: 'Usuń klucz API',
deleteAttachment: 'Usuń attachment',
deleteAvatar: 'Usuń awatar',
deleteBackgroundImage: 'Usuń tło',
@@ -444,6 +460,7 @@ export default {
move: 'Przenieś',
moveCard_title: 'Przenieś kartę',
moveList_title: 'Przenieś listę',
regenerateApiKey: 'Wygeneruj ponownie klucz API',
remove: 'Usuń',
removeAssignee: 'Usuń osobę przypisaną',
removeColor: 'Usuń kolor',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Todas as alterações serão salvas automaticamente<br />após a conexão ser restaurada.',
alphabetically: 'Em ordem alfabética',
alwaysDisplayCardCreator: 'Sempre exibir criador do cartão',
apiKeyCreated_title: 'Chave API criada',
apiKey_title: 'Chave API',
archive: 'Arquivar',
archiveCard_title: 'Arquivar cartão',
archiveCards_title: 'Arquivar cartões',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Tem certeza de que deseja atribuir este gerente de projeto como proprietário?',
areYouSureYouWantToDeactivateThisUser: 'Tem certeza de que deseja desativar este usuário?',
areYouSureYouWantToDeleteThisApiKey: 'Tem certeza de que deseja excluir esta chave API?',
areYouSureYouWantToDeleteThisAttachment: 'Tem certeza de que deseja excluir este anexo?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Tem certeza que deseja excluir esta imagem de fundo?',
@@ -79,6 +82,8 @@ export default {
'Tem certeza de que deseja tornar este projeto privado?',
areYouSureYouWantToMakeThisProjectShared:
'Tem certeza de que deseja tornar este projeto compartilhado?',
areYouSureYouWantToRegenerateThisApiKey:
'Tem certeza de que deseja regenerar esta chave API? A chave anterior não funcionará mais.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Tem certeza de que deseja remover este gerente do projeto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -133,6 +138,7 @@ export default {
createTextFile_title: 'Criar arquivo de texto',
creator: 'Criador',
currentPassword: 'Senha atual',
currentUser: 'Usuário atual',
customFieldGroup_title: 'Grupo de campo personalizado',
customFieldGroups_title: 'Grupos de campo personalizado',
customField_title: 'Campo personalizado',
@@ -145,6 +151,7 @@ export default {
defaultView_title: 'Visualização padrão',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Excluir todos os quadros para poder excluir este projeto',
deleteApiKey_title: 'Excluir chave API',
deleteAttachment_title: 'Excluir anexo',
deleteBackgroundImage_title: 'Excluir imagem de fundo',
deleteBoard_title: 'Excluir quadro',
@@ -200,6 +207,8 @@ export default {
forTeamBasedProjects: 'Para projetos em equipe.',
fromComputer_title: 'Do computador',
fromTrello: 'Do Trello',
fullKeyIsHiddenForSecurityReasons:
'A chave completa está oculta por motivos de segurança. Regenere-a para criar uma nova.',
general: 'Geral',
gradients: 'Gradientes',
grid: 'Grade',
@@ -207,7 +216,9 @@ export default {
hideFromProjectListAndFavorites: 'Ocultar da lista de projetos e favoritos',
host: 'Host',
hours: 'Horas',
identity: 'Identidade',
importBoard_title: 'Importar quadro',
information: 'Informação',
invalidCurrentPassword: 'Senha atual inválida',
kanban: 'Kanban',
labels: 'Rótulos',
@@ -236,6 +247,7 @@ export default {
newUsername: 'Novo nome de usuário',
newVersionAvailable: 'Nova versão disponível',
newestFirst: 'Mais recentes primeiro',
noApiKeyCreated: 'Nenhuma chave API criada.',
noBoards: 'Sem quadros',
noCardsFound: 'Nenhum cartão encontrado.',
noConnectionToServer: 'Sem conexão com o servidor',
@@ -263,10 +275,12 @@ export default {
projectNotFound_title: 'Projeto não encontrado',
projectOwner: 'Proprietário do projeto',
referenceDataAndKnowledgeStorage: 'Armazenamento de dados de referência e conhecimento.',
regenerateApiKey_title: 'Regenerar chave API',
rejectUnauthorizedTlsCertificates: 'Rejeitar certificados TLS não autorizados',
removeManager_title: 'Remover gerente',
removeMember_title: 'Remover membro',
role: 'Função',
saveThisKeyItWillNotBeShownAgain: 'Salve esta chave — ela não será exibida novamente!',
searchCards: 'Pesquisar cartões...',
searchCustomFieldGroups: 'Pesquisar grupos de campos personalizados...',
searchCustomFields: 'Pesquisar campos personalizados...',
@@ -380,6 +394,7 @@ export default {
archiveCards_title: 'Arquivar cartões',
assignAsOwner: 'Atribuir como proprietário',
cancel: 'Cancelar',
createApiKey: 'Criar chave API',
createBoard: 'Criar quadro',
createCustomFieldGroup: 'Criar grupo de campos personalizados',
createFile: 'Criar arquivo',
@@ -389,6 +404,7 @@ export default {
deactivateUser: 'Desativar usuário',
deactivateUser_title: 'Desativar usuário',
delete: 'Excluir',
deleteApiKey: 'Excluir chave API',
deleteAttachment: 'Excluir anexo',
deleteAvatar: 'Excluir avatar',
deleteBackgroundImage: 'Excluir imagem de fundo',
@@ -447,6 +463,7 @@ export default {
move: 'Mover',
moveCard_title: 'Mover cartão',
moveList_title: 'Mover lista',
regenerateApiKey: 'Regenerar chave API',
remove: 'Remover',
removeAssignee: 'Remover responsável',
removeColor: 'Remover cor',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Todas as alterações serão automaticamente guardadas<br />após a ligação ser restabelecida.',
alphabetically: 'Alfabeticamente',
alwaysDisplayCardCreator: 'Mostrar sempre o criador do cartão',
apiKeyCreated_title: 'Chave API criada',
apiKey_title: 'Chave API',
archive: 'Arquivo',
archiveCard_title: 'Arquivar cartão',
archiveCards_title: 'Arquivar cartões',
@@ -50,6 +52,7 @@ export default {
'Tem a certeza de que pretende atribuir este gestor de projeto como proprietário?',
areYouSureYouWantToDeactivateThisUser:
'Tem a certeza de que pretende desativar este utilizador?',
areYouSureYouWantToDeleteThisApiKey: 'Tem a certeza de que pretende eliminar esta chave API?',
areYouSureYouWantToDeleteThisAttachment: 'Tem a certeza de que pretende eliminar este anexo?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Tem a certeza de que pretende eliminar esta imagem de fundo?',
@@ -81,6 +84,8 @@ export default {
'Tem a certeza de que pretende tornar este projeto privado?',
areYouSureYouWantToMakeThisProjectShared:
'Tem a certeza de que pretende tornar este projeto partilhado?',
areYouSureYouWantToRegenerateThisApiKey:
'Tem a certeza de que pretende regenerar esta chave API? A chave anterior deixará de funcionar.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Tem a certeza de que pretende remover este gestor do projeto?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -135,6 +140,7 @@ export default {
createTextFile_title: 'Criar ficheiro de texto',
creator: 'Criador',
currentPassword: 'Palavra-passe atual',
currentUser: 'Utilizador atual',
customFieldGroup_title: 'Grupo de campos personalizados',
customFieldGroups_title: 'Grupos de campos personalizados',
customField_title: 'Campo personalizado',
@@ -147,6 +153,7 @@ export default {
defaultView_title: 'Vista padrão',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Elimine todos os quadros para poder eliminar este projeto',
deleteApiKey_title: 'Eliminar chave API',
deleteAttachment_title: 'Eliminar anexo',
deleteBackgroundImage_title: 'Eliminar imagem de fundo',
deleteBoard_title: 'Eliminar quadro',
@@ -202,6 +209,8 @@ export default {
forTeamBasedProjects: 'Para projetos baseados em equipa.',
fromComputer_title: 'Do computador',
fromTrello: 'Do Trello',
fullKeyIsHiddenForSecurityReasons:
'A chave completa está oculta por razões de segurança. Regenere-a para criar uma nova.',
general: 'Geral',
gradients: 'Gradientes',
grid: 'Grelha',
@@ -209,7 +218,9 @@ export default {
hideFromProjectListAndFavorites: 'Ocultar da lista de projetos e favoritos',
host: 'Anfitrião',
hours: 'Horas',
identity: 'Identidade',
importBoard_title: 'Importar quadro',
information: 'Informação',
invalidCurrentPassword: 'Palavra-passe atual inválida',
kanban: 'Kanban',
labels: 'Etiquetas',
@@ -238,6 +249,7 @@ export default {
newUsername: 'Novo nome de utilizador',
newVersionAvailable: 'Nova versão disponível',
newestFirst: 'Mais recentes primeiro',
noApiKeyCreated: 'Nenhuma chave API criada.',
noBoards: 'Sem quadros',
noCardsFound: 'Nenhum cartão encontrado.',
noConnectionToServer: 'Sem ligação ao servidor',
@@ -265,10 +277,12 @@ export default {
projectNotFound_title: 'Projeto não encontrado',
projectOwner: 'Proprietário do projeto',
referenceDataAndKnowledgeStorage: 'Armazenamento de dados de referência e conhecimento.',
regenerateApiKey_title: 'Regenerar chave API',
rejectUnauthorizedTlsCertificates: 'Rejeitar certificados TLS não autorizados',
removeManager_title: 'Remover gestor',
removeMember_title: 'Remover membro',
role: 'Função',
saveThisKeyItWillNotBeShownAgain: 'Guarde esta chave — não será mostrada novamente!',
searchCards: 'Pesquisar cartões...',
searchCustomFieldGroups: 'Pesquisar grupos de campos personalizados...',
searchCustomFields: 'Pesquisar campos personalizados...',
@@ -383,6 +397,7 @@ export default {
archiveCards_title: 'Arquivar cartões',
assignAsOwner: 'Atribuir como proprietário',
cancel: 'Cancelar',
createApiKey: 'Criar chave API',
createBoard: 'Criar quadro',
createCustomFieldGroup: 'Criar grupo de campos personalizados',
createFile: 'Criar ficheiro',
@@ -392,6 +407,7 @@ export default {
deactivateUser: 'Desativar utilizador',
deactivateUser_title: 'Desativar utilizador',
delete: 'Eliminar',
deleteApiKey: 'Eliminar chave API',
deleteAttachment: 'Eliminar anexo',
deleteAvatar: 'Eliminar avatar',
deleteBackgroundImage: 'Eliminar imagem de fundo',
@@ -450,6 +466,7 @@ export default {
move: 'Mover',
moveCard_title: 'Mover cartão',
moveList_title: 'Mover lista',
regenerateApiKey: 'Regenerar chave API',
remove: 'Remover',
removeAssignee: 'Remover responsável',
removeColor: 'Remover cor',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Toate modificarile vor fi salvate automat<br />dupa restabilirea conexiunii.',
alphabetically: 'Alfabetic',
alwaysDisplayCardCreator: 'Afișează întotdeauna creatorul cardului',
apiKeyCreated_title: 'Cheie API creată',
apiKey_title: 'Cheie API',
archive: 'Arhivă',
archiveCard_title: 'Arhivează cardul',
archiveCards_title: 'Arhivează cardurile',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Sigur doriți să atribuiți acest manager de proiect ca proprietar?',
areYouSureYouWantToDeactivateThisUser: 'Sigur doriți să dezactivați acest utilizator?',
areYouSureYouWantToDeleteThisApiKey: 'Sigur doriți să ștergeți această cheie API?',
areYouSureYouWantToDeleteThisAttachment: 'Sigur doriți să ștergeți acest atașament?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Sigur doriți să ștergeți această imagine de fundal?',
@@ -75,6 +78,8 @@ export default {
areYouSureYouWantToLeaveProject: 'Ești sigur că vrei să părăsești proiectul?',
areYouSureYouWantToMakeThisProjectPrivate: 'Sigur doriți să faceți acest proiect privat?',
areYouSureYouWantToMakeThisProjectShared: 'Sigur doriți să faceți acest proiect partajat?',
areYouSureYouWantToRegenerateThisApiKey:
'Sigur doriți să regenerați această cheie API? Cheia anterioară nu va mai funcționa.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Sigur doriți să eliminați acest manager din proiect?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -129,6 +134,7 @@ export default {
createTextFile_title: 'Crează un fișier text',
creator: 'Creator',
currentPassword: 'Parola curentă',
currentUser: 'Utilizator curent',
customFieldGroup_title: 'Grup de câmpuri personalizate',
customFieldGroups_title: 'Grupuri de câmpuri personalizate',
customField_title: 'Câmp personalizat',
@@ -141,6 +147,7 @@ export default {
defaultView_title: 'Vizualizarea implicită',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Ștergeți toate tablele pentru a putea șterge acest proiect',
deleteApiKey_title: 'Șterge cheia API',
deleteAttachment_title: 'Ștergeți atașamentul',
deleteBackgroundImage_title: 'Șterge imaginea de fundal',
deleteBoard_title: 'Ștergeți tabla',
@@ -196,6 +203,8 @@ export default {
forTeamBasedProjects: 'Pentru proiecte bazate pe echipă.',
fromComputer_title: 'De pe computer',
fromTrello: 'De pe Trello',
fullKeyIsHiddenForSecurityReasons:
'Cheia completă este ascunsă din motive de securitate. Regenerați-o pentru a crea una nouă.',
general: 'General',
gradients: 'Gradiente',
grid: 'Grilă',
@@ -203,7 +212,9 @@ export default {
hideFromProjectListAndFavorites: 'Ascunde din lista de proiecte și favorite',
host: 'Gazdă',
hours: 'Ore',
identity: 'Identitate',
importBoard_title: 'Import tablă',
information: 'Informații',
invalidCurrentPassword: 'Parolă actuală nevalidă',
kanban: 'Kanban',
labels: 'Etichete',
@@ -232,6 +243,7 @@ export default {
newUsername: 'Nume de utilizator nou',
newVersionAvailable: 'Versiune nouă disponibilă',
newestFirst: 'Cele mai noi primul',
noApiKeyCreated: 'Nicio cheie API creată.',
noBoards: 'Fără table',
noCardsFound: 'Nu s-au găsit carduri.',
noConnectionToServer: 'Nicio conexiune la server',
@@ -259,10 +271,12 @@ export default {
projectNotFound_title: 'Proiectul nu a fost găsit',
projectOwner: 'Proprietar proiect',
referenceDataAndKnowledgeStorage: 'Stocare de date de referință și cunoștințe.',
regenerateApiKey_title: 'Regenerează cheia API',
rejectUnauthorizedTlsCertificates: 'Respinge certificatele TLS neautorizate',
removeManager_title: 'Eliminați manager',
removeMember_title: 'Eliminați membru',
role: 'Rol',
saveThisKeyItWillNotBeShownAgain: 'Salvați această cheie — nu va fi afișată din nou!',
searchCards: 'Caută carduri...',
searchCustomFieldGroups: 'Caută grupuri de câmpuri personalizate...',
searchCustomFields: 'Caută câmpuri personalizate...',
@@ -378,6 +392,7 @@ export default {
archiveCards_title: 'Arhivează cardurile',
assignAsOwner: 'Atribuie ca proprietar',
cancel: 'Anulează',
createApiKey: 'Creează cheie API',
createBoard: 'Creați tablă',
createCustomFieldGroup: 'Creați grup de câmpuri personalizate',
createFile: 'Creați fișier',
@@ -387,6 +402,7 @@ export default {
deactivateUser: 'Dezactivați utilizatorul',
deactivateUser_title: 'Dezactivați utilizatorul',
delete: 'Ștergeți',
deleteApiKey: 'Șterge cheia API',
deleteAttachment: 'Ștergeți atașamentul',
deleteAvatar: 'Ștergeți avatarul',
deleteBackgroundImage: 'Ștergeți imaginea de fundal',
@@ -445,6 +461,7 @@ export default {
move: 'Mutați',
moveCard_title: 'Mutați cardul',
moveList_title: 'Mutați lista',
regenerateApiKey: 'Regenerează cheia API',
remove: 'Eliminați',
removeAssignee: 'Eliminați cesionarul',
removeColor: 'Eliminați culoarea',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Все изменения сохранятся автоматически,<br />как только подключение восстановится.',
alphabetically: 'По алфавиту',
alwaysDisplayCardCreator: 'Всегда отображать создателя карточек',
apiKeyCreated_title: 'Ключ API создан',
apiKey_title: 'Ключ API',
archive: 'Архив',
archiveCard_title: 'Архивировать карточку',
archiveCards_title: 'Архивировать карточки',
@@ -51,6 +53,7 @@ export default {
'Вы уверены, что хотите назначить этого менеджера проекта владельцем?',
areYouSureYouWantToDeactivateThisUser:
'Вы уверены, что хотите деактивировать этого пользователя?',
areYouSureYouWantToDeleteThisApiKey: 'Вы уверены, что хотите удалить этот ключ API?',
areYouSureYouWantToDeleteThisAttachment: 'Вы уверены, что хотите удалить это вложение?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Вы уверены, что хотите удалить этот фоновый рисунок?',
@@ -79,6 +82,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Вы уверены, что хотите сделать этот проект частным?',
areYouSureYouWantToMakeThisProjectShared: 'Вы уверены, что хотите сделать этот проект общим?',
areYouSureYouWantToRegenerateThisApiKey:
'Вы уверены, что хотите перегенерировать этот ключ API? Предыдущий ключ больше не будет работать.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Вы уверены, что хотите удалить этого менеджера из проекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -132,6 +137,7 @@ export default {
createTextFile_title: 'Создание текстового файла',
creator: 'Создатель',
currentPassword: 'Текущий пароль',
currentUser: 'Текущий пользователь',
customFieldGroup_title: 'Группа настраиваемых полей',
customFieldGroups_title: 'Группы настраиваемых полей',
customField_title: 'Настраиваемое поле',
@@ -144,6 +150,7 @@ export default {
defaultView_title: 'Вид по умолчанию',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Удалите все доски, чтобы иметь возможность удалить этот проект',
deleteApiKey_title: 'Удалить ключ API',
deleteAttachment_title: 'Удаление вложения',
deleteBackgroundImage_title: 'Удалить фоновое изображение',
deleteBoard_title: 'Удаление доски',
@@ -199,6 +206,8 @@ export default {
forTeamBasedProjects: 'Для командных проектов.',
fromComputer_title: 'С компьютера',
fromTrello: 'Из Trello',
fullKeyIsHiddenForSecurityReasons:
'Полный ключ скрыт по соображениям безопасности. Перегенерируйте его, чтобы создать новый.',
general: 'Основные',
gradients: 'Градиенты',
grid: 'Сетка',
@@ -206,7 +215,9 @@ export default {
hideFromProjectListAndFavorites: 'Скрыть из списка проектов и избранного',
host: 'Хост',
hours: 'Часы',
identity: 'Личность',
importBoard_title: 'Импорт доски',
information: 'Информация',
invalidCurrentPassword: 'Неверный текущий пароль',
kanban: 'Канбан',
labels: 'Метки',
@@ -235,6 +246,7 @@ export default {
newUsername: 'Новое имя пользователя',
newVersionAvailable: 'Доступна новая версия',
newestFirst: 'Новые первые',
noApiKeyCreated: 'Ключ API не создан.',
noBoards: 'Досок нет',
noCardsFound: 'Карточки не найдены.',
noConnectionToServer: 'Нет соединения с сервером',
@@ -262,10 +274,12 @@ export default {
projectNotFound_title: 'Проект не найден',
projectOwner: 'Владелец проекта',
referenceDataAndKnowledgeStorage: 'Хранение справочных данных и знаний.',
regenerateApiKey_title: 'Перегенерировать ключ API',
rejectUnauthorizedTlsCertificates: 'Отклонять неавторизованные TLS-сертификаты',
removeManager_title: 'Удалить менеджера',
removeMember_title: 'Удаление участника',
role: 'Роль',
saveThisKeyItWillNotBeShownAgain: 'Сохраните этот ключ — он больше не будет показан!',
searchCards: 'Поиск карточек...',
searchCustomFieldGroups: 'Поиск групп настраиваемых полей...',
searchCustomFields: 'Поиск настраиваемых полей...',
@@ -379,6 +393,7 @@ export default {
archiveCards_title: 'Архивировать карточки',
assignAsOwner: 'Назначить владельцем',
cancel: 'Отменить',
createApiKey: 'Создать ключ API',
createBoard: 'Создать доску',
createCustomFieldGroup: 'Создать группу настраиваемых полей',
createFile: 'Создать файл',
@@ -388,6 +403,7 @@ export default {
deactivateUser: 'Деактивировать пользователя',
deactivateUser_title: 'Деактивировать пользователя',
delete: 'Удалить',
deleteApiKey: 'Удалить ключ API',
deleteAttachment: 'Удалить вложение',
deleteAvatar: 'Удалить аватар',
deleteBackgroundImage: 'Удалить фоновое изображение',
@@ -446,6 +462,7 @@ export default {
move: 'Переместить',
moveCard_title: 'Переместить карточку',
moveList_title: 'Переместить список',
regenerateApiKey: 'Перегенерировать ключ API',
remove: 'Убрать',
removeAssignee: 'Удалить исполнителя',
removeColor: 'Удалить цвет',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Všetky zmeny budú automaticky uložené<br />po obnovení spojenia.',
alphabetically: 'Abecedne',
alwaysDisplayCardCreator: 'Vždy zobraziť tvorcu karty',
apiKeyCreated_title: 'API kľúč vytvorený',
apiKey_title: 'API kľúč',
archive: 'Archív',
archiveCard_title: 'Archivovať kartu',
archiveCards_title: 'Archivovať karty',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Naozaj chcete prideliť tohoto správcu projektu ako vlastníka?',
areYouSureYouWantToDeactivateThisUser: 'Naozaj chcete deaktivovať tohoto používateľa?',
areYouSureYouWantToDeleteThisApiKey: 'Naozaj chcete odstrániť tento API kľúč?',
areYouSureYouWantToDeleteThisAttachment: 'Naozaj chcete zmazať túto prílohu?',
areYouSureYouWantToDeleteThisBackgroundImage: 'Naozaj chcete zmazať tento obrázok pozadia?',
areYouSureYouWantToDeleteThisBoard: 'Naozaj chcete zmazať túto tabuľu?',
@@ -73,6 +76,8 @@ export default {
areYouSureYouWantToLeaveProject: 'Naozaj chcete opustiť tento projekt?',
areYouSureYouWantToMakeThisProjectPrivate: 'Naozaj chcete urobiť tento projekt súkromným?',
areYouSureYouWantToMakeThisProjectShared: 'Naozaj chcete urobiť tento projekt zdieľaným?',
areYouSureYouWantToRegenerateThisApiKey:
'Naozaj chcete znovu vygenerovať tento API kľúč? Predchádzajúci kľúč už nebude fungovať.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Naozaj chcete zmazať daného správcu tohto projektu?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -126,6 +131,7 @@ export default {
createTextFile_title: 'Vytvoriť textový súbor',
creator: 'Tvorca',
currentPassword: 'Aktuálne heslo',
currentUser: 'Aktuálny používateľ',
customFieldGroup_title: 'Skupina vlastných polí',
customFieldGroups_title: 'Skupiny vlastných polí',
customField_title: 'Vlastné pole',
@@ -138,6 +144,7 @@ export default {
defaultView_title: 'Predvolené zobrazenie',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Zmaž všetky tabule, aby si mohol zmazať tento projekt',
deleteApiKey_title: 'Odstrániť API kľúč',
deleteAttachment_title: 'Zmazať prílohu',
deleteBackgroundImage_title: 'Zmazať obrázok pozadia',
deleteBoard_title: 'Zmazať tabuľu',
@@ -193,6 +200,8 @@ export default {
forTeamBasedProjects: 'Pre tímové projekty.',
fromComputer_title: 'Z počítača',
fromTrello: 'Z Trello',
fullKeyIsHiddenForSecurityReasons:
'Celý kľúč je z bezpečnostných dôvodov skrytý. Vygenerujte ho znovu na vytvorenie nového.',
general: 'Všeobecné',
gradients: 'Prechody',
grid: 'Mriežka',
@@ -200,7 +209,9 @@ export default {
hideFromProjectListAndFavorites: 'Skryť zo zoznamu projektov a obľúbených',
host: 'Hostiteľ',
hours: 'Hodiny',
identity: 'Identita',
importBoard_title: 'Importovať tabuľu',
information: 'Informácie',
invalidCurrentPassword: 'Neplatné aktuálne heslo',
kanban: 'Kanban',
labels: 'Štítky',
@@ -229,6 +240,7 @@ export default {
newUsername: 'Nové používateľské meno',
newVersionAvailable: 'Nová verzia je dostupná',
newestFirst: 'Najnovšie prvé',
noApiKeyCreated: 'Nebol vytvorený žiadny API kľúč.',
noBoards: 'Žiadne tabule',
noCardsFound: 'Nenašli sa žiadne karty.',
noConnectionToServer: 'Nie je spojenie k serveru',
@@ -256,10 +268,12 @@ export default {
projectNotFound_title: 'Projekt neexistuje',
projectOwner: 'Vlastník projektu',
referenceDataAndKnowledgeStorage: 'Referenčné údaje a úložisko znalostí.',
regenerateApiKey_title: 'Znovu vygenerovať API kľúč',
rejectUnauthorizedTlsCertificates: 'Odmietnuť neautorizované TLS certifikáty',
removeManager_title: 'Odstrániť správcu',
removeMember_title: 'Odstrániť člena',
role: 'Rola',
saveThisKeyItWillNotBeShownAgain: 'Uložte si tento kľúč — už sa nezobrazí!',
searchCards: 'Hľadať karty...',
searchCustomFieldGroups: 'Hľadať skupiny vlastných polí...',
searchCustomFields: 'Hľadať vlastné polia...',
@@ -372,6 +386,7 @@ export default {
archiveCards_title: 'Archivovať karty',
assignAsOwner: 'Prideliť ako vlastníka',
cancel: 'Zrušiť',
createApiKey: 'Vytvoriť API kľúč',
createBoard: 'Vytvoriť tabuľu',
createCustomFieldGroup: 'Vytvoriť skupinu vlastných polí',
createFile: 'Vytvoriť súbor',
@@ -381,6 +396,7 @@ export default {
deactivateUser: 'Deaktivovať používateľa',
deactivateUser_title: 'Deaktivovať používateľa',
delete: 'Zmazať',
deleteApiKey: 'Odstrániť API kľúč',
deleteAttachment: 'Zmazať prílohu',
deleteAvatar: 'Zmazať avatar',
deleteBackgroundImage: 'Zmazať obrázok pozadia',
@@ -439,6 +455,7 @@ export default {
move: 'Presunúť',
moveCard_title: 'Presunúť kartu',
moveList_title: 'Presunúť zoznam',
regenerateApiKey: 'Znovu vygenerovať API kľúč',
remove: 'Odstrániť',
removeAssignee: 'Odstrániť pridelenú osobu',
removeColor: 'Odstrániť farbu',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Све промене ће аутоматски бити сачуване<br />након успостављања конекције.',
alphabetically: 'Абецедно',
alwaysDisplayCardCreator: 'Увек прикажи творца картице',
apiKeyCreated_title: 'API кључ креиран',
apiKey_title: 'API кључ',
archive: 'Архива',
archiveCard_title: 'Архивирај картицу',
archiveCards_title: 'Архивирај картице',
@@ -49,6 +51,7 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Да ли заиста желите да доделите овог руководиоца пројекта као власника?',
areYouSureYouWantToDeactivateThisUser: 'Да ли заиста желите да деактивирате овог корисника?',
areYouSureYouWantToDeleteThisApiKey: 'Да ли сте сигурни да желите да обришете овај API кључ?',
areYouSureYouWantToDeleteThisAttachment: 'Да ли заиста желите да обришете овај прилог?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Да ли заиста желите да обришете ову позадинску слику?',
@@ -77,6 +80,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Да ли заиста желите да учините овај пројекат приватним?',
areYouSureYouWantToMakeThisProjectShared: 'Да ли заиста желите да поделите овај пројекат?',
areYouSureYouWantToRegenerateThisApiKey:
'Да ли сте сигурни да желите да регенеришете овај API кључ? Претходни кључ више неће радити.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Да ли заиста желите да уклоните овог руководиоца из овог пројекта?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -129,6 +134,7 @@ export default {
createTextFile_title: 'Направи текстуалну датотеку',
creator: 'Творац',
currentPassword: 'Тренутна лозинка',
currentUser: 'Тренутни корисник',
customFieldGroup_title: 'Група прилагођених поља',
customFieldGroups_title: 'Групе прилагођених поља',
customField_title: 'Прилагођено поље',
@@ -141,6 +147,7 @@ export default {
defaultView_title: 'Подразумевани приказ',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Обришите све табле да бисте могли да обришете овај пројекат',
deleteApiKey_title: 'Обриши API кључ',
deleteAttachment_title: 'Обриши прилог',
deleteBackgroundImage_title: 'Обриши позадинску слику',
deleteBoard_title: 'Обриши таблу',
@@ -196,6 +203,8 @@ export default {
forTeamBasedProjects: 'За тимске пројекте.',
fromComputer_title: 'Са рачунара',
fromTrello: 'Са Trello-а',
fullKeyIsHiddenForSecurityReasons:
'Комплетан кључ је сакривен из безбедносних разлога. Регенеришите га да бисте креирали нови.',
general: 'Опште',
gradients: 'Градијенти',
grid: 'Мрежа',
@@ -203,7 +212,9 @@ export default {
hideFromProjectListAndFavorites: 'Сакриј из листе пројеката и омиљених',
host: 'Хост',
hours: 'Сати',
identity: 'Идентитет',
importBoard_title: 'Увези таблу',
information: 'Информације',
invalidCurrentPassword: 'Неисправна тренутна лозинка',
kanban: 'Канбан',
labels: 'Ознаке',
@@ -232,6 +243,7 @@ export default {
newUsername: 'Ново корисничко име',
newVersionAvailable: 'Нова верзија је доступна',
newestFirst: 'Прво најновије',
noApiKeyCreated: 'API кључ није креиран.',
noBoards: 'Нема табли',
noCardsFound: 'Нема пронађених картица.',
noConnectionToServer: 'Нема конекције са сервером',
@@ -259,10 +271,12 @@ export default {
projectNotFound_title: 'Пројекат није пронађен',
projectOwner: 'Власник пројекта',
referenceDataAndKnowledgeStorage: 'Складиштење референтних података и знања.',
regenerateApiKey_title: 'Регенериши API кључ',
rejectUnauthorizedTlsCertificates: 'Одбаци неовлашћене TLS сертификате',
removeManager_title: 'Уклони руководиоца',
removeMember_title: 'Уклони члана',
role: 'Улога',
saveThisKeyItWillNotBeShownAgain: 'Сачувајте овај кључ — неће бити приказан поново!',
searchCards: 'Претражи картице...',
searchCustomFieldGroups: 'Претражи групе прилагођених поља...',
searchCustomFields: 'Претражи прилагођена поља...',
@@ -375,6 +389,7 @@ export default {
archiveCards_title: 'Архивирај картице',
assignAsOwner: 'Додели као власника',
cancel: 'Откажи',
createApiKey: 'Креирај API кључ',
createBoard: 'Направи таблу',
createCustomFieldGroup: 'Направи групу прилагођених поља',
createFile: 'Направи датотеку',
@@ -384,6 +399,7 @@ export default {
deactivateUser: 'Деактивирај корисника',
deactivateUser_title: 'Деактивирај корисника',
delete: 'Обриши',
deleteApiKey: 'Обриши API кључ',
deleteAttachment: 'Обриши прилог',
deleteAvatar: 'Обриши аватара',
deleteBackgroundImage: 'Обриши позадинску слику',
@@ -442,6 +458,7 @@ export default {
move: 'Премести',
moveCard_title: 'Премести картицу',
moveList_title: 'Премести списак',
regenerateApiKey: 'Регенериши API кључ',
remove: 'Уклони',
removeAssignee: 'Уклони извршиоца',
removeColor: 'Уклони боју',
+18
View File
@@ -40,6 +40,8 @@ export default {
'Sve promene će automatski biti sačuvane<br />nakon uspostavljanja konekcije.',
alphabetically: 'Abecedno',
alwaysDisplayCardCreator: 'Uvek prikaži tvorca kartice',
apiKeyCreated_title: 'API ključ kreiran',
apiKey_title: 'API ključ',
archive: 'Arhiva',
archiveCard_title: 'Arhiviraj karticu',
archiveCards_title: 'Arhiviraj kartice',
@@ -49,6 +51,8 @@ export default {
areYouSureYouWantToAssignThisProjectManagerAsOwner:
'Da li zaista želite da dodelite ovog rukovodioca projekta kao vlasnika?',
areYouSureYouWantToDeactivateThisUser: 'Da li zaista želite da deaktivirate ovog korisnika?',
areYouSureYouWantToDeleteThisApiKey:
'Da li ste sigurni da želite da obrišete ovaj API ključ?',
areYouSureYouWantToDeleteThisAttachment: 'Da li zaista želite da obrišete ovaj prilog?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Da li zaista želite da obrišete ovu pozadinsku sliku?',
@@ -77,6 +81,8 @@ export default {
areYouSureYouWantToMakeThisProjectPrivate:
'Da li zaista želite da učinite ovaj projekat privatnim?',
areYouSureYouWantToMakeThisProjectShared: 'Da li zaista želite da podelite ovaj projekat?',
areYouSureYouWantToRegenerateThisApiKey:
'Da li ste sigurni da želite da regenerišete ovaj API ključ? Prethodni ključ više neće raditi.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Da li zaista želite da uklonite ovog rukovodioca iz ovog projekta?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -129,6 +135,7 @@ export default {
createTextFile_title: 'Napravi tekstualnu datoteku',
creator: 'Tvorac',
currentPassword: 'Trenutna lozinka',
currentUser: 'Trenutni korisnik',
customFieldGroup_title: 'Grupa prilagođenih polja',
customFieldGroups_title: 'Grupe prilagođenih polja',
customField_title: 'Prilagođeno polje',
@@ -141,6 +148,7 @@ export default {
defaultView_title: 'Podrazumevani prikaz',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Obrišite sve table da biste mogli da obrišete ovaj projekat',
deleteApiKey_title: 'Obriši API ključ',
deleteAttachment_title: 'Obriši prilog',
deleteBackgroundImage_title: 'Obriši pozadinsku sliku',
deleteBoard_title: 'Obriši tablu',
@@ -196,6 +204,8 @@ export default {
forTeamBasedProjects: 'Za timske projekte.',
fromComputer_title: 'Sa računara',
fromTrello: 'Sa Trello-a',
fullKeyIsHiddenForSecurityReasons:
'Kompletan ključ je sakriven iz bezbednosnih razloga. Regenerišite ga da biste kreirali novi.',
general: 'Opšte',
gradients: 'Gradijenti',
grid: 'Mreža',
@@ -203,7 +213,9 @@ export default {
hideFromProjectListAndFavorites: 'Sakrij iz liste projekata i omiljenih',
host: 'Host',
hours: 'Sati',
identity: 'Identitet',
importBoard_title: 'Uvezi tablu',
information: 'Informacije',
invalidCurrentPassword: 'Neispravna trenutna lozinka',
kanban: 'Kanban',
labels: 'Oznake',
@@ -232,6 +244,7 @@ export default {
newUsername: 'Novo korisničko ime',
newVersionAvailable: 'Nova verzija je dostupna',
newestFirst: 'Prvo najnovije',
noApiKeyCreated: 'API ključ nije kreiran.',
noBoards: 'Nema tabli',
noCardsFound: 'Nema pronađenih kartica.',
noConnectionToServer: 'Nema konekcije sa serverom',
@@ -259,10 +272,12 @@ export default {
projectNotFound_title: 'Projekat nije pronađen',
projectOwner: 'Vlasnik projekta',
referenceDataAndKnowledgeStorage: 'Skladištenje referentnih podataka i znanja.',
regenerateApiKey_title: 'Regeneriši API ključ',
rejectUnauthorizedTlsCertificates: 'Odbaci neovlašćene TLS sertifikate',
removeManager_title: 'Ukloni rukovodioca',
removeMember_title: 'Ukloni člana',
role: 'Uloga',
saveThisKeyItWillNotBeShownAgain: 'Sačuvajte ovaj ključ — neće biti prikazan ponovo!',
searchCards: 'Pretraži kartice...',
searchCustomFieldGroups: 'Pretraži grupe prilagođenih polja...',
searchCustomFields: 'Pretraži prilagođena polja...',
@@ -376,6 +391,7 @@ export default {
archiveCards_title: 'Arhiviraj kartice',
assignAsOwner: 'Dodeli kao vlasnika',
cancel: 'Otkaži',
createApiKey: 'Kreiraj API ključ',
createBoard: 'Napravi tablu',
createCustomFieldGroup: 'Napravi grupu prilagođenih polja',
createFile: 'Napravi datoteku',
@@ -385,6 +401,7 @@ export default {
deactivateUser: 'Deaktiviraj korisnika',
deactivateUser_title: 'Deaktiviraj korisnika',
delete: 'Obriši',
deleteApiKey: 'Obriši API ključ',
deleteAttachment: 'Obriši prilog',
deleteAvatar: 'Obriši avatara',
deleteBackgroundImage: 'Obriši pozadinsku sliku',
@@ -443,6 +460,7 @@ export default {
move: 'Premesti',
moveCard_title: 'Premesti karticu',
moveList_title: 'Premesti spisak',
regenerateApiKey: 'Regeneriši API ključ',
remove: 'Ukloni',
removeAssignee: 'Ukloni izvršioca',
removeColor: 'Ukloni boju',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Alla ändringar kommer att sparas automatiskt<br />så fort anslutningen är återställd.',
alphabetically: 'Alfabetiskt',
alwaysDisplayCardCreator: 'Visa alltid kortskapare',
apiKeyCreated_title: 'API-nyckel skapad',
apiKey_title: 'API-nyckel',
archive: 'Arkiv',
archiveCard_title: 'Arkivera kort',
archiveCards_title: 'Arkivera kort',
@@ -51,6 +53,7 @@ export default {
'Är du säker på att du vill tilldela den här projektledaren som ägare?',
areYouSureYouWantToDeactivateThisUser:
'Är du säker på att du vill inaktivera den här användaren?',
areYouSureYouWantToDeleteThisApiKey: 'Är du säker på att du vill ta bort denna API-nyckel?',
areYouSureYouWantToDeleteThisAttachment:
'Är du säker på att du vill ta bort den här bilagan?',
areYouSureYouWantToDeleteThisBackgroundImage:
@@ -83,6 +86,8 @@ export default {
'Är du säker på att du vill göra det här projektet privat?',
areYouSureYouWantToMakeThisProjectShared:
'Är du säker på att du vill dela det här projektet?',
areYouSureYouWantToRegenerateThisApiKey:
'Är du säker på att du vill regenerera denna API-nyckel? Den tidigare nyckeln kommer inte längre att fungera.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Är du säker på att du vill ta bort den här projektledaren från projektet?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -136,6 +141,7 @@ export default {
createTextFile_title: 'Skapa textfil',
creator: 'Skapare',
currentPassword: 'Nuvarande lösenord',
currentUser: 'Nuvarande användare',
customFieldGroup_title: 'Anpassad fältgrupp',
customFieldGroups_title: 'Anpassade fältgrupper',
customField_title: 'Anpassat fält',
@@ -148,6 +154,7 @@ export default {
defaultView_title: 'Standardvy',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Ta bort alla tavlor för att kunna ta bort det här projektet',
deleteApiKey_title: 'Ta bort API-nyckel',
deleteAttachment_title: 'Ta bort bilaga',
deleteBackgroundImage_title: 'Ta bort bakgrundsbild',
deleteBoard_title: 'Ta bort tavla',
@@ -203,6 +210,8 @@ export default {
forTeamBasedProjects: 'För teambaserade projekt.',
fromComputer_title: 'Från dator',
fromTrello: 'Från Trello',
fullKeyIsHiddenForSecurityReasons:
'Den fullständiga nyckeln är dold av säkerhetsskäl. Regenerera den för att skapa en ny.',
general: 'Allmänt',
gradients: 'Gradienter',
grid: 'Rutnät',
@@ -210,7 +219,9 @@ export default {
hideFromProjectListAndFavorites: 'Dölj från projektlista och favoriter',
host: 'Värd',
hours: 'Timmar',
identity: 'Identitet',
importBoard_title: 'Importera tavla',
information: 'Information',
invalidCurrentPassword: 'Ogiltigt nuvarande lösenord',
kanban: 'Kanban',
labels: 'Etiketter',
@@ -239,6 +250,7 @@ export default {
newUsername: 'Nytt användarnamn',
newVersionAvailable: 'Ny version tillgänglig',
newestFirst: 'Nyaste först',
noApiKeyCreated: 'Ingen API-nyckel skapad.',
noBoards: 'Inga tavlor',
noCardsFound: 'Inga kort hittades.',
noConnectionToServer: 'Ingen anslutning till servern',
@@ -266,10 +278,12 @@ export default {
projectNotFound_title: 'Projekt hittades inte',
projectOwner: 'Projektägare',
referenceDataAndKnowledgeStorage: 'Referensdata och kunskapslagring.',
regenerateApiKey_title: 'Regenerera API-nyckel',
rejectUnauthorizedTlsCertificates: 'Avvisa obehöriga TLS-certifikat',
removeManager_title: 'Ta bort projektledare',
removeMember_title: 'Ta bort medlem',
role: 'Roll',
saveThisKeyItWillNotBeShownAgain: 'Spara denna nyckel — den visas inte igen!',
searchCards: 'Sök kort...',
searchCustomFieldGroups: 'Sök anpassade fältgrupper...',
searchCustomFields: 'Sök anpassade fält...',
@@ -384,6 +398,7 @@ export default {
archiveCards_title: 'Arkivera kort',
assignAsOwner: 'Tilldela som ägare',
cancel: 'Avbryt',
createApiKey: 'Skapa API-nyckel',
createBoard: 'Skapa tavla',
createCustomFieldGroup: 'Skapa anpassad fältgrupp',
createFile: 'Skapa fil',
@@ -393,6 +408,7 @@ export default {
deactivateUser: 'Inaktivera användare',
deactivateUser_title: 'Inaktivera användare',
delete: 'Ta bort',
deleteApiKey: 'Ta bort API-nyckel',
deleteAttachment: 'Ta bort bilaga',
deleteAvatar: 'Ta bort avatar',
deleteBackgroundImage: 'Ta bort bakgrundsbild',
@@ -451,6 +467,7 @@ export default {
move: 'Flytta',
moveCard_title: 'Flytta kort',
moveList_title: 'Flytta lista',
regenerateApiKey: 'Regenerera API-nyckel',
remove: 'Ta bort',
removeAssignee: 'Ta bort tilldelad',
removeColor: 'Ta bort färg',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Bağlantı yeniden kurulduğunda tüm değişiklikler kaydedilecektir.',
alphabetically: 'Alfabetik olarak',
alwaysDisplayCardCreator: 'Kart oluşturucusunu her zaman göster',
apiKeyCreated_title: 'API Anahtarı Oluşturuldu',
apiKey_title: 'API Anahtarı',
archive: 'Arşiv',
archiveCard_title: 'Kartı arşivle',
archiveCards_title: 'Kartları arşivle',
@@ -51,6 +53,7 @@ export default {
'Bu proje yöneticisini sahip olarak atamak istediğinizden emin misiniz?',
areYouSureYouWantToDeactivateThisUser:
'Bu kullanıcıyı devre dışı bırakmak istediğinizden emin misiniz?',
areYouSureYouWantToDeleteThisApiKey: 'Bu API anahtarını silmek istediğinizden emin misiniz?',
areYouSureYouWantToDeleteThisAttachment: 'Bu eki silmek istediğinize emin misiniz?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Bu arka plan resmini silmek istediğinizden emin misiniz?',
@@ -80,6 +83,8 @@ export default {
'Bu projeyi özel yapmak istediğinizden emin misiniz?',
areYouSureYouWantToMakeThisProjectShared:
'Bu projeyi paylaşımlı yapmak istediğinizden emin misiniz?',
areYouSureYouWantToRegenerateThisApiKey:
'Bu API anahtarını yeniden oluşturmak istediğinizden emin misiniz? Önceki anahtar artık çalışmayacak.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Bu yöneticiyi projeden çıkarmak istediğinizden emin misiniz?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -133,6 +138,7 @@ export default {
createTextFile_title: 'Metin dosyası oluştur',
creator: 'Oluşturan',
currentPassword: 'Geçerli şifre',
currentUser: 'Mevcut kullanıcı',
customFieldGroup_title: 'özel alan grubu',
customFieldGroups_title: 'özel alan grupları',
customField_title: 'Özel alan',
@@ -144,6 +150,7 @@ export default {
defaultFrom: 'Varsayılan gönderen',
defaultView_title: 'Varsayılan görünüm',
deleteAllBoardsToBeAbleToDeleteThisProject: 'Bu projeyi silebilmek için tüm panoları silin',
deleteApiKey_title: 'API Anahtarını Sil',
deleteAttachment_title: 'Eki sil',
deleteBackgroundImage_title: 'Arka plan resmini sil',
deleteBoard_title: 'Panoyu sil',
@@ -199,6 +206,8 @@ export default {
forTeamBasedProjects: 'Takım tabanlı projeler için.',
fromComputer_title: 'Bilgisayardan',
fromTrello: "Trello'dan",
fullKeyIsHiddenForSecurityReasons:
'Tam anahtar güvenlik nedeniyle gizlenmiştir. Yeni bir tane oluşturmak için yeniden oluşturun.',
general: 'Genel',
gradients: 'Gradyanlar',
grid: 'Izgara',
@@ -206,7 +215,9 @@ export default {
hideFromProjectListAndFavorites: 'Proje listesi ve favorilerden gizle',
host: 'Ana bilgisayar',
hours: 'saat',
identity: 'Kimlik',
importBoard_title: 'Panoyu içe aktar',
information: 'Bilgi',
invalidCurrentPassword: 'Mevcut şifre yanlış',
kanban: 'Kanban',
labels: 'etiketler',
@@ -235,6 +246,7 @@ export default {
newUsername: 'Yeni kullanıcı adı',
newVersionAvailable: 'Yeni sürüm mevcut',
newestFirst: 'Önce en yeni',
noApiKeyCreated: 'Oluşturulmuş API anahtarı yok.',
noBoards: 'Pano yok',
noCardsFound: 'Kart bulunamadı.',
noConnectionToServer: 'Sunucuya bağlantı yok',
@@ -262,10 +274,12 @@ export default {
projectNotFound_title: 'Proje bulunamadı',
projectOwner: 'Proje sahibi',
referenceDataAndKnowledgeStorage: 'Referans veri ve bilgi depolama.',
regenerateApiKey_title: 'API Anahtarını Yeniden Oluştur',
rejectUnauthorizedTlsCertificates: 'Yetkisiz TLS sertifikalarını reddet',
removeManager_title: 'Yöneticiyi kaldır',
removeMember_title: 'Üyeyi kaldır',
role: 'Rol',
saveThisKeyItWillNotBeShownAgain: 'Bu anahtarı kaydedin — tekrar gösterilmeyecek!',
searchCards: 'Kartları ara...',
searchCustomFieldGroups: 'Özel alan gruplarını ara...',
searchCustomFields: 'Özel alanları ara...',
@@ -382,6 +396,7 @@ export default {
archiveCards_title: 'Kartları arşivle',
assignAsOwner: 'Sahip olarak ata',
cancel: 'İptal',
createApiKey: 'API anahtarı oluştur',
createBoard: 'Pano oluştur',
createCustomFieldGroup: 'Özel alan grubu oluştur',
createFile: 'Dosya oluştur',
@@ -391,6 +406,7 @@ export default {
deactivateUser: 'Kullanıcıyı devre dışı bırak',
deactivateUser_title: 'Kullanıcıyı devre dışı bırak',
delete: 'Sil',
deleteApiKey: 'API anahtarını sil',
deleteAttachment: 'Eki sil',
deleteAvatar: 'Avatarı sil',
deleteBackgroundImage: 'Arka plan resmini sil',
@@ -449,6 +465,7 @@ export default {
move: 'Taşı',
moveCard_title: 'Kartı taşı',
moveList_title: 'Listeyi taşı',
regenerateApiKey: 'API anahtarını yeniden oluştur',
remove: 'Sil',
removeAssignee: 'Atanan kişiyi kaldır',
removeColor: 'Rengi kaldır',
+17
View File
@@ -40,6 +40,8 @@ export default {
'Всі зміни будуть автоматично збережені<br />після відновлення підключення.',
alphabetically: 'За алфавітом',
alwaysDisplayCardCreator: 'Завжди відображати творця картки',
apiKeyCreated_title: 'Ключ API створено',
apiKey_title: 'Ключ API',
archive: 'Архів',
archiveCard_title: 'Архівувати картку',
archiveCards_title: 'Архівувати картки',
@@ -50,6 +52,7 @@ export default {
'Ви впевнені, що хочете призначити цього менеджера проекту власником?',
areYouSureYouWantToDeactivateThisUser:
'Ви впевнені, що хочете деактивувати цього користувача?',
areYouSureYouWantToDeleteThisApiKey: 'Ви впевнені, що хочете видалити цей ключ API?',
areYouSureYouWantToDeleteThisAttachment: 'Ви впевнені, що хочете видалити це вкладення?',
areYouSureYouWantToDeleteThisBackgroundImage:
'Ви впевнені, що хочете видалити це фонове зображення?',
@@ -78,6 +81,8 @@ export default {
'Ви впевнені, що хочете зробити цей проект приватним?',
areYouSureYouWantToMakeThisProjectShared:
'Ви впевнені, що хочете зробити цей проект спільним?',
areYouSureYouWantToRegenerateThisApiKey:
'Ви впевнені, що хочете перегенерувати цей ключ API? Попередній ключ більше не працюватиме.',
areYouSureYouWantToRemoveThisManagerFromProject:
'Ви впевнені, що хочете видалити цього менеджера з проекту?',
areYouSureYouWantToRemoveThisMemberFromBoard:
@@ -131,6 +136,7 @@ export default {
createTextFile_title: 'Створити текстовий файл',
creator: 'Творець',
currentPassword: 'Поточний пароль',
currentUser: 'Поточний користувач',
customFieldGroup_title: 'Користувацька група полів',
customFieldGroups_title: 'Користувацькі групи полів',
customField_title: 'Користувацьке поле',
@@ -143,6 +149,7 @@ export default {
defaultView_title: 'Вигляд за замовчуванням',
deleteAllBoardsToBeAbleToDeleteThisProject:
'Видаліть усі дошки, щоб мати змогу видалити цей проект',
deleteApiKey_title: 'Видалити ключ API',
deleteAttachment_title: 'Видалити вкладення',
deleteBackgroundImage_title: 'Видалити фонове зображення',
deleteBoard_title: 'Видалити дошку',
@@ -198,6 +205,8 @@ export default {
forTeamBasedProjects: 'Для командних проектів.',
fromComputer_title: "З комп'ютера",
fromTrello: 'З Trello',
fullKeyIsHiddenForSecurityReasons:
'Повний ключ приховано з міркувань безпеки. Перегенеруйте його, щоб створити новий.',
general: 'Загальне',
gradients: 'Градієнти',
grid: 'Сітка',
@@ -205,7 +214,9 @@ export default {
hideFromProjectListAndFavorites: 'Приховати зі списку проектів та обраного',
host: 'Хост',
hours: 'Години',
identity: 'Особистість',
importBoard_title: 'Імпортувати дошку',
information: 'Інформація',
invalidCurrentPassword: 'Невірний поточний пароль',
kanban: 'Канбан',
labels: 'Мітки',
@@ -234,6 +245,7 @@ export default {
newUsername: "Нове ім'я користувача",
newVersionAvailable: 'Доступна нова версія',
newestFirst: 'Найновіші перші',
noApiKeyCreated: 'Ключ API не створено.',
noBoards: 'Немає дошок',
noCardsFound: 'Карток не знайдено.',
noConnectionToServer: 'Відсутнє підключення до сервера',
@@ -261,10 +273,12 @@ export default {
projectNotFound_title: 'Проект не знайдено',
projectOwner: 'Власник проекту',
referenceDataAndKnowledgeStorage: 'Довідкові дані та сховище знань.',
regenerateApiKey_title: 'Перегенерувати ключ API',
rejectUnauthorizedTlsCertificates: 'Відхиляти неавторизовані TLS-сертифікати',
removeManager_title: 'Видалити менеджера',
removeMember_title: 'Видалити учасника',
role: 'Роль',
saveThisKeyItWillNotBeShownAgain: 'Збережіть цей ключ — він більше не відображатиметься!',
searchCards: 'Картки пошуку...',
searchCustomFieldGroups: 'Пошук користувацьких груп полів...',
searchCustomFields: 'Пошук користувацьких полів...',
@@ -377,6 +391,7 @@ export default {
archiveCards_title: 'Архівувати картки',
assignAsOwner: 'Призначити власником',
cancel: 'Скасувати',
createApiKey: 'Створити ключ API',
createBoard: 'Створити дошку',
createCustomFieldGroup: 'Створити групу користувацьких полів',
createFile: 'Створити файл',
@@ -386,6 +401,7 @@ export default {
deactivateUser: 'Деактивувати користувача',
deactivateUser_title: 'Деактивувати користувача',
delete: 'Видалити',
deleteApiKey: 'Видалити ключ API',
deleteAttachment: 'Видалити вкладення',
deleteAvatar: 'Видалити аватар',
deleteBackgroundImage: 'Видалити фонове зображення',
@@ -444,6 +460,7 @@ export default {
move: 'Перемістити',
moveCard_title: 'Перемістити картку',
moveList_title: 'Перемістити список',
regenerateApiKey: 'Перегенерувати ключ API',
remove: 'Видалити',
removeAssignee: 'Видалити виконавця',
removeColor: 'Видалити колір',
+17
View File
@@ -40,6 +40,8 @@ export default {
"Barcha o'zgarishlar tarmoq ulanishi tiklangandan so'ng<br />avtomatik saqlanadi.",
alphabetically: 'Alifbo tartibida',
alwaysDisplayCardCreator: "Karta yaratuvchisini doim ko'rsatish",
apiKeyCreated_title: 'API kaliti yaratildi',
apiKey_title: 'API kaliti',
archive: 'Arxiv',
archiveCard_title: 'Kartani arxivlash',
archiveCards_title: 'Kartalarni arxivlash',
@@ -50,6 +52,7 @@ export default {
'Ushbu loyiha menejerini egasi sifatida tayinlashni xohlaysizmi?',
areYouSureYouWantToDeactivateThisUser:
'Ushbu foydalanuvchini faolsizlantirishni xohlaysizmi?',
areYouSureYouWantToDeleteThisApiKey: "Ushbu API kalitini o'chirmoqchimisiz?",
areYouSureYouWantToDeleteThisAttachment: "Ushbu biriktirmani o'chirmoqchimisiz?",
areYouSureYouWantToDeleteThisBackgroundImage: "Ushbu fon rasmini o'chirmoqchimisiz?",
areYouSureYouWantToDeleteThisBoard: "Ushbu doskani o'chirmoqchimisiz?",
@@ -74,6 +77,8 @@ export default {
areYouSureYouWantToLeaveProject: 'Ushbu loyihadan chiqmoqchimisiz?',
areYouSureYouWantToMakeThisProjectPrivate: 'Ushbu loyihani shaxsiy qilmoqchimisiz?',
areYouSureYouWantToMakeThisProjectShared: 'Ushbu loyihani umumiy qilmoqchimisiz?',
areYouSureYouWantToRegenerateThisApiKey:
'Ushbu API kalitini qayta yaratmoqchimisiz? Oldingi kalit endi ishlamaydi.',
areYouSureYouWantToRemoveThisManagerFromProject:
"Ushbu boshqaruvchini loyihadan o'chirmoqchimisiz?",
areYouSureYouWantToRemoveThisMemberFromBoard: "Ushbu a'zoni doskadan o'chirmoqchimisiz?",
@@ -127,6 +132,7 @@ export default {
createTextFile_title: 'Matnli fayl yaratish',
creator: 'Yaratuvchi',
currentPassword: 'Hozirgi parol',
currentUser: 'Joriy foydalanuvchi',
customFieldGroup_title: 'Maxsus maydon guruhi',
customFieldGroups_title: 'Maxsus maydon guruhlari',
customField_title: 'Maxsus maydon',
@@ -139,6 +145,7 @@ export default {
defaultView_title: "Standart ko'rinish",
deleteAllBoardsToBeAbleToDeleteThisProject:
"Ushbu loyihani o'chirish uchun barcha doskalarni o'chiring",
deleteApiKey_title: "API kalitini o'chirish",
deleteAttachment_title: "Ilovani o'chirish",
deleteBackgroundImage_title: "Orqa fon rasmini o'chirish",
deleteBoard_title: "Doskani o'chirish",
@@ -194,6 +201,8 @@ export default {
forTeamBasedProjects: 'Jamoa loyihalari uchun.',
fromComputer_title: 'Kompyuterdan',
fromTrello: 'Trello dan',
fullKeyIsHiddenForSecurityReasons:
"To'liq kalit xavfsizlik sabablariga ko'ra yashirilgan. Yangi yaratish uchun uni qayta yarating.",
general: 'Umumiy',
gradients: 'Gradientlar',
grid: 'Panjara',
@@ -201,7 +210,9 @@ export default {
hideFromProjectListAndFavorites: "Loyihalar ro'yxati va sevimlilardan yashirish",
host: 'Host',
hours: 'Soat',
identity: 'Shaxs',
importBoard_title: 'Doskani import qilish',
information: 'Maʻlumot',
invalidCurrentPassword: 'Hozirgi parol xato',
kanban: 'Kanban',
labels: 'Yorliqlar',
@@ -230,6 +241,7 @@ export default {
newUsername: 'Yangi foydalanuvchi nomi',
newVersionAvailable: 'Yangi versiya mavjud',
newestFirst: 'Avval yangisi',
noApiKeyCreated: 'API kaliti yaratilmagan.',
noBoards: "Doskalar yo'q",
noCardsFound: 'Kartalar topilmadi.',
noConnectionToServer: "Server bilan bog'lanish yo'q",
@@ -257,10 +269,12 @@ export default {
projectNotFound_title: 'Loyiha topilmadi',
projectOwner: 'Loyiha egasi',
referenceDataAndKnowledgeStorage: "Ma'lumotnoma va bilim saqlash.",
regenerateApiKey_title: 'API kalitini qayta yaratish',
rejectUnauthorizedTlsCertificates: 'Ruxsatsiz TLS sertifikatlarini rad etish',
removeManager_title: "Boshqaruvchini o'chirish",
removeMember_title: "A'zoni o'chirish",
role: 'Rol',
saveThisKeyItWillNotBeShownAgain: "Ushbu kalitni saqlang — u boshqa ko'rsatilmaydi!",
searchCards: 'Kartalarni qidirish...',
searchCustomFieldGroups: 'Maxsus maydon guruhlarini qidirish...',
searchCustomFields: 'Maxsus maydonlarni qidirish...',
@@ -375,6 +389,7 @@ export default {
archiveCards_title: 'Kartalarni arxivlash',
assignAsOwner: 'Egasi sifatida tayinlash',
cancel: 'Bekor qilish',
createApiKey: 'API kalitini yaratish',
createBoard: 'Doska yaratish',
createCustomFieldGroup: 'Maxsus maydon guruhi yaratish',
createFile: 'Fayl yaratish',
@@ -384,6 +399,7 @@ export default {
deactivateUser: 'Foydalanuvchini faolsizlantirish',
deactivateUser_title: 'Foydalanuvchini faolsizlantirish',
delete: "O'chirish",
deleteApiKey: "API kalitini o'chirish",
deleteAttachment: "Ilovani o'chirish",
deleteAvatar: "Avatarni o'chirish",
deleteBackgroundImage: "Orqa fon rasmini o'chirish",
@@ -442,6 +458,7 @@ export default {
move: "Ko'chirish",
moveCard_title: "Kartani ko'chirish",
moveList_title: "Ro'yxatni ko'chirish",
regenerateApiKey: 'API kalitini qayta yaratish',
remove: "O'chirish",
removeAssignee: 'Ijrochini olib tashlash',
removeColor: 'Rangni olib tashlash',
+15
View File
@@ -39,6 +39,8 @@ export default {
allChangesWillBeAutomaticallySavedAfterConnectionRestored: '所有修改会在重连后自动保存',
alphabetically: '按字母顺序',
alwaysDisplayCardCreator: '始终显示卡片创建者',
apiKeyCreated_title: 'API密钥已创建',
apiKey_title: 'API密钥',
archive: '归档',
archiveCard_title: '归档卡片',
archiveCards_title: '归档多个卡片',
@@ -47,6 +49,7 @@ export default {
areYouSureYouWantToArchiveThisCard: '您确定要归档此卡片吗?',
areYouSureYouWantToAssignThisProjectManagerAsOwner: '您确定要指定此项目管理人作为所有者吗?',
areYouSureYouWantToDeactivateThisUser: '您确定要停用此用户吗?',
areYouSureYouWantToDeleteThisApiKey: '确认删除此API密钥吗?',
areYouSureYouWantToDeleteThisAttachment: '确认删除此附件吗?',
areYouSureYouWantToDeleteThisBackgroundImage: '您确定要删除此背景图片吗?',
areYouSureYouWantToDeleteThisBoard: '确认删除此面板吗?',
@@ -68,6 +71,7 @@ export default {
areYouSureYouWantToLeaveProject: '确认离开此项目吗?',
areYouSureYouWantToMakeThisProjectPrivate: '您确定要将此项目设为私有吗?',
areYouSureYouWantToMakeThisProjectShared: '您确定要将此项目设为共享吗?',
areYouSureYouWantToRegenerateThisApiKey: '确认重新生成此API密钥吗?之前的密钥将不再有效。',
areYouSureYouWantToRemoveThisManagerFromProject: '确认从本项目删除该管理员吗?',
areYouSureYouWantToRemoveThisMemberFromBoard: '确认本面板删除该成员吗?',
assignAsOwner_title: '指定为所有者',
@@ -113,6 +117,7 @@ export default {
createTextFile_title: '创建文本文件',
creator: '创建者',
currentPassword: '当前密码',
currentUser: '当前用户',
customFieldGroup_title: '自定义字段组',
customFieldGroups_title: '自定义字段组',
customField_title: '自定义字段',
@@ -124,6 +129,7 @@ export default {
defaultFrom: '默认"发件人"',
defaultView_title: '默认视图',
deleteAllBoardsToBeAbleToDeleteThisProject: '删除所有面板后方可删除此项目',
deleteApiKey_title: '删除API密钥',
deleteAttachment_title: '删除附件',
deleteBackgroundImage_title: '删除背景图片',
deleteBoard_title: '删除面板',
@@ -179,6 +185,7 @@ export default {
forTeamBasedProjects: '用于团队项目。',
fromComputer_title: '来自计算机',
fromTrello: '来自 Trello',
fullKeyIsHiddenForSecurityReasons: '出于安全考虑,完整密钥已隐藏。重新生成以创建新密钥。',
general: '全体',
gradients: '渐变',
grid: '网格',
@@ -186,7 +193,9 @@ export default {
hideFromProjectListAndFavorites: '从项目列表和收藏中隐藏',
host: '主机',
hours: '小时',
identity: '身份',
importBoard_title: '导入面板',
information: '信息',
invalidCurrentPassword: '当前密码错误',
kanban: '看板',
labels: '标签',
@@ -215,6 +224,7 @@ export default {
newUsername: '新用户名',
newVersionAvailable: '有新版本可用',
newestFirst: '最新优先',
noApiKeyCreated: '未创建API密钥。',
noBoards: '没有面板',
noCardsFound: '未找到卡片。',
noConnectionToServer: '未连接服务器',
@@ -241,10 +251,12 @@ export default {
projectNotFound_title: '项目未找到',
projectOwner: '项目所有者',
referenceDataAndKnowledgeStorage: '参考数据和知识存储。',
regenerateApiKey_title: '重新生成API密钥',
rejectUnauthorizedTlsCertificates: '拒绝未授权的TLS证书',
removeManager_title: '删除管理员',
removeMember_title: '删除成员',
role: '角色',
saveThisKeyItWillNotBeShownAgain: '保存此密钥——它不会再次显示!',
searchCards: '搜索卡片...',
searchCustomFieldGroups: '搜索自定义字段组...',
searchCustomFields: '搜索自定义字段...',
@@ -354,6 +366,7 @@ export default {
archiveCards_title: '归档多个卡片',
assignAsOwner: '指定为所有者',
cancel: '取消',
createApiKey: '创建API密钥',
createBoard: '创建面板',
createCustomFieldGroup: '创建自定义字段组',
createFile: '创建文件',
@@ -363,6 +376,7 @@ export default {
deactivateUser: '停用用户',
deactivateUser_title: '停用用户',
delete: '删除',
deleteApiKey: '删除API密钥',
deleteAttachment: '删除附件',
deleteAvatar: '删除头像',
deleteBackgroundImage: '删除背景图片',
@@ -421,6 +435,7 @@ export default {
move: '移动',
moveCard_title: '移动卡片',
moveList_title: '移动列表',
regenerateApiKey: '重新生成API密钥',
remove: '删除',
removeAssignee: '移除负责人',
removeColor: '移除颜色',
+15
View File
@@ -39,6 +39,8 @@ export default {
allChangesWillBeAutomaticallySavedAfterConnectionRestored: '所有修改會在重新連線後自動保存',
alphabetically: '按字母順序',
alwaysDisplayCardCreator: '總是顯示卡片建立者',
apiKeyCreated_title: 'API金鑰已建立',
apiKey_title: 'API金鑰',
archive: '封存',
archiveCard_title: '封存卡片',
archiveCards_title: '封存卡片',
@@ -47,6 +49,7 @@ export default {
areYouSureYouWantToArchiveThisCard: '確認封存此卡片嗎?',
areYouSureYouWantToAssignThisProjectManagerAsOwner: '確認將此專案管理員指派為擁有者嗎?',
areYouSureYouWantToDeactivateThisUser: '確認停用此使用者嗎?',
areYouSureYouWantToDeleteThisApiKey: '確認刪除此API金鑰嗎?',
areYouSureYouWantToDeleteThisAttachment: '確認刪除此附件嗎?',
areYouSureYouWantToDeleteThisBackgroundImage: '確認刪除此背景圖片嗎?',
areYouSureYouWantToDeleteThisBoard: '確認刪除此看板嗎?',
@@ -68,6 +71,7 @@ export default {
areYouSureYouWantToLeaveProject: '確認離開此專案嗎?',
areYouSureYouWantToMakeThisProjectPrivate: '確認將此專案設為私人嗎?',
areYouSureYouWantToMakeThisProjectShared: '確認將此專案設為共享嗎?',
areYouSureYouWantToRegenerateThisApiKey: '確認重新產生此API金鑰嗎?之前的金鑰將不再有效。',
areYouSureYouWantToRemoveThisManagerFromProject: '確認從此專案中刪除該管理員嗎?',
areYouSureYouWantToRemoveThisMemberFromBoard: '確認從此看板中刪除該成員嗎?',
assignAsOwner_title: '指派為擁有者',
@@ -113,6 +117,7 @@ export default {
createTextFile_title: '創建文本文件',
creator: '建立者',
currentPassword: '當前密碼',
currentUser: '目前使用者',
customFieldGroup_title: '自定義欄位群組',
customFieldGroups_title: '自定義欄位群組',
customField_title: '自定義欄位',
@@ -124,6 +129,7 @@ export default {
defaultFrom: '預設發送者',
defaultView_title: '預設檢視',
deleteAllBoardsToBeAbleToDeleteThisProject: '刪除所有看板以便刪除此專案',
deleteApiKey_title: '刪除API金鑰',
deleteAttachment_title: '刪除附件',
deleteBackgroundImage_title: '刪除背景圖片',
deleteBoard_title: '刪除看板',
@@ -179,6 +185,7 @@ export default {
forTeamBasedProjects: '用於團隊專案。',
fromComputer_title: '來自電腦',
fromTrello: '來自 Trello',
fullKeyIsHiddenForSecurityReasons: '出於安全考量,完整金鑰已隱藏。重新產生以建立新金鑰。',
general: '通用',
gradients: '漸層',
grid: '網格',
@@ -186,7 +193,9 @@ export default {
hideFromProjectListAndFavorites: '從專案列表和收藏夾中隱藏',
host: '主機',
hours: '小時',
identity: '身分',
importBoard_title: '導入看板',
information: '資訊',
invalidCurrentPassword: '當前密碼錯誤',
kanban: '看板',
labels: '標籤',
@@ -215,6 +224,7 @@ export default {
newUsername: '新使用者名稱',
newVersionAvailable: '有新版本可用',
newestFirst: '最新優先',
noApiKeyCreated: '未建立API金鑰。',
noBoards: '沒有看板',
noCardsFound: '未找到卡片。',
noConnectionToServer: '未連接到伺服器',
@@ -241,10 +251,12 @@ export default {
projectNotFound_title: '專案未找到',
projectOwner: '專案擁有者',
referenceDataAndKnowledgeStorage: '參考資料和知識儲存。',
regenerateApiKey_title: '重新產生API金鑰',
rejectUnauthorizedTlsCertificates: '拒絕未授權的 TLS 憑證',
removeManager_title: '刪除管理員',
removeMember_title: '刪除成員',
role: '角色',
saveThisKeyItWillNotBeShownAgain: '儲存此金鑰——它不會再次顯示!',
searchCards: '搜尋卡片...',
searchCustomFieldGroups: '搜尋自定義欄位群組...',
searchCustomFields: '搜尋自定義欄位...',
@@ -354,6 +366,7 @@ export default {
archiveCards_title: '封存卡片',
assignAsOwner: '指派為擁有者',
cancel: '取消',
createApiKey: '建立API金鑰',
createBoard: '創建看板',
createCustomFieldGroup: '創建自定義欄位群組',
createFile: '創建文件',
@@ -363,6 +376,7 @@ export default {
deactivateUser: '停用使用者',
deactivateUser_title: '停用使用者',
delete: '刪除',
deleteApiKey: '刪除API金鑰',
deleteAttachment: '刪除附件',
deleteAvatar: '刪除頭像',
deleteBackgroundImage: '刪除背景圖片',
@@ -421,6 +435,7 @@ export default {
move: '移動',
moveCard_title: '移動卡片',
moveList_title: '移動列表',
regenerateApiKey: '重新產生API金鑰',
remove: '刪除',
removeAssignee: '移除受派者',
removeColor: '移除顏色',
+57
View File
@@ -38,6 +38,12 @@ const DEFAULT_USERNAME_UPDATE_FORM = {
error: null,
};
const DEFAULT_API_KEY_STATE = {
value: null,
isCreating: false,
error: null,
};
const filterProjectModels = (projectModels, search, isHidden) => {
let filteredProjectModels = projectModels.filter(
(projectModel) => projectModel.isHidden === isHidden,
@@ -67,6 +73,7 @@ export default class extends BaseModel {
phone: attr(),
organization: attr(),
language: attr(),
apiKeyPrefix: attr(),
subscribeToOwnCards: attr(),
subscribeToCardWhenCommenting: attr(),
turnOffRecentCardHighlighting: attr(),
@@ -86,6 +93,9 @@ export default class extends BaseModel {
usernameUpdateForm: attr({
getDefault: () => DEFAULT_USERNAME_UPDATE_FORM,
}),
apiKeyState: attr({
getDefault: () => DEFAULT_API_KEY_STATE,
}),
};
static reducer({ type, payload }, User) {
@@ -275,6 +285,53 @@ export default class extends BaseModel {
});
break;
case ActionTypes.USER_API_KEY_CREATE: {
const userModel = User.withId(payload.id);
userModel.apiKeyState = {
...userModel.apiKeyState,
isCreating: true,
};
break;
}
case ActionTypes.USER_API_KEY_CREATE__SUCCESS:
User.withId(payload.user.id).update({
...payload.user,
apiKeyState: {
...DEFAULT_API_KEY_STATE,
value: payload.apiKey,
},
});
break;
case ActionTypes.USER_API_KEY_CREATE__FAILURE: {
const userModel = User.withId(payload.id);
userModel.apiKeyState = {
...userModel.apiKeyState,
isCreating: false,
};
break;
}
case ActionTypes.USER_API_KEY_DELETE:
User.withId(payload.id).update({
apiKeyPrefix: null,
apiKeyState: DEFAULT_API_KEY_STATE,
});
break;
case ActionTypes.USER_API_KEY_VALUE_CLEAR: {
const userModel = User.withId(payload.id);
userModel.apiKeyState = {
...userModel.apiKeyState,
value: null,
};
break;
}
case ActionTypes.USER_DELETE:
User.withId(payload.id).deleteWithRelated();
+2 -2
View File
@@ -8,11 +8,11 @@ import { combineReducers } from 'redux';
import authenticateForm from './authenticate-form';
import userCreateForm from './user-create-form';
import projectCreateForm from './project-create-form';
import smtpTest from './smtp-test';
import smtpTestState from './smtp-test-state';
export default combineReducers({
authenticateForm,
userCreateForm,
projectCreateForm,
smtpTest,
smtpTestState,
});
+42
View File
@@ -338,6 +338,45 @@ export function* updateCurrentUserAvatar(data) {
yield call(updateUserAvatar, currentUserId, data);
}
export function* createUserApiKey(id) {
yield put(actions.createUserApiKey(id));
let user;
let apiKey;
try {
({
item: user,
included: { apiKey },
} = yield call(request, api.createUserApiKey, id));
} catch (error) {
yield put(actions.createUserApiKey.failure(id, error));
return;
}
yield put(actions.createUserApiKey.success(user, apiKey));
}
export function* deleteUserApiKey(id) {
yield put(actions.deleteUserApiKey(id));
let user;
try {
({ item: user } = yield call(request, api.updateUser, id, {
apiKey: null,
}));
} catch (error) {
yield put(actions.deleteUserApiKey.failure(id, error));
return;
}
yield put(actions.deleteUserApiKey.success(user));
}
export function* clearUserApiKeyValue(id) {
yield put(actions.clearUserApiKeyValue(id));
}
export function* deleteUser(id) {
yield put(actions.deleteUser(id));
@@ -474,6 +513,9 @@ export default {
clearCurrentUserUsernameUpdateError,
updateUserAvatar,
updateCurrentUserAvatar,
createUserApiKey,
deleteUserApiKey,
clearUserApiKeyValue,
deleteUser,
handleUserDelete,
addUserToCard,
+9
View File
@@ -66,6 +66,15 @@ export default function* usersWatchers() {
takeEvery(EntryActionTypes.CURRENT_USER_AVATAR_UPDATE, ({ payload: { data } }) =>
services.updateCurrentUserAvatar(data),
),
takeEvery(EntryActionTypes.USER_API_KEY_CREATE, ({ payload: { id } }) =>
services.createUserApiKey(id),
),
takeEvery(EntryActionTypes.USER_API_KEY_DELETE, ({ payload: { id } }) =>
services.deleteUserApiKey(id),
),
takeEvery(EntryActionTypes.USER_API_KEY_VALUE_CLEAR, ({ payload: { id } }) =>
services.clearUserApiKeyValue(id),
),
takeEvery(EntryActionTypes.USER_DELETE, ({ payload: { id } }) => services.deleteUser(id)),
takeEvery(EntryActionTypes.USER_DELETE_HANDLE, ({ payload: { user } }) =>
services.handleUserDelete(user),
+2 -2
View File
@@ -21,7 +21,7 @@ export const selectUserCreateForm = ({ ui: { userCreateForm } }) => userCreateFo
export const selectProjectCreateForm = ({ ui: { projectCreateForm } }) => projectCreateForm;
export const selectSmtpTest = ({ ui: { smtpTest } }) => smtpTest;
export const selectSmtpTestState = ({ ui: { smtpTestState } }) => smtpTestState;
export default {
selectIsSocketDisconnected,
@@ -33,5 +33,5 @@ export default {
selectAuthenticateForm,
selectUserCreateForm,
selectProjectCreateForm,
selectSmtpTest,
selectSmtpTestState,
};
+2 -11
View File
@@ -45,16 +45,7 @@ export const makeSelectUserById = () =>
export const selectUserById = makeSelectUserById();
export const selectUsersExceptCurrent = createSelector(
orm,
(state) => selectCurrentUserId(state),
({ User }, id) =>
User.getAllQuerySet()
.exclude({
id,
})
.toRefArray(),
);
export const selectUsers = createSelector(orm, ({ User }) => User.getAllQuerySet().toRefArray());
export const selectActiveUsers = createSelector(orm, ({ User }) =>
User.getActiveQuerySet().toRefArray(),
@@ -354,7 +345,7 @@ export default {
makeSelectUserById,
selectUserById,
selectCurrentUserId,
selectUsersExceptCurrent,
selectUsers,
selectActiveUsers,
selectActiveUsersTotal,
selectActiveAdminOrProjectOwnerUsers,
@@ -28,6 +28,8 @@
* example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ4...
* 401:
* $ref: '#/components/responses/Unauthorized'
* security:
* - bearerAuth: []
*/
module.exports = {
@@ -0,0 +1,103 @@
/*!
* Copyright (c) 2025 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
/**
* @swagger
* /users/{id}/api-key:
* post:
* summary: Create user API key
* description: Generates a user's API key. The full API key is returned only once and cannot be retrieved again.
* tags:
* - Users
* operationId: createUserApiKey
* parameters:
* - name: id
* in: path
* required: true
* description: ID of the user to create API key for
* schema:
* type: string
* example: "1357158568008091264"
* responses:
* 200:
* description: API key created successfully
* content:
* application/json:
* schema:
* type: object
* required:
* - item
* - included
* properties:
* item:
* $ref: '#/components/schemas/User'
* included:
* type: object
* required:
* - apiKey
* properties:
* apiKey:
* type: string
* description: API key of the user (returned only once)
* example: D89VszVs_oSS6TdDtYmi0j1LhugOioY40dDVssESO
* 400:
* $ref: '#/components/responses/ValidationError'
* 401:
* $ref: '#/components/responses/Unauthorized'
* 404:
* $ref: '#/components/responses/NotFound'
*/
const { idInput } = require('../../../utils/inputs');
const Errors = {
USER_NOT_FOUND: {
userNotFound: 'User not found',
},
};
module.exports = {
inputs: {
id: {
...idInput,
required: true,
},
},
exits: {
userNotFound: {
responseType: 'notFound',
},
},
async fn(inputs) {
const { currentUser } = this.req;
let user = await User.qm.getOneById(inputs.id);
if (!user) {
throw Errors.USER_NOT_FOUND;
}
const { key: apiKey, prefix: apiKeyPrefix } = sails.helpers.utils.generateApiKey();
user = await sails.helpers.users.updateOne.with({
record: user,
values: {
apiKeyPrefix,
apiKeyHash: sails.helpers.utils.hash(apiKey),
},
actorUser: currentUser,
request: this.req,
});
return {
item: sails.helpers.users.presentOne(user, currentUser),
included: {
apiKey,
},
};
},
};
@@ -161,7 +161,7 @@ module.exports = {
throw Errors.USER_NOT_FOUND;
}
if (user.id === currentUser.id) {
if (currentSession && user.id === currentUser.id) {
const { token: accessToken } = sails.helpers.utils.createJwtToken(
user.id,
user.passwordChangedAt,
+14
View File
@@ -59,6 +59,11 @@
* enum: [ar-YE, bg-BG, cs-CZ, da-DK, de-DE, el-GR, en-GB, en-US, es-ES, et-EE, fa-IR, fi-FI, fr-FR, hu-HU, id-ID, it-IT, ja-JP, ko-KR, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sk-SK, sr-Cyrl-RS, sr-Latn-RS, sv-SE, tr-TR, uk-UA, uz-UZ, zh-CN, zh-TW]
* description: Preferred language for user interface and notifications
* example: en-US
* apiKey:
* type: object
* nullable: true
* description: API key of the user (only null value to remove API key)
* example: null
* subscribeToOwnCards:
* type: boolean
* description: Whether the user subscribes to their own cards
@@ -167,6 +172,10 @@ module.exports = {
type: 'string',
isIn: User.LANGUAGES,
},
apiKey: {
type: 'json',
custom: _.isNull,
},
subscribeToOwnCards: {
type: 'boolean',
},
@@ -220,6 +229,10 @@ module.exports = {
throw Errors.USER_NOT_FOUND; // Forbidden
}
if (currentUser.role === User.Roles.ADMIN) {
availableInputKeys.push('apiKey');
}
if (_.difference(Object.keys(inputs), availableInputKeys).length > 0) {
throw Errors.NOT_ENOUGH_RIGHTS;
}
@@ -253,6 +266,7 @@ module.exports = {
'phone',
'organization',
'language',
'apiKey',
'subscribeToOwnCards',
'subscribeToCardWhenCommenting',
'turnOffRecentCardHighlighting',
+2
View File
@@ -23,8 +23,10 @@ module.exports = {
..._.omit(inputs.record, [
'password',
'avatar',
'apiKeyHash',
'termsSignature',
'passwordChangedAt',
'apiKeyCreatedAt',
'termsAcceptedAt',
]),
avatar: inputs.record.avatar && {
+19 -5
View File
@@ -38,13 +38,23 @@ module.exports = {
values.email = values.email.toLowerCase();
}
let isOnlyEmailChange = false;
let isOnlyPasswordChange = false;
if (_.isNull(values.apiKey)) {
Object.assign(values, {
apiKeyPrefix: null,
apiKeyHash: null,
apiKeyCreatedAt: null,
});
delete values.apiKey;
}
let isOnlyPrivateFieldsChange = false;
let isOnlyPersonalFieldsChange = false;
let isOnlyPasswordChange = false;
let isDeactivatedChangeToTrue = false;
if (!_.isUndefined(values.email) && Object.keys(values).length === 1) {
isOnlyEmailChange = true;
if (_.difference(Object.keys(values), User.PRIVATE_FIELD_NAMES).length === 0) {
isOnlyPrivateFieldsChange = true;
}
if (_.difference(Object.keys(values), User.PERSONAL_FIELD_NAMES).length === 0) {
@@ -64,6 +74,10 @@ module.exports = {
values.username = values.username.toLowerCase();
}
if (values.apiKeyHash) {
values.apiKeyCreatedAt = new Date().toISOString();
}
if (values.isDeactivated && values.isDeactivated !== inputs.record.isDeactivated) {
isDeactivatedChangeToTrue = true;
}
@@ -154,7 +168,7 @@ module.exports = {
);
});
if (!isOnlyEmailChange) {
if (!isOnlyPrivateFieldsChange) {
if (inputs.record.role === User.Roles.ADMIN && user.role !== User.Roles.ADMIN) {
const managerProjectIds = await sails.helpers.users.getManagerProjectIds(user.id);
@@ -0,0 +1,19 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
module.exports = {
sync: true,
fn() {
const prefix = sails.helpers.utils.generateRandomString(8);
const secret = sails.helpers.utils.generateRandomString(32);
const key = `${prefix}_${secret}`;
return {
key,
prefix,
};
},
};
@@ -0,0 +1,30 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
const crypto = require('crypto');
const CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
module.exports = {
sync: true,
inputs: {
size: {
type: 'number',
required: true,
},
},
fn(inputs) {
const bytes = crypto.randomBytes(inputs.size);
let result = '';
for (let i = 0; i < inputs.size; i += 1) {
result += CHARS[bytes[i] % 62];
}
return result;
},
};
+21
View File
@@ -0,0 +1,21 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
const crypto = require('crypto');
module.exports = {
sync: true,
inputs: {
data: {
type: 'ref',
required: true,
},
},
fn(inputs) {
return crypto.createHash('sha256').update(inputs.data).digest('hex');
},
};
+43 -4
View File
@@ -13,8 +13,9 @@
module.exports = function defineCurrentUserHook(sails) {
const TOKEN_PATTERN = /^Bearer /;
const API_KEY_HEADER_NAME = 'x-api-key';
const getSessionAndUser = async (accessToken, httpOnlyToken) => {
const getSessionAndUserByAccessToken = async (accessToken, httpOnlyToken) => {
let payload;
try {
payload = sails.helpers.utils.verifyJwtToken(accessToken);
@@ -50,6 +51,12 @@ module.exports = function defineCurrentUserHook(sails) {
};
};
const getUserByApiKey = (apiKey) => {
const apiKeyHash = sails.helpers.utils.hash(apiKey);
return User.qm.getOneActiveByApiKeyHash(apiKeyHash);
};
return {
/**
* Runs when this Sails app loads/lifts.
@@ -63,7 +70,8 @@ module.exports = function defineCurrentUserHook(sails) {
before: {
'/api/*': {
async fn(req, res, next) {
const { authorization: authorizationHeader } = req.headers;
const { authorization: authorizationHeader, [API_KEY_HEADER_NAME]: apiKey } =
req.headers;
if (authorizationHeader && TOKEN_PATTERN.test(authorizationHeader)) {
const accessToken = authorizationHeader.replace(TOKEN_PATTERN, '');
@@ -73,7 +81,11 @@ module.exports = function defineCurrentUserHook(sails) {
req.currentUser = User.INTERNAL;
} else {
const { httpOnlyToken } = req.cookies;
const sessionAndUser = await getSessionAndUser(accessToken, httpOnlyToken);
const sessionAndUser = await getSessionAndUserByAccessToken(
accessToken,
httpOnlyToken,
);
if (sessionAndUser) {
const { session, user } = sessionAndUser;
@@ -93,6 +105,20 @@ module.exports = function defineCurrentUserHook(sails) {
}
}
}
} else if (apiKey) {
const user = await getUserByApiKey(apiKey);
if (user) {
if (user.language) {
req.setLocale(user.language);
}
req.currentUser = user;
if (req.isSocket) {
sails.sockets.join(req, `@user:${user.id}`);
}
}
}
return next();
@@ -103,7 +129,10 @@ module.exports = function defineCurrentUserHook(sails) {
const { accessToken, httpOnlyToken } = req.cookies;
if (accessToken) {
const sessionAndUser = await getSessionAndUser(accessToken, httpOnlyToken);
const sessionAndUser = await getSessionAndUserByAccessToken(
accessToken,
httpOnlyToken,
);
if (sessionAndUser) {
const { session, user } = sessionAndUser;
@@ -113,6 +142,16 @@ module.exports = function defineCurrentUserHook(sails) {
currentUser: user,
});
}
} else {
const { [API_KEY_HEADER_NAME]: apiKey } = req.headers;
if (apiKey) {
const user = await getUserByApiKey(apiKey);
if (user) {
req.currentUser = user;
}
}
}
return next();
@@ -78,6 +78,12 @@ const getOneActiveByEmailOrUsername = (emailOrUsername) => {
});
};
const getOneActiveByApiKeyHash = (apiKeyHash) =>
User.findOne({
apiKeyHash,
isDeactivated: false,
});
const updateOne = async (criteria, values) => {
const enforceActiveLimit =
values.isDeactivated === false && sails.config.custom.activeUsersLimit !== null;
@@ -201,6 +207,7 @@ module.exports = {
getOneById,
getOneByEmail,
getOneActiveByEmailOrUsername,
getOneActiveByApiKeyHash,
updateOne,
deleteOne,
};
+23 -1
View File
@@ -100,6 +100,11 @@
* nullable: true
* description: Preferred language for user interface and notifications (personal field)
* example: en-US
* apiKeyPrefix:
* type: string
* nullable: true
* description: Prefix of the API key for display purposes (private field)
* example: D89VszVs
* subscribeToOwnCards:
* type: boolean
* default: false
@@ -235,7 +240,8 @@ const LANGUAGES = [
'zh-TW',
];
const PRIVATE_FIELD_NAMES = ['email', 'isSsoUser'];
// TODO: find better way to handle apiKeyHash and apiKeyCreatedAt
const PRIVATE_FIELD_NAMES = ['email', 'apiKeyPrefix', 'apiKeyHash', 'isSsoUser', 'apiKeyCreatedAt'];
const PERSONAL_FIELD_NAMES = [
'language',
@@ -319,6 +325,18 @@ module.exports = {
isIn: LANGUAGES,
allowNull: true,
},
apiKeyPrefix: {
type: 'string',
isNotEmptyString: true,
allowNull: true,
columnName: 'api_key_prefix',
},
apiKeyHash: {
type: 'string',
isNotEmptyString: true,
allowNull: true,
columnName: 'api_key_hash',
},
subscribeToOwnCards: {
type: 'boolean',
defaultsTo: false,
@@ -377,6 +395,10 @@ module.exports = {
type: 'ref',
columnName: 'password_changed_at',
},
apiKeyCreatedAt: {
type: 'ref',
columnName: 'api_key_created_at',
},
termsAcceptedAt: {
type: 'ref',
columnName: 'terms_accepted_at',
+1
View File
@@ -5,6 +5,7 @@
module.exports = async function isAuthenticated(req, res, proceed) {
if (!req.currentUser) {
// TODO: provide separate error for API keys?
return res.unauthorized('Access token is missing, invalid or expired');
}
+12
View File
@@ -0,0 +1,12 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
module.exports = async function isSession(req, res, proceed) {
if (!req.currentSession) {
return res.notFound(); // Forbidden
}
return proceed();
};
+3
View File
@@ -27,6 +27,8 @@ module.exports.policies = {
'webhooks/update': ['is-authenticated', 'is-external', 'is-admin'],
'webhooks/delete': ['is-authenticated', 'is-external', 'is-admin'],
'access-tokens/delete': ['is-authenticated', 'is-external', 'is-session'],
'users/index': 'is-authenticated',
'users/create': ['is-authenticated', 'is-admin'],
'users/show': 'is-authenticated',
@@ -35,6 +37,7 @@ module.exports.policies = {
'users/update-password': 'is-authenticated',
'users/update-username': 'is-authenticated',
'users/update-avatar': 'is-authenticated',
'users/create-api-key': ['is-authenticated', 'is-admin'],
'users/delete': ['is-authenticated', 'is-admin'],
'projects/create': ['is-authenticated', 'is-external', 'is-admin-or-project-owner'],
+1
View File
@@ -89,6 +89,7 @@ module.exports.routes = {
'PATCH /api/users/:id/password': 'users/update-password',
'PATCH /api/users/:id/username': 'users/update-username',
'POST /api/users/:id/avatar': 'users/update-avatar',
'POST /api/users/:id/api-key': 'users/create-api-key',
'DELETE /api/users/:id': 'users/delete',
'GET /api/projects': 'projects/index',
+8
View File
@@ -31,12 +31,20 @@ module.exports = {
scheme: 'bearer',
bearerFormat: 'JWT',
},
apiKeyAuth: {
type: 'apiKey',
in: 'header',
name: 'X-Api-Key',
},
},
},
security: [
{
bearerAuth: [],
},
{
apiKeyAuth: [],
},
],
},
apis: ['./api/controllers/**/*.js', './api/models/*.js', './api/responses/*.js'],
@@ -0,0 +1,23 @@
/*!
* Copyright (c) 2024 PLANKA Software GmbH
* Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md
*/
exports.up = (knex) =>
knex.schema.alterTable('user_account', (table) => {
table.text('api_key_prefix');
table.text('api_key_hash');
table.timestamp('api_key_created_at', true);
/* Indexes */
table.unique('api_key_hash');
});
exports.down = (knex) =>
knex.schema.alterTable('user_account', (table) => {
table.dropColumn('api_key_prefix');
table.dropColumn('api_key_hash');
table.dropColumn('api_key_created_at');
});