From 4b561d89a8f912e577f790c6ac74e3434f8c2ce2 Mon Sep 17 00:00:00 2001 From: Valentin Sonin <17673310+FAR747@users.noreply.github.com> Date: Sun, 16 Aug 2026 16:48:52 +0300 Subject: [PATCH] chore: update russian localization (#6195) --- web/src/locales/ru.json | 188 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 173 insertions(+), 15 deletions(-) diff --git a/web/src/locales/ru.json b/web/src/locales/ru.json index fb0a40e0..ee1e778f 100644 --- a/web/src/locales/ru.json +++ b/web/src/locales/ru.json @@ -5,7 +5,22 @@ "documents": "Документы", "github-repository": "Репозиторий GitHub", "official-website": "Официальный сайт", - "media": "СМИ" + "media": "Медиа", + "api-docs": "Документация API", + "api-docs-note": "Справочник по REST и gRPC", + "build": "Сборка", + "commit": "Коммит", + "demo": "Демо", + "distribution": "Дистрибутив", + "documents-note": "Развёртывание, настройка и использование Memos", + "github-repository-note": "Исходный код, задачи и выпуски", + "license": "Лицензия", + "official-website-note": "Главная страница проекта", + "powered-by": "Работает на базе Memos", + "project": "Проект", + "project-links": "Ссылки проекта", + "web-clipper": "Веб-клиппер", + "web-clipper-platforms": "Chrome + Firefox" }, "auth": { "create-your-account": "Создание учетной записи", @@ -14,7 +29,25 @@ "protected-memo-notice": "This memo is not public. Sign in to continue.", "repeat-new-password": "Повторить новый пароль", "sign-in-tip": "У вас уже есть учетная запись?", - "sign-up-tip": "У вас еще нет учетной записи?" + "sign-up-tip": "У вас еще нет учетной записи?", + "admin-sign-in": "Вход для администратора", + "admin-sign-in-tip": "Вход по паролю остаётся доступным для администраторов.", + "back-to-sign-in": "Назад ко входу", + "continue-with": "Продолжить через {{provider}}", + "create-admin-account": "Создать учётную запись администратора", + "explore-public-memos": "Просмотреть публичные заметки на этом сервере", + "first-run": "Первый запуск", + "setup-description": "Создайте учётную запись администратора этого сервера.", + "setup-note": "Эта учётная запись управляет настройками сервера, участниками и поставщиками удостоверений.", + "setup-title": "Настройка сервера", + "signin-unavailable-description": "Вход по паролю отключён, а поставщики удостоверений не настроены. Попросите администратора включить способ входа.", + "signin-unavailable-title": "Вход недоступен", + "signup-unavailable-description": "Учётные записи с паролем отключены, а поставщики удостоверений не настроены. Обратитесь к администратору для получения доступа.", + "signup-unavailable-title": "Регистрация недоступна", + "signups-closed-description": "Создание новых учётных записей на этом сервере отключено. Если вам нужен доступ, обратитесь к администратору.", + "signups-closed-title": "Регистрация закрыта", + "sso-signup-tip": "Войдите через одного из указанных ниже поставщиков, чтобы создать учётную запись.", + "welcome-back": "С возвращением." }, "common": { "about": "О Memos", @@ -116,7 +149,16 @@ "views": "Представления", "yourself": "Вы", "empty-placeholder": "Пустой", - "unlink": "Отсоединить" + "unlink": "Отсоединить", + "actions": "Действия", + "author": "Автор", + "location": "Местоположение", + "month-navigation": "Навигация по месяцам", + "next-month": "Следующий месяц", + "previous-month": "Предыдущий месяц", + "resize-sidebar": "Изменить ширину боковой панели", + "sign-in-to-memos": "Войти в Memos", + "tasks": "Задачи" }, "locale-picker": { "no-language-feedback": "Язык не найден? Отправить отзыв" @@ -129,7 +171,15 @@ "insert-menu": { "add-location": "Добавить местоположение", "link-memo": "Ссылка на заметку", - "upload-file": "Загрузить файл" + "upload-file": "Загрузить файл", + "add-attachment": "Добавить вложение", + "image-upload-failed": "Не удалось загрузить некоторые изображения. Повторите попытку или сохраните загруженные файлы как вложения.", + "image-upload-stopped": "Загрузка изображений остановлена: {{completed}}/{{total}}", + "insert-image": "Вставить изображение", + "keep-as-attachments": "Сохранить как вложения", + "retry-image-upload": "Повторить", + "uploading-inline-image": "Загрузка в содержимое", + "uploading-images": "Загрузка изображений: {{completed}}/{{total}}" }, "no-changes-detected": "Изменений не обнаружено", "save": "Сохранить", @@ -164,7 +214,38 @@ "transcribe-error": "Не удалось расшифровать аудио.", "transcribe-success": "Транскрипция добавлена", "transcribing": "Расшифровка..." - } + }, + "formatting-toolbar": "Панель форматирования", + "format": { + "heading": "Заголовок", + "paragraph": "Абзац", + "heading-1": "Заголовок 1", + "heading-2": "Заголовок 2", + "heading-3": "Заголовок 3", + "bold": "Полужирный", + "italic": "Курсив", + "strikethrough": "Зачёркнутый", + "code": "Встроенный код", + "code-block": "Блок кода", + "bullet-list": "Маркированный список", + "ordered-list": "Нумерованный список", + "task-list": "Список задач", + "link": "Ссылка", + "link-prompt": "Введите URL", + "more": "Другие параметры форматирования" + }, + "validation": { + "cannot-save": "Невозможно сохранить", + "content-required": "Укажите содержимое или добавьте вложение либо файл", + "finish-audio-recording": "Завершите аудиозапись перед сохранением", + "loading-content": "Загрузка содержимого", + "resolve-image-uploads": "Завершите загрузку изображений перед сохранением", + "save-in-progress": "Идёт сохранение", + "unsupported-attachment-image-url": "Неподдерживаемый URL изображения-вложения: {{url}}", + "wait-for-upload": "Дождитесь завершения загрузки" + }, + "unsupported-syntax-raw-mode": "Эта заметка содержит синтаксис, который нельзя безопасно редактировать в визуальном редакторе, поэтому она открыта в режиме исходного Markdown.", + "wysiwyg-editor": "Визуальный редактор" }, "inbox": { "failed-to-load": "Не удалось загрузить элемент уведомления", @@ -259,7 +340,10 @@ "disabled": "Публичные записи отключены", "private": "Видно только вам", "protected": "Видно только авторизованным пользователям", - "public": "Публичная" + "public": "Публичная", + "private-description": "Видно только вам", + "protected-description": "Видно пользователям, вошедшим в систему", + "public-description": "Видно всем" }, "count-memos-updated-in-date": "{{count}} {{memos}} обновлен на {{date}}", "newest-first": "Сначала самые новые", @@ -271,7 +355,17 @@ "title": "Задачи", "uncheck-all": "Снимите галочки со всех задач", "updated": "Задачи обновлены" - } + }, + "grid-compact-hint": "В макетах с сеткой всегда используются компактные карточки.", + "layout": "Макет", + "layout-auto": "Автоматически", + "layout-auto-description": "Столько столбцов, сколько помещается на экране", + "layout-columns": "{{n}} столбцов", + "layout-columns-description": "Не более {{n}} столбцов, если позволяет ширина", + "layout-list": "Список", + "layout-list-description": "Один столбец шириной, удобной для чтения", + "new-badge": "Новое", + "view-options": "Параметры отображения" }, "message": { "archived-successfully": "Перемещено в архив", @@ -354,6 +448,7 @@ "description": "Описание", "duration-1m": "1 месяц", "duration-8h": "8 часов", + "duration-90d": "90 дней", "duration-never": "Никогда", "expiration": "Срок действия", "expires-at": "Истекает", @@ -362,7 +457,22 @@ "description": "Список всех токенов доступа для вашей учетной записи.", "title": "Токены доступа", "token": "Токен", - "no-tokens-found": "Токены доступа не найдены" + "no-tokens-found": "Токены доступа не найдены", + "create-first": "Создать первый токен", + "about-description": "Персональный токен доступа (PAT) — это секретный ключ, который позволяет выполнять запросы API от имени вашей учётной записи. Любое приложение или скрипт, у которого есть этот ключ — сервер MCP, CLI или мобильный клиент — может делать в Memos всё то же, что и вы, пока токен не истечёт или вы его не удалите. Передавайте его как учётные данные Bearer в заголовке Authorization:", + "empty-description": "Токен позволяет скрипту или приложению обращаться к API от вашего имени. Он показывается один раз при создании, после чего в списке остаётся запись о нём, чтобы вы могли его отозвать.", + "empty-title": "Токенов доступа пока нет", + "expires": "Истекает", + "guideline-shown-once": "Токен показывается только один раз сразу после создания (он копируется в буфер обмена). Сохраните его в надёжном месте, например в менеджере паролей.", + "guideline-one-per-app": "Создавайте отдельный токен для каждого приложения или скрипта, чтобы можно было отозвать один токен, не нарушив работу остальных.", + "guideline-expiration": "Предпочитайте токены со сроком действия. Долгоживущие токены представляют больший риск в случае утечки.", + "guideline-review": "Периодически проверяйте время последнего использования и удаляйте токены, которые вам больше не нужны или которые вы не узнаёте.", + "how-to-use": "Как использовать токен", + "label": "Токены доступа", + "last-used": "Последнее использование", + "never-used": "Не использовался", + "no-expiration": "Без срока действия", + "web-clipper-title": "Использование токена с Memos Web Clipper" }, "account": { "change-password": "Изменить пароль", @@ -453,7 +563,11 @@ "language-description": "Немедленно обновляет язык интерфейса и сохраняет его в вашей учетной записи.", "memo-defaults-description": "Установите настройки по умолчанию, используемые при создании новых заметок.", "memo-defaults-title": "Памятка по умолчанию", - "theme-description": "Немедленно применяет выбранную тему на этом устройстве." + "theme-description": "Немедленно применяет выбранную тему на этом устройстве.", + "save-media-metadata": "Сохранять метаданные медиафайлов", + "save-media-metadata-description": "Для будущих загрузок сохранять доступные сведения о камере, времени и месте съёмки, размерах изображения и основные сведения о видео. Эти метаданные доступны всем, кто может просматривать вложение. Существующие вложения не изменяются.", + "uploads-privacy-description": "Управляйте конфиденциальными сведениями, отправляемыми вместе с загружаемыми медиафайлами.", + "uploads-privacy-title": "Загрузки и конфиденциальность" }, "memo-view": { "delete-confirm": "Вы уверены, что хотите удалить представление `{{title}}`?", @@ -558,7 +672,7 @@ "url-suffix": "суффикс URL", "url-suffix-placeholder": "Пользовательский суффикс URL, необязательно", "warning-text": "Вы уверены, что хотите удалить хранилище `{{name}}`? ЭТО ДЕЙСТВИЕ НЕЛЬЗЯ ОТМЕНИТЬ", - "accesskey-description": "Идентификатор ключа доступа для сегмента или службы, совместимой с S3.", + "accesskey-description": "Идентификатор ключа доступа для бакета или S3-совместимого сервиса.", "badge-default": "По умолчанию", "badge-recommended": "Рекомендуется", "bucket-description": "Ячейка, в которой будут храниться новые объекты вложений.", @@ -575,14 +689,16 @@ "s3-configuration": "Конфигурация S3", "s3-configuration-description": "Настройте корзину, совместимую с S3, для новых вложений.", "s3-description": "Сохраняйте новые вложения в службе хранения объектов, совместимой с S3.", - "s3-note-config": "Требуется действительная конечная точка, регион, сегмент, учетные данные, разрешения и доступ к сети сервера.", + "s3-note-config": "Требуется действительная конечная точка, регион, бакет, учетные данные, разрешения и доступ к сети сервера.", "s3-note-scale": "Лучше всего подходит для больших библиотек вложений, облачных развертываний или нескольких экземпляров приложений.", "secretkey-description": "Секретный ключ доступа к корзине или S3-совместимому сервису.", "secretkey-preserve-description": "Оставьте пустым, чтобы сохранить существующий секретный ключ.", "selected-backend": "Выбрано", "type-s3": "S3-совместимое хранилище", "use-path-style": "Используйте URL в стиле пути.", - "use-path-style-description": "Включите это для таких поставщиков, как MinIO или некоторых S3-совместимых служб, которые не поддерживают сегменты виртуального размещения." + "use-path-style-description": "Включите для S3-совместимых сервисов, которые не поддерживают адресацию бакетов в стиле виртуального хостинга.", + "insecure-skip-tls-verify": "Пропустить проверку TLS", + "insecure-skip-tls-verify-description": "Отключить проверку сертификата TLS для конечной точки S3. Включайте только для доверенных конечных точек с самоподписанным сертификатом: это отключает защиту от атак посредника." }, "system": { "additional-script": "Дополнительный скрипт", @@ -625,7 +741,15 @@ "edit-webhook": "Изменить вебхук", "payload-url": "Ссылка", "title": "Название", - "url-example-post-receive": "https://example.com/postreceive" + "url-example-post-receive": "https://example.com/postreceive", + "copy-secret": "Копировать секрет подписи", + "generate-secret": "Сгенерировать", + "reveal-secret": "Показать", + "signing-secret": "Секрет подписи", + "signing-secret-auto-note": "Секрет подписи создаётся автоматически. Его можно показать после создания вебхука.", + "signing-secret-configured": "Настроен", + "signing-secret-created-note": "Вебхук создан. Скопируйте секрет подписи сейчас — его также можно показать позже в окне редактирования.", + "signing-secret-not-configured": "Не настроен" }, "delete-dialog": { "delete-webhook-description": "Это действие нельзя отменить.", @@ -784,6 +908,39 @@ "banner-title": "Memos демо", "deploy-link": "Разверните свой Memos" }, + "attachment-details": { + "actions": { + "copied": "Координаты скопированы", + "copy-coordinates": "Копировать координаты", + "hide": "Скрыть сведения о вложении", + "hide-map": "Скрыть карту", + "show": "Показать сведения о вложении", + "show-map": "Показать карту" + }, + "empty": "Данные о съёмке не сохранены.", + "fields": { + "altitude": "Высота", + "camera": "Камера", + "captured": "Снято", + "dimensions": "Размеры", + "duration": "Продолжительность", + "exposure": "Экспозиция", + "file": "Файл", + "lens": "Объектив", + "location": "Координаты", + "source-orientation": "Исходная ориентация EXIF", + "uploaded": "Загружено" + }, + "sections": { + "camera": "Камера", + "capture": "Съёмка", + "file": "Файл", + "location": "Местоположение", + "technical": "Технические сведения" + }, + "timezone-unknown": "Часовой пояс неизвестен", + "title": "Сведения" + }, "attachment-library": { "actions": { "open": "Открыть", @@ -792,7 +949,8 @@ "empty": { "audio": "Аудио вложений пока нет.", "documents": "Вложений документов пока нет.", - "media": "Медиа-вложений пока нет." + "media": "Медиа-вложений пока нет.", + "all": "Вложений пока нет." }, "errors": { "load": "Не удалось загрузить вложения." @@ -808,7 +966,7 @@ "tabs": { "audio": "Аудио", "documents": "Документы", - "media": "СМИ" + "media": "Медиа" }, "unused": { "confirm-description": "При этом будут удалены все загруженные файлы, не связанные с заметкой.",