Files
Rdmclin2 913ee4210d feat: page/agent/agentGroup/task edit lock (#15786)
* feat: support page editor lock

Squashed page-lock feature work:
- support page editor lock
- support agent group / agent / task edit
- add edit lock to agent/agentgroup/task
- refactor page lock
- fix workspaceId for edit objects
- align with agent/group/task

* fix: collaborative edit lock

* chore: update i18n

* fix: redis acquire

* fix: release lock

* fix: test case

* chore: complement page lock test cases
2026-06-14 01:40:36 +08:00

232 lines
19 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"addFolder": "Создать папку",
"addLibrary": "Добавить",
"addPage": "Создать страницу",
"detail.basic.createdAt": "Время создания",
"detail.basic.filename": "Имя файла",
"detail.basic.size": "Размер файла",
"detail.basic.title": "Основная информация",
"detail.basic.type": "Формат",
"detail.basic.updatedAt": "Время обновления",
"detail.data.chunkCount": "Фрагменты",
"detail.data.embedding.default": "Не встраивается",
"detail.data.embedding.error": "Ошибка",
"detail.data.embedding.pending": "Ожидание запуска",
"detail.data.embedding.processing": "В процессе",
"detail.data.embedding.success": "Завершено",
"detail.data.embeddingStatus": "встраивание",
"detail.data.noChunk": "Нет фрагмента",
"empty": "Файлы или папки ещё не загружены.",
"header.actions.builtInBlockList.filtered": "Отфильтровано {{ignored}} файлов (из {{total}} всего)",
"header.actions.connect": "Подключиться...",
"header.actions.createFolderError": "Не удалось создать папку",
"header.actions.creatingFolder": "Создание папки...",
"header.actions.deleteLibrary": "Удалить библиотеку",
"header.actions.gitignore.apply": "Применить правила",
"header.actions.gitignore.cancel": "Игнорировать правила",
"header.actions.gitignore.content": "Обнаружен файл .gitignore (всего {{count}} файлов). Применить правила игнорирования?",
"header.actions.gitignore.filtered": "Отфильтровано {{ignored}} файлов (всего {{total}} файлов)",
"header.actions.gitignore.title": "Обнаружен .gitignore",
"header.actions.newFolder": "Новая папка",
"header.actions.newPage": "Новая страница",
"header.actions.notion.error": "Не удалось импортировать файлы из Notion",
"header.actions.notion.foundFiles": "найдено {{count}} файлов",
"header.actions.notion.importing": "Импорт содержимого из Notion...",
"header.actions.notion.noMarkdownFiles": "В ZIP-архиве не найдено файлов в формате Markdown",
"header.actions.notion.partial": "Успешно импортировано {{success}} файлов, {{failed}} с ошибками",
"header.actions.notion.success": "Успешно импортировано {{count}} файлов",
"header.actions.notionGuide.cancel": "Не сейчас",
"header.actions.notionGuide.desc": "Сначала экспортируйте содержимое из Notion в формате Markdown (ZIP). Затем нажмите «Продолжить», чтобы выбрать ZIP-файл и импортировать все страницы.",
"header.actions.notionGuide.ok": "Выбрать ZIP из Notion",
"header.actions.notionGuide.title": "Импорт из Notion",
"header.actions.uploadFile": "Загрузить файл",
"header.actions.uploadFolder": "Загрузить папку",
"header.actions.uploadFolder.creatingFolders": "Создание структуры папок...",
"header.newPageButton": "Новая страница",
"header.uploadButton": "Загрузить",
"home.getStarted": "Начать",
"home.greeting": "Начать",
"home.quickActions": "Быстрые действия",
"home.recentFiles": "Недавние файлы",
"home.recentPages": "Недавние страницы",
"home.uploadEntries.files.title": "Загрузить файлы",
"home.uploadEntries.folder.title": "Загрузить папку",
"home.uploadEntries.library.title": "Создать новую библиотеку",
"home.uploadEntries.newPage.title": "Новая страница",
"library.hierarchy.empty.desc": "Добавьте файлы или создайте папку, чтобы начать",
"library.hierarchy.empty.title": "Здесь пока ничего нет",
"library.import.action": "Импортировать в рабочую область…",
"library.import.failed": "Не удалось импортировать базу знаний.",
"library.import.success": "База знаний импортирована в {{name}}.",
"library.import.tooltip": "Скопируйте эту базу знаний в рабочую область. Файлы будут ссылаться на оригинал, который останется в вашем личном пространстве.",
"library.list.confirmRemoveLibrary": "Вы собираетесь удалить эту библиотеку. Файлы из неё не будут удалены, а перемещены в раздел «Все файлы». Это действие необратимо, пожалуйста, будьте осторожны.",
"library.list.copyDescription": "Клонируйте эту библиотеку и все её содержимое в другую рабочую область.",
"library.list.copyFailed": "Не удалось скопировать библиотеку",
"library.list.copySuccess": "Библиотека скопирована",
"library.list.copyTitle": "Копировать библиотеку",
"library.list.copyTo": "Копировать в…",
"library.list.empty": "Нажмите <1>+</1>, чтобы создать новую библиотеку",
"library.list.transferDescription": "Переместите эту библиотеку и всё её содержимое в другую рабочую область.",
"library.list.transferFailed": "Не удалось переместить библиотеку",
"library.list.transferSuccess": "Библиотека перемещена",
"library.list.transferTitle": "Переместить библиотеку",
"library.list.transferTo": "Переместить в…",
"library.new": "Новая библиотека",
"library.title": "Библиотека",
"loadMore": "Загрузить ещё",
"menu.allFiles": "Все файлы",
"menu.allPages": "Все страницы",
"networkError": "Не удалось получить библиотеки. Проверьте подключение к сети и попробуйте снова.",
"notSupportGuide.desc": "Текущий режим развертывания не поддерживает управление файлами. Переключитесь на <1>режим с серверной базой данных</1> или используйте <3>LobeHub Cloud</3>.",
"notSupportGuide.features.allKind.desc": "Поддержка популярных типов файлов, включая форматы Word, PPT, Excel, PDF, TXT, а также кода — JS и Python.",
"notSupportGuide.features.allKind.title": "Поддержка различных форматов",
"notSupportGuide.features.embeddings.desc": "Использует высокопроизводительные векторные модели для преобразования текста, обеспечивая семантический поиск по содержимому.",
"notSupportGuide.features.embeddings.title": "Семантический поиск",
"notSupportGuide.features.libraries.desc": "Создавайте библиотеки и добавляйте в них файлы, чтобы организовать своё хранилище.",
"notSupportGuide.features.libraries.title": "Библиотека",
"notSupportGuide.title": "Текущий режим развертывания не поддерживает управление файлами",
"pageEditor.addIcon": "Добавить иконку",
"pageEditor.autoSaveMessage": "Страница сохраняется автоматически. Сохранять вручную не требуется.",
"pageEditor.chooseIcon": "Выбрать иконку",
"pageEditor.deleteConfirm.content": "Эта страница будет удалена без возможности восстановления. Пожалуйста, будьте осторожны.",
"pageEditor.deleteConfirm.title": "Удалить страницу",
"pageEditor.deleteError": "Не удалось удалить страницу",
"pageEditor.deleteSuccess": "Страница успешно удалена",
"pageEditor.duplicateError": "Не удалось дублировать страницу",
"pageEditor.duplicateSuccess": "Страница успешно дублирована",
"pageEditor.editMode.checking": "Проверка доступности редактирования…",
"pageEditor.editMode.lockedByOther": "{{name}} редактирует этот документ",
"pageEditor.editMode.lockedBySomeone": "Кто-то другой редактирует этот документ",
"pageEditor.editedAt": "Последнее редактирование: {{time}}",
"pageEditor.editedBy": "Последнее редактирование: {{name}}",
"pageEditor.editorPlaceholder": "Нажмите «/» для ИИ и команд",
"pageEditor.empty.createNewDocument": "Создать новую страницу",
"pageEditor.empty.importNotion": "Импорт из Notion",
"pageEditor.empty.title": "Выберите страницу для начала работы",
"pageEditor.empty.uploadFiles": "Загрузить файлы",
"pageEditor.exportActions.openFile": "Открыть",
"pageEditor.exportActions.showInFolder": "Показать в папке",
"pageEditor.exportDialogTitle": "Экспорт страницы",
"pageEditor.exportError": "Не удалось экспортировать страницу",
"pageEditor.exportSuccess": "Страница успешно экспортирована",
"pageEditor.history.backToCopilot": "Copilot",
"pageEditor.history.compare": "Сравнить",
"pageEditor.history.compareCurrentLabel": "Текущая",
"pageEditor.history.compareDescription": "Сравнение текущего содержимого с выбранной версией истории",
"pageEditor.history.compareError": "Не удалось загрузить предварительный просмотр изменений",
"pageEditor.history.compareModalTitle": "Сравнение",
"pageEditor.history.compareOldLabel": "Восстановить до",
"pageEditor.history.compareTitle": "Сравнение версий",
"pageEditor.history.current": "Текущая",
"pageEditor.history.dayLabel.today": "Сегодня",
"pageEditor.history.dayLabel.yesterday": "Вчера",
"pageEditor.history.empty": "История версий отсутствует",
"pageEditor.history.restore": "Восстановить",
"pageEditor.history.restoreConfirm.content": "Восстановить страницу в состояние на {{savedAt}}? Текущее содержимое будет заменено и сохранено.",
"pageEditor.history.restoreConfirm.title": "Восстановление из истории",
"pageEditor.history.restoreError": "Не удалось восстановить из истории",
"pageEditor.history.saveSource.autosave": "Автосохранение",
"pageEditor.history.saveSource.llm_call": "AI-редактирование",
"pageEditor.history.saveSource.manual": "Ручное сохранение",
"pageEditor.history.saveSource.restore": "Восстановление",
"pageEditor.history.saveSource.system": "Система",
"pageEditor.history.title": "История версий",
"pageEditor.history.versionCount_one": "{{count}} версия",
"pageEditor.history.versionCount_other": "{{count}} версий",
"pageEditor.linkCopied": "Ссылка скопирована",
"pageEditor.lock.editingByOther": "{{name}} редактирует эту страницу. Ваши изменения не могут быть сохранены прямо сейчас.",
"pageEditor.lock.editingBySomeone": "Кто-то другой редактирует эту страницу. Ваши изменения не могут быть сохранены прямо сейчас.",
"pageEditor.menu.copyLink": "Скопировать ссылку",
"pageEditor.menu.export": "Экспорт",
"pageEditor.menu.export.markdown": "Markdown",
"pageEditor.menu.exportDocument": "Экспорт страницы",
"pageEditor.menu.importDocument": "Импорт страницы",
"pageEditor.menu.pin": "Закрепить страницу",
"pageEditor.saving": "Сохранение...",
"pageEditor.titlePlaceholder": "Без названия",
"pageEditor.wordCount": "{{wordCount}} слов",
"pageList.actions.openInNewTab": "Открыть в новой вкладке",
"pageList.copyConfirm": "Копировать",
"pageList.copyContent": "Скопировать весь текст",
"pageList.copyDescription": "Создайте копию этой страницы в другой рабочей области.",
"pageList.copyFailed": "Не удалось скопировать страницу",
"pageList.copySuccess": "Страница скопирована",
"pageList.copyTitle": "Копировать страницу",
"pageList.copyTo": "Копировать в…",
"pageList.duplicate": "Дублировать",
"pageList.empty": "Пока нет страниц. Нажмите кнопку выше, чтобы создать первую.",
"pageList.filter.all": "Все",
"pageList.filter.onlyInPages": "Только в страницах",
"pageList.noResults": "Совпадений не найдено",
"pageList.pageCount": "Всего {{count}} страниц",
"pageList.pageSizeItem": "{{count}} элементов",
"pageList.title": "Страницы",
"pageList.transferConfirm": "Переместить",
"pageList.transferDescription": "Переместите эту страницу (и любые содержащиеся в ней папки) в другую рабочую область.",
"pageList.transferFailed": "Не удалось переместить страницу",
"pageList.transferSuccess": "Страница перемещена",
"pageList.transferTitle": "Переместить страницу",
"pageList.transferTo": "Переместить в…",
"pageList.transferWarning": "Это одностороннее перемещение; для отмены потребуется повторное перемещение.",
"pageList.untitled": "Без названия",
"portal.openInPageEditor": "Редактировать в странице",
"preview.downloadFile": "Скачать файл",
"preview.unsupportedFileAndContact": "Этот формат файла пока не поддерживается для онлайн-просмотра. Если у вас есть пожелания, <1>свяжитесь с нами</1>.",
"resource": "Ресурс",
"resourceList.batchCopyDescription": "Клонируйте выбранные ресурсы в другую рабочую область.",
"resourceList.batchCopyTitle": "Копировать ресурсы",
"resourceList.batchTransferDescription": "Переместите выбранные ресурсы в другую рабочую область.",
"resourceList.batchTransferTitle": "Переместить ресурсы",
"resourceList.copyConfirm": "Копировать",
"resourceList.copyDocumentDescription": "Клонируйте этот документ в другую рабочую область.",
"resourceList.copyDocumentTitle": "Копировать документ",
"resourceList.copyFailed": "Не удалось скопировать ресурс",
"resourceList.copyFileDescription": "Клонируйте этот файл в другую рабочую область.",
"resourceList.copyFileTitle": "Копировать файл",
"resourceList.copyFolderDescription": "Клонируйте эту папку (и её содержимое) в другую рабочую область.",
"resourceList.copyFolderTitle": "Копировать папку",
"resourceList.copySuccess": "Ресурс скопирован",
"resourceList.copyTo": "Копировать в…",
"resourceList.transferConfirm": "Переместить",
"resourceList.transferDocumentDescription": "Переместите этот документ в другую рабочую область.",
"resourceList.transferDocumentTitle": "Переместить документ",
"resourceList.transferFailed": "Не удалось переместить ресурс",
"resourceList.transferFileDescription": "Переместите этот файл в другую рабочую область.",
"resourceList.transferFileTitle": "Переместить файл",
"resourceList.transferFolderDescription": "Переместите эту папку (и её содержимое) в другую рабочую область.",
"resourceList.transferFolderTitle": "Переместить папку",
"resourceList.transferSuccess": "Ресурс перемещён",
"resourceList.transferTo": "Переместить в…",
"resourceList.viewTransferred": "Просмотреть",
"searchFilePlaceholder": "Поиск файлов",
"searchPagePlaceholder": "Поиск страниц",
"tab.all": "Все",
"tab.audios": "Аудио",
"tab.documents": "Документы",
"tab.home": "Главная",
"tab.images": "Изображения",
"tab.moreTypes": "Другие типы",
"tab.pages": "Страницы",
"tab.videos": "Видео",
"tab.websites": "Веб-сайты",
"title": "Ресурсы",
"toggleLeftPanel": "Показать/Скрыть левую панель",
"uploadDock.body.collapse": "Свернуть",
"uploadDock.body.item.cancel": "Отменить",
"uploadDock.body.item.cancelled": "Отменено",
"uploadDock.body.item.done": "Загружено",
"uploadDock.body.item.error": "Ошибка загрузки, попробуйте снова",
"uploadDock.body.item.pending": "Подготовка к загрузке...",
"uploadDock.body.item.processing": "Обработка файла...",
"uploadDock.body.item.restTime": "Осталось {{time}}",
"uploadDock.fileQueueInfo": "Загружаются первые {{count}} файлов, {{remaining}} в очереди",
"uploadDock.header.cancelAll": "Отменить все",
"uploadDock.totalCount": "Всего {{count}} элементов",
"uploadDock.uploadStatus.cancelled": "Загрузка отменена",
"uploadDock.uploadStatus.error": "Ошибка загрузки",
"uploadDock.uploadStatus.pending": "Ожидание загрузки",
"uploadDock.uploadStatus.processing": "Загрузка",
"uploadDock.uploadStatus.success": "Загрузка завершена",
"uploadDock.uploadStatus.uploading": "Загрузка"
}