i18n/ru-RU.json
Rama main · réplica de lectura del repositorio original.
{
"common": {
"appName": "Kaneo",
"actions": {
"cancel": "Отмена",
"close": "Закрыть",
"clearAll": "Очистить все",
"delete": "Удалить",
"deleting": "Удаление...",
"markAllRead": "Отметить все как прочитанные",
"remove": "Убрать",
"reset": "Сбросить",
"filter": "Фильтр"
},
"a11y": {
"toggleSidebar": "Переключить боковую панель"
},
"sidebar": {
"title": "Боковая панель",
"mobileDescription": "Отображает мобильную боковую панель."
},
"empty": {
"loading": "Загрузка..."
},
"pagination": {
"label": "Пагинация",
"previous": "Назад",
"next": "Вперёд",
"previousPage": "Перейти на предыдущую страницу",
"nextPage": "Перейти на следующую страницу",
"morePages": "Ещё страницы"
},
"breadcrumb": {
"label": "Навигационная цепочка",
"more": "Ещё"
},
"language": {
"english": "Английский",
"german": "Немецкий",
"greek": "Греческий",
"macedonian": "Македонский",
"french": "Французский",
"spanish": "Испанский",
"dutch": "Нидерландский",
"korean": "Корейский",
"chinese": "Китайский",
"italian": "Итальянский"
},
"people": {
"someone": "Кто-то",
"unknown": "Неизвестно"
},
"error": {
"title": "Что-то пошло не так",
"troubleshooting": "Шаги для устранения неполадок:",
"tryAgain": "Попробовать снова",
"viewDeploymentGuide": "Руководство по развёртыванию",
"refreshPage": "Обновить страницу",
"description": "The page crashed unexpectedly. Refreshing usually fixes it.",
"messages": {
"auth": "Authentication failed. Please sign in again.",
"cors": "Unable to connect to the server. This might be due to CORS configuration issues.",
"network": "Network error. Please check your internet connection and try again.",
"server": "Server error. Please try again later.",
"unknown": "An unexpected error occurred."
},
"troubleshootingSteps": {
"cors": {
"checkAccessibility": "Check that your API server is accessible from your browser",
"checkApiRunning": "Make sure your API server is running",
"checkApiUrl": "Check that VITE_API_URL in your frontend .env matches your API server URL",
"checkProtocol": "Ensure both frontend and API are using the same protocol (http/https)",
"verifyCorsOrigins": "Verify CORS_ORIGINS in your API .env includes your frontend URL"
},
"network": {
"checkConnection": "Check your internet connection",
"checkFirewall": "Check if there are any firewall or proxy issues",
"tryRefresh": "Try refreshing the page",
"verifyApiRunning": "Verify the API server is running and accessible"
}
}
},
"modals": {
"createProject": {
"title": "Создать новый проект",
"breadcrumbNew": "Создать новый проект",
"workspaceFallback": "РАБОЧАЯ ОБЛАСТЬ",
"description": "Создайте новый проект в вашей рабочей области, указав название, ключ и выбрав иконку.",
"pickIcon": "Выбрать иконку",
"searchIcons": "Поиск иконок...",
"projectName": "Название проекта",
"keyLabel": "Ключ:",
"keyHint": "Используется для идентификаторов задач (например, {{example}}-123)",
"createButton": "Создать проект",
"successToast": "Проект успешно создан",
"errorToast": "Не удалось создать проект"
},
"createWorkspace": {
"breadcrumbKaneo": "KANEO",
"title": "Создать новую рабочую область",
"description": "Создайте новую рабочую область, указав её название.",
"namePlaceholder": "Название рабочей области",
"descriptionPlaceholder": "Добавить описание...",
"createButton": "Создать рабочую область",
"successToast": "Рабочая область успешно создана",
"errorToast": "Не удалось создать рабочую область"
},
"createTask": {
"breadcrumbTask": "ЗАДАЧА",
"selectProject": "Выберите проект",
"title": "Новая задача",
"description": "Создайте новую задачу, указав название, описание и другие детали.",
"taskTitlePlaceholder": "Название задачи",
"descriptionPlaceholder": "Добавьте описание задачи...",
"chooseProjectForImages": "Выберите проект перед загрузкой изображений.",
"prepareTaskError": "Не удалось подготовить задачу",
"successCreated": "Задача успешно создана",
"successUpdated": "Задача успешно обновлена",
"createError": "Не удалось создать задачу",
"priority": "Приоритет",
"statusFallback": "В работе",
"startDate": "Дата начала",
"dueDate": "Срок выполнения",
"clearStartDate": "Очистить дату начала",
"assign": "Назначить",
"assignUnassigned": "Не назначено",
"assignUnassignedTitle": "Не назначено",
"labels": "Метки",
"searchLabels": "Поиск меток...",
"noLabelsFound": "Метки не найдены",
"createLabel": "Создать «{{name}}»",
"chooseColor": "Выберите цвет",
"labelCreated": "Метка создана",
"labelCreateError": "Не удалось создать метку",
"createMore": "Создать ещё",
"createButton": "Создать задачу",
"discardTitle": "Отменить задачу?",
"discardDescription": "Несохранённые данные задачи будут потеряны.",
"discardButton": "Отменить задачу",
"untitledTask": "Задача без названия",
"labelColors": {
"stone": "Камень",
"slate": "Сланец",
"lavender": "Лаванда",
"sage": "Шалфей",
"forest": "Лес",
"amber": "Янтарь",
"terracotta": "Терракота",
"rose": "Роза",
"crimson": "Малиновый",
"lagoon": "Лагуна",
"ocean": "Океан",
"orchid": "Орхидея",
"sky": "Небо"
},
"statusLoadError": "Project statuses couldn’t be loaded."
}
},
"editor": {
"link": {
"label": "URL ссылки",
"placeholder": "Вставьте или введите ссылку…",
"apply": "Применить ссылку",
"remove": "Удалить ссылку"
}
}
},
"auth": {
"signIn": {
"pageTitle": "Вход",
"subtitle": {
"emailOrProvider": "Войдите по электронной почте или через подключённый аккаунт.",
"email": "Введите адрес электронной почты, и мы отправим вам код для входа.",
"password": "Войдите с помощью электронной почты и пароля.",
"passwordOrProvider": "Войдите с паролем или через подключённый аккаунт.",
"providers": "Выберите способ входа.",
"sso": "Входом здесь управляет ваша организация."
},
"lastUsed": "Использовался последним",
"guestError": "Не удалось войти как гость",
"errors": {
"account_not_linked": "Не удалось привязать эту учётную запись к существующему аккаунту. Войдите по электронной почте, чтобы подтвердить аккаунт, затем повторите вход через SSO. Если вход по почте недоступен, обратитесь к администратору.",
"oauth_code_verification_failed": "Не удалось выполнить проверку OAuth. Попробуйте ещё раз.",
"registration_is_currently_disabled_you_need_a_valid_invitation_to_create_an_account_": "Регистрация в данный момент отключена. Для создания аккаунта требуется действительное приглашение.",
"use_a_permanent_email_address_disposable_addresses_cannot_create_accounts_": "Используйте постоянный адрес электронной почты. С одноразовыми адресами создать аккаунт нельзя."
},
"instanceStatusError": "Не удалось связаться с сервером. Повторите попытку чуть позже.",
"heading": "Вход в Kaneo",
"submitPassword": "Войти",
"invitation": {
"title": "{{inviterName}} приглашает вас в {{workspaceName}}",
"fallbackTitle": "Вас пригласили",
"description": "Войдите с адресом электронной почты, на который пришло приглашение. Сразу после этого вы присоединитесь к рабочей области."
},
"footer": {
"newHere": "Впервые в Kaneo?",
"createAccount": "Создать аккаунт",
"inviteOnly": "Аккаунты здесь создаются только по приглашению. Попросите приглашение у администратора.",
"providerSignUp": "Впервые здесь? Войдите через одного из провайдеров выше, чтобы создать аккаунт.",
"anyProvider": "Впервые здесь? Любой из вариантов выше создаст ваш аккаунт.",
"contactAdmin": "Не получается войти? Обратитесь к администратору.",
"justLooking": "Просто хотите осмотреться?"
},
"autoLogin": {
"title": "Выполняется вход",
"subtitle": "Перенаправляем вас на страницу входа вашей организации.",
"opening": "Открываем {{provider}}…",
"stuck": "Ничего не происходит?",
"continue": "Перейти в {{provider}}"
}
},
"providers": {
"google": "Google",
"discord": "Discord",
"github": "GitHub",
"sso": "SSO",
"continueWith": "Продолжить через {{provider}}",
"error": "Не удалось войти через {{provider}}. Попробуйте ещё раз."
},
"forms": {
"or": "или",
"email": "Электронная почта",
"password": "Пароль",
"emailPlaceholder": "me@example.com",
"passwordPlaceholder": "••••••••",
"showPassword": "Показать пароль",
"hidePassword": "Скрыть пароль",
"name": "Имя",
"namePlaceholder": "Анна Иванова",
"invalidEmail": "Введите полный адрес электронной почты, например name@company.com.",
"nameRequired": "Введите имя.",
"passwordRequired": "Введите пароль.",
"passwordTooShort": "Используйте не менее 8 символов.",
"disposableEmail": "Используйте постоянный адрес электронной почты. С одноразовыми адресами создать аккаунт нельзя.",
"continueWithEmail": "Продолжить по электронной почте",
"captchaChecking": "Выполняется быстрая проверка безопасности, прежде чем вы сможете продолжить.",
"captchaFailed": "Проверка безопасности не загрузилась, поэтому вход приостановлен. Проверьте подключение или блокировщик контента.",
"captchaRetry": "Повторить"
},
"checkEmail": {
"pageTitle": "Проверьте почту",
"title": "Проверьте свою почту",
"inboxMessage": "Мы отправили вам временную ссылку для входа. Пожалуйста, проверьте свой почтовый ящик по адресу <email>{{email}}</email>.",
"emailFallback": "ваш адрес электронной почты",
"backToLogin": "Вернуться к входу"
},
"signUp": {
"pageTitle": "Создание аккаунта",
"registrationDisabledAlert": "Регистрация в данный момент отключена. Если вы получили приглашение, введите адрес электронной почты, на который оно было отправлено.",
"continueAsGuest": "Продолжить как гость",
"toggleMessage": "Уже есть аккаунт?",
"toggleLink": "Войти",
"instanceStatusError": "Не удалось связаться с сервером. Повторите попытку чуть позже.",
"instanceAdminTitle": "Настройте свой экземпляр Kaneo",
"instanceAdminSubtitle": "Этот аккаунт станет администратором экземпляра с полным доступом.",
"heading": "Создайте аккаунт",
"submitPassword": "Создать аккаунт",
"failed": "Не удалось создать аккаунт. Попробуйте ещё раз.",
"subtitle": {
"email": "Начните с адреса электронной почты. Мы отправим код, пароль не нужен.",
"password": "Укажите имя, адрес электронной почты и пароль, чтобы начать.",
"providers": "Используйте подключённый аккаунт, чтобы создать свой."
},
"invitation": {
"description": "Используйте адрес электронной почты, на который пришло приглашение. Сразу после этого вы присоединитесь к рабочей области."
},
"verifyEmail": "Check your email to confirm your address, then sign in."
},
"verifyOtp": {
"pageTitle": "Проверка кода",
"validation": {
"codeLength": "Код должен содержать 6 цифр"
},
"toast": {
"invalidCode": "Неверный код подтверждения",
"verifyFailed": "Не удалось проверить код",
"resendFailed": "Не удалось отправить код повторно",
"resendSuccess": "Новый код подтверждения отправлен!"
},
"heading": "Проверьте почту",
"description": "Мы отправили 6-значный код на {{email}}. Он действует {{minutes}} мин.",
"label": "Код подтверждения",
"submit": "Подтвердить и продолжить",
"didntGetIt": "Код не пришёл?",
"resendCode": "Отправить код повторно",
"useDifferentEmail": "Использовать другой адрес",
"expired": "Срок действия кода истёк. Запросите новый.",
"tooManyAttempts": "Слишком много попыток. Запросите новый код."
},
"otpSignIn": {
"sendFailed": "Не удалось отправить код подтверждения"
},
"signInForm": {
"failedSignIn": "Не удалось войти",
"emailNotVerified": "Confirm your email address first. We sent you a new link."
},
"invitation": {
"pageTitleAccept": "Принять приглашение",
"pageTitleError": "Ошибка приглашения",
"pageTitleInvalid": "Недействительное приглашение",
"joinWorkspace": "Присоединиться к {{workspaceName}}",
"createAccount": "Создать аккаунт",
"signIn": "Войти",
"toast": {
"acceptFailed": "Не удалось принять приглашение",
"acceptSuccess": "Приглашение принято! Добро пожаловать в команду."
},
"description": "{{inviterName}} приглашает вас в эту рабочую область в Kaneo.",
"invitedBy": "Приглашение от",
"sentTo": "Отправлено на",
"signedInAs": "Вы вошли как",
"expires": "Действует до",
"notNow": "Не сейчас",
"join": "Присоединиться к рабочей области",
"switchAccount": "Сменить аккаунт",
"goToKaneo": "Перейти в Kaneo",
"mismatch": {
"title": "Вы вошли с другим адресом",
"description": "Это приглашение отправлено на {{invitedEmail}}. Вы вошли как {{email}}."
},
"expired": {
"title": "Срок действия приглашения истёк",
"description": "Попросите пользователя {{inviterName}} отправить вам новое приглашение в {{workspaceName}}."
},
"invalid": {
"title": "Приглашение больше недействительно",
"description": "Возможно, его уже приняли или отменили. Попросите новое у администратора рабочей области."
},
"loadFailed": {
"title": "Не удалось загрузить приглашение",
"description": "Проверьте подключение и перезагрузите страницу."
}
},
"onboarding": {
"pageTitle": "Добро пожаловать в Kaneo",
"workspaceName": "Название рабочей области",
"workspaceNamePlaceholder": "например, Acme Inc, Моя команда",
"toast": {
"createFailed": "Не удалось создать рабочую область"
},
"validation": {
"workspaceNameRequired": "Название рабочей области обязательно",
"projectNameRequired": "Назовите ваш первый проект"
},
"restrictedSubtitle": "Здесь создавать рабочие пространства может только администратор экземпляра. Попросите приглашение и обновите страницу.",
"restrictedCheckInvitations": "Проверить приглашения",
"restrictedTitle": "Нужно приглашение",
"cloud": {
"invite": {
"addAnother": "Add another",
"emailLabel": "Teammate email {{index}}",
"emailPlaceholder": "teammate@company.com",
"failed": "Couldn't invite {{email}}: {{message}}",
"invalidEmail": "Enter a valid email address",
"remove": "Remove email {{index}}",
"sent_few": "{{count}} invitations sent",
"sent_many": "{{count}} invitations sent",
"sent_one": "Invitation sent",
"sent_other": "{{count}} invitations sent",
"skip": "Skip for now"
},
"plan": {
"continueTrial": "Start free trial",
"recommended": "Recommended",
"trialUsed": "You've already used your free trial. Pick a plan to start creating projects and tasks."
},
"usageLabel": "Who will use this workspace?",
"usageSolo": "Just me",
"usageSoloDescription": "Keep track of your own work",
"usageTeam": "My team",
"usageTeamDescription": "Plan and ship work together"
},
"projectNameDefault": "Мой первый проект",
"starterTasks": {
"drag": {
"title": "Перетащите эту карточку в следующую колонку",
"description": "Карточки переходят из колонки в колонку по мере продвижения работы. Перетащите эту в следующую колонку или откройте её и измените статус."
},
"details": {
"title": "Откройте эту задачу и добавьте подзадачу",
"description": "У задачи могут быть описание, подзадачи, метки, исполнитель и срок. Добавьте подзадачу к этой, чтобы попробовать."
},
"invite": {
"title": "Пригласите команду",
"description": "Kaneo лучше всего работает, когда в нём вся команда. Откройте **Участники** на боковой панели, чтобы пригласить людей по email."
},
"integrations": {
"title": "Подключите GitHub, GitLab или Gitea",
"description": "Синхронизируйте issues и автоматически перемещайте задачи, когда pull request открывается и сливается. Настройте это в разделе **Настройки проекта**."
},
"create": {
"title": "Создайте свою задачу",
"description": "Используйте **+** рядом с названием колонки или нажмите **T**, а затем **C**. Удалите эти стартовые задачи, когда будете готовы."
}
},
"progress": "Шаг {{current}} из {{total}}",
"continue": "Продолжить",
"signedInAs": "Вы вошли как {{email}}",
"signOut": "Выйти",
"workspace": {
"title": "Назовите рабочую область",
"description": "Здесь будут ваши проекты. Используйте название команды или компании, его можно изменить позже."
},
"usage": {
"title": "Кто будет ею пользоваться?",
"description": "Мы настроим рабочую область {{name}} под ваши задачи. Пригласить людей можно и позже."
},
"project": {
"title": "Создайте первый проект",
"description": "Мы добавим несколько стартовых задач, чтобы помочь вам освоиться. Их можно переименовать или удалить в любой момент.",
"label": "Название проекта",
"ticketStart": "Номера задач начнутся с {{ticket}}."
},
"invite": {
"title": "Пригласите команду",
"description": "Они получат письмо с приглашением в {{name}}. Пропустите этот шаг, если хотите сначала осмотреться.",
"label": "Адреса электронной почты коллег",
"send_few": "Отправить {{count}} приглашения",
"send_many": "Отправить {{count}} приглашений",
"send_one": "Отправить {{count}} приглашение",
"send_other": "Отправить {{count}} приглашения",
"sendNone": "Отправить приглашения"
},
"plan": {
"title": "С чего хотите начать?",
"descriptionTrial_few": "Все тарифы включают неограниченное число проектов и задач. Попробуйте {{name}} бесплатно в течение {{count}} дней или оформите подписку сейчас.",
"descriptionTrial_many": "Все тарифы включают неограниченное число проектов и задач. Попробуйте {{name}} бесплатно в течение {{count}} дней или оформите подписку сейчас.",
"descriptionTrial_one": "Все тарифы включают неограниченное число проектов и задач. Попробуйте {{name}} бесплатно в течение {{count}} дня или оформите подписку сейчас.",
"descriptionTrial_other": "Все тарифы включают неограниченное число проектов и задач. Попробуйте {{name}} бесплатно в течение {{count}} дня или оформите подписку сейчас.",
"choose": "Выберите тариф",
"description": {
"team": "Неограниченное число участников, роли и права доступа",
"personal": "Для одного человека"
},
"perUserMonth": "за пользователя / месяц",
"perMonth": "в месяц",
"subscribe": "Оформить тариф {{plan}}",
"checkout": "Перейти к оплате",
"trialNote": "Для пробного периода карта не нужна. Платежи обрабатывает Creem.",
"paymentNote": "Платежи обрабатывает Creem."
},
"ready": {
"title": "Рабочая область {{name}} готова",
"description": "Вот что мы настроили. Всё это можно изменить позже.",
"workspace": "Рабочая область",
"project": "Первый проект",
"projectValue_few": "{{name}}, {{count}} стартовые задачи",
"projectValue_many": "{{name}}, {{count}} стартовых задач",
"projectValue_one": "{{name}}, {{count}} стартовая задача",
"projectValue_other": "{{name}}, {{count}} стартовой задачи",
"invitations": "Приглашения",
"invitationsValue_few": "Отправлено {{count}} приглашения",
"invitationsValue_many": "Отправлено {{count}} приглашений",
"invitationsValue_one": "Отправлено {{count}} приглашение",
"invitationsValue_other": "Отправлено {{count}} приглашения",
"open": "Открыть {{name}}"
},
"preview": {
"untitled": "Ваша рабочая область"
}
},
"profileSetup": {
"pageTitle": "Заполнение профиля",
"completeTitle": "Заполните свой профиль",
"subtitle": "Пожалуйста, введите своё имя, чтобы начать",
"yourName": "Ваше имя",
"namePlaceholder": "например, Иван Иванов",
"saving": "Сохранение...",
"continue": "Продолжить",
"welcome": "Добро пожаловать, {{name}}!",
"redirecting": "Переход к панели управления...",
"toast": {
"updateSuccess": "Профиль успешно обновлён",
"updateFailed": "Не удалось обновить профиль"
},
"validation": {
"nameRequired": "Имя обязательно",
"nameShort": "Имя должно содержать не менее 2 символов"
}
},
"passwordReset": {
"forgotPassword": "Forgot password?",
"requestTitle": "Reset your password",
"requestSubtitle": "Enter your email and we’ll send you a password reset link.",
"sendLink": "Send reset link",
"requestError": "Could not request a reset link. Please try again.",
"unavailable": "Password reset is unavailable. Contact your instance administrator.",
"configError": "Could not reach the server. Please reload the page to try again.",
"resetTitle": "Choose a new password",
"newPassword": "New password",
"confirmPassword": "Confirm new password",
"passwordMismatch": "The passwords do not match.",
"passwordLength": "Use between 8 and 128 characters.",
"invalidLink": "This reset link is invalid or has expired. Request a new link to continue.",
"requestNewLink": "Request a new link",
"resetError": "Could not reset your password. Please try again.",
"success": "Your password has been reset. Sign in with your new password.",
"backToSignIn": "Back to sign in",
"sentTitle": "Проверьте почтовый ящик",
"sentDescription": "Если аккаунт для {{email}} существует, на эту почту уже отправлена ссылка для сброса пароля. Она действует 1 час.",
"sentHelpTitle": "Письмо не пришло?",
"sentHelpDescription": "Проверьте папку «Спам» или запросите новую ссылку через минуту.",
"rememberedIt": "Вспомнили пароль?",
"resetDescription": "Используйте от 8 до 128 символов. На других устройствах будет выполнен выход.",
"updatePassword": "Обновить пароль",
"changedMind": "Передумали?",
"invalidLinkTitle": "Срок действия ссылки истёк",
"successTitle": "Пароль обновлён"
},
"page": {
"terms": "Условия",
"privacy": "Конфиденциальность"
},
"device": {
"connect": {
"title": "Подключение устройства",
"description": "Введите код из терминала или приложения, чтобы привязать его к аккаунту Kaneo.",
"label": "Код устройства",
"submit": "Продолжить",
"noCode": "Ещё нет кода? Сначала начните вход в приложении.",
"codeRequired": "Введите код, показанный на устройстве.",
"invalidCode": "Код недействителен или срок его действия истёк."
},
"approve": {
"pageTitle": "Подтверждение устройства",
"title": "Подключить это устройство?",
"description": "Устройство пытается войти как {{email}}. Подтверждайте, только если вы сами начали этот вход.",
"matchCode": "Убедитесь, что код совпадает с кодом на устройстве",
"deny": "Отклонить",
"approve": "Подтвердить",
"failed": "Не удалось обновить запрос. Попробуйте ещё раз."
},
"approved": {
"title": "Устройство подключено",
"description": "Вернитесь в терминал или приложение. Эту вкладку можно закрыть."
},
"denied": {
"title": "Запрос отклонён",
"description": "Ничего не было подключено. Эту вкладку можно закрыть."
},
"missing": {
"title": "Нет кода устройства",
"description": "Откройте эту страницу с устройства или введите код вручную.",
"enterCode": "Ввести код"
},
"signIn": {
"title": "Войдите, чтобы подключить устройство",
"description": "Сразу после входа вы вернётесь сюда, чтобы подтвердить его.",
"submit": "Войти"
},
"openApp": "Open Kaneo"
},
"mcp": {
"authorize": {
"title": "Авторизация MCP-клиента",
"description": "Он сможет действовать от вашего имени во всех рабочих областях, к которым у вас есть доступ. Продолжайте, только если вы сами начали это подключение.",
"client": "Клиент",
"unknownClient": "MCP-клиент",
"selfReported": "Со слов клиента",
"redirect": "Вернёт вас на",
"signedInAs": "Вы вошли как",
"deny": "Отклонить",
"allow": "Разрешить доступ"
},
"expired": {
"title": "Срок действия запроса истёк",
"description": "Вернитесь в MCP-клиент и подключитесь снова."
},
"signIn": {
"title": "Войдите, чтобы авторизовать этот клиент",
"description": "Сразу после входа вы вернётесь сюда, чтобы проверить запрос.",
"submit": "Войти"
}
}
},
"settings": {
"advancedSettings": "Расширенные настройки",
"account": "Аккаунт",
"developer": "Разработчик",
"information": "Профиль",
"notifications": "Уведомления",
"preferences": "Настройки",
"apiKeys": "API-ключи",
"informationPage": {
"pageTitle": "Профиль",
"title": "Профиль",
"subtitle": "Как вас видят коллеги по команде.",
"sectionTitle": "Данные",
"profilePicture": "Фото профиля",
"fullName": "Имя",
"fullNamePlaceholder": "Введите ваше имя",
"email": "Электронная почта",
"updateError": "Не удалось обновить профиль",
"validation": {
"nameRequired": "Имя обязательно",
"nameShort": "Имя должно содержать не менее 2 символов"
},
"avatar": {
"hint": "Лучше всего смотрятся квадратные изображения.",
"remove": "Удалить",
"removeError": "Failed to remove profile picture",
"removeSuccess": "Profile picture removed",
"updateError": "Failed to update profile picture",
"updateSuccess": "Profile picture updated",
"upload": "Загрузить"
},
"deleteAccount": {
"confirm": "Delete account",
"confirmLabel": "Confirm your email address",
"description": "Workspaces only you belong to are deleted with your account. Elsewhere, your tasks stay and become unassigned, and your comments are removed.",
"error": "Failed to delete account",
"modalDescription": "This cannot be undone. Type {{email}} to confirm.",
"modalTitle": "Delete your account?",
"sectionTitle": "Danger zone",
"success": "Your account has been deleted",
"title": "Delete account",
"sessionTooOld": "For security, sign out and sign back in before deleting your account."
},
"emailHint": "Вы входите с этим адресом."
},
"notificationsPage": {
"pageTitle": "Уведомления",
"title": "Уведомления",
"subtitle": "О чём Kaneo вам сообщает и куда.",
"statusConnected": "Подключено",
"statusPaused": "Приостановлено",
"emailTitle": "Электронная почта",
"accountEmailNoAddress": "Адрес электронной почты недоступен",
"saveChanges": "Сохранить изменения",
"disconnect": "Отключить",
"ntfyTitle": "ntfy",
"ntfyDescription": "Публикуйте в тему ntfy на телефоне или компьютере.",
"serverUrl": "URL сервера",
"topic": "Тема",
"token": "Токен",
"ntfyServerPlaceholder": "https://ntfy.example.com",
"ntfyTopicPlaceholder": "team-alerts",
"ntfyTokenPlaceholder": "Только если он нужен серверу",
"ntfyTokenHintConfigured": "Токен уже настроен ({{masked}}). Введите новый токен для замены.",
"ntfyTokenHintOptional": "Укажите его, если ваш сервер ntfy требует аутентификации.",
"connectNtfy": "Подключить ntfy",
"gotifyTitle": "Gotify",
"gotifyDescription": "Отправляйте уведомления на свой сервер Gotify.",
"gotifyTokenLabel": "Токен приложения",
"gotifyServerPlaceholder": "https://gotify.example.com",
"gotifyTokenPlaceholder": "Токен приложения Gotify",
"gotifyTokenHintConfigured": "Токен приложения уже настроен ({{masked}}). Введите новый токен для замены.",
"gotifyTokenHintRequired": "Обязательно. Используйте токен приложения с вашего сервера Gotify.",
"connectGotify": "Подключить Gotify",
"webhookTitle": "Пользовательский вебхук",
"webhookDescription": "Отправляйте каждое уведомление на свой эндпоинт в формате JSON.",
"endpointUrl": "URL эндпоинта",
"signingSecret": "Секрет подписи",
"webhookUrlPlaceholder": "https://example.com/webhooks/kaneo",
"webhookSecretPlaceholder": "Необязательный общий секрет",
"webhookSecretHintConfigured": "Секрет подписи уже настроен ({{masked}}). Введите новый для замены.",
"webhookSecretHintOptional": "Kaneo подписывает тело запроса, если задан секрет.",
"connectWebhook": "Подключить вебхук",
"allProjects": "Все проекты",
"noProjectsInWorkspace": "В этой рабочей области пока нет проектов.",
"toastEmailSaved": "Настройки email-уведомлений сохранены",
"toastEmailSaveFailed": "Не удалось сохранить настройки email",
"toastNtfySaved": "Настройки ntfy сохранены",
"toastNtfySaveFailed": "Не удалось сохранить настройки ntfy",
"toastNtfyDisconnected": "ntfy отключён",
"toastNtfyDisconnectFailed": "Не удалось отключить ntfy",
"toastGotifySaved": "Настройки Gotify сохранены",
"toastGotifySaveFailed": "Не удалось сохранить настройки Gotify",
"toastGotifyDisconnected": "Gotify отключён",
"toastGotifyDisconnectFailed": "Не удалось отключить Gotify",
"toastWebhookSaved": "Настройки вебхука сохранены",
"toastWebhookSaveFailed": "Не удалось сохранить настройки вебхука",
"toastWebhookDisconnected": "Вебхук отключён",
"toastWebhookDisconnectFailed": "Не удалось отключить вебхук",
"toastRuleSaved": "Правило уведомлений для {{workspaceName}} сохранено",
"toastRuleSaveFailed": "Не удалось сохранить правило уведомлений для рабочей области",
"toastRuleRemoved": "Правило уведомлений для {{workspaceName}} удалено",
"toastRuleRemoveFailed": "Не удалось удалить правило уведомлений для рабочей области",
"toastPreferencesSaved": "Настройки уведомлений сохранены",
"toastPreferencesSaveFailed": "Не удалось сохранить настройки уведомлений",
"toastRuleSavedGeneric": "Правило уведомлений для рабочей области сохранено",
"toastRuleRemovedGeneric": "Правило уведомлений для рабочей области удалено",
"eventPreferencesTitle": "Уведомлять меня о",
"eventPreferencesDescription": "Ваши собственные комментарии, упоминания и изменения статуса никогда не создают для вас уведомлений.",
"eventTaskAssignments": "Назначения",
"eventComments": "Комментарии и упоминания",
"eventCommentsHint": "Новые комментарии к вашим задачам и все, кто @упоминает вас.",
"eventStatusChanges": "Изменения статуса",
"eventDueDateReminders": "Напоминания о сроках",
"reminderLeadTimeLabel": "Напоминать до наступления срока",
"reminderLeadTimeInvalid": "Введите целое число от 1 до {{max}}.",
"saveEventPreferences": "Сохранить типы уведомлений",
"channelNotConnected": "Не подключён",
"channelOff": "Выкл.",
"channelsDescription": "Уведомления всегда отображаются в Kaneo. Подключите канал, чтобы получать их и в другом месте.",
"channelsTitle": "Каналы",
"configure": "Настроить",
"configureChannel": "Настроить {{channel}}",
"configureWorkspace": "Изменить уведомления для {{workspaceName}}",
"connect": "Подключить",
"connectChannel": "Подключить {{channel}}",
"disconnectDescription": "Уведомления перестанут приходить в {{channel}}, а сохранённые настройки будут удалены.",
"disconnecting": "Отключение...",
"disconnectTitle": "Отключить {{channel}}?",
"done": "Готово",
"emailToggleLabel": "Отправлять уведомления по электронной почте",
"eventDueDateRemindersHint": "Перед сроком одной из ваших задач. О просроченных задачах вы получите отдельное уведомление.",
"eventStatusChangesHint": "Когда одна из ваших задач перемещается в другую колонку.",
"eventTaskAssignmentsHint": "Когда кто-то назначает вам задачу.",
"loadFailed": "Не удалось загрузить настройки уведомлений.",
"onlyInKaneo": "Только в Kaneo",
"optional": "Необязательно",
"projectCount_few": "{{count}} проекта",
"projectCount_many": "{{count}} проектов",
"projectCount_one": "{{count}} проект",
"projectCount_other": "{{count}} проекта",
"reminderLeadTimeUnitDaysBefore_few": "дня до срока",
"reminderLeadTimeUnitDaysBefore_many": "дней до срока",
"reminderLeadTimeUnitDaysBefore_one": "день до срока",
"reminderLeadTimeUnitDaysBefore_other": "дня до срока",
"reminderLeadTimeUnitHoursBefore_few": "часа до срока",
"reminderLeadTimeUnitHoursBefore_many": "часов до срока",
"reminderLeadTimeUnitHoursBefore_one": "час до срока",
"reminderLeadTimeUnitHoursBefore_other": "часа до срока",
"reminderLeadTimeUnitLabel": "Единица напоминания",
"ruleActiveDescription": "Выключите, чтобы приостановить эту рабочую область с сохранением настроек.",
"ruleActiveLabel": "Отправка",
"ruleChannels": "Каналы",
"ruleDialogDescription": "Куда могут приходить уведомления из этой рабочей области.",
"ruleDialogTitle": "Уведомления: {{workspaceName}}",
"ruleProjects": "Проекты",
"ruleSummary": "{{channels}} · {{projects}}",
"save": "Сохранить",
"sendingDescription": "Выключите, чтобы приостановить этот канал с сохранением настроек.",
"sendingLabel": "Отправка",
"setUp": "Настроить",
"setUpWorkspace": "Настроить уведомления для {{workspaceName}}",
"someProjects": "Только некоторые",
"statusOn": "Вкл.",
"statusSending": "Отправка",
"stopping": "Остановка...",
"stopSending": "Остановить отправку",
"stopSendingDescription": "Уведомления из этой рабочей области будут отображаться только в Kaneo.",
"stopSendingTitle": "Остановить отправку из {{workspaceName}}?",
"workspacesDescription": "Выберите, какие рабочие области и проекты могут использовать ваши каналы.",
"workspacesTitle": "Рабочие области"
},
"preferencesPage": {
"title": "Настройки",
"subtitle": "Как Kaneo выглядит и работает для вас.",
"appearanceTitle": "Основные",
"theme": "Тема",
"selectTheme": "Выберите тему",
"themeLight": "Светлая",
"themeDark": "Тёмная",
"themeSystem": "Как в системе",
"language": "Язык",
"selectLanguage": "Выберите язык",
"firstDayOfWeek": "Первый день недели",
"firstDayOfWeekDescription": "Используется в календарях и при выборе дат.",
"selectFirstDayOfWeek": "Выберите первый день",
"weekStartsOnSunday": "Воскресенье",
"weekStartsOnMonday": "Понедельник",
"weekStartsOnSaturday": "Суббота",
"defaultView": "Вид по умолчанию",
"defaultViewDescription": "Вид, в котором открываются проекты.",
"selectViewMode": "Выберите режим просмотра",
"board": "Доска",
"list": "Список",
"gantt": "Гант",
"priorityIcons": "Значки приоритета",
"priorityIconsDescription": "Как приоритет задачи выглядит на карточках, в строках и меню.",
"priorityIconsMarks": "Метки",
"priorityIconsClassic": "Классика",
"sidebarDefault": "Держать боковую панель открытой",
"sidebarDefaultDescription": "Начинать с развёрнутой боковой панелью.",
"displayOptions": "Детали задач",
"displayOptionsDescription": "Что отображается на карточках и в строках ваших досок и списков.",
"taskNumbers": "Номера задач",
"assignees": "Исполнители",
"dueDates": "Сроки выполнения",
"labels": "Метки",
"priority": "Приоритет",
"projectBackgrounds": "Project backgrounds",
"projectBackgroundsDescription": "Показывать изображение, которое проект задаёт за своей доской.",
"advancedTitle": "Дополнительно"
},
"managedProfile": {
"note": "Управляется вашей организацией.",
"edit": "Изменить в {{provider}}"
},
"developerPage": {
"pageTitle": "API-ключи",
"title": "API-ключи",
"subtitle": "Позвольте скриптам, CLI и MCP-клиентам работать с Kaneo от вашего имени.",
"unnamedKey": "Без названия",
"emptyDescription": "Создайте ключ, чтобы использовать CLI, MCP-клиент или собственные скрипты.",
"emptyTitle": "API-ключей пока нет",
"keysNote": "Ключ может всё, что можете вы. Удаляйте ключи, которыми больше не пользуетесь.",
"keysTitle": "Ключи",
"loadError": "Не удалось загрузить API-ключи. Попробуйте ещё раз.",
"newKey": "Новый ключ"
},
"apiKey": {
"createdModal": {
"title": "Скопируйте ключ",
"description": "После закрытия этого окна вы его больше не увидите.",
"copy": "Копировать",
"copied": "Скопировано",
"done": "Готово",
"copyError": "Не удалось скопировать ключ. Выделите его и скопируйте вручную."
},
"table": {
"deleteConfirmTitle": "Удалить «{{name}}»?",
"deleteConfirmDescription": "Всё, что использует этот ключ, перестанет работать. Это действие нельзя отменить.",
"delete": "Удалить ключ",
"deleting": "Удаление…",
"toastDeleted": "API-ключ удалён",
"toastDeleteError": "Не удалось удалить API-ключ"
},
"createDialog": {
"title": "Новый API-ключ",
"description": "Ключ может всё, что можете вы.",
"nameLabel": "Название",
"namePlaceholder": "Мой API-ключ",
"nameDescription": "Чтобы помнить, где он используется.",
"expirationLabel": "Срок действия",
"expiration1d": "1 день",
"expiration7d": "7 дней",
"expiration30d": "30 дней",
"expiration90d": "90 дней",
"expirationNever": "Бессрочно",
"create": "Создать ключ",
"creating": "Создание…",
"failedCreate": "Не удалось создать API-ключ",
"validation": {
"nameRequired": "Введите название",
"nameShort": "Используйте не менее 3 символов"
}
},
"row": {
"actions": "Действия для {{name}}",
"created": "Создан {{date}}",
"expired": "Истёк {{date}}",
"expiredBadge": "Истёк",
"expires": "Истекает {{date}}",
"neverExpires": "Бессрочный"
}
},
"workspaceGeneral": {
"pageTitle": "Основные настройки",
"title": "Основные",
"subtitle": "Название рабочей области {{name}} и её владелец.",
"workspaceInfoTitle": "Рабочая область",
"nameLabel": "Название",
"namePlaceholder": "Введите название рабочей области",
"descriptionLabel": "Описание",
"descriptionPlaceholder": "Над чем работает ваша команда?",
"dangerZone": "Опасная зона",
"deleteWorkspace": "Удалить рабочую область",
"deleteWorkspaceDescription": "Безвозвратно удаляет рабочую область {{name}}, её проекты и задачи.",
"deleteModalTitle": "Удалить рабочую область?",
"deleteModalDescription": "Рабочая область {{name}} и все её проекты и задачи будут удалены безвозвратно. Это действие нельзя отменить.",
"deleteModalConfirm": "Удалить рабочую область",
"toastUpdateError": "Не удалось обновить рабочую область",
"toastDeleted": "Рабочая область успешно удалена",
"toastDeleteError": "Не удалось удалить рабочую область",
"validation": {
"nameRequired": "Название рабочей области обязательно",
"nameShort": "Название рабочей области должно содержать не менее 2 символов"
},
"transferOwnership": {
"toastSuccess": "Права владельца переданы",
"toastError": "Не удалось передать права владельца",
"title": "Передача прав владельца",
"pickerLabel": "Новый владелец",
"noEligibleMembers": "Пригласите хотя бы одного участника, прежде чем передавать права владельца.",
"pickerHint": "Новый владелец получит полный контроль. Вы останетесь администратором.",
"pickerPlaceholder": "Выберите участника",
"button": "Передать",
"dialogTitle": "Передать права владельца?",
"dialogDescription": "{{name}} станет единственным владельцем рабочей области {{workspace}}. Вы сохраните права администратора, но потеряете возможности владельца, такие как удаление рабочей области или её повторная передача.",
"transferring": "Передача…",
"confirm": "Передать права владельца"
},
"ownershipSubtitle": "Это видит только владелец.",
"ownershipTitle": "Владение"
},
"projectGeneral": {
"pageTitle": "Настройки проекта",
"title": "Основные",
"subtitle": "Название, ключ и оформление проекта {{name}}.",
"projectInfoTitle": "Проект",
"iconLabel": "Иконка",
"iconHint": "Отображается в боковой панели и списках проектов.",
"pickIconTitle": "Выбрать иконку",
"searchIconsPlaceholder": "Поиск иконок...",
"projectNameLabel": "Название",
"projectNamePlaceholder": "Название проекта",
"keyLabel": "Ключ",
"keyHint": "С него начинается каждый ID задачи, например {{slug}}-123.",
"keyPlaceholder": "PRO",
"descriptionLabel": "Описание",
"descriptionPlaceholder": "Для чего этот проект?",
"dangerZone": "Опасная зона",
"deleteProject": "Удалить проект",
"deleteProjectDescription": "Безвозвратно удаляет проект {{name}} и все его задачи.",
"deleteModalTitle": "Удалить проект?",
"deleteModalDescription": "Проект {{name}} и все его задачи будут удалены безвозвратно. Это действие нельзя отменить.",
"deleteModalConfirm": "Удалить проект",
"toastUpdateError": "Не удалось обновить проект",
"toastDeleted": "Проект успешно удалён",
"toastDeleteError": "Не удалось удалить проект",
"validation": {
"nameRequired": "Название проекта обязательно",
"keyRequired": "Ключ обязателен",
"keyMax": "Ключ должен содержать не более 8 символов",
"iconRequired": "Иконка обязательна"
},
"backgroundHint": "Изображение за доской. Каждый может отключить фоны у себя.",
"backgroundUnavailable": "Загрузка изображений не настроена на этом экземпляре.",
"backgroundLabel": "Board background",
"backgroundRemove": "Remove image",
"backgroundRemoveError": "Failed to remove project background",
"backgroundRemoveSuccess": "Project background removed",
"backgroundReplace": "Заменить",
"backgroundUpload": "Загрузить",
"backgroundUploadError": "Failed to update project background",
"backgroundUploadSuccess": "Project background updated",
"moveModalConfirm": "Переместить проект",
"moveProject": "Переместить в другую рабочую область",
"moveProjectAction": "Переместить",
"moveProjectDescription": "Задачи, колонки и метки переместятся вместе с ним.",
"moveProjectPlaceholder": "Выберите рабочую область",
"toastMoved": "Проект успешно перемещён",
"toastMovedWithUnassigned": "Проект успешно перемещён. С {{taskCount}} задач(и) снято назначение.",
"toastMoveError": "Не удалось переместить проект",
"moveTargetsError": "Не удалось проверить, в какие рабочие пространства можно переместить этот проект. Обновите страницу, чтобы повторить попытку.",
"moveDialogDescription": "Задачи, назначенные людям вне новой рабочей области, останутся без исполнителя, а подписки на уведомления этого проекта будут сброшены.",
"moveDialogTitle": "Переместить в другую рабочую область?",
"moveTargetLabel": "Рабочая область",
"moving": "Перемещение...",
"tasksTitle": "Задачи"
},
"projectIntegrations": {
"pageTitle": "Интеграции",
"title": "Интеграции",
"subtitle": "Подключите этот проект к хостингу кода и чату вашей команды.",
"githubSectionTitle": "Интеграция с GitHub",
"githubSectionSubtitle": "Синхронизация задач с GitHub Issues и двусторонняя синхронизация.",
"giteaSectionTitle": "Интеграция с Gitea",
"giteaSectionSubtitle": "Синхронизация задач с вашим экземпляром Gitea (задачи, PR, вебхуки).",
"discordSectionTitle": "Интеграция с Discord",
"discordSectionSubtitle": "Отправка обновлений по задачам проекта в канал Discord через вебхук.",
"genericWebhookSectionTitle": "Вебхуки",
"genericWebhookSectionSubtitle": "Отправка событий по задачам проекта на любой HTTP-эндпоинт в формате JSON.",
"slackSectionTitle": "Интеграция со Slack",
"slackSectionSubtitle": "Отправка обновлений по задачам проекта в канал Slack через входящий вебхук.",
"telegramSectionTitle": "Интеграция с Telegram",
"telegramSectionSubtitle": "Отправка обновлений по задачам проекта в чат или тему Telegram через бота.",
"mattermostSectionSubtitle": "Send project task updates into a Mattermost channel with an incoming webhook.",
"mattermostSectionTitle": "Mattermost Integration",
"gitlabSectionSubtitle": "Синхронизация задач с GitLab.com или собственным экземпляром.",
"gitlabSectionTitle": "Интеграция с GitLab",
"codeHostingTitle": "Хостинг кода",
"chatTitle": "Чаты и вебхуки",
"statusConnected": "Подключено",
"statusPaused": "Приостановлено",
"connect": "Подключить",
"configure": "Настроить",
"done": "Готово",
"turnedOffByAdmin": "Turned off by an administrator"
},
"projectVisibility": {
"pageTitle": "Видимость проекта",
"title": "Видимость",
"subtitle": "Выберите, кто может видеть {{project}} за пределами {{workspace}}.",
"sectionTitle": "Доступ",
"publicAccess": "Публичная ссылка",
"publicAccessHint": "Любой, у кого есть ссылка, может просматривать доску и её задачи, но ничего не может изменить.",
"publicUrl": "Публичная ссылка",
"copy": "Копировать ссылку",
"toastUpdated": "Видимость обновлена",
"toastUpdateError": "Не удалось обновить видимость",
"always": "Всегда",
"copied": "Скопировано",
"copyError": "Не удалось скопировать ссылку",
"membersDescription": "Все в рабочей области, в рамках прав своей роли.",
"membersTitle": "Участники {{workspace}}",
"offNote": "После отключения публичная ссылка сразу перестаёт работать.",
"on": "Вкл.",
"openPublicPage": "Открыть публичную страницу",
"thisWorkspace": "этой рабочей области"
},
"projectWorkflow": {
"pageTitle": "Настройки рабочего процесса",
"title": "Рабочий процесс",
"subtitle": "Колонки вашей доски и то, что перемещает задачи между ними.",
"columnsTitle": "Колонки",
"columnsDescription": "Перетаскивайте, чтобы изменить порядок. Задачи в колонке завершения считаются выполненными.",
"automationTitle": "Автоматизации",
"automationDescription": "Перемещайте связанную задачу, когда что-то происходит в подключённом репозитории."
},
"projectSwitcher": {
"selectProject": "Выберите проект",
"noProjects": "Нет проектов"
},
"columnEditor": {
"toastCreateError": "Не удалось создать колонку",
"toastRenameError": "Не удалось обновить колонку",
"toastUpdateError": "Не удалось обновить колонку",
"toastDeleteError": "Не удалось удалить колонку",
"pickIconTitle": "Выберите иконку колонки",
"searchIconsPlaceholder": "Поиск иконок...",
"markDoneAria": "Отметить {{name}} как колонку завершения",
"newColumnPlaceholder": "Название колонки",
"deleteAria": "Удалить столбец {{name}}",
"renameAria": "Переименовать столбец {{name}}",
"addColumn": "Добавить колонку",
"columnHeader": "Колонка",
"deleteConfirm": "Удалить колонку",
"deleteDescription": "Колонки, в которых ещё есть задачи, удалить нельзя. Сначала переместите эти задачи.",
"deleteTitle": "Удалить «{{name}}»?",
"doneHeader": "Готово",
"dragAria": "Изменить порядок: {{name}}",
"reorderError": "Не удалось изменить порядок колонок"
},
"githubIntegration": {
"toast": {
"verifyError": "Не удалось проверить установку GitHub",
"installAppFirst": "Сначала установите GitHub App на этот репозиторий",
"missingPermsDetail": "GitHub App не хватает прав: {{list}}. Пожалуйста, обновите права приложения.",
"updated": "Интеграция с GitHub успешно обновлена",
"updateError": "Не удалось обновить интеграцию с GitHub",
"removed": "Интеграция с GitHub успешно удалена",
"removeError": "Не удалось удалить интеграцию с GitHub",
"issuesImported": "Issues успешно импортированы",
"importError": "Не удалось импортировать issues",
"commentOnEnabled": "Kaneo будет комментировать новые issues ссылкой на задачу",
"commentOnDisabled": "Комментарии со ссылками на задачи в новых issues отключены",
"settingsUpdateError": "Не удалось обновить интеграцию с GitHub"
},
"commentTaskLinkTitle": "Оставлять ссылку Kaneo в комментарии к новым issues",
"commentTaskLinkHint": "Чтобы на GitHub можно было сразу перейти к задаче.",
"updatePermissions": "Обновить права",
"installGithubApp": "Установить GitHub App",
"importSectionHint": "Импортируйте открытые issues репозитория как задачи.",
"importDisabledHint": "Переподключите репозиторий, чтобы включить импорт.",
"accountVerificationHint": "Подключите аккаунт GitHub, чтобы подтвердить права администратора этого репозитория.",
"enableGithubSignInHint": "Попросите администратора вашего сервера включить вход через GitHub.",
"reverifyHint": "Подключите репозиторий повторно, чтобы подтвердить доступ и возобновить синхронизацию.",
"resumeImport": "Resume import",
"importPaused": "This import has saved progress. You can resume it.",
"importSummary": "Created: {{imported}} · Updated: {{updated}} · Skipped: {{skipped}}",
"chooseRepositoryDescription": "Его issues и pull requests будут связаны с задачами здесь.",
"linkAccountDescription": "Подтверждает, что вы можете администрировать репозиторий.",
"linkAccountTitle": "Привяжите аккаунт GitHub",
"linked": "Привязан",
"linkGithub": "Привязать GitHub",
"verifyMissingPermissions": "У GitHub App Kaneo не хватает прав: {{list}}.",
"verifyNotInstalled": "GitHub App Kaneo не установлен в этом репозитории.",
"verifyReady": "GitHub App Kaneo установлен со всеми нужными правами.",
"workflowHint": "Перемещение задач при открытии или слиянии pull requests настраивается в разделе",
"workflowLink": "Рабочий процесс"
},
"giteaIntegration": {
"validation": {
"baseUrlRequired": "URL Gitea обязателен",
"baseUrlInvalid": "Введите корректный URL (например, https://gitea.example.com)"
},
"toast": {
"verifyError": "Не удалось проверить доступ к Gitea",
"verifyFirst": "Проверка доступа не удалась. Проверьте URL, токен и репозиторий",
"updated": "Интеграция с Gitea сохранена",
"updateError": "Не удалось сохранить интеграцию с Gitea",
"removed": "Интеграция с Gitea удалена",
"removeError": "Не удалось удалить интеграцию с Gitea",
"issuesImported": "Issues успешно импортированы",
"importError": "Не удалось импортировать issues",
"commentOnEnabled": "Kaneo будет комментировать новые issues ссылкой на задачу",
"commentOnDisabled": "Комментарии со ссылками на задачи в новых issues отключены",
"settingsUpdateError": "Не удалось обновить интеграцию с Gitea"
},
"commentTaskLinkTitle": "Оставлять ссылку Kaneo в комментарии к новым issues",
"commentTaskLinkHint": "Чтобы в Gitea можно было сразу перейти к задаче.",
"webhookHint": "Добавьте этот вебхук в настройках репозитория, чтобы изменения возвращались в Kaneo.",
"baseUrlLabel": "URL Gitea",
"tokenLabel": "Персональный токен доступа",
"tokenPlaceholder": "Вставьте токен",
"tokenPlaceholderUpdate": "Вставьте новый токен для замены",
"importSectionHint": "Импортируйте открытые issues и pull requests как задачи.",
"importDisabledHint": "Для импорта нужен проверенный доступ. Проверьте статус токена выше.",
"browseModalHint": "Репозитории, к которым у вашего токена есть доступ.",
"browseNeedsCredentials": "Введите URL Gitea и токен, чтобы просмотреть список.",
"browseEmpty": "Этот токен не видит ни одного репозитория.",
"chooseRepositoryDescription": "Введите owner/name или выберите из списка.",
"webhookEvents": "Включите события push, pull request, issue, issue comment и create."
},
"slackIntegration": {
"validation": {
"webhookInvalid": "Введите корректный URL вебхука Slack"
},
"toast": {
"saved": "Интеграция со Slack успешно сохранена",
"saveError": "Не удалось сохранить интеграцию со Slack",
"enabled": "Уведомления Slack включены",
"disabled": "Уведомления Slack приостановлены",
"updateError": "Не удалось обновить интеграцию со Slack",
"removed": "Интеграция со Slack успешно удалена",
"removeError": "Не удалось удалить интеграцию со Slack"
},
"webhookPlaceholder": "https://hooks.slack.com/services/...",
"webhookHint": "Создайте входящий вебхук в Slack и вставьте его сюда.",
"connect": "Подключить Slack",
"update": "Обновить Slack"
},
"discordIntegration": {
"validation": {
"webhookInvalid": "Введите корректный URL вебхука Discord"
},
"toast": {
"saved": "Интеграция с Discord успешно сохранена",
"saveError": "Не удалось сохранить интеграцию с Discord",
"enabled": "Уведомления Discord включены",
"disabled": "Уведомления Discord приостановлены",
"updateError": "Не удалось обновить интеграцию с Discord",
"removed": "Интеграция с Discord успешно удалена",
"removeError": "Не удалось удалить интеграцию с Discord"
},
"webhookPlaceholder": "https://discord.com/api/webhooks/...",
"webhookHint": "Создайте вебхук канала в Discord и вставьте его сюда.",
"connect": "Подключить Discord",
"update": "Обновить Discord"
},
"genericWebhookIntegration": {
"validation": {
"webhookInvalid": "Введите корректный URL вебхука",
"leadTimeRange": "Выберите время от 5 минут до 720 часов."
},
"toast": {
"saved": "Пользовательский вебхук успешно сохранён",
"saveError": "Не удалось сохранить пользовательский вебхук",
"enabled": "Уведомления пользовательского вебхука включены",
"disabled": "Уведомления пользовательского вебхука приостановлены",
"updateError": "Не удалось обновить пользовательский вебхук",
"removed": "Пользовательский вебхук успешно удалён",
"removeError": "Не удалось удалить пользовательский вебхук"
},
"webhookLabel": "URL эндпоинта",
"webhookPlaceholder": "https://example.com/webhooks/kaneo",
"webhookHint": "Kaneo отправляет POST-запросы с JSON-данными для каждого включённого события.",
"secretLabel": "Секрет подписи",
"secretPlaceholder": "Общий секрет",
"secretHint": "Kaneo подписывает им каждый запрос и отправляет дайджест в заголовке X-Kaneo-Signature.",
"secretHintConfigured": "Текущий секрет: {{secret}}. Вставьте новый, чтобы заменить его.",
"eventsTitle": "Когда отправлять",
"events": {
"taskCreated": "Задача создана",
"taskStatusChanged": "Статус изменён",
"taskPriorityChanged": "Приоритет изменён",
"taskTitleChanged": "Название изменено",
"taskDescriptionChanged": "Описание изменено",
"taskCommentCreated": "Новый комментарий",
"taskDeleted": "Задача удалена",
"taskMoved": "Задача перемещена",
"taskDueDateChanged": "Изменен срок выполнения",
"taskAssigneeChanged": "Изменен исполнитель",
"taskUnassigned": "Назначение снято",
"dueDateReminder": "Напоминание о сроке"
},
"connect": "Подключить вебхук",
"reminderLeadTimeLabel": "Количество часов до срока задачи",
"activeTitle": "Отправка событий",
"disconnectDescription": "Kaneo перестанет отправлять события и удалит сохранённые эндпоинт и секрет.",
"disconnectTitle": "Отключить вебхук?",
"reminderLeadTimeAfter": "ч до срока задачи",
"reminderLeadTimeBefore": "Отправлять напоминания за"
},
"telegramIntegration": {
"validation": {
"botTokenInvalid": "Введите корректный токен Telegram-бота",
"chatIdRequired": "ID чата обязателен",
"threadIdInvalid": "Введите корректный ID темы"
},
"toast": {
"saved": "Интеграция с Telegram успешно сохранена",
"saveError": "Не удалось сохранить интеграцию с Telegram",
"enabled": "Уведомления Telegram включены",
"disabled": "Уведомления Telegram приостановлены",
"updateError": "Не удалось обновить интеграцию с Telegram",
"removed": "Интеграция с Telegram успешно удалена",
"removeError": "Не удалось удалить интеграцию с Telegram"
},
"botTokenLabel": "Токен бота",
"botTokenPlaceholder": "123456789:AAExampleBotToken",
"botTokenHint": "Создайте бота через BotFather и вставьте его токен сюда.",
"botTokenHintConfigured": "Текущий токен: {{token}}",
"chatIdLabel": "ID чата",
"chatIdPlaceholder": "-1001234567890 или @team_updates",
"threadIdLabel": "ID темы",
"threadIdPlaceholder": "Для тем форума",
"chatLabelLabel": "Название чата",
"chatLabelPlaceholder": "Обновления разработки",
"connect": "Подключить Telegram",
"botTokenSavedPlaceholder": "Сохранено. Вставьте новый токен, чтобы заменить его.",
"loadError": "Не удалось загрузить настройки Telegram."
},
"repositoryBrowser": {
"title": "Выберите репозиторий",
"description": "Репозитории, которые видит GitHub App Kaneo.",
"searchPlaceholder": "Поиск репозиториев",
"loadError": "Не удалось загрузить репозитории.",
"tryAgain": "Повторить",
"emptyTitle": "Репозиториев пока нет",
"emptyHint": "Установите GitHub App на ваши репозитории, чтобы они появились здесь.",
"installGithubApp": "Установить GitHub App",
"noSearchMatchTitle": "Подходящих репозиториев нет",
"noSearchMatchHint": "Попробуйте другое название или очистите поиск.",
"emptyPageHint": "На этой странице ничего нет. Загрузите ещё, чтобы продолжить поиск.",
"loadMore": "Загрузить ещё",
"manageAccess": "Управлять доступом приложения",
"missingOne": "Нет нужного?",
"searching": "Поиск…",
"updated": "Обновлён {{time}}",
"useRepository": "Использовать репозиторий"
},
"tasksImportExport": {
"exportTasks": "Экспорт задач",
"importTasks": "Импорт задач",
"dialogTitle": "Импорт задач",
"dialogDescription": "Загрузите JSON-файл с задачами для импорта в этот проект.",
"expectedFormat": "Ожидаемый формат:",
"dropHint": "Перетащите JSON-файл сюда",
"selectFile": "Выбрать файл",
"exporting": "Экспорт задач...",
"exportSuccess": "Задачи успешно экспортированы",
"exportError": "Не удалось экспортировать задачи",
"importing": "Импорт задач...",
"importSuccess_one": "Успешно импортирована {{count}} задача",
"importSuccess_few": "Успешно импортировано {{count}} задачи",
"importSuccess_many": "Успешно импортировано {{count}} задач",
"importSuccess_other": "Успешно импортировано {{count}} задач",
"importPartialError_one": "Не удалось импортировать {{count}} задачу",
"importPartialError_few": "Не удалось импортировать {{count}} задачи",
"importPartialError_many": "Не удалось импортировать {{count}} задач",
"importPartialError_other": "Не удалось импортировать {{count}} задач",
"importError": "Не удалось импортировать задачи",
"invalidFormat": "Некорректный формат файла импорта",
"noFileDropped": "Файл не был перетащен",
"notJsonFile": "Пожалуйста, загрузите JSON-файл",
"importSuccess": "Успешно импортировано {{count}} задач",
"importPartialError": "Не удалось импортировать {{count}} задач",
"export": "Экспорт",
"exportDescription": "Скачайте все задачи этого проекта в виде файла.",
"import": "Импорт",
"importDescription": "Добавьте задачи из ранее экспортированного файла."
},
"workflowEditor": {
"toastError": "Не удалось обновить правило",
"events": {
"branch_push": "Push в ветку",
"pr_opened": "Pull request открыт",
"pr_merged": "Pull request слит",
"issue_opened": "Issue открыт",
"issue_closed": "Issue закрыт"
},
"connectMore": "Подключите {{providers}} в разделе <link>Интеграции</link>, чтобы автоматизировать и их.",
"dontMove": "Не перемещать",
"emptyDescription": "Для автоматизаций нужен подключённый репозиторий GitHub, Gitea или GitLab.",
"emptyTitle": "Нет подключённых репозиториев",
"openIntegrations": "Открыть интеграции"
},
"externalLinks": {
"resources": "Ресурсы",
"issue": "Issue",
"branch": "Ветка",
"merged": "Влит",
"draft": "Черновик",
"open": "Открыт",
"adding": "Adding...",
"addResource": "Add resource",
"cancel": "Cancel",
"empty": "No resources linked to this task.",
"titleOptional": "Title (optional)",
"url": "URL",
"remove": "Remove {{title}}",
"removeError": "Failed to remove the resource link."
},
"workspaceRoles": {
"pageTitle": "Роли",
"title": "Роли",
"subtitle": "Определите, какие действия участники могут выполнять в {{workspaceName}}.",
"thisWorkspace": "этой рабочей области",
"noAccess": "Для управления ролями рабочей области нужны права администратора или владельца.",
"sectionTitle": "Роли рабочей области",
"sectionSubtitle": "Отредактируйте роли по умолчанию или добавьте собственную. Назначенные участникам роли сохраняются при изменениях.",
"newRole": "Новая роль",
"loading": "Загрузка…",
"loadError": "Не удалось загрузить роли.",
"emptyTitle": "Ролей пока нет",
"emptyDescription": "Роли по умолчанию появятся здесь, когда они будут созданы для этой рабочей области.",
"defaultBadge": "По умолчанию",
"permissionCount_one": "{{count}} право",
"permissionCount_few": "{{count}} права",
"permissionCount_many": "{{count}} прав",
"permissionCount_other": "{{count}} прав",
"nameLabel": "Название",
"nameHint": "Строчными буквами. Нельзя изменить позже.",
"namePlaceholder": "например, reviewer",
"discard": "Отменить",
"createRole": "Создать роль",
"deleteRole": "Удалить роль",
"defaultRoleHelp": "Роль по умолчанию: название зарезервировано, и строку нельзя удалить.",
"unsavedChanges": "Есть несохранённые изменения",
"allChangesSaved": "Все изменения сохранены",
"saveChanges": "Сохранить изменения",
"defaultRoleDescriptions": {
"viewer": "Может просматривать задачи и оставлять комментарии.",
"member": "Может создавать задачи и проекты и управлять ими.",
"admin": "Имеет полный доступ к рабочей области."
},
"resources": {
"project": "Проекты",
"task": "Задачи",
"label": "Метки",
"workspace": "Рабочая область",
"organization": "Workspace administration",
"member": "Members",
"invitation": "Invitations",
"team": "Teams",
"ac": "Roles and permissions"
},
"permissions": {
"project": {
"create": {
"label": "Создание",
"description": "Может создавать новые проекты"
},
"read": {
"label": "Просмотр",
"description": "Может просматривать проекты"
},
"update": {
"label": "Изменение",
"description": "Может изменять настройки проекта"
},
"delete": {
"label": "Удаление",
"description": "Может удалять проекты"
},
"share": {
"label": "Общий доступ",
"description": "Может делиться проектами"
}
},
"task": {
"create": {
"label": "Создание",
"description": "Может создавать задачи"
},
"read": {
"label": "Просмотр",
"description": "Может просматривать задачи"
},
"update": {
"label": "Изменение",
"description": "Может редактировать задачи"
},
"delete": {
"label": "Удаление",
"description": "Может удалять задачи"
},
"assign": {
"label": "Назначение",
"description": "Может назначать задачи участникам"
}
},
"label": {
"create": {
"label": "Создание",
"description": "Может создавать метки"
},
"read": {
"label": "Просмотр",
"description": "Может просматривать метки"
},
"update": {
"label": "Изменение",
"description": "Может редактировать метки"
},
"delete": {
"label": "Удаление",
"description": "Может удалять метки"
}
},
"workspace": {
"read": {
"label": "Просмотр",
"description": "Может просматривать настройки рабочей области"
},
"update": {
"label": "Изменение",
"description": "Может изменять настройки рабочей области"
},
"delete": {
"label": "Удаление",
"description": "Может удалить рабочую область"
},
"manage_settings": {
"label": "Управление настройками",
"description": "Может управлять настройками рабочей области"
}
},
"organization": {
"update": {
"label": "Edit workspace administration",
"description": "Change workspace settings through the account service."
},
"delete": {
"label": "Delete workspace",
"description": "Permanently delete the workspace through the account service."
}
},
"member": {
"create": {
"label": "Add members",
"description": "Add users to this workspace."
},
"update": {
"label": "Change member roles",
"description": "Change the roles assigned to workspace members."
},
"delete": {
"label": "Remove members",
"description": "Remove users from this workspace."
}
},
"invitation": {
"create": {
"label": "Invite members",
"description": "Send workspace invitations."
},
"cancel": {
"label": "Cancel invitations",
"description": "Revoke pending workspace invitations."
}
},
"team": {
"create": {
"label": "Create teams",
"description": "Create teams in this workspace."
},
"update": {
"label": "Edit teams",
"description": "Change teams and team membership."
},
"delete": {
"label": "Delete teams",
"description": "Delete teams in this workspace."
}
},
"ac": {
"create": {
"label": "Create roles",
"description": "Create workspace roles and assign their permissions."
},
"read": {
"label": "View roles",
"description": "Read the workspace roles and their permissions."
},
"update": {
"label": "Change role permissions",
"description": "Change role permissions, including administrative access."
},
"delete": {
"label": "Delete roles",
"description": "Delete custom workspace roles."
}
}
},
"validation": {
"nameRequired": "Название роли обязательно",
"nameExists": "Роль с таким названием уже существует",
"permissionRequired": "Необходимо выбрать хотя бы одно право"
},
"toast": {
"created": "Роль создана",
"createError": "Не удалось создать роль",
"updated": "Роль обновлена",
"updateError": "Не удалось обновить роль",
"deleted": "Роль удалена",
"deleteError": "Не удалось удалить роль"
},
"deleteDialog": {
"title": "Удалить роль",
"description": "Роль «{{role}}» будет безвозвратно удалена. Участники с этой ролью потеряют её права."
}
},
"workspaceLabels": {
"pageTitle": "Метки",
"title": "Метки",
"subtitle": "Метки общие для всех проектов этой рабочей области.",
"createLabel": "Создать метку",
"editLabel": "Изменить метку",
"deleteLabel": "Удалить метку",
"saveLabel": "Сохранить",
"nameLabel": "Название",
"namePlaceholder": "Название метки",
"colorLabel": "Цвет",
"createDescription": "Проекты этой рабочей области смогут добавлять её к своим задачам.",
"editDescription": "Изменения появятся во всех задачах с этой меткой.",
"deleteConfirmTitle": "Удалить «{{name}}»?",
"deleteConfirmDescription": "Метка будет удалена из всех задач, где она используется. Это действие нельзя отменить.",
"createSuccess": "Метка создана",
"updateSuccess": "Метка обновлена",
"deleteSuccess": "Метка удалена",
"createError": "Не удалось создать метку",
"updateError": "Не удалось обновить метку",
"deleteError": "Не удалось удалить метку",
"nameRequired": "Название метки обязательно",
"deletionPending": "Удаление из задач…",
"resumeDeletion": "Resume deletion",
"editNamed": "Изменить {{name}}",
"emptyDescription": "Добавляйте метки, чтобы сортировать и фильтровать задачи во всех проектах.",
"emptyTitle": "Меток пока нет",
"loadError": "Не удалось загрузить метки. Попробуйте ещё раз.",
"newLabel": "Новая метка",
"preview": "В задаче",
"previewPlaceholder": "Метка",
"resume": "Продолжить",
"rowActions": "Действия для {{name}}",
"sectionDescription": "Переименование метки или смена её цвета обновляет все задачи, где она используется.",
"sectionTitle": "Метки рабочей области",
"subtitleWithWorkspace": "Метки общие для всех проектов в {{workspaceName}}."
},
"mattermostIntegration": {
"connect": "Connect Mattermost",
"toast": {
"disabled": "Mattermost notifications paused",
"enabled": "Mattermost notifications enabled",
"removed": "Mattermost integration removed successfully",
"removeError": "Failed to remove Mattermost integration",
"saved": "Mattermost integration saved successfully",
"saveError": "Failed to save Mattermost integration",
"updateError": "Failed to update Mattermost integration"
},
"update": "Update Mattermost",
"validation": {
"webhookInvalid": "Enter a valid Mattermost webhook URL"
},
"webhookHint": "Создайте входящий вебхук в Mattermost и вставьте его сюда.",
"webhookPlaceholder": "https://your-mattermost-server.com/hooks/..."
},
"customFields": {
"createError": "Failed to create custom field.",
"createSuccess": "Custom field created.",
"creating": "Creating...",
"defaultLabel": "Default",
"deleteError": "Failed to delete custom field.",
"deleteSuccess": "Custom field deleted.",
"deleting": "Deleting...",
"namePlaceholder": "Field name",
"required": "Required",
"types": {
"boolean": "Флажок",
"date": "Date",
"dropdown": "Dropdown",
"number": "Number",
"text": "Text",
"multiselect": "Выпадающий список, несколько значений"
},
"clearDefault": "Очистить значение по умолчанию",
"moreOptions": "+{{hiddenCount}} more",
"reorderError": "Failed to reorder fields",
"selectPlaceholder": "Select option(s)",
"actionsAria": "Действия для {{name}}",
"addOption": "Добавить вариант",
"allowSeveral": "Разрешить несколько",
"allowSeveralDescription": "В задаче можно выбрать больше одного варианта.",
"checked": "Отмечено",
"createField": "Создать поле",
"defaultDescription": "Новые задачи начинают с этого значения.",
"deleteConfirm": "Удалить поле",
"deleteDescription": "Поле и его значение будут удалены из всех задач. Это действие нельзя отменить.",
"deleteTitle": "Удалить «{{name}}»?",
"dialogDescription": "Это поле получит каждая задача в {{project}}.",
"dialogDescriptionFallback": "Это поле получит каждая задача в этом проекте.",
"dragAria": "Изменить порядок: {{name}}",
"dragOptionAria": "Изменить порядок: {{option}}",
"edit": "Изменить",
"editTitle": "Изменить поле",
"emptyDescription": "Отслеживайте в каждой задаче такие данные, как размер, клиент или дата запуска.",
"emptyTitle": "Пользовательских полей пока нет",
"issues": {
"defaultRequired": "Обязательным полям нужно значение по умолчанию.",
"moreOptionsRequired": "Добавьте хотя бы два варианта, чтобы разрешить несколько.",
"optionsRequired": "Добавьте хотя бы один вариант."
},
"nameLabel": "Название",
"newTitle": "Новое поле",
"noDefault": "Без значения по умолчанию",
"optionsLabel": "Варианты",
"removeOptionAria": "Удалить {{option}}",
"hideOptionAria": "Скрыть {{option}} из новых выборов",
"showOptionAria": "Снова предлагать {{option}} для новых выборов",
"renameOptionAria": "Переименовать {{option}}",
"requiredDescription": "У каждой задачи всегда есть значение.",
"save": "Сохранить",
"saving": "Сохранение...",
"startsAs": "По умолчанию «{{value}}»",
"startsAt": "По умолчанию {{value}}",
"startsChecked": "По умолчанию отмечено",
"startsOn": "По умолчанию {{date}}",
"startsUnchecked": "По умолчанию не отмечено",
"typeLabel": "Тип",
"typeLocked": "Тип нельзя изменить после создания поля.",
"unchecked": "Не отмечено",
"updateError": "Не удалось сохранить пользовательское поле.",
"updateSuccess": "Пользовательское поле сохранено."
},
"administration": "Administration",
"adminUsers": {
"actions": {
"deactivate": "Деактивировать",
"edit": "Изменить",
"open": "Actions for {{name}}",
"reactivate": "Активировать снова",
"markEmailVerified": "Mark email as verified",
"sendPasswordReset": "Send password reset link",
"sendVerification": "Resend verification email",
"security": "Sessions & API keys"
},
"clearSearch": "Clear search",
"columns": {
"actions": "Actions",
"joined": "Joined",
"role": "Роль",
"status": "Status",
"user": "User",
"lastActive": "Last active"
},
"confirm": {
"deactivate": {
"action": "Deactivate account",
"description": "{{name}} will be signed out and unable to sign in until an administrator reactivates the account.",
"title": "Deactivate this account?"
},
"delete": {
"action": "Delete permanently",
"description": "This permanently deletes {{name}}, their sessions, memberships, and associated data. This cannot be undone.",
"title": "Permanently delete this account?"
},
"reactivate": {
"action": "Reactivate account",
"description": "{{name}} will be able to sign in and access their workspaces again.",
"title": "Reactivate this account?"
},
"working": "Working…",
"markEmailVerified": {
"action": "Mark as verified",
"title": "Mark this email as verified?"
},
"sendPasswordReset": {
"action": "Send link",
"title": "Send a password reset link?"
},
"sendVerification": {
"action": "Send email",
"title": "Resend the verification email?"
}
},
"directoryTitle": "Все пользователи",
"edit": {
"description": "Update this account's identity and instance-wide access.",
"email": "Email address",
"name": "Full name",
"role": "Global role",
"save": "Save changes",
"saving": "Saving…",
"selfRoleHint": "You cannot change your own global role.",
"title": "Edit user"
},
"emptyDescription": "Try another name or email address.",
"emptyTitle": "No users found",
"loadError": "Users could not be loaded.",
"next": "Next",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing users",
"retry": "Retry",
"roles": {
"admin": "Администратор",
"user": "User"
},
"searchCount_few": "{{count}} matching users",
"searchCount_many": "{{count}} matching users",
"searchCount_one": "{{count}} matching user",
"searchCount_other": "{{count}} matching users",
"searchLabel": "Search users",
"searchPlaceholder": "Поиск по имени или электронной почте",
"status": {
"active": "Active",
"deactivated": "Deactivated"
},
"subtitle": "Все, у кого есть аккаунт в этом экземпляре Kaneo.",
"title": "Пользователи",
"toast": {
"actionError": "Failed to update user status",
"deactivated": "User deactivated",
"deleted": "User deleted",
"reactivated": "User reactivated",
"updated": "User updated",
"updateError": "Failed to update user",
"avatarChanged": "Profile picture updated",
"avatarError": "Failed to update the profile picture",
"avatarRemoved": "Profile picture removed",
"createdForSso": "User created for single sign-on.",
"createdLinkFailed": "User created. Password email failed; retry “Send password reset link”.",
"createdLinkSent": "User created. Password link sent to {{email}}.",
"createdNoSmtp": "User created. Set SMTP_HOST to send a password link.",
"createError": "Failed to create user",
"emailError": "The email could not be sent",
"emailVerified": "Email marked as verified",
"passwordResetSent": "Password reset link sent to {{email}}",
"verificationSent": "Verification email sent to {{email}}"
},
"you": "Вы",
"create": {
"creating": "Creating…",
"open": "Create user",
"submit": "Create user",
"title": "Create user",
"nameRequired": "Enter a name",
"hintNoEmail": "Set SMTP_HOST to send password links."
},
"details": {
"emailStatus": "Email",
"methods": {
"password": "Password"
},
"noSignInMethods": "No password or linked account yet",
"notVerified": "Not verified",
"removeAvatar": "Remove",
"signInMethods": "Sign-in methods",
"uploadAvatar": "Upload",
"verified": "Verified"
},
"filters": {
"anyEmail": "Any email",
"anyRole": "Any role",
"anyStatus": "Any status",
"clear": "Clear filters",
"email": "Email verification",
"label": "Filter users",
"role": "Role",
"status": "Status",
"unverified": "Unverified email",
"verified": "Verified email"
},
"never": "Never",
"unverified": "Unverified",
"security": {
"apiKeysEmpty": "No API keys.",
"apiKeysLoadError": "Couldn't load API keys.",
"apiKeysTitle": "API keys",
"disabled": "Disabled",
"lastUsed": "Last used {{time}}",
"neverUsed": "Never used",
"revokeAll": "Sign out everywhere",
"revokeAllConfirmDescription": "They'll be signed out everywhere right away.",
"revokeAllConfirmTitle": "Sign {{name}} out everywhere?",
"revokeAllSelfDescription": "Your other sessions will be signed out right away.",
"revokeKey": "Revoke",
"revokeKeyConfirmDescription": "Requests using this key will fail right away.",
"revokeKeyConfirmTitle": "Revoke {{name}}?",
"revokeKeyLabel": "Revoke {{name}}",
"revokingKey": "Revoking...",
"sessionsEmpty": "Not signed in anywhere.",
"sessionsTitle": "Sessions",
"title": "Sessions & API keys: {{name}}",
"toastKeyRevoked": "API key revoked.",
"toastKeyRevokeError": "Couldn't revoke the API key.",
"toastRevokedAll": "Sessions signed out."
}
},
"security": "Security",
"securityPage": {
"confirmPassword": "Confirm new password",
"confirmPasswordPlaceholder": "Re-enter your new password",
"currentPassword": "Current password",
"currentPasswordPlaceholder": "Enter your current password",
"newPassword": "New password",
"newPasswordPlaceholder": "Enter a new password",
"noPassword": {
"description": "Your account signs in with a different method, so there is no password to change.",
"title": "Password change isn't available"
},
"pageTitle": "Security",
"sectionTitle": "Вход",
"submit": "Сменить пароль",
"submitting": "Смена...",
"subtitle": "Как вы входите в Kaneo.",
"title": "Security",
"updateError": "Failed to update password.",
"updateSuccess": "Password updated.",
"validation": {
"confirmRequired": "Confirm your new password.",
"currentRequired": "Enter your current password.",
"mismatch": "Passwords do not match.",
"tooShort": "New password must be at least 8 characters.",
"sameAsCurrent": "New password must be different from your current password."
},
"changePassword": "Сменить пароль",
"dialogDescription": "Не менее 8 символов, отличный от текущего.",
"dialogTitle": "Сменить пароль",
"passwordHint": "Используйте не менее 8 символов, которые вы больше нигде не используете.",
"passwordTitle": "Пароль",
"sessions": {
"revokeOthers": "Sign out other sessions",
"revokeOthersConfirmDescription": "Your other sessions will be signed out right away.",
"revokeOthersConfirmTitle": "Sign out all other sessions?",
"title": "Active sessions",
"toastRevokedOthers": "Other sessions signed out."
}
},
"gitlabIntegration": {
"baseUrlLabel": "URL GitLab",
"browseModalHint": "Проекты, в которых состоит ваш токен.",
"browseNeedsCredentials": "Введите URL GitLab и токен, чтобы просмотреть список.",
"commentTaskLinkHint": "Чтобы в GitLab можно было сразу перейти к задаче.",
"commentTaskLinkTitle": "Комментировать ссылкой Kaneo issues, созданные в GitLab",
"importSectionHint": "Импортируйте открытые issues и merge requests как задачи.",
"loadProjectsError": "Не удалось загрузить проекты.",
"openInGitlab": "Открыть {{project}} в GitLab",
"projectPathLabel": "Путь проекта",
"searchProjects": "Поиск проектов",
"toast": {
"commentOnDisabled": "Комментарии со ссылкой на задачу в issues из GitLab отключены",
"commentOnEnabled": "Kaneo будет оставлять ссылку на задачу в issues, созданных в GitLab",
"importError": "Не удалось импортировать issues",
"issuesImported": "Issues успешно импортированы",
"removed": "Интеграция с GitLab удалена",
"removeError": "Не удалось удалить интеграцию с GitLab",
"settingsUpdateError": "Не удалось обновить интеграцию с GitLab",
"updated": "Интеграция с GitLab сохранена",
"updateError": "Не удалось сохранить интеграцию с GitLab",
"verifyError": "Не удалось проверить доступ к GitLab",
"verifyFirst": "Проверка доступа не удалась. Проверьте URL, токен и путь проекта"
},
"tokenLabel": "Токен доступа",
"tokenPlaceholder": "Вставьте токен",
"tokenPlaceholderUpdate": "Вставьте новый токен для замены",
"tokenTypeBearer": "Токен OAuth2",
"tokenTypeLabel": "Тип токена",
"tokenTypePrivate": "Персональный, проектный или групповой токен доступа",
"validation": {
"baseUrlInvalid": "Введите корректный URL (например, https://gitlab.com)",
"baseUrlRequired": "URL GitLab обязателен",
"pathInvalid": "Введите полный путь, например group/project"
},
"webhookHint": "Добавьте этот вебхук в настройках проекта, чтобы изменения возвращались в Kaneo.",
"importPermissionHint": "Importing requires permission to create and update tasks.",
"browseEmpty": "Этот токен не состоит ни в одном проекте.",
"chooseProjectDescription": "Введите его путь или выберите из списка.",
"noSearchMatchTitle": "Подходящих проектов нет",
"useProject": "Использовать проект",
"webhookEvents": "Включите события push, issue, comment и merge request."
},
"calendarFeeds": {
"title": "Calendar feeds",
"subtitle": "Subscribe to scheduled project tasks in your calendar app.",
"labels": "Только с метками",
"selectLabels": "Добавить метку",
"noLabels": "No labels found.",
"timeZoneHint": "All-day dates use {{timeZone}}.",
"accessHint": "Anyone with a feed link can read the matching task titles, descriptions, and dates. Revoke a link to stop future access.",
"create": "Create feed",
"creating": "Creating…",
"created": "Calendar feed created.",
"createError": "Could not create the calendar feed.",
"activeFeeds": "Фиды",
"allScheduledTasks": "Все запланированные задачи",
"subscribeHint": "Добавьте ссылку в приложение календаря как подписку. Обновления появляются, когда приложение обновляет фид.",
"copy": "Copy link",
"copyError": "Could not copy the link. Select the URL and copy it manually.",
"revoke": "Revoke",
"revoked": "Calendar feed revoked.",
"revokeError": "Could not revoke the calendar feed.",
"loadError": "Could not load calendar feeds or labels. Please try again.",
"deletedLabel": "Deleted label",
"permissionRequired": "You need project-sharing permission to manage calendar feeds.",
"copiedLabel": "Скопировано",
"dialogDescription": "Задачи с датой начала или сроком выполнения появятся в фиде.",
"dialogTitle": "Новый фид календаря",
"emptyDescription": "Создайте фид, чтобы видеть запланированные задачи в приложении календаря.",
"emptyTitle": "Фидов календаря пока нет",
"feedActions": "Действия с фидом",
"labelsHint": "Оставьте пустым, чтобы включить все запланированные задачи.",
"newFeed": "Новый фид",
"revokeConfirm": "Отозвать фид",
"revokeConfirmDescription": "Приложения календаря, использующие эту ссылку, перестанут получать обновления. Это действие нельзя отменить.",
"revokeConfirmTitle": "Отозвать этот фид?",
"revoking": "Отзыв…"
},
"invitationEmailFailed": "Invitation saved, but email delivery failed. Check SMTP settings and resend the invitation.",
"billing": {
"accessEnds": "Access ends",
"adminsOnly": "Only workspace owners and admins can manage billing.",
"choose": "Choose {{plan}}",
"choosePlan": {
"subtitle": "Switch anytime. Cancel whenever you like.",
"title": "Choose a plan"
},
"currentPlan": {
"title": "Current plan"
},
"disabled": "Billing isn't enabled on this instance. Self-hosted Kaneo includes every feature, free forever.",
"expiredCallout": {
"action": "Choose a plan",
"adminDescription": "You can still view everything, but creating and editing are paused until you choose a plan. Nothing has been deleted.",
"memberDescription": "You can still view everything, but creating and editing are paused until a workspace owner or admin chooses a plan.",
"title": "Your free trial has ended"
},
"features": {
"backups": "Automatic backups and updates",
"emailSupport": "Email support",
"prioritySupport": "Priority email support",
"roles": "Workspace roles and permissions",
"singleUser": "Single user",
"unlimitedMembers": "Unlimited team members",
"unlimitedProjects": "Unlimited projects and tasks"
},
"foundingFree": {
"badge": "Free",
"description": "This workspace has free access to Kaneo Cloud as an early supporter. Thank you for being here from the start.",
"title": "Founding Free"
},
"interval": {
"annual": "Annual",
"annualBadge": "2 months free",
"monthly": "Monthly"
},
"manage": "Manage billing",
"mostPopular": "Most popular",
"opening": "Opening...",
"pageTitle": "Billing",
"plans": {
"personal": {
"name": "Personal",
"tagline": "For individuals"
},
"team": {
"name": "Team",
"tagline": "For teams working together"
}
},
"portalHint": "Счета, способ оплаты и отмена подписки управляются в Creem.",
"price": {
"billedMonthly": "Billed monthly",
"billedYearly": "{{price}} / month, billed yearly",
"billedYearlyPerUser": "{{price}} / user / month, billed yearly",
"perMonth": "/ month",
"perUserMonth": "/ user / month",
"perUserYear": "/ user / year",
"perYear": "/ year"
},
"processedBy": "Payments are securely processed by Creem. Prices exclude tax where applicable.",
"renews": "Renews",
"seats_few": "{{count}} seats",
"seats_many": "{{count}} seats",
"seats_one": "{{count}} seat",
"seats_other": "{{count}} seats",
"starting": "Starting...",
"status": {
"active": "Active",
"canceled": "Canceled",
"expired": "Expired",
"past_due": "Payment past due",
"paused": "Paused",
"scheduled_cancel": "Cancels soon",
"trialing": "Trial"
},
"subtitle": "Ваш тариф для {{workspace}}.",
"trial": {
"activeTitle": "Free trial",
"expiredDescription": "Subscribe to a plan below to keep creating and editing. Your data stays safe and exportable in the meantime.",
"expiredTitle": "Your trial has ended",
"noDate": "Choose a plan below to continue after your trial.",
"badgeDaysLeft_few": "Осталось {{count}} дня",
"badgeDaysLeft_many": "Осталось {{count}} дней",
"badgeDaysLeft_one": "Остался {{count}} день",
"badgeDaysLeft_other": "Осталось {{count}} дня"
},
"trialCard": {
"activeDescription": "Upgrade anytime to keep your workspace after the trial.",
"choosePlan": "Choose a plan",
"daysLeft_few": "{{count}} days left in trial",
"daysLeft_many": "{{count}} days left in trial",
"daysLeft_one": "{{count}} day left in trial",
"daysLeft_other": "{{count}} days left in trial",
"dismiss": "Dismiss",
"ended": "Trial ended",
"endingDescription": "Pick a plan now so your team isn't interrupted.",
"expiredDescription": "Subscribe to keep creating and editing.",
"viewPlans": "View plans"
},
"openFailed": "Couldn't open billing for this workspace",
"checkoutSuccess": {
"title": "Спасибо за подписку",
"description": "Платёж получен. План ниже обновится, как только он будет подтверждён."
}
},
"syncRules": {
"addLabel": "Add label",
"advancedHint": "Enable Advanced settings in Preferences to edit these rules.",
"all": "All tasks and issues",
"any": "Any selected label",
"apply": "Apply sync rules",
"closed": "Closed",
"every": "All selected labels",
"excluded": "Outside the current rule",
"filtered": "Only matching labels",
"impact": "{{matching}} of {{total}} tasks match. {{create}} tasks will be exported, {{pause}} links will pause, and {{review}} links need review to resume.",
"impactTitle": "What will change",
"incoming": "Repository → Kaneo",
"incomingHint": "Choose which issues can be imported or create tasks. Use exact repository label names. Existing links follow the Kaneo task rule.",
"loadError": "Sync rules could not be loaded.",
"loading": "Loading sync rules…",
"matchLabels": "Label matching",
"missingLabels": "A selected workspace label is unavailable. Sync stays paused until the rule is repaired.",
"removeMissingLabels": "Удалить недоступные метки",
"next": "Next",
"noDescription": "No description",
"noLabels": "Create workspace labels before configuring a task filter.",
"open": "Open",
"outgoing": "Kaneo → repository",
"outgoingHint": "Choose which Kaneo tasks can sync. Losing a matching label pauses both directions for an existing task.",
"paused": "Sync paused",
"pausedHint": "Records and links are preserved. Tasks that match again need review before syncing resumes.",
"preserveHint": "Pausing keeps both records and their link. Resuming requires a comparison; historical comments are never replayed.",
"previewing": "Checking sync impact…",
"previous": "Previous",
"refreshComparison": "Refresh comparison",
"refreshPreview": "Refresh preview",
"removeLabel": "Remove {{name}}",
"repository": "Repository",
"repositoryLabel": "Repository label name",
"resumeError": "Could not resume. The task, issue or rule may have changed, or the provider is unavailable. Sync remains paused; refresh the comparison.",
"review": "Review and resume",
"reviewHint": "Compare the current title, description and open/closed state. Choose which side to keep for these fields. Labels and historical comments remain unchanged.",
"reviewRequired": "Matches the rule · review required",
"reviewTitle": "Review before resuming sync",
"saved": "Sync rules saved",
"saveError": "Could not apply these rules. The integration or task scope may have changed. Refresh the preview and try again.",
"selectLabel": "Select at least one label to preview this rule.",
"sharedHint": "These rules apply to everyone using this project. Hiding advanced settings does not disable them.",
"title": "Что синхронизируется",
"unavailableLabel": "Unavailable label",
"useKaneo": "Keep Kaneo values",
"useRepository": "Keep repository values",
"exportPending": "Export matching tasks",
"inactiveHint": "This integration is paused. No tasks will be exported until it is reactivated.",
"loadSavedRules": "Load saved rules",
"rulesChanged": "The saved rules changed while you were editing. Your draft is preserved. Review the current rules above before applying it, or load the saved rules.",
"allIssues": "Все issues",
"allTasks": "Все задачи",
"edit": "Изменить",
"hidePaused": "Скрыть",
"issuesLabelled": "Issues с меткой",
"joinAnd": "и",
"joinOr": "или",
"kaneoToProvider": "Из Kaneo в {{provider}}",
"pausedSummary_few": "{{count}} задачи перестали синхронизироваться, так как больше не соответствуют правилам синхронизации.",
"pausedSummary_many": "{{count}} задач перестали синхронизироваться, так как больше не соответствуют правилам синхронизации.",
"pausedSummary_one": "{{count}} задача перестала синхронизироваться, так как больше не соответствует правилам синхронизации.",
"pausedSummary_other": "{{count}} задачи перестали синхронизироваться, так как больше не соответствуют правилам синхронизации.",
"providerToKaneo": "Из {{provider}} в Kaneo",
"reviewPaused": "Просмотреть",
"tasksLabelled": "Задачи с меткой"
},
"advancedSettingsDescription": "Показывает дополнительные настройки, например правила синхронизации интеграций. Только в этом браузере.",
"adminWorkspaces": {
"addMember": {
"adding": "Adding…",
"alreadyMember": "Already a member",
"description": "Add an existing user to {{name}}. They can access every project until you limit them.",
"noUsers": "No users found",
"role": "Role",
"searching": "Searching users…",
"submit": "Add member",
"title": "Add member",
"user": "User",
"userPlaceholder": "Search name or email…",
"usersError": "Users could not be loaded."
},
"clearSearch": "Clear search",
"columns": {
"actions": "Actions",
"created": "Created",
"members": "Members",
"owners": "Owners",
"projects": "Projects",
"workspace": "Workspace"
},
"confirm": {
"remove": {
"action": "Remove member",
"description": "{{name}} loses access to {{workspace}} and its projects. Their account stays on this instance.",
"title": "Remove {{name}}?"
},
"transfer": {
"action": "Make owner",
"description": "{{name}} becomes the only owner of {{workspace}}. Anyone who owns it now becomes an admin.",
"title": "Make {{name}} the owner?"
},
"working": "Working…",
"archive": {
"action": "Archive workspace",
"description": "Members will lose access until it's restored.",
"title": "Archive {{name}}?"
},
"delete": {
"action": "Delete workspace",
"description": "Its projects, tasks, and files will be permanently deleted.",
"title": "Delete {{name}}?",
"typeName": "Type {{name}} to confirm"
},
"restore": {
"action": "Restore workspace",
"title": "Restore {{name}}?"
}
},
"directoryTitle": "Все рабочие области",
"emptyDescription": "Try another name or slug.",
"emptyTitle": "No workspaces found",
"loadError": "Workspaces could not be loaded.",
"manage": "Manage",
"manageLabel": "Manage {{name}}",
"members": {
"actions": "Actions for {{name}}",
"add": "Add member",
"count_few": "{{count}} members",
"count_many": "{{count}} members",
"count_one": "{{count}} member",
"count_other": "{{count}} members",
"description": "Change roles, project access, and ownership, even if you aren't a member of this workspace.",
"editAccess": "Change project access for {{name}} ({{access}})",
"empty": "This workspace has no members.",
"loadError": "Members could not be loaded.",
"makeOwner": "Make owner",
"remove": "Remove from workspace",
"roleLabel": "Role for {{name}}",
"title": "Members of {{name}}"
},
"next": "Next",
"noOwner": "No owner",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing workspaces",
"retry": "Retry",
"searchCount_few": "{{count}} matching workspaces",
"searchCount_many": "{{count}} matching workspaces",
"searchCount_one": "{{count}} matching workspace",
"searchCount_other": "{{count}} matching workspaces",
"searchLabel": "Search workspaces",
"searchPlaceholder": "Поиск по названию или slug",
"subtitle": "Все рабочие области этого экземпляра Kaneo, включая те, в которых вы не состоите.",
"title": "Рабочие области",
"toast": {
"added": "Member added",
"addError": "Failed to add member",
"ownershipTransferred": "Ownership transferred",
"removed": "Member removed",
"removeError": "Failed to remove member",
"roleError": "Failed to update role",
"roleUpdated": "Role updated",
"transferError": "Failed to transfer ownership",
"archived": "Workspace archived",
"archiveError": "Could not archive workspace",
"deleted": "Workspace deleted",
"deleteError": "Could not delete workspace",
"restored": "Workspace restored",
"restoreError": "Could not restore workspace"
},
"actions": {
"archive": "Archive workspace",
"open": "Actions for {{name}}",
"restore": "Restore workspace"
},
"archived": "Archived"
},
"workspaceImport": {
"back": {
"allSources": "All sources",
"changeKey": "Change key",
"overview": "Import overview"
},
"connect": {
"cancel": "Cancel",
"continue": "Continue",
"hideSecret": "Hide {{field}}",
"sectionDescription": "Kaneo only reads from {{source}}. The key is used for this import and never stored.",
"sectionTitle": "Connect",
"showSecret": "Show {{field}}",
"title": "Import from {{source}}",
"whereToFind": "Where to find it"
},
"counts": {
"columns_few": "{{count, number}} columns",
"columns_many": "{{count, number}} columns",
"columns_one": "{{count, number}} column",
"columns_other": "{{count, number}} columns",
"comments_few": "{{count, number}} comments",
"comments_many": "{{count, number}} comments",
"comments_one": "{{count, number}} comment",
"comments_other": "{{count, number}} comments",
"labels_few": "{{count, number}} labels",
"labels_many": "{{count, number}} labels",
"labels_one": "{{count, number}} label",
"labels_other": "{{count, number}} labels",
"tasks_few": "{{count, number}} tasks",
"tasks_many": "{{count, number}} tasks",
"tasks_one": "{{count, number}} task",
"tasks_other": "{{count, number}} tasks"
},
"entry": {
"createProjectLink": "Import your projects",
"createProjectPrompt": "Moving from Jira, Linear, Trello or Plane?",
"projectsEmpty": "Import from another tool"
},
"history": {
"description": "Imports keep running on the server if you leave this page.",
"empty": "No imports yet. Imports you start show up here.",
"loadError": "Recent imports could not be loaded.",
"started": "Started {{time}}",
"title": "Recent imports"
},
"kaneo": {
"apiKeyDescription": "In that Kaneo, open Settings, then API Keys.",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"urlDescription": "The instance you are moving from.",
"urlLabel": "Kaneo URL"
},
"linear": {
"apiKeyDescription": "Read access is enough. You can revoke it after the import.",
"apiKeyLabel": "Personal API key",
"openSettings": "Open Linear settings",
"stepCreate": "Under Personal API keys, create a key with Read access.",
"stepOpen": "In Linear, open Settings, then Security and access.",
"stepPaste": "Copy it and paste it above."
},
"notAllowed": {
"description": "Importing creates projects, so it needs permission to manage workspace settings and create projects. Ask a workspace admin to run it.",
"title": "Only workspace admins can import"
},
"opensInNewTab": "(opens in a new tab)",
"pageTitle": "Import",
"plane": {
"tokenDescription": "Profile settings, Developer, then Personal Access Tokens.",
"tokenLabel": "Personal access token",
"urlDescription": "Copy it from your browser while in Plane. Self-hosted works too.",
"urlLabel": "Workspace URL",
"urlPlaceholder": "https://app.plane.so/your-workspace"
},
"planka": {
"adminTip": "Use a PLANKA admin account. PLANKA only shows email addresses to admins, and card members are matched to people here by email.",
"apiKeyDescription": "Created in PLANKA under your account settings.",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"passwordDescription": "Used only to sign in for this import.",
"passwordLabel": "Password",
"signInApiKey": "API key",
"signInDescription": "Use an API key if your account signs in through SSO.",
"signInLabel": "Sign in with",
"signInPassword": "Email and password",
"urlDescription": "The address you open PLANKA at.",
"urlLabel": "PLANKA URL",
"usernameDescription": "The account you sign in to PLANKA with.",
"usernameLabel": "Email or username"
},
"retry": "Try again",
"run": {
"failedBadge": "Failed",
"failedNames_few": "{{names, list}} failed, so nothing was created for them.",
"failedNames_many": "{{names, list}} failed, so nothing was created for them.",
"failedNames_one": "{{names, list}} failed, so nothing was created for it.",
"failedNames_other": "{{names, list}} failed, so nothing was created for them.",
"failedTitle": "Import failed",
"finishedNote": "Imported tasks did not send notifications. Comments keep their original author and date.",
"finishedNoteNoComments": "Imported tasks did not send notifications.",
"finishedTitle": "Import finished",
"goToProjects": "Go to projects",
"importingBadge": "Importing",
"importingTitle": "Importing from {{source}}",
"importMore": "Import more",
"keyInMemory": "Your {{source}} key is only kept in memory until this import finishes.",
"leavePage": "You can leave this page. The import keeps running on the server.",
"loadError": "This import could not be loaded",
"noTasks": "No tasks",
"nothingImported": "Nothing was imported",
"notImported": "Not imported",
"open": "Open",
"openProject": "Open {{name}}",
"queued": "Queued",
"started": "Started {{time}}",
"starting": "Starting",
"took_few": "Took {{count}} minutes",
"took_many": "Took {{count}} minutes",
"took_one": "Took {{count}} minute",
"took_other": "Took {{count}} minutes",
"tookUnderMinute": "Took less than a minute",
"totals": "{{parts, list}} imported",
"waiting": "Waiting",
"warnings_few": "{{count}} warnings",
"warnings_many": "{{count}} warnings",
"warnings_one": "{{count}} warning",
"warnings_other": "{{count}} warnings"
},
"select": {
"back": "Back",
"clear": "Clear",
"commentsDescription": "Keeps each comment's original author and date.",
"commentsLabel": "Import comments",
"inviteMembers": "Invite members",
"membersNote": "Assignees are matched to members of {{workspace}} by email. Invite your team first so their tasks stay assigned.",
"membersNoteTrello": "Assignees are matched to members of {{workspace}} by email, or by full name for Trello. Invite your team first so their tasks stay assigned.",
"selectAll": "Select all",
"membersNoteJira": "Assignees are matched to members of {{workspace}} by email, or by full name when Jira hides the email. Invite your team first so their tasks stay assigned."
},
"sources": {
"connect": "Connect",
"connectTo": "Connect {{source}}",
"description": "Pick the tool you are moving from. Each project you choose becomes a new project here.",
"kaneo": {
"description": "Move projects between Kaneo Cloud and a self-hosted instance.",
"intro": "Projects from every workspace the key can see. Each one you pick is copied here.",
"pickerName": "Another Kaneo"
},
"linear": {
"description": "Teams, issues, labels, sub-issues and comments. Paste a personal API key.",
"intro": "Each Linear team becomes a project, with its workflow as columns."
},
"plane": {
"description": "Projects, work items, sub-issues and comments. Cloud or self-hosted.",
"intro": "Each Plane project becomes a project here, with its states as columns."
},
"planka": {
"description": "Boards, lists, cards, checklists and comments from your PLANKA instance.",
"intro": "Each PLANKA board becomes a project, with its lists as columns."
},
"title": "Choose a source",
"trello": {
"description": "Boards, lists, cards, checklists and comments. Authorize with one click.",
"intro": "Each Trello board becomes a project, with its lists as columns."
},
"jira": {
"description": "Projects, issues, sub-tasks, links and comments. Cloud or Data Center.",
"intro": "Each Jira project becomes a project here, with its workflow as columns."
}
},
"status": {
"failed": "Failed",
"imported": "Imported",
"importing": "Importing {{current}} of {{total}}",
"partial": "{{done}} of {{total}} imported",
"warnings_few": "Done with {{count}} warnings",
"warnings_many": "Done with {{count}} warnings",
"warnings_one": "Done with {{count}} warning",
"warnings_other": "Done with {{count}} warnings"
},
"steps": {
"connect": "Connect",
"done": "(completed)",
"import": "Import",
"label": "Import steps"
},
"subtitle": "Bring your projects from another tool into {{workspace}}. Kaneo only reads from the source.",
"title": "Import",
"toast": {
"failed": "Import from {{source}} failed",
"finished": "Import from {{source}} finished",
"partial": "Import from {{source}} finished with errors"
},
"trello": {
"apiKeyDescription": "In a Power-Up you own, open the Trello Auth tab and generate an API key (not the OAuth 2.0 tab) at",
"apiKeyLabel": "API key",
"apiKeyPlaceholder": "Paste API key",
"authorizeButton": "Authorize on Trello",
"authorizeDescription": "Opens Trello in a new tab. Read only, expires after a day.",
"authorizeLabel": "Authorize Kaneo",
"authorizeNeedsKey": "Enter the API key first. Read only, expires after a day.",
"tokenDescription": "Click Allow on Trello, then paste the token it shows you.",
"tokenLabel": "Token",
"tokenPlaceholder": "Paste token"
},
"units": {
"board": {
"allImported_few": "All {{count}} boards imported.",
"allImported_many": "All {{count}} boards imported.",
"allImported_one": "{{count}} board imported.",
"allImported_other": "All {{count}} boards imported.",
"empty": "No boards found. Check that this key can see the boards you want to import.",
"found_few": "{{count}} boards found. Each one you pick becomes a new project in {{workspace}}.",
"found_many": "{{count}} boards found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} board found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} boards found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_few": "Import {{count}} boards",
"importButton_many": "Import {{count}} boards",
"importButton_one": "Import {{count}} board",
"importButton_other": "Import {{count}} boards",
"limit": "Pick up to {{max}} boards per import.",
"pick": "Pick the boards to bring over.",
"progress_few": "{{done}} of {{count}} boards imported",
"progress_many": "{{done}} of {{count}} boards imported",
"progress_one": "{{done}} of {{count}} board imported",
"progress_other": "{{done}} of {{count}} boards imported",
"runTitle_few": "{{source}}, {{count}} boards",
"runTitle_many": "{{source}}, {{count}} boards",
"runTitle_one": "{{source}}, {{count}} board",
"runTitle_other": "{{source}}, {{count}} boards",
"section": "Boards",
"someImported_few": "{{done}} of {{count}} boards imported.",
"someImported_many": "{{done}} of {{count}} boards imported.",
"someImported_one": "{{done}} of {{count}} board imported.",
"someImported_other": "{{done}} of {{count}} boards imported.",
"step": "Choose boards"
},
"project": {
"allImported_few": "All {{count}} projects imported.",
"allImported_many": "All {{count}} projects imported.",
"allImported_one": "{{count}} project imported.",
"allImported_other": "All {{count}} projects imported.",
"empty": "No projects found. Check that this key can see the projects you want to import.",
"found_few": "{{count}} projects found. Each one you pick becomes a new project in {{workspace}}.",
"found_many": "{{count}} projects found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} project found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} projects found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_few": "Import {{count}} projects",
"importButton_many": "Import {{count}} projects",
"importButton_one": "Import {{count}} project",
"importButton_other": "Import {{count}} projects",
"limit": "Pick up to {{max}} projects per import.",
"pick": "Pick the projects to bring over.",
"progress_few": "{{done}} of {{count}} projects imported",
"progress_many": "{{done}} of {{count}} projects imported",
"progress_one": "{{done}} of {{count}} project imported",
"progress_other": "{{done}} of {{count}} projects imported",
"runTitle_few": "{{source}}, {{count}} projects",
"runTitle_many": "{{source}}, {{count}} projects",
"runTitle_one": "{{source}}, {{count}} project",
"runTitle_other": "{{source}}, {{count}} projects",
"section": "Projects",
"someImported_few": "{{done}} of {{count}} projects imported.",
"someImported_many": "{{done}} of {{count}} projects imported.",
"someImported_one": "{{done}} of {{count}} project imported.",
"someImported_other": "{{done}} of {{count}} projects imported.",
"step": "Choose projects"
},
"team": {
"allImported_few": "All {{count}} teams imported.",
"allImported_many": "All {{count}} teams imported.",
"allImported_one": "{{count}} team imported.",
"allImported_other": "All {{count}} teams imported.",
"empty": "No teams found. Check that this key can see the teams you want to import.",
"found_few": "{{count}} teams found. Each one you pick becomes a new project in {{workspace}}.",
"found_many": "{{count}} teams found. Each one you pick becomes a new project in {{workspace}}.",
"found_one": "{{count}} team found. If you pick it, it becomes a new project in {{workspace}}.",
"found_other": "{{count}} teams found. Each one you pick becomes a new project in {{workspace}}.",
"importButton_few": "Import {{count}} teams",
"importButton_many": "Import {{count}} teams",
"importButton_one": "Import {{count}} team",
"importButton_other": "Import {{count}} teams",
"limit": "Pick up to {{max}} teams per import.",
"pick": "Pick the teams to bring over.",
"progress_few": "{{done}} of {{count}} teams imported",
"progress_many": "{{done}} of {{count}} teams imported",
"progress_one": "{{done}} of {{count}} team imported",
"progress_other": "{{done}} of {{count}} teams imported",
"runTitle_few": "{{source}}, {{count}} teams",
"runTitle_many": "{{source}}, {{count}} teams",
"runTitle_one": "{{source}}, {{count}} team",
"runTitle_other": "{{source}}, {{count}} teams",
"section": "Teams",
"someImported_few": "{{done}} of {{count}} teams imported.",
"someImported_many": "{{done}} of {{count}} teams imported.",
"someImported_one": "{{done}} of {{count}} team imported.",
"someImported_other": "{{done}} of {{count}} teams imported.",
"step": "Choose teams"
}
},
"jira": {
"emailDescription": "The email of your Atlassian account. Leave it empty for Jira Data Center.",
"emailLabel": "Email",
"nameMatchTip": "Jira often hides email addresses, so assignees may be matched to people here by full name.",
"openSettings": "Open Atlassian API tokens",
"stepCreate": "Create an API token and copy it.",
"stepOpen": "Open id.atlassian.com, then Security, then API tokens.",
"stepPaste": "Paste it with the email you sign in to Jira with.",
"tokenDescription": "Cloud: create one at id.atlassian.com. Data Center: use a personal access token.",
"tokenLabel": "API token",
"tokenPlaceholder": "Paste token",
"urlDescription": "Copy it from your browser. Data Center works too.",
"urlLabel": "Jira site URL",
"urlPlaceholder": "https://your-site.atlassian.net"
}
},
"chatIntegrations": {
"activeDescription": "Выключите, чтобы приостановить, не теряя настроек.",
"activeTitle": "Публикация в {{provider}}",
"channelHint": "Просто подпись для этого списка.",
"channelLabel": "Канал",
"channelPlaceholder": "#team-updates",
"disconnect": "Отключить",
"disconnectDescription": "Kaneo перестанет публиковать в {{provider}} и удалит сохранённые настройки.",
"disconnecting": "Отключение…",
"disconnectTitle": "Отключить {{provider}}?",
"events": {
"taskCommentCreated": "Кто-то оставил комментарий",
"taskCreated": "Создана задача",
"taskDescriptionChanged": "Изменилось описание",
"taskPriorityChanged": "Изменился приоритет",
"taskStatusChanged": "Изменился статус",
"taskTitleChanged": "Изменилось название"
},
"optional": "Необязательно",
"postWhen": "Публиковать, когда",
"retry": "Повторить",
"saveChanges": "Сохранить изменения",
"savedUrlPlaceholder": "Сохранено. Вставьте новый URL, чтобы заменить его.",
"webhookUrlLabel": "URL вебхука"
},
"codeHosting": {
"browse": "Обзор",
"changeToken": "Сменить токен",
"checking": "Проверка доступа…",
"chooseProjectTitle": "Выберите проект",
"chooseRepositoryTitle": "Выберите репозиторий",
"connectProject": "Подключить проект",
"connectRepository": "Подключить репозиторий",
"copied": "Скопировано",
"copyFailed": "Не удалось скопировать в буфер обмена.",
"copySecret": "Копировать секрет",
"copyUrl": "Копировать URL вебхука",
"disconnect": "Отключить",
"disconnectDescription": "Задачи перестанут синхронизироваться с {{target}}. Позже его можно подключить снова.",
"disconnecting": "Отключение…",
"disconnectTitle": "Отключить {{provider}}?",
"hideSecret": "Скрыть секрет",
"importing": "Импорт…",
"importIssues": "Импортировать issues",
"importNeedsReconnect": "Переподключитесь, чтобы включить импорт.",
"importTitle": "Импорт открытых issues",
"issuesSection": "Issues",
"lastImport": "Последний импорт: создано {{imported}}, обновлено {{updated}}, пропущено {{skipped}}.",
"loadError": "Не удалось загрузить эту интеграцию.",
"pausedHint": "Синхронизация приостановлена. Переподключитесь, чтобы возобновить её.",
"projectSection": "Проект",
"reconnect": "Переподключить",
"repositoryPathInvalid": "Укажите репозиторий в формате owner/name.",
"repositoryPathLabel": "Репозиторий",
"repositorySection": "Репозиторий",
"retry": "Повторить",
"saveToken": "Сохранить токен",
"showSecret": "Показать секрет",
"signInDescription": "Используйте токен, который может читать проект и его issues.",
"signInTitle": "Войдите в свой экземпляр",
"tokenStored": "Сохранённый токен",
"tokenTitle": "Токен доступа",
"webhookSecret": "Секрет",
"webhookSection": "Вебхук",
"webhookUrl": "URL"
},
"projectCustomFields": {
"fieldsDescription": "Перетаскивайте, чтобы изменить порядок их отображения в задаче.",
"fieldsTitle": "Поля",
"newField": "Новое поле",
"pageTitle": "Пользовательские поля",
"subtitle": "Дополнительные данные, которые может хранить каждая задача в {{project}}, например размер или клиент.",
"subtitleFallback": "Дополнительные данные, которые может хранить каждая задача в этом проекте, например размер или клиент.",
"title": "Пользовательские поля"
},
"shared": {
"autosave": "Изменения сохраняются автоматически"
},
"adminAuditLog": {
"actions": {
"sessionRevoked": "Revoked a session",
"sessionRevokedAll": "Revoked all sessions",
"userCreated": "Created user",
"userDeactivated": "Deactivated user",
"userDeleted": "Deleted user",
"userImpersonated": "Signed in as user",
"userPasswordSet": "Set user password",
"userReactivated": "Reactivated user",
"userRoleChanged": "Changed instance role",
"userUpdated": "Updated user details",
"workspaceMemberAdded": "Added workspace member",
"workspaceMemberRemoved": "Removed workspace member",
"workspaceMemberRoleChanged": "Changed workspace member role",
"workspaceOwnerTransferred": "Transferred workspace ownership",
"userAvatarChanged": "Changed profile picture",
"userAvatarRemoved": "Removed profile picture",
"userEmailVerified": "Marked email as verified",
"userPasswordResetSent": "Sent password reset link",
"userVerificationSent": "Sent verification email",
"apiKeyRevoked": "Revoked an API key",
"emailTestSent": "Sent test email",
"workspaceArchived": "Archived workspace",
"workspaceDeleted": "Deleted workspace",
"workspaceRestored": "Restored workspace",
"roleCreated": "Role created",
"roleDeleted": "Role deleted",
"roleUpdated": "Role updated",
"instanceSettingsUpdated": "Updated instance settings",
"webhookCreated": "Created webhook",
"webhookDeleted": "Deleted webhook",
"webhookSecretRotated": "Rotated webhook secret",
"webhookUpdated": "Updated webhook"
},
"categories": {
"all": "All actions",
"session": "Sessions",
"user": "Users",
"workspace": "Workspaces",
"apiKey": "API keys",
"email": "Email",
"role": "Roles",
"instance": "Instance settings",
"webhook": "Webhooks"
},
"categoryLabel": "Filter by category",
"clearFilter": "Show all actions",
"columns": {
"action": "Action",
"actor": "Administrator",
"target": "Target",
"time": "Time and IP"
},
"deletedActor": "Account deleted",
"details": {
"change": "{{from}} → {{to}}",
"fields": "Changed {{fields}}",
"memberChange": "{{member}}: {{from}} → {{to}}",
"memberWithRole": "{{member}} as {{role}}",
"noRole": "No role",
"reason": "Reason: {{reason}}",
"createdWithRole": "Role: {{role}}",
"sessionCount_few": "{{count}} sessions",
"sessionCount_many": "{{count}} sessions",
"sessionCount_one": "{{count}} session",
"sessionCount_other": "{{count}} sessions",
"workspaceContents": "{{members}} members, {{projects}} projects",
"permissionsChanged": "{{added}} permissions added, {{removed}} removed"
},
"directoryTitle": "Recorded actions",
"emptyTitle": "No actions recorded",
"fields": {
"email": "email",
"emailVerified": "email verification",
"image": "avatar",
"name": "name"
},
"loadError": "The audit log could not be loaded.",
"mobileSummary": "{{actor}} · {{target}} · {{time}}",
"next": "Next",
"pagination": "Page {{current}} of {{total}}",
"previous": "Previous",
"refreshing": "Refreshing audit log",
"retry": "Retry",
"targetTypes": {
"user": "User",
"workspace": "Workspace",
"role": "Role",
"instance": "Instance",
"webhook": "Webhook"
},
"title": "Audit log",
"unknownActor": "Unknown"
},
"sessions": {
"device": "{{browser}} on {{os}}",
"lastActive": "Active {{time}}",
"loadError": "Couldn't load sessions.",
"revoke": "Sign out",
"revokeConfirmDescription": "They'll be signed out right away.",
"revokeConfirmTitle": "Sign out {{device}}?",
"revokeLabel": "Sign out {{device}}",
"revoking": "Signing out...",
"signedIn": "Signed in {{date}}",
"thisDevice": "This device",
"toastRevoked": "Session signed out.",
"toastRevokeError": "Couldn't sign out the session.",
"unknownDevice": "Unknown device"
},
"adminSystem": {
"checkedAt": "Checked {{time}}",
"email": {
"down": "Can't connect to the mail server ({{code}})",
"notConfigured": "Set SMTP_HOST and SMTP_FROM to turn on email.",
"ok": "Connected to the mail server",
"send": "Send test email",
"sending": "Sending…",
"sendTest": "Test email",
"smtp": "SMTP",
"title": "Email"
},
"instance": {
"api": "API",
"apiDescription": "Up {{uptime}} · Node {{node}}",
"database": "Database",
"databaseDown": "Can't reach PostgreSQL ({{code}})",
"databaseVersion": "PostgreSQL {{version}}",
"latency": "{{ms}} ms",
"migrations_few": "{{count}} migrations applied",
"migrations_many": "{{count}} migrations applied",
"migrations_one": "{{count}} migration applied",
"migrations_other": "{{count}} migrations applied",
"realtime": "Live updates",
"realtimeConnections_few": "{{count}} open connections on this instance",
"realtimeConnections_many": "{{count}} open connections on this instance",
"realtimeConnections_one": "{{count}} open connection on this instance",
"realtimeConnections_other": "{{count}} open connections on this instance",
"realtimeInMemory": "delivered in memory",
"realtimeNotStarted": "WebSockets haven't started",
"realtimeRedis": "shared with other instances through Redis",
"realtimeRedisDown": "Redis is down, so only people on this instance get live updates",
"redis": "Redis",
"redisDown": "Can't reach Redis ({{code}})",
"redisModes": {
"cluster": "Cluster",
"sentinel": "Sentinel",
"standalone": "Standalone"
},
"redisNotConfigured": "Set REDIS_URL to share live updates across API instances.",
"redisOk": "{{mode}}, reachable",
"storage": "File storage",
"storageDown": "Can't reach the bucket ({{code}})",
"storageIncomplete": "Some S3 settings are missing, so uploads are off.",
"storageNotConfigured": "Set S3_ENDPOINT and S3_BUCKET to turn on uploads.",
"storageOk": "Bucket reachable",
"storageWarning": "Can't check the bucket with these credentials ({{code}}).",
"title": "Instance",
"version": "Kaneo version",
"versionUnknown": "Unknown"
},
"integrations": {
"available": "Available",
"connectedProjects_few": "Connected in {{count}} projects",
"connectedProjects_many": "Connected in {{count}} projects",
"connectedProjects_one": "Connected in {{count}} project",
"connectedProjects_other": "Connected in {{count}} projects",
"connectedUnknown": "Project count unavailable",
"instanceSetup": {
"down": "GitHub App unavailable",
"not_configured": "GitHub App not set up",
"ok": "GitHub App set up",
"warning": "Some GitHub App settings are missing"
},
"title": "Integrations"
},
"loadError": "System status could not be loaded.",
"refresh": "Refresh",
"refreshing": "Checking…",
"retry": "Retry",
"setupStatus": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Configured",
"warning": "Incomplete"
},
"signIn": {
"emailOtpSignIn": "Email sign-in codes",
"guestAccess": "Guest access",
"off": "Off",
"on": "On",
"passwordRegistration": "Sign-up with a password",
"passwordSignIn": "Email and password sign-in",
"registration": "Registration",
"title": "Sign-in",
"workspaceCreation": "Workspace creation",
"customProvider": "OAuth or OpenID Connect"
},
"status": {
"down": "Down",
"not_configured": "Not configured",
"ok": "Operational",
"warning": "Warning"
},
"title": "System",
"toast": {
"testEmailError": "The test email could not be sent.",
"testEmailSent": "Test email sent to {{to}}"
}
},
"adminOverview": {
"activeUsers": "Active (30 days)",
"archivedWorkspaces": "Archived",
"configurationWarnings": "Configuration warnings",
"disabledUsers": "Disabled users",
"loadError": "Could not load the overview.",
"noActions": "No administrative actions",
"noUsers": "No users",
"recentActions": "Recent administrative actions",
"recentUsers": "Recent users",
"services": "Services",
"title": "Overview",
"totalUsers": "Total users",
"viewAuditLog": "View audit log",
"viewSystem": "View system",
"viewUsers": "View users",
"warnings": {
"noSecondAdmin": "Only one administrator has access. Assign a second admin in User management.",
"redisUnreachable": "Redis is unavailable. Check the connection.",
"registrationWithoutEmail": "Registration is open without email. Configure SMTP or set DISABLE_REGISTRATION=true.",
"smtpNotConfigured": "Email is not configured. Set SMTP_HOST and SMTP_FROM.",
"smtpUnreachable": "Email is unavailable. Check SMTP settings.",
"storageIncomplete": "Storage setup is incomplete. Check S3 settings.",
"storageUnreachable": "Storage needs attention. Check S3 access."
},
"workspaces": "Workspaces"
},
"adminRoles": {
"actions": "Actions for {{name}}",
"allPermissions": "All permissions",
"builtIn": "Built-in",
"create": "New role",
"deleteTitle": "Delete {{name}}?",
"dialog": {
"create": "Create role",
"createTitle": "New role",
"editTitle": "Edit role",
"name": "Name",
"nameHint": "Use 2–32 lowercase letters, digits, or hyphens, starting with a letter.",
"save": "Save"
},
"edit": "Edit",
"groups": {
"instance": "Instance",
"users": "Users",
"workspaces": "Workspaces"
},
"listTitle": "All roles",
"loadError": "Roles could not be loaded.",
"noPermissions": "No permissions",
"permissionCount_few": "{{count}} permissions",
"permissionCount_many": "{{count}} permissions",
"permissionCount_one": "{{count}} permission",
"permissionCount_other": "{{count}} permissions",
"permissions": {
"auditRead": "View the audit log",
"instanceSettings": "Change instance settings",
"systemRead": "View system status",
"usersApiKeys": "View and revoke API keys",
"usersCreate": "Create users",
"usersCredentials": "Send password reset and verification emails",
"usersDelete": "Delete users",
"usersDisable": "Deactivate and reactivate users",
"usersRead": "View users",
"usersSessions": "View and end sessions",
"usersUpdate": "Edit users and their roles",
"workspacesArchive": "Archive and restore workspaces",
"workspacesDelete": "Delete workspaces",
"workspacesManage": "Manage workspace members",
"workspacesRead": "View workspaces and members"
},
"title": "Roles",
"toast": {
"created": "Role created",
"deleted": "Role deleted",
"error": "The role could not be saved.",
"updated": "Role updated"
},
"userCount_few": "{{count}} users",
"userCount_many": "{{count}} users",
"userCount_one": "{{count}} user",
"userCount_other": "{{count}} users",
"viewUsers": "View users"
},
"adminSettings": {
"defaultRole": "Default role for new users",
"general": "General",
"instanceName": "Instance name",
"instanceUrl": "Instance URL",
"instanceUrlMissing": "Set KANEO_CLIENT_URL",
"integrations": "Integrations",
"loadError": "Couldn't load instance settings.",
"lockedByEnv": "Set by {{name}}",
"passwordRegistrationEnabled": "Email and password sign-up",
"registration": "Registration",
"registrationEnabled": "Open registration",
"requireEmailVerification": "Require email verification",
"requiresSmtp": "Requires SMTP",
"signInProviders": "Sign-in providers",
"title": "Settings",
"toast": {
"error": "Couldn't save settings",
"saved": "Settings saved"
},
"workspaceCreationRestricted": "Only administrators can create workspaces",
"workspaces": "Workspaces",
"save": "Save"
},
"adminWebhooks": {
"actions": "Actions for {{url}}",
"add": "Add webhook",
"attempts_few": "{{count}} attempts",
"attempts_many": "{{count}} attempts",
"attempts_one": "{{count}} attempt",
"attempts_other": "{{count}} attempts",
"categories": "Events",
"deleteTitle": "Delete webhook?",
"deliveries": "Recent deliveries",
"disabled": "Disabled",
"edit": "Edit webhook",
"empty": "No webhooks",
"enabled": "Enabled",
"errors": {
"destination": "Destination blocked",
"disabled": "Webhook disabled",
"http": "HTTP error",
"interrupted": "Delivery interrupted",
"network": "Connection failed",
"response": "Invalid response",
"signing": "Signing failed",
"timeout": "Timed out"
},
"failed": "Failed",
"httpStatus": "HTTP {{status}}",
"loadError": "Webhooks could not be loaded.",
"noDeliveries": "No deliveries",
"pending": "Pending",
"rotate": "Rotate secret",
"rotateTitle": "Rotate signing secret?",
"saveError": "The webhook could not be saved.",
"secretTitle": "Signing secret — save it now",
"sendTest": "Send test",
"setup": "Set NOTIFICATION_SECRET_ENCRYPTION_KEY to create webhooks.",
"signingSecret": "Signing secret",
"succeeded": "Delivered",
"testEvent": "Test event",
"testQueued": "Test event queued.",
"title": "Webhooks",
"url": "URL",
"save": "Save"
}
},
"navigation": {
"commandPalette": {
"suggestions": "Предложения",
"commands": "Команды",
"projects": "Проекты",
"search": "Поиск",
"members": "Участники",
"createTask": "Создать задачу",
"createProject": "Создать проект",
"createWorkspace": "Создать рабочую область",
"lightTheme": "Светлая тема",
"darkTheme": "Тёмная тема",
"systemTheme": "Системная тема",
"keyboardShortcuts": "Сочетания клавиш",
"inputPlaceholder": "Поиск приложений и команд...",
"empty": "Результатов не найдено.",
"footer": {
"navigate": "Навигация",
"open": "Открыть",
"close": "Закрыть"
}
},
"sidebar": {
"projects": "Проекты",
"members": "Участники",
"invitations": "Приглашения",
"more": "Ещё",
"backToBoard": "Назад к доске",
"home": "Home",
"inbox": "Inbox",
"invitePeople": "Invite people",
"myTasks": "My tasks"
},
"projectList": {
"viewProject": "Открыть проект",
"shareProject": "Поделиться проектом",
"projectSettings": "Настройки проекта",
"linkCopied": "Ссылка на проект скопирована в буфер обмена",
"addProject": "Добавить проект",
"deleteConfirmTitle": "Удалить проект?",
"deleteConfirmDescription": "Проект и все его данные будут безвозвратно удалены. Это действие нельзя отменить.",
"deletedToast": "Проект удалён",
"deleteProject": "Удалить проект",
"switcherLabel": "Сменить проект или вид"
},
"search": {
"inputPlaceholder": "Поиск задач, проектов, комментариев...",
"minCharsHint": "Введите минимум 3 символа для поиска",
"groups": {
"task": "Задачи",
"project": "Проекты",
"workspace": "Рабочие области",
"comment": "Комментарии",
"activity": "Активности",
"fallback": "Результаты"
}
},
"settingsLayout": {
"toggleSidebar": "Переключить боковую панель",
"back": "Назад"
},
"userMenu": {
"signedOutSuccess": "Выход выполнен успешно",
"signOutFailed": "Не удалось выйти",
"unnamedUser": "Пользователь",
"settings": "Настройки",
"signingOut": "Выход...",
"logOut": "Выйти"
},
"workspaceSwitcher": {
"workspaces": "Рабочие области",
"switching": "Переключение...",
"addWorkspace": "Добавить рабочую область",
"selectWorkspace": "Выберите рабочую область"
},
"page": {
"settingsTitle": "Настройки",
"backToWorkspace": "Вернуться к рабочей области",
"settingsWorkspaceTab": "Рабочая область"
},
"projectSettings": {
"projectLabel": "Проект"
},
"shortcuts": {
"categories": {
"general": "Основные",
"navigation": "Навигация",
"create": "Создание",
"views": "Представления",
"tasks": "Задачи",
"list": "Доска и список",
"inbox": "Входящие",
"filters": "Фильтры",
"editor": "Редактор"
},
"items": {
"openCommandMenu": "Открыть палитру команд",
"openSearch": "Глобальный поиск",
"openShortcuts": "Показать сочетания клавиш",
"submit": "Сохранить или отправить",
"back": "Закрыть модальное окно/всплывающее меню",
"switchWorkspace": "Сменить рабочее пространство",
"logOut": "Выйти",
"showDisplayOptions": "Параметры отображения",
"dismissToasts": "Закрыть все уведомления",
"toggleSidebar": "Переключить боковую панель",
"goToHome": "Перейти на главную",
"goToInbox": "Перейти во входящие",
"goToMyTasks": "Перейти к моим задачам",
"goToProjects": "Перейти к проектам",
"goToSettings": "Перейти в настройки",
"goToTasks": "Перейти к задачам",
"goToBacklog": "Перейти в бэклог",
"goToProject": "Перейти к проекту 1–9",
"openTask": "Открыть задачу",
"openProject": "Открыть проект",
"createTask": "Создать задачу",
"createProject": "Создать проект",
"toggleLayout": "Переключить доску и список",
"deleteTask": "Удалить задачу",
"copyTaskUrl": "Скопировать ссылку на задачу",
"copyBranchName": "Скопировать ветку задачи",
"nextTask": "Следующий элемент",
"previousTask": "Предыдущий элемент",
"openFocusedTask": "Открыть выбранный элемент",
"selectAll": "Выбрать все",
"clearSelection": "Снять выделение",
"changeStatus": "Изменить статус",
"changePriority": "Изменить приоритет",
"assignTask": "Назначить",
"assignToMe": "Назначить на меня",
"changeLabels": "Изменить метки",
"setDueDate": "Установить срок",
"removeDueDate": "Убрать срок",
"renameTask": "Переименовать",
"editDescription": "Редактировать описание",
"commentOnTask": "Комментировать",
"moveToProject": "Переместить в другой проект",
"createSubtask": "Создать подзадачу",
"setParent": "Задать родительскую задачу",
"openParent": "Открыть родительскую задачу",
"openSubtask": "Открыть подзадачу",
"markBlockedBy": "Отметить как заблокированную",
"markBlocking": "Отметить как блокирующую",
"markRelated": "Отметить как связанную",
"addLink": "Добавить ссылку",
"toggleResources": "Показать или скрыть ресурсы",
"copyTaskId": "Копировать ID задачи",
"copyTaskTitle": "Копировать название задачи",
"copyAsMarkdown": "Копировать как Markdown",
"peekTask": "Предпросмотр выбранной задачи",
"selectTask": "Выбрать задачу",
"selectGroup": "Выбрать все в группе",
"copyPageUrl": "Копировать URL страницы",
"focusRight": "Следующая колонка",
"focusLeft": "Предыдущая колонка",
"moveTaskTop": "Переместить в начало группы",
"moveTaskUp": "Поднять на одну позицию",
"moveTaskDown": "Опустить на одну позицию",
"moveTaskBottom": "Переместить в конец группы",
"moveTaskLeft": "Переместить в предыдущую колонку",
"moveTaskRight": "Переместить в следующую колонку",
"toggleGroup": "Свернуть или развернуть группу",
"toggleAllGroups": "Свернуть или развернуть все группы",
"deleteNotification": "Удалить уведомление",
"deleteReadNotifications": "Удалить все прочитанные уведомления",
"toggleNotificationRead": "Отметить как прочитанное или непрочитанное",
"markAllNotificationsRead": "Отметить все как прочитанные",
"addFilter": "Добавить фильтр",
"clearAllFilters": "Сбросить все фильтры",
"clearLastFilter": "Сбросить последний фильтр",
"editorBold": "Жирный",
"editorItalic": "Курсив",
"editorUnderline": "Подчёркнутый",
"editorStrike": "Зачёркнутый",
"editorAttach": "Прикрепить изображение или файл",
"editorInlineCode": "Встроенный код",
"editorLink": "Превратить текст в ссылку",
"editorQuote": "Цитата",
"editorParagraph": "Обычный текст",
"editorHeading1": "Заголовок 1",
"editorHeading2": "Заголовок 2",
"editorHeading3": "Заголовок 3",
"editorChecklist": "Чек-лист",
"editorToggleChecklist": "Отметить пункт чек-листа",
"editorBulletList": "Маркированный список",
"editorNumberedList": "Нумерованный список",
"editorCodeBlock": "Блок кода",
"editorUndo": "Отменить",
"editorRedo": "Повторить"
},
"title": "Сочетания клавиш",
"searchPlaceholder": "Поиск по действию или клавише",
"results_one": "{{count}} результат",
"results_few": "{{count}} результата",
"results_many": "{{count}} результатов",
"results_other": "{{count}} результата",
"noResults": "Нет подходящих сочетаний",
"then": "затем",
"or": "или",
"thenEllipsis": "затем…"
}
},
"notifications": {
"newCount_one": "{{count}} новое",
"newCount_few": "{{count}} новых",
"newCount_many": "{{count}} новых",
"newCount_other": "{{count}} новых",
"emptyTitle": "Уведомлений пока нет",
"emptySubtitle": "Здесь будут отображаться обновления и активность.",
"clearAll": "Очистить все уведомления",
"clearDialogTitle": "Очистить все уведомления?",
"clearDialogDescription": "Все уведомления будут безвозвратно удалены. Это действие нельзя отменить.",
"events": {
"task_created": {
"title": "Создана новая задача",
"content": "Задача «{{taskTitle}}» создана"
},
"workspace_created": {
"title": "Рабочая область создана",
"content": "Ваша рабочая область «{{workspaceName}}» успешно создана"
},
"task_status_changed": {
"title": "Статус задачи изменён",
"content": "Статус задачи «{{taskTitle}}» изменён с «{{oldStatus}}» на «{{newStatus}}»"
},
"task_assignee_changed": {
"title": "Задача назначена вам",
"content": "Вам назначена задача: {{taskTitle}}"
},
"time_entry_created": {
"title": "Трекинг времени начат",
"contentWithTask": "Трекинг времени начат для задачи: {{taskTitle}}",
"contentWithoutTask": "Трекинг времени начат для задачи"
},
"task_mention": {
"title": "{{mentionerName}} упомянул вас",
"content": "{{mentionerName}} упомянул вас в задаче: {{taskTitle}}"
},
"task_comment": {
"title": "{{commenterName}} прокомментировал вашу задачу",
"content": "Новый комментарий к задаче «{{taskTitle}}»: {{commentPreview}}"
},
"due_date_reminder": {
"title": "Скоро срок выполнения задачи",
"content": "Срок задачи «{{taskTitle}}» наступит через {{leadTime}}"
},
"task_overdue": {
"title": "Задача просрочена",
"content": "Срок выполнения задачи «{{taskTitle}}» истёк"
}
},
"reminderLeadTime": {
"minutes_one": "{{count}} минута",
"minutes_few": "{{count}} минуты",
"minutes_many": "{{count}} минут",
"minutes_other": "{{count}} минут",
"hours_one": "{{count}} час",
"hours_few": "{{count}} часа",
"hours_many": "{{count}} часов",
"hours_other": "{{count}} часов",
"days_one": "{{count}} день",
"days_few": "{{count}} дня",
"days_many": "{{count}} дней",
"days_other": "{{count}} дней"
},
"inbox": {
"back": "Inbox",
"earlier": "Earlier",
"emptyFilter": "Nothing here",
"filters": {
"all": "All",
"label": "Filter notifications",
"mentions": "Mentions",
"unread": "Unread"
},
"openTask": "Open task",
"pageTitle": "Inbox",
"recentActivity": "Recent activity",
"selectPrompt": "Select a notification to read it",
"taskUnavailable": "This task is no longer available.",
"today": "Today",
"unread": "Unread",
"loadError": "Notifications couldn't be loaded.",
"taskLoadError": "This task couldn’t be loaded.",
"actionError": "Не удалось обновить входящие. Попробуйте ещё раз.",
"readCleared": "Прочитанные уведомления удалены"
}
},
"activity": {
"assignedToSelf": "назначил задачу себе",
"unassigned": "снял назначение с задачи",
"assignedTo": "назначил задачу на {{name}}",
"changedStatus": "изменил статус с {{from}} на {{to}}",
"changedPriority": "изменил приоритет с {{from}} на {{to}}",
"clearedDueDate": "очистил срок выполнения",
"setDueDate": "установил срок выполнения: {{date}}",
"changedDueDate": "изменил срок выполнения с {{from}} на {{to}}",
"changedTitle": "изменил название с «{{from}}» на «{{to}}»",
"githubUser": "Пользователь GitHub",
"comment": {
"viewGithubProfile": "Открыть профиль GitHub",
"cannotBeEmpty": "Комментарий не может быть пустым",
"mustBeLoggedInToEdit": "Для редактирования комментариев необходимо войти в систему",
"updated": "Комментарий обновлён",
"failedToUpdate": "Не удалось обновить комментарий",
"edit": "Редактировать комментарий",
"editPlaceholder": "Редактировать комментарий...",
"save": "Сохранить",
"added": "Комментарий добавлен",
"failedToAdd": "Не удалось добавить комментарий",
"leavePlaceholder": "Оставить комментарий...",
"attachFile": "Прикрепить файл",
"submitShortcut": "Отправить комментарий",
"editor": {
"uploadsOnlyOnSavedTasks": "Загрузка файлов доступна только для сохранённых задач.",
"uploadingFile": "Загрузка файла...",
"imageUploaded": "Изображение загружено",
"fileAttached": "Файл прикреплён",
"failedToUploadFile": "Не удалось загрузить файл",
"plaintext": "Простой текст",
"autoDetect": "Автоопределение",
"slashGroupText": "Текст",
"slashGroupLists": "Списки",
"slashGroupInsert": "Вставка",
"slashParagraph": "Текст",
"slashHeading": "Заголовок",
"slashBulletList": "Маркированный список",
"slashTaskList": "Чек-лист",
"slashOrderedList": "Нумерованный список",
"slashQuote": "Цитата",
"slashCodeBlock": "Блок кода",
"slashTable": "Таблица",
"slashFile": "Файл",
"searchParagraph": "текст параграф обычный",
"searchHeading": "заголовок h2",
"searchBulletList": "список маркированный",
"searchTaskList": "чеклист список задач",
"searchOrderedList": "список нумерованный",
"searchQuote": "цитата блок",
"searchCodeBlock": "код фрагмент",
"searchTable": "таблица сетка",
"searchFile": "файл вложение изображение фото загрузка",
"embedErrorInvalidUrl": "Введите корректный URL",
"embedErrorYoutubeOnly": "Можно встраивать только ссылки YouTube.",
"embedVideo": "Встроить видео",
"keepAsLink": "Оставить как ссылку",
"hintTab": "Tab",
"hintEsc": "Esc",
"pasteUrl": "Вставьте URL",
"asLink": "Как ссылку",
"embed": "Встроить",
"noCommands": "Нет команд",
"ariaCommentContent": "Содержимое комментария",
"ariaCommentEditor": "Редактор комментариев",
"ariaCopyCode": "Скопировать код",
"ariaCopied": "Скопировано",
"copy": "Копировать",
"copied": "Скопировано",
"dropImageToUpload": "Перетащите изображение для загрузки",
"previewImageAlt": "Предпросмотр изображения",
"codeLang": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"markdown": "Markdown",
"mermaid": "Mermaid",
"plaintext": "Простой текст",
"python": "Python",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"typescript": "TypeScript",
"yaml": "YAML"
},
"table": {
"addColumnBefore": "Вставить столбец слева",
"addColumnAfter": "Вставить столбец справа",
"deleteColumn": "Удалить столбец",
"addRowBefore": "Вставить строку выше",
"addRowAfter": "Вставить строку ниже",
"deleteRow": "Удалить строку",
"deleteTable": "Удалить таблицу"
},
"mermaid": {
"renderFailed": "Не удалось отобразить диаграмму Mermaid"
}
},
"importedFrom": "Imported from {{source}}",
"importedBy": "Imported by {{name}}",
"commentedOnForge": "прокомментировал на {{forge}}"
},
"moved": "переместил задачу из «{{from}}» в «{{to}}»",
"created": "создал эту задачу",
"movedFromOtherProject": "moved task from another project to \"{{to}}\""
},
"tasks": {
"dateFilter": {
"startDate": "Дата начала",
"noDate": "Без даты",
"condition": "Условие по дате",
"exact": "Точная дата",
"range": "Диапазон дат",
"before": "До",
"after": "После",
"apply": "Применить фильтр по дате",
"exactValue": "На {{date}}",
"beforeValue": "До {{date}}",
"afterValue": "После {{date}}",
"rangeValue": "{{date}} – {{end}}"
},
"title": "Задачи",
"status": {
"label": "Статус",
"to-do": "К выполнению",
"in-progress": "В работе",
"in-review": "На проверке",
"done": "Готово",
"archived": "В архиве",
"planned": "Запланировано"
},
"priority": {
"label": "Приоритет",
"no-priority": "Без приоритета",
"low": "Низкий",
"medium": "Средний",
"high": "Высокий",
"urgent": "Срочный"
},
"view": {
"board": "Доска",
"list": "Список",
"backlog": "Бэклог",
"gantt": "Гант",
"heading": "Вид"
},
"common": {
"selectTask": "Выбрать задачу",
"loadingTask": "Загрузка задачи...",
"taskNotFound": "Задача не найдена",
"taskNotFoundDescription": "Задача, которую вы ищете, не существует или была удалена.",
"ticketAmbiguous": "Идентификатор соответствует нескольким задачам",
"ticketAmbiguousDescription": "{{ticketId}} соответствует задачам в нескольких проектах этой рабочей области. Задайте одному из этих проектов другой ключ, чтобы ссылка заработала.",
"ticketNotFoundDescription": "В этой рабочей области нет задачи с идентификатором {{ticketId}}, или у вас нет к ней доступа.",
"customFields": "Custom Fields"
},
"detail": {
"subtaskOf": "Подзадача",
"activity": "Активность",
"noActivity": "Активность не найдена",
"openInFullPage": "Открыть на полной странице",
"titlePlaceholder": "Нажмите, чтобы добавить название",
"addDescription": "Добавить описание...",
"editor": {
"ariaLabel": "Редактор описания задачи",
"placeholder": "Напишите описание...",
"previewImage": "Предпросмотр изображения",
"autoDetect": "Автоопределение",
"copyCode": "Скопировать код",
"copy": "Копировать",
"copied": "Скопировано",
"attachFile": "Прикрепить файл",
"dropToUpload": "Перетащите изображение для загрузки",
"checkbox": {
"markIncomplete": "Отметить задачу как невыполненную",
"markComplete": "Отметить задачу как выполненную"
},
"upload": {
"loading": "Загрузка файла...",
"failed": "Не удалось загрузить файл",
"imageSuccess": "Изображение загружено",
"fileSuccess": "Файл прикреплён"
},
"slash": {
"groups": {
"text": "Текст",
"lists": "Списки",
"insert": "Вставка"
},
"empty": "Нет команд",
"commands": {
"paragraph": "Текст",
"heading-2": "Заголовок",
"bullet-list": "Маркированный список",
"task-list": "Чек-лист",
"ordered-list": "Нумерованный список",
"blockquote": "Цитата",
"code-block": "Блок кода",
"table": "Таблица",
"file": "Файл"
}
},
"languages": {
"bash": "Bash",
"csharp": "C#",
"cpp": "C++",
"css": "CSS",
"clojure": "Clojure",
"cypher": "Cypher",
"dart": "Dart",
"diff": "Diff",
"elixir": "Elixir",
"excel": "Excel",
"go": "Golang",
"graphql": "GraphQL",
"html": "HTML",
"haskell": "Haskell",
"json": "JSON",
"java": "Java",
"javascript": "JavaScript",
"kotlin": "Kotlin",
"makefile": "Makefile",
"markdown": "Markdown",
"mermaid": "Mermaid",
"ocaml": "OCaml",
"php": "PHP",
"perl": "Perl",
"plaintext": "Простой текст",
"python": "Python",
"r": "R",
"reasonml": "ReasonML",
"ruby": "Ruby",
"rust": "Rust",
"sql": "SQL",
"swift": "Swift",
"toml": "TOML",
"terraform": "Terraform",
"typescript": "TypeScript",
"xml": "XML",
"yaml": "YAML"
},
"embed": {
"choice": {
"embedVideo": "Встроить видео",
"keepAsLink": "Оставить как ссылку"
},
"inputPlaceholder": "Вставьте URL",
"embeddedContent": "Встроенный контент",
"asLink": "Как ссылку",
"submit": "Встроить",
"errors": {
"invalidUrl": "Введите корректный URL",
"onlyYoutube": "Можно встраивать только ссылки YouTube."
},
"onlyYoutubeInline": "Можно встраивать только URL YouTube. Используйте режим ссылки."
},
"mermaid": {
"renderFailed": "Не удалось отобразить диаграмму Mermaid"
},
"image": {
"large": "Large",
"medium": "Medium",
"reset": "Reset size",
"resizeHandle": "Resize image",
"small": "Small"
},
"saved": "Saved",
"saving": "Saving…",
"saveFailed": "Changes could not be saved",
"retrySave": "Retry"
}
},
"entity": {
"task": "Задача"
},
"relations": {
"title": "Связи",
"tasksInProject": "Задачи в проекте",
"linkError": "Не удалось связать задачу",
"empty": "Нет связанных задач",
"searchPlaceholder": "Поиск задач для связывания...",
"noTasksFound": "Задачи не найдены",
"openTask": "Открыть задачу",
"removeRelation": "Удалить связь",
"related": "Связана",
"blocks": "Блокирует",
"selectTask": "Выберите задачу для связывания",
"types": {
"blocks": "блокирует",
"related": "связана с",
"blocked_by": "заблокирована"
},
"blockedBy": "Блокируется",
"parentPlaceholder": "Задать родительскую задачу…"
},
"subtasks": {
"title": "Подзадачи",
"inputPlaceholder": "Название подзадачи...",
"addAction": "Добавить",
"empty": "Подзадач пока нет",
"createError": "Не удалось создать подзадачу",
"deleteSuccess": "Задача успешно удалена",
"deleteError": "Не удалось удалить задачу",
"deleteDialogTitle": "Удалить задачу?",
"deleteDialogDescription": "Задача и все её данные будут безвозвратно удалены. Это действие нельзя отменить.",
"deleteAction": "Удалить задачу",
"completeAria": "Отметить подзадачу выполненной",
"progress": "Выполнено подзадач: {{completed}} из {{total}}",
"noCompletionColumn": "This project has no matching column for completing or reopening this subtask."
},
"properties": {
"title": "Свойства",
"labels": "Метки",
"addLabels": "Добавить метки",
"copyTaskLink": "Скопировать ссылку на задачу",
"copyTaskBranch": "Скопировать ветку задачи",
"taskLinkCopied": "Ссылка на задачу скопирована",
"taskBranchCopied": "Название ветки скопировано",
"start": "Начало",
"startDate": "Дата начала",
"noDate": "Без даты",
"dates": "Даты",
"project": "Проект"
},
"move": {
"title": "Переместить задачу",
"projectLabel": "Целевой проект",
"projectPlaceholder": "Выберите проект",
"statusLabel": "Целевой статус",
"statusHintKeep": "Рабочий процесс этого проекта уже поддерживает текущий статус.",
"statusHintAdjust": "Выберите статус для использования в целевом проекте.",
"action": "Переместить задачу",
"success": "Задача успешно перемещена",
"error": "Не удалось переместить задачу"
},
"popover": {
"assignee": {
"unassigned": "Не назначено",
"updateError": "Не удалось обновить исполнителя задачи"
},
"status": {
"updateError": "Не удалось обновить статус задачи"
},
"priority": {
"updateError": "Не удалось обновить приоритет задачи"
},
"dueDate": {
"updateError": "Не удалось обновить срок выполнения задачи",
"clear": "Очистить дату"
},
"startDate": {
"updateError": "Не удалось обновить дату начала задачи",
"clear": "Очистить дату начала"
},
"labels": {
"searchPlaceholder": "Поиск меток...",
"empty": "Метки не найдены",
"create": "Создать «{{name}}»",
"chooseColor": "Выберите цвет",
"updateError": "Не удалось обновить метку",
"createSuccess": "Метка создана и добавлена",
"createError": "Не удалось создать метку",
"colors": {
"stone": "Камень",
"slate": "Сланец",
"lavender": "Лаванда",
"sage": "Шалфей",
"forest": "Лес",
"amber": "Янтарь",
"terracotta": "Терракота",
"rose": "Роза",
"crimson": "Малиновый",
"lagoon": "Лагуна",
"ocean": "Океан",
"orchid": "Орхидея",
"sky": "Небо"
},
"editLabels": "Изменить метки"
},
"recurrence": {
"updateError": "Не удалось обновить повтор задачи",
"every": "Каждые",
"hint": "Когда эта задача будет выполнена, будет создана следующая.",
"interval": "Интервал",
"onDays": "В эти дни",
"pattern": {
"daily": "Ежедневно",
"monthly": "Ежемесячно",
"periodically": "Периодически",
"weekly": "Еженедельно",
"yearly": "Ежегодно"
},
"repeats": "Повтор",
"toggle": "Повторять",
"unit": {
"days_few": "дня",
"days_many": "дней",
"days_one": "день",
"days_other": "дня",
"label": "Единица",
"months_few": "месяца",
"months_many": "месяцев",
"months_one": "месяц",
"months_other": "месяца",
"weeks_few": "недели",
"weeks_many": "недель",
"weeks_one": "неделю",
"weeks_other": "недели",
"years_few": "года",
"years_many": "лет",
"years_one": "год",
"years_other": "года"
}
}
},
"backlog": {
"pageTitle": "Бэклог / {{name}}",
"noTasksToMove": "Нет запланированных задач для перемещения",
"moveAllConfirm": "Переместить все {{count}} запланированных задач в «К выполнению»?",
"moveAllSuccess_one": "{{count}} задача перемещена в «К выполнению»",
"moveAllSuccess_few": "{{count}} задачи перемещены в «К выполнению»",
"moveAllSuccess_many": "{{count}} задач перемещено в «К выполнению»",
"moveAllSuccess_other": "{{count}} задач перемещено в «К выполнению»",
"plan": "Запланировать",
"moveAllTooltip": "Переместить все запланированные в «К выполнению»",
"moveAll": "Переместить все",
"addTask": "Добавить задачу",
"sections": {
"planned": "Запланировано",
"archived": "В архиве"
},
"noTasksInSection": "Нет задач в разделе «{{section}}»",
"filters": {
"dueThisWeek": "Срок на этой неделе",
"dueNextWeek": "Срок на следующей неделе",
"noDueDate": "Без срока"
},
"moveAllSuccess": "{{count}} задач перемещено в «К выполнению»"
},
"sort": {
"direction": "Направление",
"ascending": "По возрастанию",
"descending": "По убыванию",
"fields": {
"position": "Вручную (позиция)",
"createdAt": "Дата создания",
"priority": "Приоритет",
"dueDate": "Срок выполнения",
"title": "Название",
"number": "Номер задачи"
}
},
"boardFilters": {
"selectedCount_one": "{{count}} выбран",
"selectedCount_few": "{{count}} выбрано",
"selectedCount_many": "{{count}} выбрано",
"selectedCount_other": "{{count}} выбрано",
"subjects": {
"status": "Статус",
"priority": "Приоритет",
"assignee": "Исполнитель",
"dueDate": "Срок выполнения",
"labels": "Метки"
},
"operators": {
"isAnyOf": "любой из",
"includeAnyOf": "включает любой из",
"is": "равно",
"isNot": "не равно",
"isNoneOf": "ни один из",
"include": "включает",
"exclude": "исключает"
},
"selectedCount": "{{count}} выбрано",
"allCustomFieldValues": "All values",
"noCustomFieldValues": "No custom field values",
"noValuesUsedYet": "No values used yet"
},
"gantt": {
"searchPlaceholder": "Поиск запланированных задач...",
"pageTitle": "{{name}} / Гант",
"title": "Временная шкала Ганта",
"hideTasks": "Скрыть задачи",
"showTasks": "Показать задачи",
"noTasks": "Нет запланированных задач",
"noTasksSubtitle": "Добавьте дату начала, срок выполнения или оба значения к задачам, чтобы разместить их на временной шкале проекта.",
"noTasksFound": "Задачи не найдены",
"taskHeader": "Задача",
"updateDatesError": "Не удалось обновить даты задачи",
"resizeStart": "Изменить дату начала",
"resizeDue": "Изменить срок выполнения",
"taskAriaLabel": "{{title}}: откройте или перетащите для перемещения",
"jumpToToday": "Jump to today",
"previousPeriod": "Previous period",
"nextPeriod": "Next period",
"periodStart": "Timeline start date",
"showTaskDates": "Show task dates"
},
"delete": {
"title": "Удалить задачу?",
"description": "Задача и все её данные будут безвозвратно удалены. Это действие нельзя отменить.",
"action": "Удалить задачу",
"success": "Задача успешно удалена",
"error": "Не удалось удалить задачу"
},
"duplicate": {
"titleSuffix": "{{title}} (копия)",
"success": "Задача успешно дублирована",
"error": "Не удалось дублировать задачу"
},
"archive": {
"success_one": "{{count}} задача архивирована",
"success_few": "{{count}} задачи архивированы",
"success_many": "{{count}} задач архивировано",
"success_other": "{{count}} задач архивировано",
"success": "{{count}} задач архивировано",
"confirmTitle_one": "Архивировать {{count}} завершённую задачу?",
"confirmTitle_few": "Архивировать {{count}} завершённые задачи?",
"confirmTitle_many": "Архивировать {{count}} завершённых задач?",
"confirmTitle_other": "Архивировать {{count}} завершённой задачи?",
"confirmDescription": "Они исчезнут с доски и перейдут в раздел «В архиве» бэклога."
},
"listView": {
"addTask": "Добавить задачу",
"archiveAllTooltip": "Архивировать все завершённые задачи",
"noTasks": "Нет задач",
"collapseSubtasks": "Скрыть подзадачи «{{title}}»",
"expandSubtasks": "Показать подзадачи «{{title}}»",
"subtaskLevel": "Подзадача, уровень {{level}}",
"subtasksLoadError": "Не удалось загрузить подзадачи, поэтому задачи показаны без иерархии."
},
"kanban": {
"addTask": "Добавить задачу",
"automaticallySortedHint": "Автоматическая сортировка: {{sort}}"
},
"pr": {
"merged": "Влит",
"draft": "Черновик",
"open": "Открыт",
"label": "Pull Request",
"count_one": "{{count}} PR",
"count_few": "{{count}} PR",
"count_many": "{{count}} PR",
"count_other": "{{count}} PR",
"closed": "Закрыт"
},
"assignee": {
"label": "Исполнитель",
"unassigned": "Не назначено"
},
"dueDate": {
"label": "Срок выполнения",
"clear": "Очистить дату",
"updateError": "Не удалось обновить срок выполнения задачи",
"clearError": "Не удалось очистить срок выполнения"
},
"labels": {
"empty": "Нет доступных меток"
},
"update": {
"error": "Не удалось обновить задачу"
},
"contextMenu": {
"copyLink": "Скопировать ссылку",
"copyLinkSuccess": "Ссылка на задачу скопирована!"
},
"actions": {
"duplicate": "Дублировать",
"archive": "Архивировать",
"markAsPlanned": "Отметить как запланированную",
"delete": "Удалить..."
},
"bulk": {
"selectedCount_one": "{{count}} выбрана",
"selectedCount_few": "{{count}} выбраны",
"selectedCount_many": "{{count}} выбрано",
"selectedCount_other": "{{count}} выбрано",
"moveToBacklog": "Переместить в бэклог",
"moveToBacklogSuccess_one": "{{count}} задача перемещена в бэклог",
"moveToBacklogSuccess_few": "{{count}} задачи перемещены в бэклог",
"moveToBacklogSuccess_many": "{{count}} задач перемещено в бэклог",
"moveToBacklogSuccess_other": "{{count}} задач перемещено в бэклог",
"moveToBacklogError": "Не удалось переместить задачи в бэклог",
"moveToBoard": "Переместить на доску",
"moveToBoardSuccess_one": "{{count}} задача перемещена на доску",
"moveToBoardSuccess_few": "{{count}} задачи перемещены на доску",
"moveToBoardSuccess_many": "{{count}} задач перемещено на доску",
"moveToBoardSuccess_other": "{{count}} задач перемещено на доску",
"moveToBoardError": "Не удалось переместить задачи на доску",
"delete": "Удалить задачи",
"deleteSuccess_one": "{{count}} задача удалена",
"deleteSuccess_few": "{{count}} задачи удалены",
"deleteSuccess_many": "{{count}} задач удалено",
"deleteSuccess_other": "{{count}} задач удалено",
"deleteError": "Не удалось удалить задачи",
"archive": "Архивировать задачи",
"archiveSuccess_one": "{{count}} задача архивирована",
"archiveSuccess_few": "{{count}} задачи архивированы",
"archiveSuccess_many": "{{count}} задач архивировано",
"archiveSuccess_other": "{{count}} задач архивировано",
"archiveError": "Не удалось архивировать задачи",
"updateSuccess_one": "{{count}} задача обновлена",
"updateSuccess_few": "{{count}} задачи обновлены",
"updateSuccess_many": "{{count}} задач обновлено",
"updateSuccess_other": "{{count}} задач обновлено",
"updateError": "Не удалось обновить задачи",
"assignTo": "Назначить на",
"assignSuccess_one": "{{count}} задача назначена",
"assignSuccess_few": "{{count}} задачи назначены",
"assignSuccess_many": "{{count}} задач назначено",
"assignSuccess_other": "{{count}} задач назначено",
"assignError": "Не удалось назначить задачи",
"setPriority": "Установить приоритет",
"updatePriorityError": "Не удалось обновить приоритет",
"addLabel": "Добавить метку",
"addLabelSuccess_one": "Метка добавлена к {{count}} задаче",
"addLabelSuccess_few": "Метка добавлена к {{count}} задачам",
"addLabelSuccess_many": "Метка добавлена к {{count}} задачам",
"addLabelSuccess_other": "Метка добавлена к {{count}} задачам",
"addLabelError": "Не удалось добавить метку",
"updateDueDateError": "Не удалось обновить срок выполнения",
"actions": "Действия",
"searchActions": "Поиск действий...",
"noActionsFound": "Действия не найдены.",
"changeStatus": "Изменить статус",
"selectedCount": "{{count}} выбрано",
"moveToBacklogSuccess": "{{count}} задач перемещено в бэклог",
"moveToBoardSuccess": "{{count}} задач перемещено на доску",
"deleteConfirmTitle_one": "Удалить {{count}} задачу?",
"deleteConfirmTitle_few": "Удалить {{count}} задачи?",
"deleteConfirmTitle_many": "Удалить {{count}} задач?",
"deleteConfirmTitle_other": "Удалить {{count}} задачи?",
"deleteConfirmDescription": "Выбранные задачи и все их данные будут безвозвратно удалены. Это действие нельзя отменить.",
"deleteSuccess": "{{count}} задач удалено",
"archiveSuccess": "{{count}} задач архивировано",
"updateSuccess": "{{count}} задач обновлено",
"assignSuccess": "{{count}} задач назначено",
"addLabelSuccess": "Метка добавлена к {{count}} задачам",
"clearSelection": "Снять выделение",
"selectAll": "Выбрать все",
"moreActions": "Другие действия",
"statusPlaceholder": "Изменить статус…",
"priorityPlaceholder": "Задать приоритет…",
"assigneePlaceholder": "Назначить…",
"labelPlaceholder": "Добавить метку…",
"columnPlaceholder": "Переместить в колонку…"
},
"editor": {
"table": {
"addColumnBefore": "Вставить столбец слева",
"addColumnAfter": "Вставить столбец справа",
"deleteColumn": "Удалить столбец",
"addRowBefore": "Вставить строку выше",
"addRowAfter": "Вставить строку ниже",
"deleteRow": "Удалить строку",
"deleteTable": "Удалить таблицу"
}
},
"calendar": {
"dayTasksAriaLabel": "Показать все задачи на {{date}}",
"moreTasks": "Ещё {{count}}",
"nextMonth": "Следующий месяц",
"noTasks": "Нет запланированных задач",
"noTasksSubtitle": "Добавьте дату начала, срок выполнения или оба значения к задачам, чтобы они отображались в календаре.",
"pageTitle": "{{name}} / Календарь",
"previousMonth": "Предыдущий месяц",
"taskAriaLabel": "{{title}}, {{range}}: открыть задачу",
"title": "Календарь",
"today": "Сегодня",
"loadError": "Не удалось загрузить задачи.",
"noTasksThisMonth": "В этом месяце ничего не запланировано"
},
"descriptionSearchLoading": "Searching full descriptions…",
"descriptionSearchError": "Description search failed. Results may be incomplete.",
"descriptionRetry": "Retry",
"descriptionLoading": "Loading description…",
"descriptionLoadError": "The description could not be loaded. Retry to load the current version.",
"checklistProgress": "Выполнено пунктов списка: {{completed}} из {{total}}",
"customFields": {
"fields": "Поля",
"empty": "Пусто",
"required": "Обязательно",
"enterKey": "Enter",
"toSave": "чтобы сохранить",
"clear": "Очистить",
"setValue": "Задать {{field}}…",
"noMatches": "Нет подходящих вариантов",
"missingRequired_one": "{{count}} обязательное поле не заполнено",
"missingRequired_few": "{{count}} обязательных поля не заполнены",
"missingRequired_many": "{{count}} обязательных полей не заполнено",
"missingRequired_other": "{{count}} обязательного поля не заполнено",
"saveError": "Не удалось сохранить поле «{{field}}»",
"moreFields_one": "Ещё {{count}} поле",
"moreFields_few": "Ещё {{count}} поля",
"moreFields_many": "Ещё {{count}} полей",
"moreFields_other": "Ещё {{count}} поля",
"manage": "Управлять полями"
},
"board": {
"reorderFailed": "Could not move task. Please try again.",
"keyboardInstructions": "Нажмите Пробел для предпросмотра и Enter, чтобы открыть эту задачу. Используйте Alt или Option со стрелками, чтобы переместить её.",
"loadErrorTitle": "Эта доска не загрузилась",
"loadErrorDescription": "Не удалось получить задачи. Проверьте подключение и попробуйте ещё раз.",
"refreshError": "Не удалось обновить доску, поэтому данные могут быть устаревшими.",
"tryAgain": "Повторить"
},
"recurrence": {
"daily_few": "Каждые {{count}} дня",
"daily_many": "Каждые {{count}} дней",
"daily_one": "Каждый {{count}} день",
"daily_other": "Каждые {{count}} дня",
"monthly_few": "Каждые {{count}} месяца",
"monthly_many": "Каждые {{count}} месяцев",
"monthly_one": "Каждый {{count}} месяц",
"monthly_other": "Каждые {{count}} месяца",
"weekly_few": "Каждые {{count}} недели",
"weekly_many": "Каждые {{count}} недель",
"weekly_one": "Каждую {{count}} неделю",
"weekly_other": "Каждые {{count}} недели",
"yearly_few": "Каждые {{count}} года",
"yearly_many": "Каждые {{count}} лет",
"yearly_one": "Каждый {{count}} год",
"yearly_other": "Каждые {{count}} года",
"onDays": "{{rule}}: {{days}}"
},
"toolbar": {
"search": "Поиск задач",
"clearSearch": "Очистить поиск",
"taskCount_one": "{{count}} задача",
"taskCount_few": "{{count}} задачи",
"taskCount_many": "{{count}} задач",
"taskCount_other": "{{count}} задачи",
"shownCount_one": "{{shown}} из {{count}} задачи",
"shownCount_few": "{{shown}} из {{count}} задач",
"shownCount_many": "{{shown}} из {{count}} задач",
"shownCount_other": "{{shown}} из {{count}} задачи"
},
"display": {
"title": "Отображение",
"sortBy": "Сортировать по",
"showOnCards": "Показывать на карточках",
"showOnRows": "Показывать в строках",
"checklistProgress": "Прогресс чек-листа",
"projectBackground": "Фон проекта",
"layout": "Макет",
"includeSubtasks": "Включать подзадачи",
"useProjectDefault": "Использовать настройку проекта по умолчанию"
},
"filterBar": {
"label": "Активные фильтры",
"removeFilter": "Убрать фильтр «{{name}}»",
"noMatches": "Нет задач, подходящих под поиск или фильтры.",
"customFieldsLoading": "Loading custom-field values. Results are shown without custom-field filters.",
"customFieldsRefreshError": "Custom-field values could not be refreshed. Results may be out of date.",
"customFieldsUnavailable": "Custom-field values could not be loaded. Results are shown without custom-field filters."
},
"filterMenu": {
"addFilter": "Добавить фильтр…",
"searchSubject": "{{name}}…",
"noResults": "Ничего не найдено"
},
"shortcuts": {
"assignedToMe": "Назначено на вас",
"idCopied": "ID задачи скопирован",
"titleCopied": "Название задачи скопировано",
"markdownCopied": "Скопировано как Markdown",
"copyFailed": "Не удалось скопировать в буфер обмена.",
"pageUrlCopied": "URL страницы скопирован"
},
"due": {
"overdueDays_one": "Просрочено на {{count}} д.",
"overdueDays_few": "Просрочено на {{count}} д.",
"overdueDays_many": "Просрочено на {{count}} д.",
"overdueDays_other": "Просрочено на {{count}} д.",
"overdueWeeks_one": "Просрочено на {{count}} нед.",
"overdueWeeks_few": "Просрочено на {{count}} нед.",
"overdueWeeks_many": "Просрочено на {{count}} нед.",
"overdueWeeks_other": "Просрочено на {{count}} нед.",
"today": "Сегодня",
"tomorrow": "Завтра",
"inDays_one": "Через {{count}} день",
"inDays_few": "Через {{count}} дня",
"inDays_many": "Через {{count}} дней",
"inDays_other": "Через {{count}} дня",
"fullDate": "Срок {{date}}"
},
"datePicker": {
"dueDatePlaceholder": "Установить срок…",
"startDatePlaceholder": "Установить дату начала…",
"datePlaceholder": "Установить дату…",
"thisWeekend": "В эти выходные",
"nextWeek": "На следующей неделе",
"pickDate": "Выбрать дату",
"startsOn": "Начало: {{date}}",
"beforeStart": "{{date}} раньше даты начала",
"afterDue": "{{date}} позже срока"
}
},
"invitations": {
"email": {
"subject": "{{inviterName}} приглашает вас присоединиться к {{workspaceName}} в {{instanceName}}",
"preview": "Вас пригласили в {{workspaceName}} в Kaneo",
"title": "Присоединяйтесь к {{workspaceName}}",
"subtitle": "{{inviterName}} ({{inviterEmail}}) приглашает вас к совместной работе в Kaneo.",
"cta": "Принять приглашение",
"sameEmail": "Вы можете принять приглашение с того же адреса электронной почты, на который пришло это письмо.",
"ignore": "Если вы не ожидали этого письма, просто проигнорируйте его.",
"footer": "Приглашение в рабочую область Kaneo",
"details": {
"title": "Сведения о приглашении",
"sentTo": "Отправлено на",
"instance": "Экземпляр",
"role": "Роль",
"expires": "Истекает"
}
},
"pageTitle": "Приглашения",
"pendingInvitations": "Ожидающие приглашения",
"acceptSubtitle": "Примите приглашения для присоединения к рабочим областям",
"noPendingTitle": "Нет ожидающих приглашений",
"noPendingDescription": "На данный момент у вас нет ожидающих приглашений в рабочие области.",
"continueToSetup": "Продолжить настройку",
"skipForNow": "Пропустить пока",
"table": {
"workspace": "Рабочая область",
"invitedBy": "Пригласил",
"expires": "Истекает"
},
"toast": {
"acceptError": "Не удалось принять приглашение",
"acceptSuccess": "Приглашение принято! Добро пожаловать в команду.",
"rejectError": "Не удалось отклонить приглашение",
"rejectSuccess": "Приглашение отклонено"
}
},
"workspace": {
"projects": {
"pageTitle": "Проекты",
"createProject": "Создать проект",
"title": "Название",
"progress": "Прогресс",
"targetDate": "Целевая дата",
"dueDate": "Срок выполнения",
"status": "Статус",
"emptyTitle": "Проектов пока нет",
"emptyDescription": "Начните с создания вашего первого проекта.",
"projectStatus": {
"notStarted": "Не начат",
"complete": "Завершён",
"inProgress": "В работе"
},
"noDueDate": "Без срока",
"reorderHandle": "Изменить порядок проекта",
"reorderError": "Не удалось изменить порядок проектов",
"emptyDescriptionReadOnly": "В этой рабочей области пока нет проектов. Попросите администратора создать проект.",
"unavailable": {
"backToWorkspace": "Back to workspace",
"noAccessDescription": "Ask a workspace admin to give you access.",
"noAccessTitle": "You don't have access to this project",
"notFoundDescription": "This project doesn't exist or has been deleted.",
"notFoundTitle": "Project not found"
}
},
"search": {
"pageTitle": "Поиск",
"backToDashboard": "Вернуться к панели управления",
"placeholder": "Поиск задач по названию или короткому ID (например, DEP-23)...",
"hint": "Поиск по всем проектам в этой рабочей области. Используйте короткие ID, такие как DEP-23, чтобы найти конкретные задачи.",
"searching": "Поиск...",
"resultsFound_one": "Найден {{count}} результат",
"resultsFound_few": "Найдено {{count}} результата",
"resultsFound_many": "Найдено {{count}} результатов",
"resultsFound_other": "Найдено {{count}} результатов",
"noResultsTitle": "Результатов не найдено",
"noResultsDescription": "Попробуйте изменить поисковый запрос или поискать что-то другое",
"startTitle": "Начните поиск",
"startDescription": "Введите поисковый запрос для поиска задач по всем проектам",
"quickSearchesLabel": "Быстрый поиск:",
"suggestionHighPriority": "Высокий приоритет",
"suggestionBug": "Баг",
"suggestionFeature": "Фича",
"suggestionInProgress": "В работе",
"suggestionCompleted": "Завершённые"
},
"create": {
"pageTitle": "Создание рабочей области",
"heading": "Создать новую рабочую область",
"subtitle": "Рабочие области представляют собой общие среды, где команды могут работать над проектами, циклами и задачами.",
"nameLabel": "Название рабочей области",
"namePlaceholder": "Введите название рабочей области",
"descriptionLabel": "Описание (необязательно)",
"descriptionPlaceholder": "Добавьте описание для вашей рабочей области",
"required": "Обязательно",
"creating": "Создание...",
"submit": "Создать рабочую область",
"success": "Рабочая область успешно создана",
"error": "Не удалось создать рабочую область"
},
"home": {
"activity": {
"commented": "commented",
"empty": "Nothing has happened in the last 30 days.",
"loadError": "Activity couldn't be loaded.",
"title": "Activity",
"updated": "updated the task"
},
"greeting": {
"afternoon": "Good afternoon",
"evening": "Good evening",
"morning": "Good morning"
},
"newTask": "New task",
"pageTitle": "Home",
"projects": {
"all": "All projects",
"tasks_few": "{{count}} tasks",
"tasks_many": "{{count}} tasks",
"tasks_one": "{{count}} task",
"tasks_other": "{{count}} tasks",
"title": "Your projects",
"loadError": "Projects couldn't be loaded."
},
"upNext": {
"assigned_few": "{{count}} assigned to you",
"assigned_many": "{{count}} assigned to you",
"assigned_one": "{{count}} assigned to you",
"assigned_other": "{{count}} assigned to you",
"title": "Up next",
"viewAll": "View all"
},
"week": {
"more_few": "+{{count}} more",
"more_many": "+{{count}} more",
"more_one": "+{{count}} more",
"more_other": "+{{count}} more",
"truncated": "The week preview includes only the first {{shown}} of {{total}} assigned tasks."
}
},
"myTasks": {
"emptyDescription": "Tasks assigned to you across this workspace show up here.",
"groupBy": {
"dueDate": "Due date",
"label": "Group by",
"project": "Project"
},
"pageTitle": "My tasks",
"truncated": "Showing the first {{shown}} of {{total}} tasks."
},
"myWork": {
"due": {
"later": "Later",
"noDueDate": "No due date",
"overdue": "Overdue",
"thisWeek": "This week",
"today": "Today",
"tomorrow": "Tomorrow"
},
"empty": "Nothing assigned to you",
"loadError": "Your tasks couldn't be loaded."
},
"archived": {
"description": "Contact an administrator to restore access.",
"manage": "Manage workspaces",
"otherWorkspaces": "Go to workspaces",
"title": "Workspace archived"
}
},
"team": {
"roles": {
"owner": "Владелец",
"admin": "Администратор",
"member": "Участник",
"viewer": "Наблюдатель"
},
"members": {
"pageTitle": "Участники",
"inviteMember": "Пригласить участника",
"you": "Вы"
},
"invitations": {
"linkLabel": "Ссылка для приглашения",
"copyLink": "Скопировать ссылку",
"linkCopied": "Ссылка для приглашения скопирована",
"copyFailed": "Не удалось скопировать автоматически. Выделите ссылку и нажмите Ctrl+C.",
"pendingBadge": "ожидает",
"expires": "Истекает {{date}}"
},
"inviteModal": {
"title": "Пригласить участника команды",
"emailLabel": "Электронная почта",
"emailPlaceholder": "colleague@company.com",
"sendInvitation": "Отправить приглашение",
"success": "Приглашение успешно отправлено",
"error": "Не удалось пригласить участника команды",
"createdTitle": "Приглашение создано",
"shareLinkDescription": "Поделитесь этой ссылкой с {{email}}, чтобы этот пользователь мог присоединиться к рабочей области.",
"done": "Готово"
},
"membersTable": {
"emptyTitle": "Участников команды пока нет",
"emptyDescription": "Пригласите первого участника команды, чтобы начать.",
"columns": {
"name": "Имя",
"role": "Роль",
"joined": "Присоединился",
"actions": "Действия",
"projects": "Projects"
},
"memberRolePending": "{{role}} (Ожидает)",
"ariaCancelInvitation": "Отменить приглашение",
"ariaRemoveMember": "Удалить участника",
"removeDialogTitle": "Удалить участника команды?",
"removeDialogDescription": "Вы уверены, что хотите удалить {{name}} из рабочей области? Это действие нельзя отменить.",
"cancelDialogTitle": "Отменить приглашение?",
"cancelDialogDescription": "Вы уверены, что хотите отменить приглашение для {{email}}? Это действие нельзя отменить.",
"removeMember": "Удалить участника",
"cancelInvitation": "Отменить приглашение",
"removeSuccess": "Участник команды успешно удалён",
"removeError": "Не удалось удалить участника команды",
"cancelInviteSuccess": "Приглашение успешно отменено",
"cancelInviteError": "Не удалось отменить приглашение",
"ariaInvitationActions": "Действия с приглашением",
"roleUpdateSuccess": "Роль обновлена",
"roleUpdateError": "Не удалось обновить роль"
},
"projectAccess": {
"allProjects": "All projects",
"allProjectsDescription": "Access every project in this workspace, including new ones.",
"description": "Choose which projects this person can see.",
"dialogDescription": "Choose which projects {{name}} can access.",
"dialogTitle": "Project access",
"editAria": "Change project access for {{name}} ({{access}})",
"label": "Project access",
"noProjects": "No projects in this workspace yet.",
"projectCount_few": "{{count}} projects",
"projectCount_many": "{{count}} projects",
"projectCount_one": "{{count}} project",
"projectCount_other": "{{count}} projects",
"projectsLabel": "Projects",
"save": "Save",
"selectAtLeastOne": "Choose at least one project.",
"selectedProjects": "Selected projects",
"selectedProjectsDescription": "Only access the projects you choose.",
"updateError": "Failed to update project access",
"updateSuccess": "Project access updated",
"archived": "Archived",
"allProjectsUnavailable": "Your own access is limited, so you can only give access to selected projects."
}
},
"publicProject": {
"pageTitle": "Публичный просмотр",
"badge": "Публичный",
"readOnly": "Только для чтения",
"error": {
"title": "Проект не найден",
"description": "Этот проект не существует или недоступен публично."
},
"taskCard": {
"viewDetailsAria": "Просмотреть детали задачи {{title}}"
},
"taskDetail": {
"labels": "Метки",
"externalLinks": "Внешние ссылки",
"pullRequestFallback": "Pull Request",
"issueFallback": "Issue",
"prStatusMerged": "Влит",
"prStatusDraft": "Черновик",
"prStatusOpen": "Открыт",
"dueWithDate": "Срок: {{date}}",
"created": "Создано",
"dueDateLabel": "Срок выполнения"
},
"theme": {
"switchToLight": "Переключить на светлую тему",
"switchToDark": "Переключить на тёмную тему"
},
"copyUrl": {
"successToast": "URL скопирован",
"errorToast": "Не удалось скопировать URL",
"copied": "Скопировано",
"share": "Поделиться"
},
"branding": {
"poweredBy": "Работает на"
}
},
"press": {
"title": "Press kit",
"headline": "Kaneo press kit",
"intro": "Kaneo logos and product screenshots for articles, videos, and other media.",
"description": "Kaneo press resources: product information, logos, screenshots, and contact details for journalists and creators.",
"downloadKit": "Download all assets",
"boilerplateTitle": "About Kaneo",
"boilerplate": "Kaneo is an open-source project management platform created by Andrej Acevski. Teams can organize tasks in board and list views, assign work, set priorities and due dates, and connect GitHub. Kaneo is available under the MIT license for self-hosting, or as a managed service through Kaneo Cloud.",
"logosTitle": "Logos",
"darkLogo": "Dark wordmark",
"darkLogoAlt": "Dark Kaneo logo on a light background",
"darkLogoDetail": "SVG",
"lightLogo": "Light wordmark",
"lightLogoAlt": "Light Kaneo logo on a dark background",
"lightLogoDetail": "SVG",
"icon": "App icon",
"iconAlt": "Kaneo app icon",
"iconDetail": "PNG, 512 × 512",
"download": "Download",
"screenshotsTitle": "Screenshots",
"lightScreenshot": "Board (light)",
"lightScreenshotAlt": "Kaneo board in light theme, with task cards arranged by status",
"darkScreenshot": "Board (dark)",
"darkScreenshotAlt": "Kaneo board in dark theme, with task cards arranged by status",
"contactTitle": "Press enquiries",
"contactBody": "Contact the Kaneo team for product questions, interviews, or additional materials.",
"usageContrast": "Choose the light wordmark for dark backgrounds and the dark wordmark for light backgrounds.",
"usageProportions": "Keep the original proportions and colours, without stretching or adding effects.",
"usageSpace": "Leave enough space around the logo to keep it clear and readable.",
"darkListScreenshot": "List (dark)",
"darkListScreenshotAlt": "Kaneo task list in dark theme, grouped by status with assignees, priorities, labels, and due dates",
"darkTaskScreenshot": "Task details (dark)",
"darkTaskScreenshotAlt": "Kaneo task details in dark theme, with a description, checklist, team comment, and task properties",
"darkTimelineScreenshot": "Timeline (dark)",
"darkTimelineScreenshotAlt": "Kaneo Gantt timeline in dark theme, showing scheduled tasks and their durations",
"lightListScreenshot": "List (light)",
"lightListScreenshotAlt": "Kaneo task list in light theme, grouped by status with assignees, priorities, labels, and due dates",
"lightTaskScreenshot": "Task details (light)",
"lightTaskScreenshotAlt": "Kaneo task details in light theme, with a description, checklist, team comment, and task properties",
"lightTimelineScreenshot": "Timeline (light)",
"lightTimelineScreenshotAlt": "Kaneo Gantt timeline in light theme, showing scheduled tasks and their durations"
},
"landing": {
"sponsors": {
"ciSponsor": "Партнёры"
},
"founder": {
"title": "Why Kaneo exists",
"intro": "I'm Andrej, and I created Kaneo because I was tired of project management tools that got in the way more than they helped. After years of using bloated, overcomplicated platforms that distracted from actual work, I knew there had to be a better way.",
"problem": "The problem wasn't that these tools lacked features - it was that they had too many. Every notification, every unnecessary button, every complex workflow was pulling my team away from what mattered: building great products.",
"principle": "I believe the best tools are invisible. They should amplify your team's natural workflow, not force you to adapt to theirs. Kaneo is built on the principle that less is more - every feature exists because it solves a real problem, not because it looks impressive in a demo."
},
"hero": {
"cloudCta": "Try Kaneo Cloud",
"trialNote": "14-day cloud trial. No credit card required.",
"github": "GitHub",
"productHunt": "Product Hunt",
"title": "Project management",
"titleAccent": "that doesn't become the project.",
"description": "Open-source project management with boards, Gantt charts, and GitHub integration. Self-host for free with SSO included, or let Kaneo Cloud handle the hosting.",
"pricingCta": "See pricing",
"appStore": "App Store"
},
"navigation": {
"product": "Product",
"pricing": "Pricing",
"resources": "Resources",
"docs": "Documentation",
"blog": "Blog",
"guides": "Guides",
"comparisons": "Compare tools",
"roadmap": "Roadmap",
"community": "Сообщество",
"menu": "Menu",
"closeMenu": "Close menu",
"home": "Kaneo home",
"signIn": "Sign In",
"getStarted": "Get Started"
},
"showcase": {
"label": "Kaneo product views",
"controls": "Choose a product view",
"play": "Play product views",
"pause": "Pause product views",
"board": "Board",
"list": "Backlog",
"gantt": "Gantt"
},
"features": {
"tasks": {
"label": "Subtasks & context",
"title": "Big tasks. Clear next steps.",
"description": "Break work into subtasks, assign each one, and track progress without losing the original brief. Every detail stays with the work."
},
"github": {
"label": "GitHub integration",
"title": "From pull request to done.",
"description": "Issues and labels sync both ways. Linked pull requests move tasks through review to done as your code is opened and merged.",
"link": "Set up GitHub"
},
"hosting": {
"title": "Run it on your own server.",
"description": "Deploy with Docker and keep your workspace on infrastructure you control.",
"link": "Self-host Kaneo"
},
"source": {
"title": "The code is open, too.",
"description": "Read the source, report an issue, or contribute a change. Development happens on GitHub.",
"link": "View the source"
},
"preview": {
"taskAlt": "Interactive Kaneo task and subtask preview.",
"githubAlt": "Interactive preview of a GitHub merge updating a Kaneo task.",
"taskTitle": "Publish the new homepage",
"taskDescription": "Update the copy and check the layout before the next release.",
"checklistDone": "Review the copy",
"checklistOpen": "Check the mobile layout",
"inProgress": "In Progress",
"high": "High",
"date": "Oct 12",
"design": "design",
"done": "Done",
"relationsAlt": "Interactive Kaneo task dependencies preview.",
"inReview": "In Review",
"trySubtasks": "Try checking off a subtask.",
"tryGithub": "Preview a merge to see the task update.",
"tryRelations": "Open a linked task to follow the connection.",
"mergeAction": "Preview merge",
"resetAction": "Reset preview",
"mergedHint": "Pull request merged. Task moved to Done.",
"progress": "{{completed}} of {{total}} subtasks complete",
"backToTask": "Back to the homepage task",
"releaseNotes": "Write the release notes",
"dependencyDescription": "The homepage is waiting on the mobile review. Keep the launch notes linked for context.",
"mobileDescription": "Check the new homepage on narrow screens before it goes live.",
"notesDescription": "Capture what changed for the launch announcement."
},
"relations": {
"label": "Linked tasks & dependencies",
"title": "See what’s holding things up.",
"description": "Connect blockers, follow dependencies, and keep related work close. Open a linked task to see the context behind the next step."
}
},
"seo": {
"title": "Kaneo — Open-source, self-hosted project management",
"description": "Open-source project management with boards, Gantt charts, and GitHub integration. Self-host for free with SSO included, or use Kaneo Cloud."
},
"resources": {
"eyebrow": "Make it your own",
"title": "A clear path from trying it to using it.",
"description": "Set up your server, connect your tools, or compare Kaneo with your current tracker.",
"sso": {
"title": "Bring your own identity provider",
"description": "Configure OIDC single sign-on in the free self-hosted build."
},
"mcp": {
"title": "Connect your AI tools",
"description": "Use MCP to work with tasks and projects through an AI client."
},
"linear": {
"title": "Compare Kaneo and Linear",
"description": "See the differences in hosting, licensing, and workflow."
},
"startups": {
"description": "What a startup needs from a tracker, and what Kaneo Cloud costs as you hire.",
"title": "Project management for startups"
}
},
"product": {
"title": "Before you get started",
"description": "The practical details about hosting, planning, and connecting your team.",
"overview": "Kaneo is an open-source, MIT-licensed project management platform with boards, backlog, Gantt and calendar views, custom fields, time tracking, and GitHub integration. Self-host it on your own infrastructure or use Kaneo Cloud.",
"hosting": {
"question": "Is Kaneo free to self-host?",
"answer": "Yes. Kaneo is MIT licensed and free to self-host, with single sign-on included. Run the application alongside PostgreSQL using Docker Compose, or deploy with the official Helm chart. You manage infrastructure, updates, and backups.",
"link": "Read the installation guide"
},
"planning": {
"question": "Does Kaneo have Gantt charts?",
"answer": "Yes. Kaneo includes Gantt and calendar views alongside boards, lists, and backlog planning. Use task start dates and due dates to plan work on a timeline. Budgeting, baseline comparisons, and sprint burndown reports are outside its current scope.",
"link": "Compare planning features"
},
"sso": {
"question": "Is single sign-on included?",
"answer": "Yes. The free self-hosted build supports Google, GitHub, Discord, and custom OAuth/OIDC providers. Configure your provider on your instance without purchasing a separate Kaneo edition.",
"link": "Configure OIDC"
},
"agents": {
"question": "Can AI clients work with Kaneo?",
"answer": "Yes. Kaneo provides an MCP server through the @kaneo/mcp package and an HTTP endpoint. Compatible AI clients can read and update tasks using an API key tied to a user, subject to workspace permissions.",
"link": "Read the MCP guide"
},
"mobile": {
"answer": "Yes. Kaneo is on the App Store for iPhone and iPad, and Android is coming soon. The app is free for Kaneo Cloud accounts. Connecting it to a self-hosted server is a one-time $9.99 unlock per person, and like the rest of Kaneo, the app is open source.",
"link": "Download on the App Store",
"question": "Is there a mobile app?"
}
},
"comparison": {
"feature": "Feature",
"yes": "Yes",
"no": "No"
},
"selfHostingGuide": {
"summary": "What self-hosting involves, with links to the maintained Docker Compose configuration and installation steps.",
"answer": "To self-host Kaneo, run the application and PostgreSQL with Docker Compose, configure your public URL and secrets, and put a TLS reverse proxy in front. The installation guide specifies at least 2 GB of RAM and 10 GB of disk space. Plan for ongoing updates, database backups, and storage for uploaded files.",
"requirements": "The documented minimum is 2 GB of RAM and 10 GB of disk space, with Docker 20.10 or newer and Docker Compose V2. Allow more capacity for your workload, database growth, and uploaded files.",
"compose": "Use the maintained compose.yml in the Docker Compose guide. It defines PostgreSQL, a persistent database volume, the Kaneo application, and health checks. Configure the environment file before starting the services; for production, pin an image version so updates are deliberate.",
"backups": "Back up both PostgreSQL and any object storage used for uploads. Choose a schedule based on how much work your team can afford to lose, store copies off the application server, and test restoring them before you need them.",
"worth": "Self-hosting makes sense when you need control over infrastructure and data, and someone can own maintenance. Include server capacity, storage, backups, and that maintenance time when comparing costs with a managed service.",
"minimum": "The installation guide specifies Docker 20.10 or newer, Docker Compose V2, at least 2 GB of RAM, and 10 GB of disk space. The Compose setup includes PostgreSQL. Redis is optional for a single API instance.",
"composeLink": "Docker Compose configuration",
"composeLinkDescription": "The maintained compose.yml with persistent storage and health checks.",
"startLink": "Start and verify the services",
"startLinkDescription": "Start the stack, inspect its status, and check that the application is available."
}
},
"mobile": {
"common": {
"save": "Сохранить",
"cancel": "Отмена",
"delete": "Удалить",
"retry": "Повторить",
"somethingWrong": "Что-то пошло не так",
"close": "Закрыть"
},
"errors": {
"notSignedIn": "Вход не выполнен",
"unreachable": "Не удаётся подключиться к серверу. Проверьте соединение и адрес сервера.",
"sessionExpired": "Сессия истекла. Войдите снова.",
"forbidden": "У вас нет прав на это действие.",
"notFound": "Не найдено.",
"tooManyRequests": "Слишком много запросов. Подождите немного.",
"serverProblem": "На сервере возникла ошибка ({{status}}).",
"requestFailed": "Запрос не выполнен ({{status}}).",
"notKaneo": "{{url}} не похож на сервер Kaneo.",
"noInstance": "По адресу {{url}} не найден экземпляр Kaneo (HTTP {{status}}).",
"noSession": "Сервер не вернул сессию. Попробуйте войти через браузер.",
"deviceFailed": "Не удалось войти с устройства (HTTP {{status}}).",
"apiKeyRejected": "Этот API-ключ отклонён.",
"signInRejected": "Сервер не принял вход.",
"uploadFailed": "Не удалось загрузить ({{status}})"
},
"signIn": {
"tagline": "Простое управление проектами. Подключитесь к Kaneo Cloud или своему серверу.",
"cloud": "Kaneo Cloud",
"selfHosted": "Свой сервер",
"captcha": "На этом шаге сервер требует проверку в браузере. Используйте «Продолжить в браузере».",
"invalidClient": "Этот сервер не разрешает вход с устройства. Попросите администратора добавить «kaneo-cli» в DEVICE_AUTH_CLIENT_IDS или войдите с паролем или API-ключом.",
"serverAddress": "Адрес сервера",
"serverAddressHint": "Адрес, по которому вы открываете Kaneo. Для серверов без TLS используйте http://. Если API работает на другом хосте, введите адрес API.",
"connect": "Подключиться",
"recent": "Недавние",
"change": "Изменить",
"email": "Электронная почта",
"password": "Пароль",
"togglePassword": "Показать или скрыть пароль",
"signIn": "Войти",
"or": "или",
"continueInBrowser": "Продолжить в браузере",
"browserHint": "GitHub, Google, Discord или SSO",
"emailCode": "Получить код входа по email",
"sendTo": "Отправить на {{email}}",
"noPassword": "Пароль не нужен",
"useApiKey": "Использовать API-ключ",
"newToKaneo": "Впервые в Kaneo?",
"createAccount": "Создать аккаунт",
"code": {
"title": "Вход по коду",
"message": "Мы отправим вам 6-значный код на email. Пароль не нужен.",
"send": "Отправить код",
"checkEmail": "Проверьте почту",
"sent": "Мы отправили 6-значный код на {{email}}",
"verify": "Подтвердить",
"didntGet": "Не получили?",
"resend": "Отправить ещё раз"
},
"device": {
"denied": "Вход был отклонён в браузере.",
"expired": "Срок действия кода истёк. Начните заново, чтобы получить новый.",
"openFailed": "Не удалось открыть браузер. Скопируйте ссылку.",
"message": "Подтвердите это устройство на сайте Kaneo. Там работают GitHub, Google, Discord и SSO.",
"yourCode": "Ваш код",
"copyCode": "Скопировать код",
"codeCopied": "Код скопирован",
"copyLink": "Скопировать ссылку",
"linkCopied": "Ссылка скопирована",
"openBrowser": "Открыть браузер",
"tryAgain": "Повторить",
"waiting": "Ожидание подтверждения…",
"gettingCode": "Получение кода…"
},
"apiKey": {
"message": "Создайте ключ в веб-версии: «Настройки» → «API-ключи». Он работает, даже если другие способы входа отключены.",
"label": "API-ключ"
},
"signUp": {
"name": "Имя",
"passwordHint": "Не менее 8 символов"
},
"unlock": {
"buy": "Unlock for {{price}}",
"buyNoPrice": "Unlock",
"message": "Signing in to Kaneo Cloud is always included. Connecting the app to a self-hosted server is a one-time purchase that supports Kaneo's development.",
"nothingToRestore": "No earlier purchase was found for this store account.",
"restore": "Restore purchase",
"title": "Connect your own server",
"unavailable": "Purchases aren't available right now. Try again later."
}
},
"invitations": {
"accepted": "Приглашение принято",
"declined": "Приглашение отклонено",
"title": "Приглашения",
"description": "Рабочие области, в которые вас пригласили.",
"emptyTitle": "Нет ожидающих приглашений",
"emptyMessage": "Приглашения появятся здесь после подтверждения вашего email. Вы всегда можете присоединиться по ссылке из письма.",
"invitedYou": "{{name}} приглашает вас",
"decline": "Отклонить",
"accept": "Принять",
"joinWithLink": "Присоединиться по ссылке-приглашению",
"linkPlaceholder": "Вставьте ссылку из письма",
"join": "Присоединиться"
},
"taskDetail": {
"someone": "Кто-то",
"status": {
"planned": "Запланировано",
"archived": "В архиве"
},
"section": {
"addTo": "Добавить в {{title}}"
},
"fields": {
"title": "Поля",
"empty": "Пусто",
"none": "Нет"
},
"subtasks": {
"title": "Подзадачи",
"add": "Добавить подзадачу",
"parent": "Родительская задача",
"empty": "Нет подзадач"
},
"relations": {
"title": "Связи",
"link": "Связать задачу",
"blocks": "Блокирует",
"blockedBy": "Блокируется",
"related": "Связанные",
"relatedTo": "Связана с",
"remove": "Удалить связь",
"empty": "Нет связанных задач",
"removeTitle": "Удалить связь?",
"removeMessage": "Задачи останутся, удалится только связь между ними.",
"removeConfirm": "Удалить",
"searchPlaceholder": "Поиск задач по названию или номеру"
},
"links": {
"title": "Ссылки",
"add": "Добавить ссылку",
"remove": "Удалить ссылку",
"synced": "Синхронизировано",
"empty": "Нет ссылок",
"url": "URL",
"titleLabel": "Название",
"optional": "Необязательно"
},
"time": {
"title": "Время",
"total": "Всего {{duration}}",
"log": "Учесть время",
"editEntry": "Изменить запись времени",
"logged": "Время учтено",
"stop": "Стоп",
"start": "Запустить таймер",
"running": "{{time}} (идёт)",
"hoursUnit": "ч",
"minutesUnit": "мин",
"chipMinutes": "{{count}} мин",
"chipHours": "{{count}} ч",
"logDuration": "Учесть {{duration}}",
"durationHoursMinutes": "{{hours}} ч {{minutes}} мин",
"durationMinutes": "{{minutes}} мин",
"date": "Дата",
"notePlaceholder": "Над чем вы работали?"
},
"activity": {
"title": "Активность",
"comment": "Комментировать",
"edit": "Изменить",
"editComment": "Изменить комментарий",
"edited": "{{time}}, изменено",
"deleteTitle": "Удалить комментарий?",
"deleteMessage": "Это действие нельзя отменить.",
"entry": "{{name}} {{action}}"
},
"menu": {
"share": "Поделиться",
"duplicate": "Дублировать",
"move": "Переместить в проект…",
"refresh": "Обновить",
"delete": "Удалить задачу",
"moveTitle": "Переместить в проект",
"duplicated": "Задача продублирована",
"moved": "Задача перемещена",
"deleted": "Задача удалена",
"deleteTitle": "Удалить задачу?",
"deleteMessage": "«{{title}}» и её комментарии будут удалены безвозвратно."
},
"screen": {
"copyLink": "Скопировать ссылку",
"linkCopied": "Ссылка скопирована",
"more": "Ещё",
"editTitle": "Изменить название",
"addDescription": "Добавьте описание…"
}
},
"workspaceNew": {
"title": "Новая рабочая область",
"description": "Место для проектов вашей команды. Затем вы сможете пригласить людей.",
"name": "Название",
"namePlaceholder": "Дизайн-студия",
"descriptionLabel": "Описание",
"optional": "Необязательно",
"descriptionPlaceholder": "Для чего эта рабочая область?",
"create": "Создать рабочую область"
},
"taskFields": {
"status": "Статус",
"planned": "Запланировано",
"priority": "Приоритет",
"assignee": "Исполнитель",
"unassigned": "Не назначено",
"startDate": "Дата начала",
"dueDate": "Срок выполнения",
"labels": "Метки",
"none": "Нет",
"searchPeople": "Поиск людей",
"you": "{{name}} (вы)",
"addNumber": "Введите число",
"empty": "Пусто",
"archived": "В архиве",
"doneColumn": "Колонка «Готово»",
"starts": "Начало {{date}}",
"overdue_one": "{{date}}, просрочено на {{count}} день",
"overdue_few": "{{date}}, просрочено на {{count}} дня",
"overdue_many": "{{date}}, просрочено на {{count}} дней",
"overdue_other": "{{date}}, просрочено на {{count}} дня",
"done": "Готово",
"searchOrCreate": "Найти или создать",
"createLabel": "Создать метку «{{name}}»",
"labelColor": "Цвет новой метки",
"noLabels": "Меток пока нет. Введите название, чтобы создать."
},
"taskNew": {
"newSubtask": "Новая подзадача",
"project": "Проект",
"create": "Создать",
"taskTitle": "Название задачи",
"noLabels": "В этой рабочей области пока нет меток.",
"labelsAndParentFailed": "Задача создана, но не удалось сохранить некоторые метки и связь с родительской задачей.",
"labelsFailed": "Задача создана, но некоторые метки не удалось добавить.",
"parentFailed": "Задача создана, но её не удалось связать с родительской задачей."
},
"editor": {
"placeholder": "Добавьте описание… Поддерживается Markdown.",
"bold": "Жирный",
"italic": "Курсив",
"heading": "Заголовок",
"list": "Список",
"code": "Код",
"link": "Ссылка",
"insertImage": "Вставить изображение",
"attachment": "Вложение",
"applyLink": "Apply",
"checklist": "Checklist",
"linkUrl": "URL",
"numberedList": "Numbered list",
"quote": "Quote",
"removeLink": "Remove link",
"hideKeyboard": "Hide keyboard"
},
"composer": {
"reply": "Ответить {{name}}…",
"placeholder": "Добавьте комментарий…",
"mentionSomeone": "Упомянуть кого-то",
"attachImage": "Прикрепить изображение",
"sendComment": "Отправить комментарий",
"mention": "Упомянуть",
"searchPeople": "Поиск людей"
},
"board": {
"filterTasksActive": "Фильтр задач… (активно: {{count}})",
"movedTask": "Задача {{ticket}} перемещена в {{status}}",
"showTasks_one": "Показать {{count}} задачу",
"showTasks_few": "Показать {{count}} задачи",
"showTasks_many": "Показать {{count}} задач",
"showTasks_other": "Показать {{count}} задачи",
"memberYou": "{{name}} (вы)",
"dueDateOverdue_one": "{{date}}, просрочено на {{count}} д.",
"dueDateOverdue_few": "{{date}}, просрочено на {{count}} д.",
"dueDateOverdue_many": "{{date}}, просрочено на {{count}} д.",
"dueDateOverdue_other": "{{date}}, просрочено на {{count}} д.",
"projects": "Проекты",
"back": "Назад",
"boardView": "Доска",
"listView": "Список",
"more": "Ещё",
"switchProject": "Сменить проект",
"noTasksMatchTheFilters": "Нет задач по этим фильтрам",
"nothingPlannedYet": "Пока ничего не запланировано",
"noTasksHere": "Здесь нет задач",
"addTask": "Добавить задачу",
"noTasksMatch": "Нет подходящих задач",
"noTasksYet": "Задач пока нет",
"filters": "Фильтры",
"filterTasks": "Фильтр задач…",
"me": "Я",
"newTask": "Новая задача",
"board": "Доска",
"projectSettings": "Настройки проекта",
"hidePlanned": "Скрыть запланированные",
"showPlanned": "Показать запланированные",
"hideArchived": "Скрыть архивные",
"showArchived": "Показать архивные",
"refresh": "Обновить",
"planned": "Запланировано",
"archived": "В архиве",
"reset": "Сбросить",
"assignee": "Исполнитель",
"unassigned": "Не назначено",
"priority": "Приоритет",
"labels": "Метки",
"overdueOnly": "Только просроченные",
"tasksNotOnTheBoardYet": "Задачи, которых ещё нет на доске",
"moveTo": "Переместить в",
"assignToMe": "Назначить на меня",
"sendToTopOfColumn": "В начало колонки",
"sendToBottomOfColumn": "В конец колонки",
"openTask": "Открыть задачу",
"searchPeople": "Поиск людей"
},
"projectSettings": {
"deleteNamedTitle": "Удалить «{{name}}»?",
"text": "Текст",
"number": "Число",
"date": "Дата",
"checkbox": "Флажок",
"dropdown": "Выпадающий список",
"multiSelect": "Множественный выбор",
"projectUpdated": "Проект обновлён",
"project": "Проект",
"projectSettings": "Настройки проекта",
"general": "Общие",
"publicBoard": "Публичная доска",
"anyoneWithTheLinkCanViewTheBoard": "Любой, у кого есть ссылка, может просматривать доску",
"columns": "Колонки",
"addColumn": "Добавить колонку",
"doneColumn": "Колонка «Готово»",
"moveUp": "Переместить вверх",
"moveDown": "Переместить вниз",
"customFields": "Пользовательские поля",
"addField": "Добавить поле",
"noCustomFields": "Нет пользовательских полей",
"projectRestored": "Проект восстановлен",
"archiveProjectTitle": "Архивировать проект?",
"itDisappearsFromTheProjectListYouCanRestoreItLater": "Он исчезнет из списка проектов. Позже его можно будет восстановить.",
"archive": "Архивировать",
"projectArchived": "Проект архивирован",
"restoreProject": "Восстановить проект",
"archiveProject": "Архивировать проект",
"moveToAnotherWorkspace": "Переместить в другую рабочую область",
"deleteProjectTitle": "Удалить проект?",
"allTasksCommentsAndTimeEntriesInThisProjectWillBePermanentlyDeleted": "Все задачи, комментарии и записи времени в этом проекте будут удалены безвозвратно.",
"projectDeleted": "Проект удалён",
"deleteProject": "Удалить проект",
"column": "Колонка",
"rename": "Переименовать",
"unmarkAsDoneColumn": "Снять отметку «Готово»",
"markAsDoneColumn": "Отметить как «Готово»",
"deleteColumn": "Удалить колонку",
"tasksInThisColumnMayNeedToBeMovedFirst": "Возможно, сначала нужно переместить задачи из этой колонки.",
"columnDeleted": "Колонка удалена",
"renameColumn": "Переименовать колонку",
"field": "Поле",
"deleteField": "Удалить поле",
"valuesStoredInThisFieldAreDeletedFromEveryTask": "Значения этого поля будут удалены из всех задач.",
"fieldDeleted": "Поле удалено",
"moveToWorkspace": "Переместить в рабочую область",
"projectMoved": "Проект перемещён",
"ok": "OK",
"name": "Название",
"key": "Ключ",
"changesFutureAndExistingTaskIDs": "Изменит ID новых и существующих задач",
"saveChanges": "Сохранить изменения",
"newColumn": "Новая колонка",
"blocked": "Заблокировано",
"tasksHereCountAsFinished": "Задачи здесь считаются завершёнными",
"newCustomField": "Новое пользовательское поле",
"platform": "Платформа",
"type": "Тип",
"options": "Варианты",
"separateWithCommas": "Через запятую",
"androidIOSWeb": "Android, iOS, Web",
"required": "Обязательное",
"checked": "Отмечено",
"chooseDefault": "Выберите значение по умолчанию",
"defaultValue": "Значение по умолчанию",
"multiselectOptionsRequired": "Добавьте хотя бы два разных варианта.",
"unchecked": "Не отмечено",
"validDefaultRequired": "Введите корректное значение по умолчанию для этого обязательного поля."
},
"projectNew": {
"newProject": "Новый проект",
"name": "Название",
"customerPortal": "Портал для клиентов",
"key": "Ключ",
"usedInTaskIDs": "Используется в ID задач",
"createProject": "Создать проект"
},
"home": {
"noWorkspace": {
"title": "Рабочей области пока нет",
"body": "В рабочих областях хранятся ваши проекты и команда. Создайте новую или примите приглашение.",
"create": "Создать рабочую область",
"viewInvitations_one": "Показать {{count}} приглашение",
"viewInvitations_few": "Показать {{count}} приглашения",
"viewInvitations_many": "Показать {{count}} приглашений",
"viewInvitations_other": "Показать {{count}} приглашения",
"joinWithLink": "Присоединиться по ссылке-приглашению",
"signedInAs": "Вы вошли как {{email}}"
},
"switchWorkspace": "Сменить рабочую область",
"search": "Поиск",
"account": "Аккаунт",
"archived": "В архиве",
"due": "Срок {{date}}",
"progress": "{{done}} из {{total}}",
"noTasks": "Нет задач",
"upNext": "Далее",
"viewAll": "Все",
"projects": "Проекты",
"newProject": "Новый проект",
"empty": {
"title": "Проектов пока нет",
"message": "В проектах хранятся ваши доски и задачи."
},
"hideArchived": "Скрыть архивные проекты",
"showArchived": "Показать архивные проекты"
},
"inbox": {
"title": "Входящие",
"markAllRead": "Прочитать все",
"allCaughtUpToast": "Всё прочитано",
"more": "Ещё",
"empty": {
"title": "Всё прочитано",
"message": "Здесь появляются назначения, комментарии и упоминания."
},
"today": "Сегодня",
"earlier": "Ранее",
"recent": "Недавние",
"clearAll": "Очистить все уведомления",
"confirmClear": {
"title": "Очистить все уведомления?",
"message": "Все уведомления в этой рабочей области будут удалены.",
"confirm": "Очистить все"
}
},
"activity": {
"title": "Активность",
"subtitle": "Всё, что происходит в {{workspace}}",
"empty": "Нет недавней активности",
"someone": "Кто-то",
"commentedOn": "прокомментировал {{target}}"
},
"myTasks": {
"title": "Мои задачи",
"by": {
"due": "Срок",
"project": "Проект",
"status": "Статус"
},
"due": {
"overdue": "Просрочено",
"today": "Сегодня",
"thisWeek": "На этой неделе",
"later": "Позже",
"none": "Без срока"
},
"empty": {
"title": "Вам ничего не назначено",
"message": "Здесь появятся задачи, назначенные вам в этой рабочей области."
},
"showing": "Показано {{shown}} из {{total}} задач",
"assigned_one": "{{count}} назначена",
"assigned_few": "{{count}} назначены",
"assigned_many": "{{count}} назначено",
"assigned_other": "{{count}} назначено"
},
"nav": {
"home": "Главная",
"tasks": "Мои задачи",
"inbox": "Входящие",
"activity": "Активность",
"inboxUnread": "Входящие, непрочитанных: {{count}}"
},
"workspaceSwitcher": {
"title": "Рабочие области",
"settings": "Настройки рабочей области",
"members": "Участники",
"labels": "Метки",
"invitations": "Приглашения",
"create": "Создать рабочую область"
},
"search": {
"placeholder": "Поиск задач, проектов, комментариев",
"clear": "Очистить",
"kinds": {
"all": "Все",
"tasks": "Задачи",
"projects": "Проекты",
"comments": "Комментарии",
"activity": "Активность"
},
"empty": {
"title": "Поиск по рабочей области",
"message": "Ищите задачи по названию или номеру, проекты и комментарии."
},
"failed": "Ошибка поиска",
"noResults": "Ничего не найдено по запросу «{{query}}»",
"commentMeta": "{{name}}, {{when}}"
},
"notificationText": {
"activity": {
"created": "создал задачу",
"commented": "прокомментировал: {{text}}",
"statusChanged": "переместил из {{from}} в {{to}}",
"priorityChanged": "изменил приоритет с {{from}} на {{to}}",
"assigneeChanged": "сменил исполнителя",
"selfAssigned": "назначил задачу на себя",
"assignedTo": "назначил задачу на {{assignee}}",
"unassigned": "снял исполнителя",
"dueDateSet": "установил срок {{date}}",
"dueDateRemoved": "убрал срок",
"renamed": "переименовал задачу в «{{title}}»",
"titleChanged": "изменил название",
"descriptionChanged": "обновил описание",
"taskUpdated": "обновил задачу"
},
"taskCreated": "Вам назначена новая задача",
"assignedByActor": "{{actor}} назначил вам задачу",
"assignedToTask": "Вам назначена задача «{{title}}»",
"assignedToUntitled": "Вам назначена задача",
"statusChangedOnTask": "Статус изменён: «{{title}}»",
"statusChangedOnUntitled": "Статус задачи изменён",
"statusTransition": "{{from}} → {{to}}",
"commentedByActor": "{{actor}} оставил комментарий",
"newComment": "Новый комментарий",
"mentionedByActor": "{{actor}} упомянул вас",
"mentioned": "Вас упомянули",
"timeLoggedOnTask": "Учтено время: «{{title}}»",
"timeLoggedOnUntitled": "Учтено время в задаче",
"workspaceCreated": "Рабочая область «{{name}}» создана"
},
"background": {
"summary_one": "Ещё {{count}} новое уведомление",
"summary_few": "Ещё {{count}} новых уведомления",
"summary_many": "Ещё {{count}} новых уведомлений",
"summary_other": "Ещё {{count}} нового уведомления",
"channelName": "Активность Kaneo",
"channelDescription": "Назначения, комментарии и упоминания из ваших рабочих областей"
},
"ui": {
"back": "Назад",
"loadFailed": "Не удалось загрузить",
"search": "Поиск",
"nothingMatches": "Ничего не найдено по запросу «{{query}}»"
},
"picker": {
"clear": "Очистить",
"nextWeek": "Следующая неделя",
"previousMonth": "Предыдущий месяц",
"nextMonth": "Следующий месяц"
},
"time": {
"now": "сейчас",
"justNow": "только что",
"minutesShort_one": "{{count}} мин",
"minutesShort_few": "{{count}} мин",
"minutesShort_many": "{{count}} мин",
"minutesShort_other": "{{count}} мин",
"hoursShort_one": "{{count}} ч",
"hoursShort_few": "{{count}} ч",
"hoursShort_many": "{{count}} ч",
"hoursShort_other": "{{count}} ч",
"secondsShort_one": "{{count}} с",
"secondsShort_few": "{{count}} с",
"secondsShort_many": "{{count}} с",
"secondsShort_other": "{{count}} с",
"minutesAgo_one": "{{count}} мин назад",
"minutesAgo_few": "{{count}} мин назад",
"minutesAgo_many": "{{count}} мин назад",
"minutesAgo_other": "{{count}} мин назад",
"hoursAgo_one": "{{count}} ч назад",
"hoursAgo_few": "{{count}} ч назад",
"hoursAgo_many": "{{count}} ч назад",
"hoursAgo_other": "{{count}} ч назад",
"durationHoursMinutes": "{{hours}} ч {{minutes}} мин",
"goodEvening": "Добрый вечер",
"goodMorning": "Доброе утро",
"goodAfternoon": "Добрый день",
"today": "Сегодня",
"tomorrow": "Завтра",
"yesterday": "Вчера",
"minutes_one": "{{count}} мин",
"minutes_few": "{{count}} мин",
"minutes_many": "{{count}} мин",
"minutes_other": "{{count}} мин",
"hours_one": "{{count}} ч",
"hours_few": "{{count}} ч",
"hours_many": "{{count}} ч",
"hours_other": "{{count}} ч"
},
"meta": {
"priority": {
"noPriority": "Без приоритета",
"low": "Низкий",
"medium": "Средний",
"high": "Высокий",
"urgent": "Срочный"
},
"labelColor": {
"stone": "Камень",
"slate": "Сланец",
"lavender": "Лаванда",
"sage": "Шалфей",
"forest": "Лес",
"amber": "Янтарь",
"terracotta": "Терракота",
"rose": "Роза",
"crimson": "Малиновый",
"ocean": "Океан",
"sky": "Небо",
"lagoon": "Лагуна",
"orchid": "Орхидея"
},
"role": {
"owner": "Владелец",
"admin": "Администратор",
"member": "Участник",
"viewer": "Наблюдатель"
},
"roleHint": {
"owner": "Полный доступ, включая удаление рабочей области",
"admin": "Также управляет участниками и настройками",
"member": "Создаёт и редактирует задачи",
"viewer": "Просматривает проекты и задачи"
}
},
"account": {
"title": "Аккаунт",
"description": "Как вас видят коллеги во всех рабочих областях.",
"profile": {
"title": "Профиль",
"photo": "Фото профиля",
"photoFormats": "PNG, JPG или WebP",
"change": "Изменить",
"name": "Имя",
"changePassword": "Сменить пароль"
},
"notifications": {
"title": "Уведомления",
"phone": "Уведомления на телефоне",
"phoneHint": "Проверка примерно каждые 15 минут",
"delivery": "Доставка и события",
"deliveryHint": "Email, ntfy, Gotify, вебхуки",
"invitations": "Приглашения",
"permissionDenied": "Сначала разрешите уведомления для Kaneo в настройках системы."
},
"connection": {
"title": "Подключение",
"server": "Сервер",
"signedInWith": "Способ входа",
"apiKey": "API-ключ",
"sessionToken": "Токен сессии",
"appVersion": "Версия приложения"
},
"signOut": {
"button": "Выйти",
"title": "Выйти?",
"message": "Вы сможете войти снова в любое время."
},
"photoMenu": {
"choose": "Выбрать фото",
"remove": "Удалить фото"
},
"toast": {
"photoUpdated": "Фото обновлено",
"photoRemoved": "Фото удалено",
"nameUpdated": "Имя обновлено",
"passwordChanged": "Пароль изменён"
},
"password": {
"title": "Сменить пароль",
"current": "Текущий пароль",
"new": "Новый пароль",
"confirm": "Подтвердите новый пароль",
"confirmPlaceholder": "Введите ещё раз",
"mismatch": "Пароли не совпадают",
"signOutOthers": "Выйти на других устройствах"
},
"deleteAccount": {
"confirm": "Delete account",
"confirmLabel": "Type {{email}} to confirm",
"description": "Permanently delete your account and its data.",
"modalDescription": "This permanently deletes your account and cannot be undone. Workspaces only you belong to are deleted with it. Elsewhere, your tasks stay and become unassigned, and your comments are removed.",
"modalTitle": "Delete your account?",
"noPassword": "This account has no password. Leave the field empty.",
"password": "Password",
"passwordHint": "Leave empty if you sign in without a password.",
"sectionTitle": "Danger zone",
"sessionTooOld": "For your security, enter your password, or sign out and sign in again before deleting your account.",
"success": "Your account was deleted",
"title": "Delete account",
"wrongPassword": "That password is not correct."
}
},
"notificationSettings": {
"title": "Уведомления",
"description": "Куда и о чём Kaneo будет вам сообщать.",
"on": "Вкл.",
"off": "Выкл.",
"notSet": "Не настроено",
"delivery": {
"title": "Доставка",
"email": "Электронная почта",
"emailHint": "На email вашего аккаунта",
"ntfyHint": "Отправлять уведомления в топик ntfy",
"gotifyHint": "Отправлять уведомления на сервер Gotify",
"webhook": "Вебхук",
"webhookHint": "Отправлять уведомления POST-запросом на URL"
},
"events": {
"title": "О чём уведомлять",
"assignments": "Назначения",
"assignmentsHint": "Когда вам назначают задачу",
"comments": "Комментарии",
"commentsHint": "Новые комментарии к вашим задачам",
"statusChanges": "Смена статуса",
"statusChangesHint": "Когда ваши задачи перемещаются между колонками",
"dueDate": "Напоминания о сроках",
"dueDateHint": "Перед сроком задачи, назначенной вам",
"remindMe": "Напомнить",
"remindBefore": "За {{time}}",
"remindPickerTitle": "Напомнить за"
},
"leadTime": {
"minutes15": "15 минут",
"hour1": "1 час",
"hours3": "3 часа",
"day1": "1 день",
"days2": "2 дня",
"week1": "1 неделя",
"minutes_one": "{{count}} минута",
"minutes_few": "{{count}} минуты",
"minutes_many": "{{count}} минут",
"minutes_other": "{{count}} минуты"
},
"channel": {
"enabled": "Отправлять уведомления сюда",
"webhookUrl": "URL вебхука",
"serverUrl": "URL сервера",
"topic": "Топик",
"accessToken": "Токен доступа",
"appToken": "Токен приложения",
"signingSecret": "Секрет подписи",
"secretSaved": "Сохранено. Введите новый, чтобы заменить",
"secretOptional": "Необязательно"
}
},
"workspaceSettings": {
"title": "Рабочая область",
"description": "Настройки для всех в {{name}}.",
"thisWorkspace": "этой рабочей области",
"general": {
"title": "Общие",
"name": "Название",
"description": "Описание",
"slug": "Slug: <mono>{{slug}}</mono>",
"save": "Сохранить изменения"
},
"manage": {
"title": "Управление",
"members": "Участники",
"labels": "Метки"
},
"danger": {
"title": "Опасная зона",
"leave": "Покинуть рабочую область",
"leaveHint": "Вернуться можно по новому приглашению",
"leaveButton": "Покинуть",
"delete": "Удалить рабочую область",
"deleteHint": "Удаляет все проекты и задачи в ней"
},
"confirm": {
"deleteTitle": "Удалить рабочую область?",
"leaveTitle": "Покинуть рабочую область?",
"deleteMessage": "Все проекты, задачи и комментарии в {{name}} будут удалены безвозвратно.",
"leaveMessage": "Вы потеряете доступ, пока вас снова не пригласят."
},
"toast": {
"updated": "Рабочая область обновлена",
"deleted": "Рабочая область удалена",
"left": "Вы покинули рабочую область"
}
},
"members": {
"title": "Участники",
"description_one": "{{count}} человек в {{name}}",
"description_few": "{{count}} человека в {{name}}",
"description_many": "{{count}} человек в {{name}}",
"description_other": "{{count}} человека в {{name}}",
"thisWorkspace": "этой рабочей области",
"invite": "Пригласить",
"pending": {
"title": "Ожидающие приглашения",
"expires": "{{role}}, истекает {{date}}",
"manage": "Управлять"
},
"people": {
"title": "Люди",
"unknown": "Неизвестно",
"you": "(вы)"
},
"memberMenu": {
"fallbackTitle": "Участник",
"changeRole": "Изменить роль",
"remove": "Удалить из рабочей области"
},
"rolePicker": {
"title": "Роль"
},
"remove": {
"title": "Удалить участника?",
"message": "{{name}} потеряет доступ к {{workspace}}.",
"they": "Участник",
"confirm": "Удалить"
},
"inviteMenu": {
"fallbackTitle": "Приглашение",
"resend": "Отправить повторно",
"cancel": "Отменить приглашение"
},
"inviteForm": {
"title": "Пригласить участника",
"intro": "Человек получит письмо со ссылкой для входа в {{workspace}}.",
"email": "Электронная почта",
"role": "Роль",
"send": "Отправить приглашение"
},
"toast": {
"roleUpdated": "Роль обновлена",
"removed": "Участник удалён",
"resent": "Приглашение отправлено повторно",
"canceled": "Приглашение отменено",
"sent": "Приглашение отправлено на {{email}}"
}
},
"labels": {
"title": "Метки",
"description": "Метки помогают группировать и фильтровать задачи.",
"new": "Новая метка",
"edit": "Изменить метку",
"delete": "Удалить метку",
"fallbackTitle": "Метка",
"empty": {
"title": "Нет меток",
"message": "Создавайте метки, чтобы группировать и фильтровать задачи во всех проектах."
},
"actions": "Действия для {{name}}",
"deleteTitle": "Удалить «{{name}}»?",
"deleteMessage": "Метка будет удалена из всех задач этой рабочей области.",
"form": {
"name": "Название",
"color": "Цвет"
},
"toast": {
"deleted": "Метка удалена"
}
},
"permissions": {
"photos": "Kaneo использует ваши фото, чтобы прикреплять изображения к задачам и комментариям, а также для фото профиля."
}
}
}