{ "auth": { "signIn": "Войти", "signUp": "Зарегистрироваться", "email": "Эл. почта", "password": "Пароль", "name": "Имя", "emailPlaceholder": "Введите адрес электронной почты", "passwordPlaceholder": "Введите пароль", "namePlaceholder": "Введите ваше имя", "passwordMinChars": "Введите пароль (минимум 6 символов)", "resetPassword": "Сбросить пароль", "resetPasswordInstructions": "Введите вашу почту для сброса пароля", "forgotPassword": "Забыли пароль?", "noAccount": "Нет аккаунта?", "hasAccount": "Уже есть аккаунт?", "signInToAccount": "Войдите в свой аккаунт", "createAccount": "Создайте свой аккаунт", "rememberMe": "Запомнить меня", "orContinueWith": "Или продолжить с", "checkYourEmail": "Проверьте вашу почту", "resetEmailSent": "Мы отправили ссылку для сброса пароля на вашу почту, если она существует в нашей системе.", "returnToLogin": "Вернуться ко входу", "forgotPasswordTitle": "Забыли пароль", "forgotPasswordDescription": "Введите адрес электронной почты, и мы отправим вам ссылку для сброса пароля.", "sending": "Отправка...", "sendResetLink": "Отправить ссылку для сброса", "backToLogin": "Вернуться ко входу", "signOut": "Выйти", "confirmPassword": "Подтвердите пароль", "confirmPasswordPlaceholder": "Подтвердите пароль" }, "sidebar": { "notes": "Заметки", "reminders": "Напоминания", "labels": "Метки", "editLabels": "Редактировать метки", "newNoteTabs": "Новая заметка", "newNoteTabsHint": "Создать заметку в этом блокноте", "noLabelsInNotebook": "В этом блокноте пока нет меток", "archive": "Архив", "trash": "Корзина", "clearFilter": "Remove filter" }, "notes": { "title": "Заметки", "newNote": "Новая заметка", "untitled": "Без названия", "placeholder": "Сделайте заметку...", "markdownPlaceholder": "Сделайте заметку... (Поддерживается Markdown)", "titlePlaceholder": "Заголовок", "listItem": "Элемент списка", "addListItem": "+ Элемент списка", "newChecklist": "Новый контрольный список", "add": "Добавить", "adding": "Добавление...", "close": "Закрыть", "confirmDelete": "Вы уверены, что хотите удалить эту заметку?", "confirmLeaveShare": "Вы уверены, что хотите покинуть эту общую заметку?", "sharedBy": "Поделился", "leaveShare": "Покинуть", "delete": "Удалить", "archive": "Архивировать", "unarchive": "Разархивировать", "pin": "Закрепить", "unpin": "Открепить", "color": "Цвет", "changeColor": "Изменить цвет", "setReminder": "Установить напоминание", "setReminderButton": "Установить напоминание", "date": "Дата", "time": "Время", "reminderDateTimeRequired": "Пожалуйста, введите дату и время", "invalidDateTime": "Недействительная дата или время", "reminderMustBeFuture": "Напоминание должно быть в будущем", "reminderSet": "Напоминание установлено на {datetime}", "reminderPastError": "Напоминание должно быть в будущем", "reminderRemoved": "Напоминание удалено", "addImage": "Добавить изображение", "addLink": "Добавить ссылку", "linkAdded": "Ссылка добавлена", "linkMetadataFailed": "Не удалось получить метаданные ссылки", "linkAddFailed": "Не удалось добавить ссылку", "invalidFileType": "Недопустимый тип файла: {fileName}. Разрешены только JPEG, PNG, GIF и WebP.", "fileTooLarge": "Файл слишком большой: {fileName}. Максимальный размер - {maxSize}.", "uploadFailed": "Не удалось загрузить {filename}", "contentOrMediaRequired": "Пожалуйста, введите содержимое или добавьте ссылку/изображение", "itemOrMediaRequired": "Пожалуйста, добавьте хотя бы один элемент или медиа", "noteCreated": "Заметка успешно создана", "noteCreateFailed": "Не удалось создать заметку", "deleted": "Note deleted", "deleteFailed": "Failed to delete note", "aiAssistant": "ИИ-помощник", "changeSize": "Изменить размер", "backgroundOptions": "Параметры фона", "moreOptions": "Больше параметров", "remindMe": "Напомнить мне", "markdownMode": "Markdown", "addCollaborators": "Добавить соавторов", "duplicate": "Дублировать", "share": "Поделиться", "showCollaborators": "Показать соавторов", "pinned": "Закреплённые", "others": "Другие", "noNotes": "Нет заметок", "noNotesFound": "Заметки не найдены", "createFirstNote": "Создайте свою первую заметку", "size": "Размер", "small": "Маленький", "medium": "Средний", "large": "Большой", "shareWithCollaborators": "Поделиться с соавторами", "view": "Просмотреть заметку", "edit": "Редактировать заметку", "readOnly": "Только чтение", "preview": "Предпросмотр", "noContent": "Нет содержимого", "takeNote": "Сделайте заметку...", "takeNoteMarkdown": "Сделайте заметку... (Поддерживается Markdown)", "addItem": "Добавить элемент", "sharedReadOnly": "Эта заметка предоставлена вам в режиме только для чтения", "makeCopy": "Сделать копию", "saving": "Сохранение...", "copySuccess": "Заметка успешно скопирована!", "copyFailed": "Не удалось скопировать заметку", "copy": "Копировать", "markdownOn": "Markdown ВКЛ", "markdownOff": "Markdown ВЫКЛ", "undo": "Отменить (Ctrl+Z)", "redo": "Повторить (Ctrl+Y)", "pinnedNotes": "Закреплённые заметки", "recent": "Недавние", "addNote": "Добавить заметку", "readMore": "Читать далее", "remove": "Удалить", "dragToReorder": "Перетащите для изменения порядка", "more": "Ещё", "emptyState": "Здесь нет заметок", "emptyStateTabs": "Здесь пока нет заметок. Используйте «Новая заметка» на боковой панели, чтобы добавить (предложения заголовков от ИИ появятся в редакторе).", "inNotebook": "В блокноте", "moveFailed": "Ошибка перемещения", "clarifyFailed": "Ошибка уточнения", "shortenFailed": "Ошибка сокращения", "improveFailed": "Ошибка улучшения", "transformFailed": "Ошибка преобразования", "markdown": "Markdown", "unpinned": "Откреплённая", "redoShortcut": "Повторить (Ctrl+Y)", "undoShortcut": "Отменить (Ctrl+Z)", "viewCards": "Вид карточек", "viewCardsTooltip": "Сетка карточек с перетаскиванием для изменения порядка", "viewTabs": "Список", "viewTabsTooltip": "Вкладки сверху, заметка снизу — перетаскивайте вкладки для сортировки", "viewModeGroup": "Режим отображения заметок", "reorderTabs": "Изменить порядок вкладок", "modified": "Изменено", "created": "Создано", "loading": "Загрузка...", "exportPDF": "Экспорт PDF", "savedStatus": "Сохранено", "dirtyStatus": "Изменено", "completedLabel": "Завершено", "notes.emptyNotebook": "Пустой блокнот", "notes.emptyNotebookDesc": "В этом блокноте нет заметок. Нажмите +, чтобы создать.", "notes.noNoteSelected": "Заметка не выбрана", "notes.selectOrCreateNote": "Выберите заметку из списка или создайте новую.", "commitVersion": "Сохранить версию", "versionSaved": "Версия сохранена", "deleteVersion": "Удалить эту версию", "versionDeleted": "Версия удалена", "deleteVersionConfirm": "Удалить эту версию навсегда?", "historyMode": "Режим истории", "historyModeManual": "Ручной (кнопка фиксации)", "historyModeAuto": "Автоматический (умный)", "historyModeManualDesc": "Создавать снимки вручную кнопкой фиксации", "historyModeAutoDesc": "Автоматические снимки с умным обнаружением", "history": "История", "historyRestored": "Версия восстановлена", "historyEnabled": "История включена", "historyDisabledTitle": "Version history", "historyDisabledDesc": "История отключена для вашей учётной записи.", "historyEnabledTitle": "History enabled!", "historyEnabledDesc": "Versions of this note will now be recorded.", "enableHistory": "Включить историю", "historyEmpty": "Нет доступных версий", "historySelectVersion": "Выберите версию для предпросмотра", "sortBy": "Сортировать по", "sortDateDesc": "Дата (новые)", "sortDateAsc": "Дата (старые)", "sortTitleAsc": "Заголовок А → Я", "sortTitleDesc": "Заголовок Я → А", "suggestTitle": "AI title", "generateTitleFromImage": "Generate title from image", "titleGenerated": "Title generated", "content": "Content", "restore": "Restore", "createFailed": "Failed to create note", "updateFailed": "Failed to update note", "archived": "Note archived", "archiveFailed": "Failed to archive", "sort": "Sort", "confirmDeleteTitle": "Delete note", "leftShare": "Share removed", "dismissed": "Note dismissed from recent", "generalNotes": "General Notes", "noteType": "Тип заметки", "typeText": "Текст", "typeMarkdown": "Markdown", "typeRichText": "Форматированный текст", "typeChecklist": "Чек-лист", "convertedToRichText": "Converted to rich text", "conversionFailed": "Conversion failed, staying in Markdown", "richTextPlaceholder": "Сделайте заметку...", "switchTypeTitle": "Сменить тип заметки?", "switchTypeWarning": "Некоторое форматирование может быть потеряно при смене на {type}.", "switchTypeContentPreserved": "Ваш контент будет сохранён как простой текст.", "switchType": "Переключить на {type}" }, "pagination": { "previous": "←", "pageInfo": "Страница {currentPage} / {totalPages}", "next": "→" }, "labels": { "title": "Labels", "filter": "Filter by Label", "manage": "Manage Labels", "manageTooltip": "Manage Labels", "changeColor": "Изменить цвет", "changeColorTooltip": "Изменить цвет", "delete": "Delete", "deleteTooltip": "Delete label", "confirmDelete": "Вы уверены, что хотите удалить эту метку?", "newLabelPlaceholder": "Create new label", "namePlaceholder": "Enter label name", "addLabel": "Добавить метку", "createLabel": "Create label", "labelName": "Label name", "labelColor": "Label color", "manageLabels": "Manage labels", "manageLabelsDescription": "Add or remove labels for this note. Click on a label to change its color.", "selectedLabels": "Selected Labels", "allLabels": "Все метки", "clearAll": "Очистить все", "filterByLabel": "Filter by label", "tagAdded": "Tag \"{tag}\" added", "showLess": "Show less", "showMore": "Show more", "editLabels": "Edit Labels", "editLabelsDescription": "Create, edit colors, or delete labels.", "noLabelsFound": "No labels found.", "loading": "Loading...", "notebookRequired": "⚠️ Labels are only available in notebooks. Move this note to a notebook first.", "count": "{count} меток", "noLabels": "Нет меток", "confirmDeleteShort": "Подтвердить?", "labelRemoved": "Метка \"{label}\" удалена" }, "search": { "placeholder": "Поиск", "searchPlaceholder": "Поиск в заметках...", "semanticInProgress": "ИИ-поиск...", "semanticTooltip": "Семантический поиск с ИИ", "searching": "Поиск...", "noResults": "Результаты не найдены", "resultsFound": "Найдено заметок: {count}", "exactMatch": "Точное совпадение", "related": "Связанные", "disabledAdmin": "Поиск отключён в режиме администратора" }, "collaboration": { "emailPlaceholder": "Введите адрес электронной почты", "addCollaborator": "Добавить соавтора", "removeCollaborator": "Удалить соавтора", "owner": "Владелец", "canEdit": "Может редактировать", "canView": "Может просматривать", "shareNote": "Поделиться заметкой", "shareWithCollaborators": "Поделиться с соавторами", "addCollaboratorDescription": "Добавьте людей для совместной работы над этой заметкой по их адресу электронной почты.", "viewerDescription": "У вас есть доступ к этой заметке. Только владелец может управлять соавторами.", "emailAddress": "Адрес электронной почты", "enterEmailAddress": "Введите адрес электронной почты", "invite": "Пригласить", "peopleWithAccess": "Люди с доступом", "noCollaborators": "Соавторов пока нет. Добавьте кого-нибудь выше!", "noCollaboratorsViewer": "Соавторов пока нет.", "pendingInvite": "Ожидающее приглашение", "pending": "Ожидает", "remove": "Удалить", "unnamedUser": "Безымянный пользователь", "done": "Готово", "willBeAdded": "{email} будет добавлен как соавтор при создании заметки", "alreadyInList": "Этот адрес уже в списке", "nowHasAccess": "{name} теперь имеет доступ к этой заметке", "accessRevoked": "Доступ был отозван", "errorLoading": "Ошибка загрузки соавторов", "failedToAdd": "Не удалось добавить соавтора", "failedToRemove": "Не удалось удалить соавтора" }, "ai": { "analyzing": "ИИ анализирует...", "clickToAddTag": "Нажмите, чтобы добавить этот тег", "ignoreSuggestion": "Игнорировать предложение", "generatingTitles": "Генерация заголовков...", "generateTitlesTooltip": "Сгенерировать заголовки с ИИ", "poweredByAI": "На базе ИИ", "languageDetected": "Язык определён", "processing": "Обработка...", "tagAdded": "Тег \"{tag}\" добавлен", "titleGenerating": "Генерация...", "titleGenerateWithAI": "Сгенерировать заголовки с ИИ", "titleGenerationMinWords": "Для генерации заголовков нужно минимум 10 слов (сейчас: {count} слов)", "titleGenerationError": "Ошибка генерации заголовков", "titlesGenerated": "💡 {count} заголовков сгенерировано!", "titleGenerationFailed": "Не удалось сгенерировать заголовки", "titleApplied": "Заголовок применён!", "reformulationNoText": "Пожалуйста, выделите текст или добавьте содержимое", "reformulationSelectionTooShort": "Выделение слишком короткое, используется весь текст", "reformulationMinWords": "Текст должен содержать минимум 10 слов (сейчас: {count} слов)", "reformulationMaxWords": "Текст должен содержать не более 500 слов", "reformulationError": "Ошибка при переформулировке", "reformulationFailed": "Не удалось переформулировать текст", "reformulationApplied": "Переформулированный текст применён!", "transformMarkdown": "Преобразовать в Markdown", "transforming": "Преобразование...", "transformSuccess": "Текст успешно преобразован в Markdown!", "transformError": "Ошибка при преобразовании", "assistant": "ИИ-ассистент", "generating": "Генерация...", "generateTitles": "Сгенерировать заголовки", "reformulateText": "Переформулировать текст", "reformulating": "Переформулирование...", "clarify": "Уточнить", "shorten": "Сократить", "improveStyle": "Улучшить стиль", "reformulationComparison": "Сравнение переформулировки", "original": "Оригинал", "reformulated": "Переформулировано", "autoLabels": { "error": "Не удалось получить предложения меток", "noLabelsSelected": "Метки не выбраны", "created": "{count} тегов успешно создано", "analyzing": "Анализ ваших заметок для предложений меток...", "title": "Предложения Меток", "description": "Я обнаружил повторяющиеся темы в \"{notebookName}\" ({totalNotes} заметках). Создать для них теги?", "note": "заметка", "notes": "заметки", "typeContent": "Введите содержимое для получения предложений меток...", "createNewLabel": "Создать новую метку", "new": "(новая)", "create": "Создать", "creating": "Создание меток...", "notesCount": "{count} заметок", "typeForSuggestions": "Введите для предложений" }, "batchOrganization": { "title": "Пакетная организация", "description": "ИИ проанализирует ваши заметки и предложит организовать их в блокноты.", "analyzing": "Анализ ваших заметок...", "noNotebooks": "Нет доступных блокнотов. Сначала создайте блокноты для организации заметок.", "noSuggestions": "ИИ не смог найти подходящий способ организации этих заметок.", "apply": "Применить", "applying": "Применение...", "success": "Организация завершена", "error": "Ошибка организации", "noNotesSelected": "Нет выбранных заметок", "applyFailed": "Ошибка применения", "selectAllIn": "Выбрать всё в", "selectNote": "Выбрать заметку" }, "notebookSummary": { "regenerate": "Перегенерировать Сводку", "regenerating": "Перегенерация сводки...", "exportPDF": "Экспортировать как PDF" }, "clarifyDesc": "Сделать текст яснее и понятнее", "shortenDesc": "Сократить текст и выделить суть", "improve": "Улучшить текст", "improveDesc": "Исправить грамматику и улучшить стиль", "toMarkdown": "Форматировать как Markdown", "toMarkdownDesc": "Добавить заголовки, списки и структурировать текст", "translate": "Перевести", "translateDesc": "Изменить язык текста", "translateBack": "Назад", "translationApplied": "Перевод применён", "translationFailed": "Не удалось перевести", "undo": "Отменить ИИ", "undoAI": "Отменить преобразование ИИ", "undoApplied": "Оригинальный текст восстановлен", "minWordsError": "Заметка должна содержать минимум 5 слов для использования действий ИИ.", "genericError": "Ошибка ИИ", "actionError": "Ошибка при выполнении действия ИИ", "appliedToNote": "Применено к заметке", "applyToNote": "Применить к заметке", "undoLastAction": "Отменить последнее действие ИИ", "selectContext": "Выберите контекст...", "selectNotebook": "Выбрать блокнот", "chatPlaceholder": "Попросите ИИ отредактировать, составить резюме или черновик...", "assistantTitle": "ИИ-ассистент", "currentNote": "Текущая заметка", "shrinkPanel": "Свернуть панель", "expandPanel": "Развернуть панель", "chatTab": "Чат", "noteActions": "Действия с заметкой", "askToStart": "Задайте вопрос ассистенту, чтобы начать.", "contextLabel": "Контекст", "thisNote": "Эта заметка", "allMyNotes": "Все мои заметки", "notebookGeneric": "Блокнот", "writingTone": "Тон письма", "askAboutThisNote": "Спросите ИИ об этой заметке...", "askAboutYourNotes": "Спросите ИИ о своих заметках...", "webSearchLabel": "Веб-поиск", "newLineHint": "Shift+Enter = новая строка", "resultLabel": "Результат", "discardAction": "Отклонить", "transformationsDesc": "Преобразования — применяются напрямую к заметке", "writeMinWordsAction": "Напишите минимум 5 слов для активации действий ИИ.", "processingAction": "Обработка...", "noImagesError": "No images in this note", "overview": "Overview", "action": { "clarify": "Уточнить", "shorten": "Сократить", "improve": "Улучшить", "toMarkdown": "В Markdown", "describeImages": "Describe images" }, "openAssistant": "Открыть ИИ-ассистент", "poweredByMomento": "На базе Momento AI", "welcomeMsg": "Привет! Я ваш ИИ-ассистент. Чем могу помочь с заметками? Могу уточнить стиль, развернуть мысль или сделать выжимку.", "summaryLast5": "Обзор последних 5 заметок", "analyzingProgress": "Анализ...", "generateInsightsBtn": "Сгенерировать обзор", "newDiscussion": "Новый разговор", "noRecentConversations": "Нет недавних разговоров.", "discussionContextLabel": "Контекст обсуждения", "webSearchNotConfigured": "Веб-поиск (Не настроен)", "historyTab": "История", "insightsTab": "Обзоры", "aiCopilot": "ИИ-копилот", "suggestTitle": "Предложение заголовка ИИ", "generateTitleFromImage": "Generate title from image", "titleGenerated": "Title generated from image" }, "titleSuggestions": { "available": "Предложения заголовков", "title": "Предложения ИИ", "generating": "Генерация...", "selectTitle": "Выберите заголовок", "dismiss": "Отклонить" }, "semanticSearch": { "exactMatch": "Точное совпадение", "related": "Связанные", "searching": "Поиск..." }, "paragraphRefactor": { "title": "Улучшение текста", "shorten": "Сократить", "expand": "Расширить", "improve": "Улучшить", "formal": "Формальный", "casual": "Непринуждённый" }, "memoryEcho": { "title": "Я заметил кое-что...", "description": "Проактивные связи между вашими заметками", "dailyInsight": "Ежедневная идея из ваших заметок", "insightReady": "Ваша идея готова!", "viewConnection": "Просмотреть связь", "helpful": "Полезно", "notHelpful": "Не полезно", "dismiss": "Пока отклонить", "thanksFeedback": "Спасибо за ваш отзыв!", "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения.", "connections": "Связи", "connection": "связь", "connectionsBadge": "{count} связ{plural}", "match": "{percentage}% совпадение", "fused": "Объединено", "clickToView": "Нажмите для просмотра", "overlay": { "title": "Связанные заметки", "searchPlaceholder": "Поиск связей...", "sortBy": "Сортировка:", "sortSimilarity": "Сходство", "sortRecent": "Новые", "sortOldest": "Старые", "viewAll": "Просмотреть все рядом", "loading": "Загрузка...", "noConnections": "Связи не найдены", "error": "Ошибка" }, "comparison": { "title": "💡 Сравнение заметок", "similarityInfo": "Эти заметки связаны на {similarity}% подобия", "highSimilarityInsight": "Эти заметки относятся к одной теме с высокой степенью подобия. Их можно объединить.", "untitled": "Без названия", "clickToView": "Нажмите для просмотра заметки", "helpfulQuestion": "Полезно ли это сравнение?", "helpful": "Полезно", "notHelpful": "Не полезно" }, "editorSection": { "title": "⚡ Связанные заметки ({count})", "loading": "Загрузка...", "view": "Просмотр", "compare": "Сравнить", "merge": "Объединить", "compareAll": "Сравнить всё", "mergeAll": "Объединить всё", "close": "Закрыть" }, "fusion": { "title": "🔗 Умное слияние", "mergeNotes": "Объединить {count} заметку/и", "notesToMerge": "📝 Заметки для объединения", "optionalPrompt": "💬 Промпт слияния (необязательно)", "promptPlaceholder": "Необязательные инструкции для ИИ (напр. 'Сохранить формальный стиль заметки 1')...", "generateFusion": "Сгенерировать слияние", "generating": "Генерация...", "previewTitle": "📝 Предпросмотр объединённой заметки", "edit": "Редактировать", "modify": "Изменить", "finishEditing": "Завершить редактирование", "optionsTitle": "Параметры слияния", "archiveOriginals": "Архивировать оригинальные заметки", "keepAllTags": "Сохранить все теги", "useLatestTitle": "Использовать последнюю заметку как заголовок", "createBacklinks": "Создать обратную ссылку на оригинальные заметки", "cancel": "Отмена", "confirmFusion": "Подтвердить слияние", "success": "Заметки успешно объединены!", "error": "Не удалось объединить заметки", "generateError": "Не удалось создать слияние", "noContentReturned": "API не вернул содержимого слияния", "unknownDate": "Неизвестная дата" } }, "notification": { "accept": "Accept", "accepted": "Share accepted", "decline": "Decline", "noNotifications": "No new notifications", "shared": "поделился(ась) \"{title}\"", "untitled": "Без названия", "notifications": "Уведомления", "declined": "В совместном доступе отказано", "removed": "Заметка удалена из списка" }, "nav": { "home": "Главная", "notes": "Заметки", "notebooks": "Блокноты", "generalNotes": "Общие заметки", "archive": "Архив", "settings": "Настройки", "profile": "Профиль", "aiSettings": "Настройки ИИ", "logout": "Выйти", "login": "Войти", "adminDashboard": "Панель администратора", "diagnostics": "Диагностика", "trash": "Корзина", "support": "Поддержать Memento ☕", "reminders": "Напоминания", "userManagement": "Управление пользователями", "accountSettings": "Настройки аккаунта", "manageAISettings": "Управление настройками ИИ", "configureAI": "Настройте функции на базе ИИ, провайдера и предпочтения", "supportDevelopment": "Поддержать разработку Memento ☕", "supportDescription": "Memento на 100% бесплатен и открыт. Ваша поддержка помогает сохранить это.", "buyMeACoffee": "Купить мне кофе", "donationDescription": "Сделайте единовременное пожертвование или станьте ежемесячным сторонником.", "donateOnKofi": "Пожертвовать на Ko-fi", "donationNote": "Без комиссий платформы • Мгновенные выплаты • Безопасно", "sponsorOnGithub": "Спонсорировать на GitHub", "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", "workspace": "Рабочее пространство", "quickAccess": "Быстрый доступ", "myLibrary": "Моя библиотека", "favorites": "Избранное", "recent": "Недавние", "proPlan": "Про-план", "chat": "ИИ-чат", "lab": "Лаборатория", "agents": "Агенты" }, "settings": { "title": "Настройки", "description": "Управление настройками и предпочтениями", "account": "Аккаунт", "appearance": "Внешний вид", "theme": "Тема", "themeLight": "Светлая", "themeDark": "Тёмная", "themeSystem": "Системная", "notifications": "Уведомления", "language": "Язык", "selectLanguage": "Выберите язык", "security": "Безопасность", "about": "О программе", "version": "Версия", "settingsSaved": "Настройки сохранены", "cardSizeMode": "Note Size", "cardSizeModeDescription": "Choose between variable sizes or uniform size", "selectCardSizeMode": "Select display mode", "cardSizeVariable": "Variable sizes (small/medium/large)", "cardSizeUniform": "Uniform size", "settingsError": "Ошибка сохранения настроек", "maintenance": "Обслуживание", "maintenanceDescription": "Инструменты для поддержания базы данных в рабочем состоянии", "cleanTags": "Очистить потерянные теги", "cleanTagsDescription": "Удалить теги, которые больше не используются ни в одной заметке", "cleanupDone": "Синхронизировано {created} записей меток, удалено {deleted} потерянных", "cleanupNothing": "Нечего делать — метки уже соответствуют вашим заметкам", "cleanupWithErrors": "некоторые операции завершились с ошибкой", "cleanupError": "Не удалось очистить метки", "indexingComplete": "Индексация завершена: обработано {count} заметок", "indexingError": "Ошибка при индексации", "semanticIndexing": "Семантическая индексация", "semanticIndexingDescription": "Создать векторы для всех заметок для поиска по смыслу", "profile": "Профиль", "searchNoResults": "Результаты не найдены", "languageAuto": "Автоматически", "emailNotifications": "Email-уведомления", "emailNotificationsDesc": "Получать важные уведомления по email", "desktopNotifications": "Уведомления на рабочем столе", "desktopNotificationsDesc": "Получать уведомления в браузере", "notificationsDesc": "Управление настройками уведомлений", "themeBaseGroup": "Base", "themePalettesGroup": "Color palettes", "themeSepia": "Sepia", "themeMidnight": "Midnight", "themeRose": "Rose", "themeGreen": "Green", "themeLavender": "Lavender", "themeSand": "Sand", "themeOcean": "Ocean", "themeSunset": "Sunset", "themeBlue": "Blue" }, "profile": { "title": "Профиль", "description": "Обновите вашу личную информацию", "displayName": "Отображаемое имя", "email": "Эл. почта", "changePassword": "Изменить пароль", "changePasswordDescription": "Обновите ваш пароль. Вам понадобится ваш текущий пароль.", "currentPassword": "Текущий пароль", "newPassword": "Новый пароль", "confirmPassword": "Подтвердите пароль", "updatePassword": "Обновить пароль", "passwordChangeSuccess": "Пароль успешно изменён", "passwordChangeFailed": "Не удалось изменить пароль", "passwordUpdated": "Пароль обновлён", "passwordError": "Ошибка обновления пароля", "languagePreferences": "Языковые предпочтения", "languagePreferencesDescription": "Выберите предпочитаемый язык для функций ИИ и интерфейса.", "preferredLanguage": "Предпочитаемый язык", "selectLanguage": "Выберите язык", "languageDescription": "Этот язык будет использоваться для функций на базе ИИ, анализа содержимого и текста интерфейса.", "autoDetect": "Автоопределение", "updateSuccess": "Профиль обновлён", "updateFailed": "Не удалось обновить профиль", "languageUpdateSuccess": "Язык успешно обновлён", "languageUpdateFailed": "Не удалось обновить язык", "profileUpdated": "Профиль обновлён", "profileError": "Ошибка обновления профиля", "accountSettings": "Настройки аккаунта", "manageAISettings": "Управление настройками ИИ", "displaySettings": "Настройки отображения", "displaySettingsDescription": "Настройте внешний вид и размер шрифта.", "fontSize": "Размер шрифта", "selectFontSize": "Выбрать размер шрифта", "fontSizeSmall": "Маленький", "fontSizeMedium": "Средний", "fontSizeLarge": "Большой", "fontSizeExtraLarge": "Очень большой", "fontSizeDescription": "Настройте размер шрифта для лучшей читаемости. Это применяется ко всему тексту интерфейса.", "fontSizeUpdateSuccess": "Размер шрифта успешно обновлён", "fontSizeUpdateFailed": "Не удалось обновить размер шрифта", "showRecentNotes": "Показать раздел недавних заметок", "showRecentNotesDescription": "Отображать недавние заметки (за последние 7 дней) на главной странице", "recentNotesUpdateSuccess": "Настройка недавних заметок успешно обновлена", "recentNotesUpdateFailed": "Не удалось обновить настройку недавних заметок" }, "aiSettings": { "title": "Настройки ИИ", "description": "Настройте функции и предпочтения на базе ИИ", "features": "Функции ИИ", "provider": "Провайдер ИИ", "providerAuto": "Авто (Рекомендуется)", "providerOllama": "Ollama (Локальный)", "providerOpenAI": "OpenAI (Облачный)", "frequency": "Частота", "frequencyDaily": "Ежедневно", "frequencyWeekly": "Еженедельно", "saving": "Сохранение...", "saved": "Настройка обновлена", "error": "Не удалось обновить настройку", "titleSuggestionsDesc": "Предлагать заголовки для заметок без названия после 50+ слов", "paragraphRefactorDesc": "Параметры улучшения текста с помощью ИИ", "frequencyDesc": "Как часто анализировать связи между заметками", "providerDesc": "Выберите предпочитаемого провайдера ИИ", "providerAutoDesc": "Ollama при наличии, иначе OpenAI", "providerOllamaDesc": "100% приватно, работает локально на вашем устройстве", "providerOpenAIDesc": "Наиболее точно, требует API-ключ" }, "general": { "loading": "Загрузка...", "save": "Сохранить", "cancel": "Отмена", "add": "Добавить", "edit": "Редактировать", "confirm": "Подтвердить", "close": "Закрыть", "back": "Назад", "next": "Далее", "previous": "Назад", "submit": "Отправить", "reset": "Сбросить", "apply": "Применить", "clear": "Очистить", "select": "Выбрать", "tryAgain": "Пожалуйста, попробуйте снова", "error": "Произошла ошибка", "operationSuccess": "Операция успешна", "operationFailed": "Операция не удалась", "testConnection": "Проверить подключение", "clean": "Очистить", "indexAll": "Индексировать все", "preview": "Предпросмотр" }, "colors": { "default": "По умолчанию", "red": "Красный", "blue": "Синий", "green": "Зелёный", "yellow": "Жёлтый", "purple": "Фиолетовый", "pink": "Розовый", "orange": "Оранжевый", "gray": "Серый" }, "reminder": { "title": "Напоминание", "setReminder": "Установить напоминание", "removeReminder": "Удалить напоминание", "reminderDate": "Дата напоминания", "reminderTime": "Время напоминания", "save": "Установить напоминание", "cancel": "Отмена" }, "reminders": { "title": "Напоминания", "empty": "Нет напоминаний", "emptyDescription": "Добавьте напоминание к заметке, и оно появится здесь.", "upcoming": "Предстоящие", "overdue": "Просроченные", "done": "Выполненные", "markDone": "Отметить как выполненное", "markUndone": "Отметить как невыполненное", "todayAt": "Сегодня в {time}", "tomorrowAt": "Завтра в {time}" }, "notebook": { "create": "Создать блокнот", "createNew": "Создать новый блокнот", "createDescription": "Начните новую коллекцию для эффективной организации ваших заметок, идей и проектов.", "name": "Название блокнота", "namePlaceholder": "напр. Маркетинговая стратегия Q4", "myNotebook": "Мой блокнот", "saving": "Сохранение...", "selectIcon": "Значок", "selectColor": "Цвет", "cancel": "Отмена", "creating": "Создание...", "edit": "Редактировать блокнот", "editDescription": "Измените название, значок и цвет вашего блокнота.", "delete": "Удалить блокнот", "deleteWarning": "Вы уверены, что хотите удалить этот блокнот? Заметки будут перемещены в Общие заметки.", "deleteConfirm": "Удалить", "summary": "Сводка блокнота", "summaryDescription": "Сгенерируйте сводку на основе ИИ всех заметок в этом блокноте.", "generating": "Генерация сводки...", "summaryError": "Ошибка генерации сводки", "labels": "Метки", "noLabels": "Нет меток", "pdfTitle": "Сводка — {name}", "pdfNotesLabel": "Заметки:", "pdfGeneratedOn": "Создано:", "confidence": "уверенность", "savingReminder": "Не удалось сохранить напоминание", "removingReminder": "Не удалось удалить напоминание", "generatingDescription": "Please wait..." }, "notebookSuggestion": { "title": "Переместить в {name}?", "description": "Эта заметка, похоже, принадлежит этому блокноту", "move": "Переместить", "dismiss": "Отклонить", "dismissIn": "Отклонить (закроется через {timeLeft}с)", "moveToNotebook": "Переместить в блокнот", "generalNotes": "Общие заметки" }, "admin": { "title": "Панель администратора", "userManagement": "Управление пользователями", "chat": "ИИ-чат", "lab": "Лаборатория", "agents": "Агенты", "workspace": "Рабочее пространство", "settings": "Настройки администратора", "security": { "title": "Настройки безопасности", "description": "Управление контролем доступа и политиками регистрации.", "allowPublicRegistration": "Разрешить публичную регистрацию", "allowPublicRegistrationDescription": "Если отключено, новые пользователи могут быть добавлены только администратором через страницу управления пользователями.", "updateSuccess": "Настройки безопасности обновлены", "updateFailed": "Не удалось обновить настройки безопасности" }, "ai": { "title": "Конфигурация ИИ", "description": "Настройте провайдеров ИИ для автоматических тегов и семантического поиска. Используйте разных провайдеров для оптимальной производительности.", "tagsGenerationProvider": "Провайдер генерации тегов", "tagsGenerationDescription": "Провайдер ИИ для автоматических предложений тегов. Рекомендуется: Ollama (бесплатно, локально).", "embeddingsProvider": "Провайдер эмбеддингов", "embeddingsDescription": "Провайдер ИИ для эмбеддингов семантического поиска. Рекомендуется: OpenAI (лучшее качество).", "chatProvider": "Провайдер чата", "chatDescription": "Провайдер ИИ для чат-ассистента. Если не настроен, используется провайдер тегов.", "provider": "Провайдер", "baseUrl": "Базовый URL", "model": "Модель", "apiKey": "API-ключ", "selectOllamaModel": "Выберите модель Ollama, установленную в вашей системе", "openAIKeyDescription": "Ваш API-ключ OpenAI с platform.openai.com", "modelRecommendations": "gpt-4o-mini = Лучшее соотношение • gpt-4o = Лучшее качество", "commonModelsDescription": "Популярные модели для API, совместимых с OpenAI", "selectEmbeddingModel": "Выберите модель эмбеддингов, установленную в вашей системе", "commonEmbeddingModels": "Популярные модели эмбеддингов для API, совместимых с OpenAI", "saving": "Сохранение...", "saveSettings": "Сохранить настройки ИИ", "openTestPanel": "Открыть панель тестирования ИИ", "updateSuccess": "Настройки ИИ успешно обновлены", "updateFailed": "Не удалось обновить настройки ИИ", "providerTagsRequired": "AI_PROVIDER_TAGS обязателен", "providerEmbeddingRequired": "AI_PROVIDER_EMBEDDING обязателен", "providerOllamaOption": "🦙 Ollama (Локальный и бесплатный)", "providerOpenAIOption": "🤖 OpenAI (GPT-5, GPT-4)", "providerCustomOption": "🔧 Пользовательский (совместимый с OpenAI)", "providerDeepSeekOption": "🔍 DeepSeek", "providerOpenRouterOption": "🌐 OpenRouter", "providerMistralOption": "🌀 Mistral AI", "providerZAIOption": "✨ Z.AI", "providerLMStudioOption": "🖥️ LM Studio (Локальный)", "bestValue": "Лучшее соотношение цена/качество", "bestQuality": "Лучшее качество", "saved": "(Сохранено)", "fetchModelsFailed": "Не удалось получить модели", "refreshModels": "Обновить модели", "configured": "Настроен", "fetchingModels": "Загрузка моделей...", "clickToLoadModels": "Нажмите ↺ для загрузки моделей", "searchModel": "Поиск модели...", "noModels": "Нет моделей. Нажмите ↺", "modelsAvailable": "{count} модел(ей) доступно", "enterUrlToLoad": "Введите URL и нажмите ↺", "currentProvider": "(Текущий: {provider})", "pageTitle": "Управление ИИ", "pageDescription": "Мониторинг и настройка функций ИИ", "configure": "Настроить", "features": "Функции ИИ", "providerStatus": "Статус провайдеров ИИ", "recentRequests": "Недавние запросы ИИ", "comingSoon": "Скоро", "activeFeatures": "Активные функции", "successRate": "Успешность", "avgResponseTime": "Среднее время ответа", "configuredProviders": "Настроенные провайдеры", "settingUpdated": "Настройка обновлена", "updateFailedShort": "Ошибка обновления", "titleSuggestions": "Предложения заголовков", "titleSuggestionsDesc": "Предлагает заголовки для заметок после 50+ слов", "aiAssistant": "ИИ-ассистент", "aiAssistantDesc": "Включить ИИ-чат и инструменты улучшения текста", "memoryEchoFeature": "Я заметил кое-что...", "memoryEchoFeatureDesc": "Ежедневный анализ связей между заметками", "languageDetection": "Определение языка", "languageDetectionDesc": "Автоопределение языка каждой заметки", "autoLabeling": "Автомаркировка", "autoLabelingDesc": "Автопредложение и применение меток" }, "resend": { "title": "Resend (Рекомендуется)", "description": "Отправляйте письма через API Resend. Приоритетнее SMTP, если настроен.", "apiKey": "API-ключ Resend", "apiKeyHint": "Получите API-ключ на resend.com. Используется для уведомлений агентов и сброса паролей.", "saveSettings": "Сохранить настройки Resend", "updateSuccess": "Настройки Resend обновлены", "updateFailed": "Не удалось обновить настройки Resend", "configured": "Resend настроен и активен" }, "email": { "title": "Настройка почты", "description": "Настройте отправку писем для уведомлений агентов и сброса паролей.", "provider": "Почтовый провайдер", "saveSettings": "Сохранить настройки почты", "status": "Service Status", "keySet": "key configured", "activeAuto": "Auto mode: Resend will be used first, SMTP as fallback.", "activeSmtp": "Auto mode: SMTP will be used (Resend not configured).", "noneConfigured": "No email service configured. Set up Resend or SMTP.", "activeProvider": "Active provider", "testOk": "test passed", "testFail": "test failed" }, "smtp": { "title": "Конфигурация SMTP", "description": "Настройте почтовый сервер для сброса паролей.", "host": "Хост", "port": "Порт", "username": "Имя пользователя", "password": "Пароль", "fromEmail": "Адрес отправителя", "forceSSL": "Принудительный SSL/TLS (обычно для порта 465)", "ignoreCertErrors": "Игнорировать ошибки сертификатов (только для Self-hosted/Dev)", "saveSettings": "Сохранить настройки SMTP", "sending": "Отправка...", "testEmail": "Тестовое письмо", "updateSuccess": "Настройки SMTP обновлены", "updateFailed": "Не удалось обновить настройки SMTP", "testSuccess": "Тестовое письмо успешно отправлено!", "testFailed": "Ошибка: {error}" }, "users": { "createUser": "Создать пользователя", "addUser": "Добавить пользователя", "createUserDescription": "Добавьте нового пользователя в систему.", "name": "Имя", "email": "Эл. почта", "password": "Пароль", "role": "Роль", "createSuccess": "Пользователь успешно создан", "createFailed": "Не удалось создать пользователя", "deleteSuccess": "Пользователь удалён", "deleteFailed": "Не удалось удалить", "roleUpdateSuccess": "Роль пользователя обновлена на {role}", "roleUpdateFailed": "Не удалось обновить роль", "demote": "Понизить", "promote": "Повысить", "confirmDelete": "Вы уверены, что хотите удалить этого пользователя?", "table": { "name": "Имя", "email": "Эл. почта", "role": "Роль", "createdAt": "Дата создания", "actions": "Действия" }, "roles": { "user": "Пользователь", "admin": "Администратор" }, "title": "Пользователи", "description": "Управление пользователями и правами" }, "aiTest": { "title": "Тестирование провайдера ИИ", "description": "Протестируйте провайдеров ИИ для генерации тегов и эмбеддингов семантического поиска", "tagsTestTitle": "Тест генерации тегов", "tagsTestDescription": "Протестируйте провайдер ИИ, отвечающий за автоматические предложения тегов", "embeddingsTestTitle": "Тест эмбеддингов", "embeddingsTestDescription": "Протестируйте провайдер ИИ, отвечающий за эмбеддинги семантического поиска", "howItWorksTitle": "Как работает тестирование", "tagsGenerationTest": "🏷️ Тест генерации тегов:", "tagsStep1": "Отправляет пример заметки провайдеру ИИ", "tagsStep2": "Запрашивает 3-5 релевантных тегов на основе содержимого", "tagsStep3": "Отображает сгенерированные теги с оценками уверенности", "tagsStep4": "Измеряет время ответа", "embeddingsTestLabel": "🔍 Тест эмбеддингов:", "embeddingsStep1": "Отправляет пример текста провайдеру эмбеддингов", "embeddingsStep2": "Генерирует векторное представление (список чисел)", "embeddingsStep3": "Отображает размерность эмбеддингов и примеры значений", "embeddingsStep4": "Проверяет, что вектор корректен и правильно отформатирован", "tipContent": "Вы можете использовать разных провайдеров для тегов и эмбеддингов! Например, Ollama (бесплатно) для тегов и OpenAI (лучшее качество) для эмбеддингов, чтобы оптимизировать расходы и производительность.", "provider": "Провайдер:", "model": "Модель:", "testing": "Тестирование...", "runTest": "Запустить тест", "testPassed": "Тест пройден", "testFailed": "Тест не пройден", "testSuccessToast": "Тест {type} успешен!", "testFailedToast": "Тест {type} не пройден", "testingType": "Тестирование {type}...", "technicalDetails": "Технические детали", "responseTime": "Время ответа: {time}мс", "generatedTags": "Сгенерированные теги:", "embeddingDimensions": "Размерность эмбеддингов:", "vectorDimensions": "размерностей вектора", "first5Values": "Первые 5 значений:", "error": "Ошибка:", "testError": "Ошибка теста: {error}", "tipTitle": "Совет:", "tipDescription": "Используйте панель тестирования ИИ для диагностики проблем конфигурации перед тестированием." }, "sidebar": { "dashboard": "Панель управления", "users": "Пользователи", "aiManagement": "Управление ИИ", "chat": "ИИ-чат", "lab": "Лаборатория (Идеи)", "agents": "Агенты", "settings": "Настройки" }, "metrics": { "vsLastPeriod": "к предыдущему периоду" }, "tools": { "title": "Инструменты Агента", "description": "Настройте внешние инструменты для использования агентами: веб-поиск, веб-скрейпинг и доступ к API.", "searchProvider": "Провайдер Веб-поиска", "searxng": "SearXNG (Самостоятельный)", "brave": "Brave Search API", "both": "Оба (SearXNG основной, Brave запасной)", "searxngUrl": "URL SearXNG", "braveKey": "Ключ Brave Search API", "jinaKey": "Ключ Jina Reader API", "jinaKeyOptional": "Необязательно — работает без ключа, но с ограничениями", "jinaKeyDescription": "Используется для веб-скрейпинга. Работает без ключа, но с ограничениями скорости.", "saveSettings": "Сохранить Настройки Инструментов", "updateSuccess": "Настройки инструментов успешно обновлены", "updateFailed": "Не удалось обновить настройки инструментов", "testing": "Тестирование...", "testSearch": "Тестировать веб-поиск" }, "settingsDescription": "Настройки приложения", "dashboard": { "title": "Панель управления", "description": "Обзор метрик приложения", "recentActivity": "Недавняя активность", "recentActivityPlaceholder": "Недавняя активность будет отображена здесь." }, "error": { "title": "Ошибка в панели администратора", "description": "Не удалось отобразить страницу. Повторите попытку.", "retry": "Повторить" } }, "about": { "title": "О программе", "description": "Информация о приложении", "appName": "Memento", "appDescription": "Мощное приложение для заметок с функциями на базе ИИ", "version": "Версия", "buildDate": "Дата сборки", "platform": "Платформа", "platformWeb": "Веб", "features": { "title": "Функции", "description": "Возможности на базе ИИ", "titleSuggestions": "Предложения заголовков с ИИ", "semanticSearch": "Семантический поиск с эмбеддингами", "paragraphReformulation": "Реформулировка абзацев", "memoryEcho": "Ежедневные идеи Memory Echo", "notebookOrganization": "Организация по блокнотам", "dragDrop": "Управление заметками перетаскиванием", "labelSystem": "Система меток", "multipleProviders": "Несколько провайдеров ИИ (OpenAI, Ollama)" }, "technology": { "title": "Технологический стек", "description": "Создано с использованием современных технологий", "frontend": "Фронтенд", "backend": "Бэкенд", "database": "База данных", "authentication": "Аутентификация", "ai": "ИИ", "ui": "UI", "testing": "Тестирование" }, "support": { "title": "Поддержка", "description": "Получите помощь и оставьте отзыв", "documentation": "Документация", "reportIssues": "Сообщить о проблемах", "feedback": "Отзыв" } }, "support": { "title": "Поддержать разработку Memento", "description": "Memento на 100% бесплатен и с открытым кодом. Ваша поддержка помогает сохранить это.", "buyMeACoffee": "Купить мне кофе", "donationDescription": "Сделайте разовое пожертвование или станьте ежемесячным сторонником.", "donateOnKofi": "Пожертвовать на Ko-fi", "kofiDescription": "Без комиссий платформы • Мгновенные выплаты • Безопасно", "sponsorOnGithub": "Спонсировать на GitHub", "sponsorDescription": "Станьте ежемесячным спонсором и получите признание.", "githubDescription": "Регулярная поддержка • Публичное признание • Ориентировано на разработчиков", "howSupportHelps": "Как помогает ваша поддержка", "directImpact": "Прямое влияние", "sponsorPerks": "Преимущества спонсора", "transparency": "Прозрачность", "transparencyDescription": "Я верю в полную прозрачность. Вот как используются пожертвования:", "hostingServers": "Хостинг и серверы:", "domainSSL": "Домен и SSL:", "aiApiCosts": "Расходы на API ИИ:", "totalExpenses": "Общие расходы:", "otherWaysTitle": "Другие способы поддержки", "starGithub": "Поставить звезду на GitHub", "reportBug": "Сообщить об ошибке", "contributeCode": "Внести вклад в код", "shareTwitter": "Поделиться в Twitter" }, "demoMode": { "title": "Демо-режим", "activated": "Демо-режим активирован! Memory Echo будет работать мгновенно.", "deactivated": "Демо-режим деактивирован. Обычные параметры восстановлены.", "toggleFailed": "Ошибка переключения демо-режима", "description": "Ускоряет Memory Echo для тестирования. Связи появляются мгновенно.", "parametersActive": "Активные демо-параметры:", "similarityThreshold": "Порог сходства 50% (обычно 75%)", "delayBetweenNotes": "Задержка 0 дней между заметками (обычно 7 дней)", "unlimitedInsights": "Неограниченные идеи (без ограничений частоты)", "createNotesTip": "Создайте 2+ похожие заметки и увидьте Memory Echo в действии!" }, "resetPassword": { "title": "Сброс пароля", "description": "Введите ваш новый пароль ниже.", "invalidLinkTitle": "Недействительная ссылка", "invalidLinkDescription": "Эта ссылка для сброса пароля недействительна или истекла.", "requestNewLink": "Запросить новую ссылку", "newPassword": "Новый пароль", "confirmNewPassword": "Подтвердите новый пароль", "resetting": "Сброс...", "resetPassword": "Сбросить пароль", "passwordMismatch": "Пароли не совпадают", "success": "Пароль успешно сброшен. Теперь вы можете войти.", "loading": "Загрузка..." }, "dataManagement": { "title": "Управление данными", "toolsDescription": "Инструменты для поддержания базы данных в рабочем состоянии", "exporting": "Экспорт...", "importing": "Импорт...", "deleting": "Удаление...", "dangerZone": "Опасная зона", "dangerZoneDescription": "Эти действия необратимы", "indexingComplete": "Индексация завершена", "indexingError": "Ошибка индексации", "cleanupComplete": "Очистка завершена", "cleanupError": "Ошибка очистки", "export": { "title": "Экспортировать все заметки", "description": "Скачать все заметки в формате JSON. Включает всё содержимое, метки и метаданные.", "button": "Экспортировать заметки", "success": "Заметки успешно экспортированы", "failed": "Не удалось экспортировать заметки" }, "import": { "title": "Импортировать заметки", "description": "Загрузите JSON-файл для импорта заметок. Они будут добавлены к существующим, а не заменят их.", "button": "Импортировать заметки", "success": "Импортировано {count} заметок", "failed": "Не удалось импортировать заметки" }, "delete": { "title": "Удалить все заметки", "description": "Безвозвратно удалить все заметки. Это действие нельзя отменить.", "button": "Удалить все заметки", "confirm": "Вы уверены? Все ваши заметки будут удалены безвозвратно.", "success": "Все заметки удалены", "failed": "Не удалось удалить заметки" }, "indexing": { "title": "Перестроить поисковый индекс", "description": "Перегенерировать эмбеддинги для всех заметок для улучшения семантического поиска.", "button": "Перестроить индекс", "success": "Индексация завершена: обработано {count} заметок", "failed": "Ошибка при индексации" }, "cleanup": { "title": "Очистка потерянных данных", "description": "Удалить метки и связи, ссылающиеся на удалённые заметки.", "button": "Очистить", "failed": "Ошибка при очистке" } }, "appearance": { "title": "Внешний вид", "description": "Настройте внешний вид приложения", "notesViewDescription": "Выберите, как отображаются заметки на главной странице и в блокнотах.", "notesViewLabel": "Макет заметок", "notesViewTabs": "Вкладки (в стиле OneNote)", "notesViewMasonry": "Карточки (сетка)", "selectTheme": "Select theme", "fontFamilyLabel": "Семейство шрифтов", "fontFamilyDescription": "Выберите шрифт, используемый во всём приложении", "selectFontFamily": "Inter оптимизирован для читаемости, Системный использует нативный шрифт вашей ОС", "fontSystem": "Системный шрифт по умолчанию" }, "generalSettings": { "title": "Общие настройки", "description": "Общие настройки приложения" }, "toast": { "saved": "Настройка сохранена", "saveFailed": "Ошибка сохранения настройки", "operationSuccess": "Операция успешна", "operationFailed": "Операция не удалась", "openingConnection": "Открытие соединения...", "openConnectionFailed": "Ошибка открытия соединения", "thanksFeedback": "Спасибо за ваш отзыв!", "thanksFeedbackImproving": "Спасибо! Мы используем это для улучшения.", "feedbackFailed": "Ошибка отправки отзыва", "notesFusionSuccess": "Заметки успешно объединены!" }, "testPages": { "titleSuggestions": { "title": "Тест предложений заголовков", "contentLabel": "Содержимое (нужно более 50 слов):", "placeholder": "Напишите минимум 50 слов здесь...", "wordCount": "Количество слов:", "status": "Статус:", "analyzing": "Анализ...", "idle": "Ожидание", "error": "Ошибка:", "suggestions": "Предложения ({count}):", "noSuggestions": "Пока нет предложений. Напишите 50+ слов и подождите 2 секунды." } }, "trash": { "title": "Корзина", "empty": "Корзина пуста", "emptyDescription": "Удалённые заметки появятся здесь", "restore": "Восстановить", "deletePermanently": "Удалить навсегда", "noteTrashed": "Заметка перемещена в корзину", "noteRestored": "Заметка восстановлена", "notePermanentlyDeleted": "Заметка удалена навсегда", "emptyTrash": "Очистить корзину", "emptyTrashConfirm": "Удалить навсегда все заметки из корзины?", "emptyTrashSuccess": "Корзина очищена", "permanentDelete": "Удалить навсегда", "permanentDeleteConfirm": "Эта заметка будет удалена навсегда. Это действие нельзя отменить." }, "footer": { "privacy": "Конфиденциальность", "terms": "Условия", "openSource": "Open Source клон" }, "connection": { "similarityInfo": "Эти заметки связаны на {similarity}% сходства", "clickToView": "Нажмите для просмотра заметки", "isHelpful": "Эта связь полезна?", "helpful": "Полезно", "notHelpful": "Не полезно", "memoryEchoDiscovery": "Обнаружение Memory Echo" }, "diagnostics": { "title": "Диагностика", "description": "Проверьте статус подключения к провайдеру ИИ", "configuredProvider": "Настроенный провайдер", "apiStatus": "Статус API", "operational": "Работает", "errorStatus": "Ошибка", "checking": "Проверка...", "testDetails": "Детали теста:", "troubleshootingTitle": "Советы по устранению неполадок:", "tip1": "Убедитесь, что Ollama запущен (ollama serve)", "tip2": "Проверьте, что модель установлена (ollama pull llama3)", "tip3": "Проверьте ваш API-ключ для OpenAI", "tip4": "Проверьте сетевое подключение" }, "batch": { "organizeWithAI": "Организовать с ИИ", "organize": "Организовать" }, "common": { "unknown": "Неизвестно", "notAvailable": "Недоступно", "loading": "Загрузка...", "error": "Ошибка", "success": "Успешно", "confirm": "Подтвердить", "cancel": "Отмена", "close": "Закрыть", "save": "Сохранить", "delete": "Удалить", "edit": "Редактировать", "add": "Добавить", "remove": "Удалить", "search": "Поиск", "noResults": "Нет результатов", "required": "Обязательно", "optional": "Необязательно" }, "time": { "justNow": "Только что", "minutesAgo": "{count} минут назад", "hoursAgo": "{count} часов назад", "daysAgo": "{count} дней назад", "yesterday": "Вчера", "today": "Сегодня", "tomorrow": "Завтра" }, "favorites": { "title": "Избранное", "toggleSection": "Переключить раздел", "noFavorites": "Нет избранного", "pinToFavorite": "Добавить в избранное" }, "notebooks": { "create": "Создать блокнот", "allNotebooks": "Все блокноты", "noNotebooks": "Нет блокнотов", "createFirst": "Создайте свой первый блокнот" }, "ui": { "close": "Закрыть", "open": "Открыть", "expand": "Развернуть", "collapse": "Свернуть" }, "mcpSettings": { "title": "Настройки MCP", "description": "Управление ключами API и настройка внешних инструментов", "whatIsMcp": { "title": "Что такое MCP?", "description": "Model Context Protocol (MCP) — это открытый протокол, позволяющий моделям ИИ безопасно взаимодействовать с внешними инструментами и источниками данных. С помощью MCP вы можете подключить такие инструменты, как Claude Code, Cursor или N8N, к вашему экземпляру Memento для программного чтения, создания и организации заметок.", "learnMore": "Подробнее о MCP" }, "serverStatus": { "title": "Состояние сервера", "running": "Запущен", "stopped": "Остановлен", "mode": "Режим", "url": "URL" }, "apiKeys": { "title": "Ключи API", "description": "Ключи API позволяют внешним инструментам получать доступ к вашим заметкам через MCP. Храните ключи в секрете.", "generate": "Создать новый ключ", "empty": "Нет ключей API. Создайте один, чтобы начать.", "active": "Активен", "revoked": "Отозван", "revoke": "Отозвать", "delete": "Удалить", "createdAt": "Создан", "lastUsed": "Последнее использование", "never": "Никогда", "confirmRevoke": "Вы уверены, что хотите отозвать этот ключ? Инструменты, использующие его, потеряют доступ.", "confirmDelete": "Вы уверены, что хотите навсегда удалить этот ключ?" }, "createDialog": { "title": "Создать ключ API", "description": "Создайте новый ключ API для подключения внешних инструментов к вашим заметкам.", "nameLabel": "Имя ключа", "namePlaceholder": "напр. Claude Code, Cursor, N8N", "generating": "Генерация...", "generate": "Создать", "successTitle": "Ключ API создан", "successDescription": "Скопируйте ключ API сейчас. Вы не сможете увидеть его снова.", "copy": "Копировать", "copied": "Скопировано!", "done": "Готово" }, "configInstructions": { "title": "Инструкции по настройке", "description": "Используйте свой ключ API для настройки этих инструментов.", "claudeCode": { "title": "Claude Code", "description": "Добавьте это в файл конфигурации MCP Claude Code:" }, "cursor": { "title": "Cursor", "description": "Добавьте это в настройки MCP Cursor:" }, "n8n": { "title": "N8N", "description": "Используйте эти учётные данные в узле N8N MCP:" } } }, "agents": { "title": "Агенты", "subtitle": "Автоматизируйте задачи мониторинга и исследований", "newAgent": "Новый агент", "myAgents": "Мои агенты", "searchPlaceholder": "Search agents...", "filterAll": "All", "newBadge": "New", "noResults": "No agents match your search.", "noAgents": "Нет агентов", "noAgentsDescription": "Создайте своего первого агента или установите шаблон ниже для автоматизации задач мониторинга.", "types": { "scraper": "Монитор", "researcher": "Исследователь", "monitor": "Наблюдатель", "custom": "Пользовательский" }, "typeDescriptions": { "scraper": "Собирает данные с нескольких сайтов и создаёт сводку", "researcher": "Ищет информацию по теме", "monitor": "Следит за блокнотом и анализирует заметки", "custom": "Свободный агент с вашим промптом" }, "form": { "agentType": "Тип агента", "name": "Имя", "namePlaceholder": "напр. Еженедельный обзор ИИ", "description": "Описание (необязательно)", "descriptionPlaceholder": "Еженедельная сводка новостей ИИ", "urlsLabel": "URL-адреса для сбора", "urlsOptional": "(необязательно)", "sourceNotebook": "Блокнот для наблюдения", "selectNotebook": "Выберите блокнот...", "targetNotebook": "Целевой блокнот", "inbox": "Входящие", "instructions": "Инструкции для ИИ", "instructionsPlaceholder": "Опишите поведение агента...", "frequency": "Частота", "cancel": "Отмена", "saving": "Сохранение...", "save": "Сохранить", "create": "Создать агента", "editTitle": "Редактировать агента", "createTitle": "Новый агент", "nameRequired": "Имя обязательно", "addUrl": "Добавить URL", "advancedMode": "Расширенный режим", "instructionsHint": "заменяет автоматический промпт", "researchTopic": "Тема исследования", "researchTopicPlaceholder": "напр: Последние достижения в области ИИ", "notifyEmail": "Email-уведомление", "notifyEmailHint": "Получайте письмо с результатами агента после каждого запуска", "includeImages": "Include images", "includeImagesHint": "Extract images from scraped pages and attach them to the generated note", "back": "Back", "configuration": "Configuration", "options": "Options" }, "frequencies": { "manual": "Вручную", "hourly": "Ежечасно", "daily": "Ежедневно", "weekly": "Еженедельно", "monthly": "Ежемесячно" }, "schedule": { "nextRun": "Next run", "pending": "Pending trigger", "time": "Time", "dayOfWeek": "Day of week", "dayOfMonth": "Day of month", "days": { "mon": "Monday", "tue": "Tuesday", "wed": "Wednesday", "thu": "Thursday", "fri": "Friday", "sat": "Saturday", "sun": "Sunday" } }, "status": { "success": "Успешно", "failure": "Сбой", "running": "Выполняется", "pending": "Ожидание", "nextRun": "След. запуск", "lastStatus": "Последний статус" }, "actions": { "edit": "Редактировать", "run": "Запустить", "delete": "Удалить", "deleteConfirm": "Удалить агента \"{name}\"?", "toggleOn": "Агент включён", "toggleOff": "Агент отключён" }, "toasts": { "created": "Агент создан", "updated": "Агент обновлён", "deleted": "\"{name}\" удалён", "deleteError": "Ошибка удаления", "runSuccess": "\"{name}\" успешно выполнен", "runError": "Ошибка: {error}", "runFailed": "Выполнение не удалось", "runGenericError": "Ошибка при выполнении", "toggleError": "Ошибка переключения агента", "installSuccess": "\"{name}\" установлен", "installError": "Ошибка при установке", "saveError": "Ошибка сохранения", "autoRunSuccess": "Agent \"{name}\" executed automatically with success", "autoRunError": "Agent \"{name}\" failed during automatic execution" }, "templates": { "title": "Шаблоны", "install": "Установить", "installing": "Установка...", "veilleAI": { "name": "Обзор ИИ", "description": "Собирает данные с 5 сайтов, специализирующихся на ИИ, и генерирует еженедельную сводку." }, "veilleTech": { "name": "Обзор технологий", "description": "Собирает данные с крупных технических сайтов и создаёт сводку новостей." }, "veilleDev": { "name": "Обзор разработок", "description": "Собирает данные с сайтов для разработчиков и обобщает новые технологии и фреймворки." }, "surveillant": { "name": "Наблюдатель за заметками", "description": "Анализирует недавние заметки из блокнота и предлагает дополнения, ссылки и связи." }, "chercheur": { "name": "Исследователь темы", "description": "Ищет подробную информацию по теме и создаёт структурированную заметку с ссылками." } }, "runLog": { "title": "История", "noHistory": "Пока нет выполнений", "toolTrace": "{count} вызовов инструментов", "step": "Шаг {num}" }, "tools": { "title": "Инструменты Агента", "webSearch": "Веб-поиск", "webScrape": "Веб-скрейпинг", "noteSearch": "Поиск Заметок", "noteRead": "Читать Заметку", "noteCreate": "Создать Заметку", "urlFetch": "Получить URL", "memorySearch": "Память", "configNeeded": "конфигурация", "selected": "{count} выбрано", "maxSteps": "Макс. итераций" }, "metadata": { "executions": "{count} вып." }, "defaultRoles": { "scraper": "Вы — ассистент мониторинга. Обобщите статьи с разных сайтов в ясную, структурированную сводку.", "researcher": "Вы — тщательный исследователь. По запрошенной теме подготовьте исследовательскую заметку с контекстом, ключевыми моментами, дискуссиями и ссылками.", "monitor": "Вы — аналитический ассистент. Проанализируйте предоставленные заметки и предложите направления, ссылки и связи между заметками.", "custom": "Вы — полезный ассистент." }, "help": { "title": "Руководство по агентам", "btnLabel": "Помощь", "close": "Закрыть", "whatIsAgent": "Что такое агент?", "whatIsAgentContent": "An **agent** is an AI assistant that runs automatically to perform tasks for you. It has access to **tools** (web search, web scraping, note reading...) and produces a **note** with its results.\n\nThink of it as a small autonomous worker: you give it a mission, it researches or scrapes information, then writes a structured note you can read later.", "howToUse": "Как использовать агента?", "howToUseContent": "1. Click **\"New Agent\"** (or start from a **Template** at the bottom of the page)\n2. Choose an **agent type** (Researcher, Monitor, Observer, Custom)\n3. Give it a **name** and fill in the type-specific fields\n4. Optionally pick a **target notebook** where results will be saved\n5. Choose a **frequency** (Manual = you trigger it yourself)\n6. Click **Create**, then hit the **Run** button on the agent card\n7. Once finished, a new note appears in your target notebook", "types": "Типы агентов", "typesContent": "### Researcher\nSearches the web on a **topic you define** and creates a structured note with sources and references.\n\n- **Fields:** name, research topic (e.g. \"Latest advances in quantum computing\")\n- **Default tools:** web search, web scraping, note search, note creation\n- **Requirements:** a web search provider must be configured (SearXNG or Brave Search)\n\n### Monitor (Scraper)\nScrapes a **list of URLs** you specify and produces a summary of their content.\n\n- **Fields:** name, list of URLs (e.g. tech news sites, blogs...)\n- **Default tools:** web scraping, note creation\n- **Use case:** weekly tech watch, competitor monitoring, blog roundups\n\n### Observer (Notebook Monitor)\nReads notes from a **notebook you select** and produces analysis, connections, and suggestions.\n\n- **Fields:** name, source notebook (the one to analyze)\n- **Default tools:** note search, note read, note creation\n- **Use case:** find connections between your notes, get reading suggestions, detect recurring themes\n\n### Custom\nA blank canvas: you write your own **prompt** and pick your own **tools**.\n\n- **Fields:** name, description, custom instructions (in Advanced mode)\n- **No default tools** — you choose exactly what the agent needs\n- **Use case:** anything creative or specific that doesn't fit the other types", "advanced": "Расширенный режим (Инструкции ИИ, Макс. итерации)", "advancedContent": "Click **\"Advanced mode\"** at the bottom of the form to access additional settings.\n\n### AI Instructions\n\nThis field lets you **replace the default system prompt** for the agent. If left empty, the agent uses an automatic prompt adapted to its type.\n\n**Why use it?** You want to control exactly how the agent behaves. For example:\n- \"Write the summary in English, even if sources are in French\"\n- \"Structure the note with sections: Context, Key Points, Personal Opinion\"\n- \"Ignore articles older than 30 days and focus on recent news\"\n- \"For each detected theme, suggest 3 follow-up leads with links\"\n\n> **Note:** Your instructions replace the defaults, they don't add to them.\n\n### Max iterations\n\nThis is the **maximum number of cycles** the agent can perform. One cycle = the agent thinks, calls a tool, reads the result, then decides the next action.\n\n- **3-5 iterations:** for simple tasks (scraping a single page)\n- **10 iterations (default):** good balance for most cases\n- **15-25 iterations:** for deep research where the agent needs to explore multiple leads\n\n> **Warning:** More iterations = more time and potentially higher API costs.", "tools": "Доступные инструменты (подробно)", "toolsContent": "When advanced mode is enabled, you can choose exactly which tools the agent can use.\n\n### Web Search\nAllows the agent to **search the internet** via SearXNG or Brave Search.\n\n- **What it does:** The agent formulates a query, gets search results, and can then scrape the most relevant pages.\n- **When to enable:** When the agent needs to find information on a topic (Researcher or Custom type).\n- **Configuration required:** SearXNG (with JSON format enabled) or a Brave Search API key. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent searches \"React Server Components best practices 2025\", gets 10 results, then scrapes the top 3.\n\n### Web Scrape\nAllows the agent to **extract text content from a web page** given its URL.\n\n- **What it does:** The agent visits a URL and retrieves the structured text (headings, paragraphs, lists). Ads, menus and footers are typically filtered out.\n- **When to enable:** For the Monitor type (mandatory), or any agent that needs to read web pages.\n- **Configuration:** Works out of the box, but a **Jina Reader API key** improves quality and removes rate limits. Configurable in **Admin > Agent Tools**.\n- **Example:** The agent scrapes 5 tech blogs and produces a synthesized summary.\n\n### Note Search\nAllows the agent to **search your existing notes**.\n\n- **What it does:** The agent performs a text search across all your notes (or a specific notebook).\n- **When to enable:** For Observer-type agents, or any agent that needs to cross-reference information with your notes.\n- **Configuration:** None — works immediately.\n- **Example:** The agent searches all notes containing \"machine learning\" to see what you've already written on the topic.\n\n### Read Note\nAllows the agent to **read the full content of a specific note**.\n\n- **What it does:** After finding a note (via Note Search), the agent can read its entire content to analyze or use it.\n- **When to enable:** As a companion to Note Search. Enable both together so the agent can search AND read.\n- **Configuration:** None.\n- **Example:** The agent finds 5 notes about \"productivity\", reads them all, and writes a synthesis.\n\n### Create Note\nAllows the agent to **write a new note** in your target notebook.\n\n- **What it does:** The agent creates a note with a title and content. This is how results end up in your notebooks.\n- **When to enable:** Almost always — without this tool, the agent cannot save its results. **Leave it enabled by default.**\n- **Configuration:** None.\n- **Example:** The agent creates a note \"Tech Watch - Week 16\" with a summary of 5 articles.\n\n### Fetch URL\nAllows the agent to **download the raw content of a URL** (HTML, JSON, text...).\n\n- **What it does:** Unlike scraping which extracts clean text, Fetch URL retrieves raw content. Useful for APIs, JSON files, or non-standard pages.\n- **When to enable:** When the agent needs to query REST APIs, read RSS feeds, or access raw data.\n- **Configuration:** None.\n- **Example:** The agent queries the GitHub API to list the latest commits of a project.\n\n### Memory\nAllows the agent to **access its previous execution history**.\n\n- **What it does:** The agent can search through results from past runs. This lets it compare, track changes, or avoid repeating the same information.\n- **When to enable:** For agents that run regularly and need to maintain continuity between executions.\n- **Configuration:** None.\n- **Example:** The agent compares this week's news with last week's and highlights what's new.", "frequency": "Частота и расписание", "frequencyContent": "| Frequency | Behavior\n|-----------|----------\n| **Manual** | You click \"Run\" yourself — no automatic scheduling\n| **Hourly** | Runs every hour\n| **Daily** | Runs once per day\n| **Weekly** | Runs once per week\n| **Monthly** | Runs once per month\n\n> **Tip:** Start with \"Manual\" to test your agent, then switch to an automatic frequency once you're satisfied with the results.", "targetNotebook": "Целевой блокнот", "targetNotebookContent": "When an agent finishes its task, it **creates a note**. The **target notebook** determines where that note goes:\n\n- **Inbox** (default) — the note goes to your general notes\n- **Specific notebook** — choose a notebook to keep agent results organized\n\n> **Tip:** Create a dedicated notebook like \"Agent Reports\" to keep all automated content in one place.", "templates": "Шаблоны", "templatesContent": "Templates are pre-configured agents ready to install in one click. You'll find them at the **bottom of the Agents page**.\n\nAvailable templates include:\n\n- **AI Watch** — weekly AI news roundup from 5 specialized sites\n- **Tech Watch** — general tech news summary\n- **Dev Watch** — developer news and new frameworks\n- **Note Observer** — analyzes a notebook and suggests connections\n- **Topic Researcher** — deep research on a specific topic\n\nOnce installed, you can edit the agent to customize it.", "tips": "Советы и устранение неполадок", "tipsContent": "- **Start with a template** and customize it — it's the fastest way to get a working agent\n- **Test with \"Manual\"** frequency before enabling automatic scheduling\n- **A \"Researcher\" agent requires a web search provider** — configure SearXNG (JSON format) or Brave Search in **Admin > Agent Tools**\n- **If an agent fails**, click on its card then **History** to see the execution log and tool traces\n- **The \"Enabled/Disabled\" toggle** lets you pause an agent without deleting it\n- **Web scraping quality** improves with a Jina Reader API key (optional, in Admin > Agent Tools)\n- **Combine \"Note Search\" + \"Read Note\"** so the agent can find AND analyze your notes' content\n- **Enable \"Memory\"** if your agent runs regularly — it will avoid repeating the same information across runs", "tooltips": { "agentType": "Выберите тип задачи, которую будет выполнять агент. Каждый тип имеет разные возможности и поля.", "researchTopic": "Тема, которую агент будет исследовать в интернете. Будьте конкретны для лучших результатов.", "description": "Краткое описание того, что делает этот агент. Помогает запомнить его назначение.", "urls": "Список сайтов для скрейпинга. Агент посетит каждый URL и извлечёт содержимое.", "sourceNotebook": "Блокнот, который агент будет анализировать. Он читает заметки из этого блокнота для поиска связей и тем.", "targetNotebook": "Куда будет сохранена заметка с результатами агента. Выберите Входящие или конкретный блокнот.", "frequency": "Как часто агент запускается автоматически. Начните с Вручную для тестирования.", "instructions": "Пользовательские инструкции, заменяющие стандартный ИИ-промпт. Оставьте пустым для автоматического.", "tools": "Выберите, какие инструменты может использовать агент. Каждый инструмент даёт агенту определённую способность.", "maxSteps": "Максимальное количество циклов рассуждений. Больше шагов = более глубокий анализ, но дольше." } } }, "chat": { "title": "ИИ-чат", "subtitle": "Общайтесь с вашими заметками и ИИ-агентами", "newConversation": "Новый разговор", "noHistory": "Нет истории", "untitled": "Без названия", "deleteConfirm": "Удалить этот разговор?", "yes": "Да", "placeholder": "Отправить сообщение ассистенту...", "allNotebooks": "Все блокноты", "inAllNotebooks": "Во всех блокнотах", "active": "АКТИВНЫЙ", "disclaimer": "ИИ может допускать ошибки. Проверяйте важную информацию.", "assistantError": "Ошибка ассистента", "loadError": "Ошибка загрузки разговора", "createError": "Ошибка создания разговора", "deleteError": "Ошибка удаления", "renamed": "Разговор переименован", "renameError": "Ошибка переименования", "welcome": "Я здесь, чтобы помочь вам обобщить заметки, генерировать новые идеи или обсуждать ваши блокноты.", "searching": "Поиск...", "noNotesFoundForContext": "Не найдено заметок по этому вопросу. Ответьте, используя свои общие знания.", "webSearch": "Веб-поиск", "timeoutWarning": "Response is taking longer than expected..." }, "labHeader": { "title": "Лаборатория", "live": "В прямом эфире", "currentProject": "Текущий проект", "choose": "Выберите...", "yourSpaces": "Ваши пространства", "updated": "Обновлено", "newSpace": "Новое пространство мыслей", "new": "Новый", "renamed": "Пространство переименовано", "renameError": "Ошибка переименования", "created": "Новое пространство создано", "createFailed": "Ошибка создания", "deleteSpace": "Удалить пространство", "deleted": "Пространство удалено", "deleteError": "Ошибка удаления", "rename": "Rename" }, "lab": { "initializing": "Инициализация пространства", "loadingIdeas": "Загрузка ваших идей..." } }