import type { TranslationKeys } from "./en.js";

export const ru: TranslationKeys = {
  common: {
    upload: "Загрузить с компьютера",
    process: "Обработать",
    download: "Скачать",
    cancel: "Отмена",
    save: "Сохранить",
    delete: "Удалить",
    settings: "Настройки",
    search: "Поиск инструментов...",
    dropFiles: "Перетащите файлы сюда или нажмите кнопку загрузки",
    loading: "Загрузка...",
    saving: "Сохранение...",
    error: "Произошла ошибка",
    confirm: "Подтвердить",
    close: "Закрыть",
    back: "Назад",
    next: "Далее",
    clear: "Очистить",
    copy: "Копировать",
    copied: "Скопировано!",
    noResults: "Ничего не найдено",
    showLess: "Показать меньше",
    showMore: "Показать ещё {count}",
    experimental: "Экспериментальный",
    enabled: "Включено",
    disabled: "Отключено",
    rename: "Переименовать",
    edit: "Редактировать",
    actions: "Действия",
    create: "Создать",
    or: "или",
    goHome: "На главную",
    somethingWentWrong: "Что-то пошло не так",
    unexpectedError: "Произошла непредвиденная ошибка.",
    retry: "Повторить",
    privacyPolicy: "Политика конфиденциальности",
    pageNotFound: "Страница не найдена",
    pageNotFoundDescription: "Запрашиваемая страница не существует или была перемещена.",
  },
  categories: {
    essentials: "Основные",
    adjustments: "Коррекция",
    enhance: "Улучшение и AI",
    watermark: "Водяной знак и наложение",
    layout: "Компоновка и композиция",
    utilities: "Утилиты",
    optimization: "Оптимизация",
    format: "Формат и конвертация",
    "video-edit": "Video",
    "video-convert": "Конвертация",
    "video-effects": "Эффекты и компоновка",
    "video-subtitles": "Субтитры",
    "video-metadata": "Метаданные",
    "audio-edit": "Редактирование",
    "audio-convert": "Конвертация",
    "audio-effects": "Эффекты и компоновка",
    "audio-metadata": "Метаданные",
    "pdf-organize": "Организация",
    "pdf-edit": "Редактирование и аннотации",
    "pdf-security": "Безопасность",
    "pdf-optimize": "Оптимизация",
    "doc-convert": "Конвертация",
    data: "Файлы",
    archives: "Архивы",
  },
  modalities: {
    image: "Изображение",
    video: "Видео",
    audio: "Аудио",
    documentsAndFiles: "PDF и файлы",
  },
  tools: {
    resize: {
      name: "Изменение размера",
      description: "Изменение размера в пикселях, процентах или по шаблонам соцсетей",
    },
    crop: {
      name: "Обрезка",
      description: "Произвольная обрезка, шаблоны соотношений сторон, фигурная обрезка",
    },
    rotate: {
      name: "Поворот и отражение",
      description: "Поворот, отражение и выравнивание изображений",
    },
    convert: { name: "Конвертация", description: "Конвертация между форматами изображений" },
    compress: {
      name: "Сжатие",
      description: "Уменьшение размера файла по качеству или целевому размеру",
    },
    "optimize-for-web": {
      name: "Оптимизация для веба",
      description:
        "Оптимизация изображений для веба с конвертацией формата, контролем качества и предпросмотром",
    },
    "strip-metadata": {
      name: "Удаление метаданных",
      description: "Удаление EXIF, GPS и информации о камере",
    },
    "edit-metadata": {
      name: "Редактирование метаданных",
      description: "Редактирование EXIF, IPTC, XMP, GPS, ключевых слов и дат",
    },
    "bulk-rename": {
      name: "Массовое переименование",
      description: "Переименование нескольких файлов по шаблону",
    },
    "image-to-pdf": {
      name: "Изображение в PDF",
      description: "Объединение изображений в документ PDF",
    },
    "pdf-to-image": {
      name: "PDF в изображение",
      description: "Конвертация страниц PDF в изображения",
    },
    favicon: {
      name: "Генератор Favicon",
      description: "Генерация всех размеров Favicon и иконок приложения",
    },
    "adjust-colors": {
      name: "Настройка цветов",
      description:
        "Яркость, контрастность, экспозиция, насыщенность, температура, резкость и эффекты",
    },
    sharpening: {
      name: "Повышение резкости",
      description: "Адаптивная, нерезкая маска и высокочастотная резкость с шаблонами",
    },
    "replace-color": {
      name: "Замена и инверсия цвета",
      description: "Замена определённых цветов или инверсия",
    },
    "color-blindness": {
      name: "Симуляция дальтонизма",
      description:
        "Симуляция восприятия изображений при различных типах нарушения цветового зрения",
    },
    "remove-background": {
      name: "Удаление фона",
      description: "Удаление фона с помощью AI",
    },
    upscale: {
      name: "Увеличение изображения",
      description: "AI-увеличение с суперразрешением",
    },
    "erase-object": {
      name: "Удаление объектов",
      description: "Удаление нежелательных объектов с помощью AI",
    },
    ocr: {
      name: "OCR / Извлечение текста",
      description: "Извлечение текста из изображений с точностью AI",
    },
    "ocr-pdf": {
      name: "OCR PDF",
      description: "Извлечение текста из PDF-документов с помощью OCR на базе ИИ",
    },
    "blur-faces": {
      name: "Размытие лиц / ПД",
      description: "Автоматическое обнаружение и размытие лиц и конфиденциальной информации",
    },
    "enhance-faces": {
      name: "Улучшение лиц",
      description: "Восстановление и улучшение лиц с помощью AI",
    },
    "smart-crop": {
      name: "Умная обрезка",
      description: "Умная обрезка по объекту, лицу или обрезке полей",
    },
    "image-enhancement": {
      name: "Улучшение изображения",
      description:
        "Автоматическое улучшение в один клик: умная коррекция экспозиции, контраста, цвета и резкости",
    },
    "noise-removal": {
      name: "Удаление шума",
      description: "Удаление шума и зернистости с помощью AI",
    },
    "red-eye-removal": {
      name: "Удаление красных глаз",
      description: "Обнаружение и коррекция красных глаз на фотографиях со вспышкой с помощью AI",
    },
    "restore-photo": {
      name: "Восстановление фотографий",
      description: "Исправление царапин, разрывов и повреждений на старых фотографиях с помощью AI",
    },
    "content-aware-resize": {
      name: "Контентно-зависимое масштабирование",
      description: "Интеллектуальное изменение размера с сохранением важного содержимого",
    },
    "ai-canvas-expand": {
      name: "AI-расширение холста",
      description: "Расширение холста с AI-заполнением",
    },
    colorize: {
      name: "AI-колоризация",
      description:
        "Преобразование чёрно-белых фотографий в цветные с помощью AI-моделей глубокого обучения",
    },
    "passport-photo": {
      name: "Фото на документы",
      description:
        "Создание фотографий для паспорта, визы и удостоверений с автоматическим обнаружением лица",
    },
    "transcribe-audio": {
      name: "Транскрипция аудио",
      description: "Преобразование речи в текст с помощью ИИ",
    },
    "auto-subtitles": {
      name: "Автоматические субтитры",
      description: "Генерация файлов субтитров из аудиодорожек видео",
    },
    "transparency-fixer": {
      name: "Исправление прозрачности PNG",
      description: "Исправление ложной прозрачности PNG в один клик",
    },
    "background-replace": {
      name: "Замена фона",
      description: "Замена фона изображения сплошным цветом",
    },
    "blur-background": {
      name: "Размытие фона",
      description: "Размытие фона с сохранением резкости объекта",
    },
    "watermark-text": {
      name: "Текстовый водяной знак",
      description: "Добавление текстового водяного знака",
    },
    "watermark-image": {
      name: "Водяной знак-изображение",
      description: "Наложение логотипа в качестве водяного знака",
    },
    "text-overlay": {
      name: "Наложение текста",
      description: "Добавление стилизованного текста на изображения",
    },
    compose: {
      name: "Композиция изображений",
      description: "Наложение изображений с настройкой позиции и прозрачности",
    },
    "meme-generator": {
      name: "Генератор Meme",
      description:
        "Создание мемов с популярными шаблонами или Вашими собственными изображениями. Классический текст в стиле Impact с настраиваемыми шрифтами, цветами и расположением.",
    },
    info: {
      name: "Информация об изображении",
      description: "Просмотр всех метаданных и свойств изображения",
    },
    compare: {
      name: "Сравнение изображений",
      description: "Сравнение двух изображений бок о бок",
    },
    "find-duplicates": {
      name: "Поиск дубликатов",
      description: "Обнаружение точных и приблизительных дубликатов изображений",
    },
    "color-palette": {
      name: "Цветовая палитра",
      description: "Извлечение доминирующих цветов из изображения",
    },
    "qr-generate": {
      name: "Генератор QR-кодов",
      description:
        "Генерация стилизованных QR-кодов с настраиваемыми цветами, узорами и логотипами",
    },
    "html-to-image": {
      name: "HTML в изображение",
      description: "Сохранение веб-страниц как качественных изображений",
    },
    "barcode-read": {
      name: "Сканер штрихкодов",
      description: "Сканирование изображений на наличие QR-кодов, штрихкодов и 2D-кодов",
    },
    collage: {
      name: "Коллаж / Сетка",
      description: "Объединение изображений в красивые сетки-коллажи с 25+ шаблонами",
    },
    stitch: {
      name: "Объединение / Склейка",
      description: "Соединение изображений бок о бок, стопкой или в сетку",
    },
    split: {
      name: "Разделение изображения",
      description:
        "Разделение изображений на плитки сетки или по размеру в пикселях с предпросмотром",
    },
    border: {
      name: "Рамка и обводка",
      description: "Добавление рамок, отступов, скруглённых углов и теней с шаблонами в один клик",
    },
    beautify: {
      name: "Украшение скриншота",
      description:
        "Добавление градиентных фонов, рамок устройств, теней и размеров для соцсетей к скриншотам",
    },
    "circle-crop": {
      name: "Круговая обрезка",
      description: "Обрезка изображения по центральному кругу с прозрачными углами",
    },
    duotone: {
      name: "Дуотон",
      description: "Двухцветный эффект дуотон с настраиваемыми цветами теней и бликов",
    },
    "image-pad": {
      name: "Поля изображения",
      description: "Добавление полей до целевого соотношения сторон с однотонным фоном",
    },
    pixelate: {
      name: "Пикселизация",
      description: "Эффект пикселизации всего изображения или выбранной области",
    },
    vignette: {
      name: "Виньетка",
      description: "Добавление виньетки с настраиваемой интенсивностью и цветом",
    },
    "gif-webp": {
      name: "Конвертер GIF/WebP",
      description: "Конвертация анимированных GIF в WebP и обратно с сохранением всех кадров",
    },
    histogram: {
      name: "Гистограмма",
      description: "Построение гистограммы RGB по изображению",
    },
    "lqip-placeholder": {
      name: "LQIP-заглушка",
      description: "Генерация миниатюрной заглушки низкого качества с data URI в base64",
    },
    "sprite-sheet": {
      name: "Спрайт-лист",
      description: "Объединение нескольких изображений в сетку спрайт-листа",
    },
    "svg-to-raster": {
      name: "SVG в растр",
      description:
        "Конвертация SVG в PNG, JPEG, WebP, AVIF, TIFF, GIF или HEIF с настраиваемым масштабом и DPI",
    },
    vectorize: {
      name: "Изображение в SVG",
      description: "Конвертация изображений в масштабируемую векторную графику",
    },
    "gif-tools": {
      name: "Инструменты GIF",
      description:
        "Изменение размера, оптимизация, скорости, реверс, извлечение кадров и поворот анимированных GIF",
    },
    "image-to-base64": {
      name: "Изображение в Base64",
      description: "Конвертация изображений в строки Base64 для встраивания в HTML, CSS и другое",
    },
    "barcode-generate": {
      name: "Генератор штрихкодов",
      description: "Генерация штрихкодов Code 128, EAN-13, UPC-A, Code 39, ITF-14 и Data Matrix",
    },
    "chart-maker": {
      name: "Создание диаграмм",
      description: "Создание столбчатых, линейных и круговых диаграмм из данных CSV или JSON",
    },
    "convert-video": {
      name: "Конвертация видео",
      description: "Конвертация видео между форматами MP4, MOV и WebM",
    },
    "compress-video": {
      name: "Сжатие видео",
      description: "Уменьшение размера видеофайла с контролем качества",
    },
    "trim-video": {
      name: "Обрезка видео",
      description: "Вырезка фрагмента из видео",
    },
    "mute-video": {
      name: "Отключение звука видео",
      description: "Удаление звуковой дорожки из видео",
    },
    "video-to-gif": {
      name: "Видео в GIF",
      description: "Преобразование видеоклипа в анимированный GIF",
    },
    "resize-video": {
      name: "Изменение размера видео",
      description: "Масштабирование видео до нового разрешения или предустановки",
    },
    "crop-video": {
      name: "Кадрирование видео",
      description: "Кадрирование области видео",
    },
    "rotate-video": {
      name: "Поворот видео",
      description: "Поворот или отражение видео",
    },
    "change-fps": {
      name: "Изменение FPS",
      description: "Изменение частоты кадров видео",
    },
    "video-color": {
      name: "Цвет видео",
      description: "Настройка яркости, контрастности, насыщенности и гаммы",
    },
    "video-speed": {
      name: "Скорость видео",
      description: "Ускорение или замедление видео",
    },
    "reverse-video": {
      name: "Реверс видео",
      description: "Воспроизведение видеоклипа в обратном порядке",
    },
    "video-loudnorm": {
      name: "Нормализация звука",
      description: "Нормализация громкости звука видео до стандарта вещания",
    },
    "aspect-pad": {
      name: "Поля по соотношению",
      description: "Добавление однотонных полос для целевого соотношения сторон",
    },
    "blur-pad": {
      name: "Размытые поля",
      description: "Заполнение полос размытой копией видео",
    },
    "watermark-video": {
      name: "Водяной знак на видео",
      description: "Наложение текстового водяного знака на кадры видео",
    },
    "stabilize-video": {
      name: "Стабилизация видео",
      description: "Уменьшение тряски камеры двухпроходной стабилизацией",
    },
    "gif-to-video": {
      name: "GIF в видео",
      description: "Конвертация анимированного GIF в видео MP4 или WebM",
    },
    "video-to-webp": {
      name: "Видео в WebP",
      description: "Конвертация видеоклипа в анимированное изображение WebP",
    },
    "video-to-frames": {
      name: "Видео в кадры",
      description: "Извлечение кадров из видео в виде ZIP-архива с изображениями",
    },
    "merge-videos": {
      name: "Объединение видео",
      description: "Объединение нескольких видеоклипов в один файл",
    },
    "replace-audio": {
      name: "Замена звука",
      description: "Замена звуковой дорожки видео другим файлом",
    },
    "burn-subtitles": {
      name: "Вшить субтитры",
      description: "Отрисовка субтитров на кадрах видео без возможности отключения",
    },
    "embed-subtitles": {
      name: "Встроить субтитры",
      description: "Добавление дорожки субтитров в контейнер видео",
    },
    "extract-subtitles": {
      name: "Извлечь субтитры",
      description: "Извлечение дорожки субтитров из видео в файл SRT",
    },
    "images-to-video": {
      name: "Изображения в видео",
      description: "Создание слайд-шоу из набора изображений",
    },
    "video-metadata": {
      name: "Очистка метаданных видео",
      description: "Удаление метаданных из видео с отчётом о найденном",
    },
    "convert-audio": {
      name: "Конвертация аудио",
      description: "Конвертация аудио между форматами MP3, WAV, OGG и другими",
    },
    "trim-audio": {
      name: "Обрезка аудио",
      description: "Вырезка фрагмента из аудиофайла",
    },
    "extract-audio": {
      name: "Извлечение аудио",
      description: "Извлечение звуковой дорожки из видео",
    },
    "volume-adjust": {
      name: "Регулировка громкости",
      description: "Увеличение или уменьшение громкости на заданное значение",
    },
    "normalize-audio": {
      name: "Нормализация аудио",
      description: "Выравнивание громкости до стандарта вещания",
    },
    "fade-audio": {
      name: "Затухание аудио",
      description: "Добавление эффектов нарастания и затухания звука",
    },
    "reverse-audio": {
      name: "Реверс аудио",
      description: "Воспроизведение аудио в обратном порядке",
    },
    "audio-speed": {
      name: "Скорость аудио",
      description: "Ускорение или замедление воспроизведения аудио",
    },
    "pitch-shift": {
      name: "Сдвиг высоты тона",
      description: "Повышение или понижение тона в полутонах без изменения скорости",
    },
    "audio-channels": {
      name: "Каналы аудио",
      description: "Конвертация между моно и стерео или смена левого и правого каналов",
    },
    "silence-removal": {
      name: "Удаление тишины",
      description: "Удаление участков тишины из аудио",
    },
    "noise-reduction": {
      name: "Шумоподавление",
      description: "Уменьшение фонового шума с помощью FFT-фильтрации",
    },
    "merge-audio": {
      name: "Объединение аудио",
      description: "Объединение нескольких аудиофайлов в один",
    },
    "split-audio": {
      name: "Разделение аудио",
      description: "Разделение аудио по времени, на равные части или по тишине",
    },
    "ringtone-maker": {
      name: "Создание рингтона",
      description: "Создание рингтона из любого аудиофайла",
    },
    "waveform-image": {
      name: "Изображение волновой формы",
      description: "Генерация визуализации волновой формы в виде PNG",
    },
    "audio-metadata": {
      name: "Метаданные аудио",
      description: "Просмотр, редактирование или удаление тегов аудио (ID3)",
    },
    "merge-pdf": {
      name: "Объединение PDF",
      description: "Объединение нескольких PDF в один",
    },
    "split-pdf": {
      name: "Разделение PDF",
      description: "Извлечение страниц или разделение на части",
    },
    "compress-pdf": {
      name: "Сжатие PDF",
      description: "Уменьшение размера файла PDF",
    },
    "rotate-pdf": {
      name: "Поворот PDF",
      description: "Поворот страниц в PDF",
    },
    "convert-document": {
      name: "Конвертация документа",
      description: "Конвертация между Word, OpenDocument, RTF и текстовыми форматами",
    },
    "convert-presentation": {
      name: "Конвертация презентации",
      description: "Конвертация между форматами PowerPoint и OpenDocument",
    },
    "convert-spreadsheet": {
      name: "Конвертация таблиц",
      description:
        "Конвертация между Excel, OpenDocument и CSV. Многолистовые книги экспортируют первый лист в CSV.",
    },
    "excel-to-pdf": {
      name: "Excel в PDF",
      description: "Конвертация таблиц в PDF. Широкие таблицы могут занять несколько страниц.",
    },
    "word-to-pdf": {
      name: "Word в PDF",
      description: "Конвертация документов Word в PDF",
    },
    "extract-pages": {
      name: "Извлечение страниц",
      description: "Извлечение выбранных страниц в новый PDF",
    },
    "remove-pages": {
      name: "Удаление страниц",
      description: "Удаление определённых страниц из PDF",
    },
    "organize-pdf": {
      name: "Упорядочивание PDF",
      description: "Изменение порядка страниц вручную",
    },
    "protect-pdf": {
      name: "Защита PDF",
      description: "Установка пароля (шифрование AES-256)",
    },
    "unlock-pdf": {
      name: "Снятие защиты PDF",
      description: "Удаление парольной защиты из PDF",
    },
    "repair-pdf": {
      name: "Восстановление PDF",
      description: "Попытка восстановления повреждённого PDF",
    },
    "linearize-pdf": {
      name: "Оптимизация PDF для веба",
      description: "Линеаризация PDF для быстрого просмотра в браузере",
    },
    "grayscale-pdf": {
      name: "PDF в градациях серого",
      description: "Перевод всех цветов в градации серого",
    },
    "pdfa-convert": {
      name: "Конвертация в PDF/A",
      description: "Конвертация в архивный формат PDF/A-2",
    },
    "crop-pdf": {
      name: "Обрезка PDF",
      description: "Обрезка всех страниц с одинаковым отступом",
    },
    "nup-pdf": {
      name: "N-up PDF",
      description: "Размещение нескольких страниц на одном листе",
    },
    "booklet-pdf": {
      name: "Буклет PDF",
      description: "Размещение страниц для складывания в буклет",
    },
    "watermark-pdf": {
      name: "Водяной знак PDF",
      description: "Добавление текстового водяного знака на каждую страницу",
    },
    "pdf-page-numbers": {
      name: "Нумерация страниц PDF",
      description: "Добавление номеров на каждую страницу",
    },
    "flatten-pdf": {
      name: "Сведение PDF",
      description: "Встраивание форм и аннотаций в содержимое страниц",
    },
    "redact-pdf": {
      name: "Затирание PDF",
      description: "Безвозвратное удаление фрагментов текста (полное затирание)",
    },
    "pdf-to-text": {
      name: "PDF в текст",
      description: "Извлечение текста из PDF",
    },
    "pdf-to-word": {
      name: "PDF в Word",
      description: "Подходит для текстовых PDF; для сканов требуется OCR",
    },
    "pdf-metadata": {
      name: "Метаданные PDF",
      description: "Чтение и запись метаданных документа PDF",
    },
    "powerpoint-to-pdf": {
      name: "PowerPoint в PDF",
      description: "Конвертация презентаций в PDF",
    },
    "html-to-pdf": {
      name: "HTML в PDF",
      description: "Конвертация HTML-файла в PDF. Внешние ресурсы отключены для безопасности.",
    },
    "markdown-to-docx": {
      name: "Markdown в Word",
      description: "Конвертация Markdown-файла в документ Word (DOCX)",
    },
    "markdown-to-html": {
      name: "Markdown в HTML",
      description:
        "Конвертация Markdown-файла в отдельную HTML-страницу. Внешние изображения сохраняются как есть.",
    },
    "markdown-to-pdf": {
      name: "Markdown в PDF",
      description:
        "Конвертация Markdown-файла в стилизованный PDF. Внешние ресурсы отключены для безопасности.",
    },
    "epub-convert": {
      name: "Конвертация EPUB",
      description:
        "Конвертация EPUB в PDF, DOCX, HTML или Markdown. Внешние ресурсы книги не загружаются.",
    },
    "to-epub": {
      name: "Конвертация в EPUB",
      description: "Конвертация Word, Markdown, HTML или текстовых файлов в EPUB",
    },
    "csv-excel": {
      name: "CSV в Excel",
      description: "Конвертация между CSV и Excel (XLSX) в обе стороны",
    },
    "csv-json": {
      name: "CSV в JSON",
      description: "Конвертация между CSV и JSON в обе стороны",
    },
    "json-xml": {
      name: "JSON в XML",
      description: "Конвертация между JSON и XML в обе стороны",
    },
    "split-csv": {
      name: "Разделение CSV",
      description: "Разделение CSV на файлы меньшего размера по количеству строк",
    },
    "merge-csvs": {
      name: "Объединение CSV",
      description: "Объединение нескольких файлов CSV или TSV с совпадающими столбцами",
    },
    "yaml-json": {
      name: "YAML / JSON",
      description: "Конвертация между YAML и JSON в обе стороны",
    },
    "xml-to-csv": {
      name: "XML в CSV",
      description: "Извлечение повторяющихся элементов из XML в таблицу CSV",
    },
    "create-zip": {
      name: "Создание ZIP",
      description: "Упаковка нескольких файлов в один ZIP-архив",
    },
    "extract-zip": {
      name: "Распаковка ZIP",
      description:
        "Безопасная распаковка ZIP-архива с защитой от ZIP-бомб. Архивы с одним файлом возвращают файл напрямую.",
    },
    pipeline: {
      name: "Конструктор Pipeline",
      description: "Объединение нескольких инструментов в рабочий процесс",
    },
    processing: { canceled: "Обработка отменена" },
    mediaPlayer: {
      unsupported: "Ваш браузер не поддерживает этот формат медиа.",
    },
    documentView: {
      loadFailed: "Не удалось загрузить документ.",
      previousPage: "Предыдущая страница",
      nextPage: "Следующая страница",
      inputNotPreviewable: "Предпросмотр недоступен для этого типа файла",
    },
  },
  toolSettings: {
    compress: {
      compressionMode: "Режим сжатия",
      targetSize: "Целевой размер",
      quality: "Качество",
      smallestFile: "Минимальный файл",
      bestQuality: "Лучшее качество",
      submit: "Сжать",
      submitBatch: "Сжать ({count} файлов)",
      progressLabel: "Сжатие",
      original: "Оригинал: {size} KB",
      processed: "Обработано: {size} KB",
      saved: "Сэкономлено: {percent}%",
    },
    resize: {
      customSize: "Пользовательский размер",
      scale: "Масштаб",
      presets: "Шаблоны",
      contentAware: "Контентно-зависимый",
      widthPx: "Ширина (px)",
      heightPx: "Высота (px)",
      fitMode: "Режим вписывания",
      cropToFit: "Обрезать по размеру",
      fitInside: "Вписать внутрь",
      stretch: "Растянуть",
      limitToOriginalSize: "Ограничить исходным размером",
      limitToOriginalSizeHint:
        "Если изображение уже меньше целевого размера, оставить его как есть вместо масштабирования вверх",
      scalePercent: "Масштаб (%)",
      resizeToSquare: "Привести к квадрату",
      protectFaces: "Защитить лица",
      smoothing: "Сглаживание",
      edgeSensitivity: "Чувствительность к границам",
      submit: "Изменить размер",
      submitBatch: "Изменить размер ({count} файлов)",
      progressLabel: "Изменение размера",
    },
    crop: {
      aspectRatio: "Соотношение сторон",
      custom: "Пользовательское",
      positionAndSize: "Позиция и размер",
      ruleOfThirds: "Правило третей",
      leftOffsetPx: "Отступ слева (px)",
      topOffsetPx: "Отступ сверху (px)",
      submit: "Обрезать",
      submitBatch: "Обрезать ({count} файлов)",
      progressLabel: "Обрезка",
    },
    rotate: {
      rotate: "Повернуть",
      angle: "Угол",
      straighten: "Выровнять",
      flip: "Отразить",
      horizontal: "Горизонтально",
      vertical: "Вертикально",
      resetAllChanges: "Сбросить все изменения",
      submit: "Применить",
      submitBatch: "Применить ({count} файлов)",
      progressLabel: "Применение",
    },
    convert: {
      targetFormat: "Целевой формат",
      sourceFormat: "Исходный формат",
      quality: "Качество",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "optimize-for-web": {
      outputFormat: "Формат вывода",
      quality: "Качество",
      smallestFile: "Минимальный файл",
      bestQuality: "Лучшее качество",
      maxDimensions: "Макс. размеры",
      maxWidth: "Макс. ширина",
      maxHeight: "Макс. высота",
      stripMetadata: "Удалить метаданные",
      sizeComparison: "Сравнение размеров",
      optimized: "Оптимизировано:",
      smaller: "На {percent}% меньше",
      larger: "На {percent}% больше",
      submit: "Обработать и скачать",
      submitBatch: "Обработать и скачать ({count} файлов)",
      progressLabel: "Оптимизация",
    },
    "strip-metadata": {
      currentMetadata: "Текущие метаданные",
      readingMetadata: "Чтение метаданных...",
      noMetadataFound: "Метаданные в этом изображении не найдены.",
      removeAllMetadata: "Удалить все метаданные",
      selectSpecific: "Или выберите конкретные метаданные:",
      stripExif: "Удалить EXIF (информация о камере, дата, экспозиция)",
      stripGps: "Удалить GPS (данные о местоположении)",
      stripIcc: "Удалить ICC (цветовой профиль)",
      stripXmp: "Удалить XMP (расширяемые метаданные)",
      locationFound: "местоположение найдено",
      locationWarning:
        "Это изображение содержит Ваше точное местоположение. Рекомендуем удалить GPS-данные перед публикацией.",
      metadataSections: "Найден {count} раздел метаданных",
      metadataSectionsPlural: "Найдено {count} разделов метаданных",
      metadataRemoved: "Метаданные удалены: {size} KB",
      submit: "Удалить метаданные",
      progressLabel: "Удаление метаданных",
    },
    "edit-metadata": {
      readingMetadata: "Чтение метаданных...",
      couldNotReadMetadata: "Не удалось прочитать метаданные. Поля будут пустыми.",
      basicInfo: "Основная информация",
      description: "Описание",
      artist: "Автор",
      copyright: "Авторские права",
      software: "Программа",
      iptc: "IPTC",
      title: "Заголовок",
      headline: "Подзаголовок",
      city: "Город",
      stateProvince: "Область/Регион",
      country: "Страна",
      dateAndTime: "Дата и время",
      editDates: "Редактировать даты",
      shiftAllDates: "Сдвинуть все даты",
      dateModified: "Дата изменения",
      dateTaken: "Дата съёмки",
      shiftHint:
        "Сдвинуть все поля дат на указанный интервал (полезно для коррекции часовых поясов)",
      direction: "Направление",
      forward: "+ Вперёд",
      backward: "- Назад",
      hoursMinutes: "Часы:Минуты",
      locationGps: "Местоположение (GPS)",
      locationDataFound: "Данные о местоположении найдены",
      noGpsData: "Нет GPS-данных. Добавьте координаты ниже.",
      latitude: "Широта",
      longitude: "Долгота",
      altitudeMeters: "Высота (метры)",
      removeAllGpsData: "Удалить все GPS-данные",
      keywords: "Ключевые слова",
      addKeywordPlaceholder: "Добавьте ключевое слово и нажмите Enter",
      addToExisting: "Добавить к существующим",
      replaceAll: "Заменить все",
      allMetadata: "Все метаданные",
      templates: "Шаблоны",
      templateNamePlaceholder: "Название шаблона",
      uploadPrompt: "Загрузите изображение для редактирования метаданных.",
      changes: "Изменений: {count}:",
      modified: "Изменено: {count}",
      removed: "Удалено: {count}",
      gpsCleared: "GPS удалены",
      gpsAdded: "GPS добавлены",
      datesShifted: "даты сдвинуты",
      submit: "Применить метаданные",
      progressLabel: "Запись метаданных",
    },
    "bulk-rename": {
      pattern: "Шаблон",
      patternHint: "Переменные: {{index}}, {{padded}}, {{original}}",
      startIndex: "Начальный индекс",
      preview: "Предпросмотр",
      andMore: "... и ещё {count}",
      renaming: "Переименование...",
      submit: "Переименовать {count} файлов",
      zipDownloaded: "ZIP-архив успешно скачан",
    },
    "image-to-pdf": {
      imageCount: "{count} изображение будет сконвертировано в {mode}",
      imageCountPlural: "{count} изображений будет сконвертировано в {mode}",
      singlePdfMode: "один PDF, по одному изображению на страницу",
      separatePdfMode: "отдельные PDF, по одному на изображение",
      combineAllImages: "Объединить все изображения в один PDF",
      pageSize: "Размер страницы",
      orientation: "Ориентация",
      portrait: "Книжная",
      landscape: "Альбомная",
      margin: "Поля",
      targetSizeLabel: "Целевой размер файла (необязательно)",
      targetSizePlaceholder: "напр. 2",
      targetSizeHint: "Оставьте пустым для максимального качества",
      targetSizeMet: "Целевой размер достигнут",
      targetSizeNotMet: "Не удалось достичь целевого размера. Файл сжат до минимального качества.",
      targetSizeTooSmall: "Целевой размер должен быть не менее 50KB",
      jpegQualityLabel: "Использованное качество JPEG",
      noImage: "Нет изображения",
      submitCollate: "Создать PDF ({count} страниц)",
      submitSeparate: "Создать {count} PDF",
      downloadPdf: "Скачать PDF",
      downloadZip: "Скачать ZIP",
      progressLabel: "Создание PDF",
      uploadingImages: "Загрузка изображений...",
      processingPages: "Обработка {count} страниц...",
    },
    "pdf-to-image": {
      dropPdf: "Перетащите PDF сюда или нажмите для выбора",
      readingPdf: "Чтение PDF...",
      pageCount: "{count} страница",
      pageCountPlural: "{count} страниц",
      outputFormat: "Формат вывода",
      quality: "Качество",
      resolutionDpi: "Разрешение (DPI)",
      dpiScreen: "Экран",
      dpiStandard: "Стандарт",
      dpiPrint: "Печать",
      dpiHighQuality: "Высокое качество",
      colorMode: "Цветовой режим",
      colorModeColor: "Цветной",
      colorModeGrayscale: "Оттенки серого",
      colorModeBw: "Ч/Б",
      pages: "Страницы",
      allPages: "Все страницы",
      pagesHint: "напр. 1-3, 5, 8-10 (в документе {count} страниц)",
      converting: "Конвертация...",
      submit: "Конвертировать {count} страницу",
      submitPlural: "Конвертировать {count} страниц",
      downloadAllZip: "Скачать всё (ZIP)",
    },
    favicon: {
      uploadHint:
        "Загрузите квадратные изображения (рекомендуется 512x512 или больше) для генерации всех размеров Favicon и иконок приложения.",
      multipleHint: "Каждое из {count} изображений получит свою папку в ZIP-архиве.",
      generatedSizes: "Генерируемые размеры (на изображение)",
      plusManifest: "+ manifest.json + HTML-фрагмент",
      submit: "Сгенерировать Favicon ({count} изображение)",
      submitPlural: "Сгенерировать Favicon ({count} изображений)",
      downloadZip: "Скачать ZIP с Favicon",
      progressLabel: "Генерация Favicon",
    },
    "adjust-colors": {
      light: "Свет",
      brightness: "Яркость",
      contrast: "Контраст",
      exposure: "Экспозиция",
      color: "Цвет",
      saturation: "Насыщенность",
      temperature: "Температура",
      temperatureHint: "холодный / тёплый",
      tint: "Оттенок",
      tintHint: "зелёный / пурпурный",
      hue: "Тон",
      detail: "Детализация",
      sharpness: "Резкость",
      effects: "Эффекты",
      none: "нет",
      grayscale: "оттенки серого",
      sepia: "сепия",
      invert: "инверсия",
      colorChannels: "Цветовые каналы",
      channelModified: "изменён",
      red: "Красный",
      green: "Зелёный",
      blue: "Синий",
      resetAll: "Сбросить всё",
      submit: "Применить",
      submitBatch: "Применить ({count} файлов)",
      progressLabel: "Настройка цветов",
    },
    sharpening: {
      method: "Метод",
      adaptive: "Адаптивный",
      unsharpMask: "Нерезкая маска",
      highPass: "Высокочастотный",
      presets: "Шаблоны",
      textureAmount: "Количество текстуры",
      amount: "Количество",
      strength: "Сила",
      noiseReduction: "Подавление шума",
      off: "выкл.",
      lightDenoise: "лёгкое",
      mediumDenoise: "среднее",
      strongDenoise: "сильное",
      advancedControls: "Расширенные настройки",
      radius: "Радиус",
      flatProtection: "Защита плоских областей",
      detailThreshold: "Порог детализации",
      haloLimitLight: "Ограничение ореола (светлый)",
      haloLimitDark: "Ограничение ореола (тёмный)",
      threshold: "Порог",
      kernelSize: "Размер ядра",
      submit: "Повысить резкость",
      submitBatch: "Повысить резкость ({count} файлов)",
      progressLabel: "Повышение резкости",
    },
    "replace-color": {
      sourceColor: "Исходный цвет (для замены)",
      targetColor: "Целевой цвет (замена)",
      makeTransparent: "Сделать прозрачным",
      tolerance: "Допуск",
      exactMatch: "Точное совпадение",
      wideRange: "Широкий диапазон",
      submit: "Заменить цвет",
      submitBatch: "Заменить цвет ({count} файлов)",
      progressLabel: "Замена цвета",
    },
    "color-blindness": {
      simulationType: "Тип симуляции",
      redGreen: "Красно-зелёный",
      blueYellow: "Сине-жёлтый",
      monochromatic: "Монохроматический",
      submit: "Симулировать",
      submitBatch: "Симулировать ({count} файлов)",
      progressLabel: "Симуляция дальтонизма",
    },
    "remove-background": {
      subject: "Объект",
      people: "Люди",
      products: "Товары",
      general: "Общий",
      passportIdPhoto: "Паспорт / Удостоверение",
      quality: "Качество",
      fast: "Быстро",
      hd: "HD",
      max: "Макс.",
      ultra: "Ультра",
      background: "Фон",
      transparent: "Прозрачный",
      bgColor: "Цвет",
      gradient: "Градиент",
      image: "Изображение",
      gradientDirection: "Направление",
      chooseBackgroundImage: "Выберите фоновое изображение",
      effectsSection: "Эффекты",
      effectsActive: "активны",
      blurBackground: "Размытие фона",
      intensity: "Интенсивность",
      addShadow: "Добавить тень",
      opacity: "Непрозрачность",
      outputFormat: "Формат вывода",
      edgeSmoothing: "Сглаживание краёв",
      edgeSmoothingOff: "Выкл.",
      edgeSmoothingLight: "Лёгкое",
      edgeSmoothingMedium: "Среднее",
      edgeSmoothingStrong: "Сильное",
      colorDecontamination: "Очистка цвета",
      rendering: "Рендеринг...",
      submit: "Удалить фон",
      submitBatch: "Удалить фон ({count} файлов)",
      progressLabel: "Удаление фона",
    },
    upscale: {
      scaleFactor: "Коэффициент масштабирования",
      quality: "Качество",
      enhanceFaces: "Улучшить лица",
      noiseReduction: "Подавление шума",
      noiseReductionHint:
        "Сглаживает зернистость и шум. Более высокие значения удаляют больше шума, но могут размыть детали.",
      outputFormat: "Формат вывода",
      submit: "Увеличить {scale}x",
      submitBatch: "Увеличить {scale}x ({count} файлов)",
      progressLabel: "Увеличение изображения",
      progressLabelBatch: "Увеличение {count} изображений",
    },
    "erase-object": {
      brushSize: "Размер кисти",
      fine: "Тонкая",
      wide: "Широкая",
      undo: "Отменить",
      clear: "Очистить",
      outputFormat: "Формат вывода",
      quality: "Качество",
      paintHint: "Закрасьте объекты, которые хотите удалить. Нажмите Ctrl+Z для отмены.",
      submit: "Удалить объект",
      submitBatch: "Удалить всё ({count})",
      progressLabel: "Удаление объекта",
    },
    ocr: {
      quality: "Качество",
      enhanceBeforeScanning: "Улучшить перед сканированием",
      enhanceHint:
        "Автоматическое выравнивание, улучшение контраста, удаление шума и увеличение масштаба изображения перед сканированием для лучшей точности.",
      language: "Язык",
      autoDetect: "Автоопределение",
      extractedText: "Извлечённый текст",
      noTextDetected: "Текст не обнаружен на этом изображении",
      characters: "{count} символов",
      submit: "Извлечь текст",
      submitBatch: "Извлечь текст ({count} файлов)",
      progressLabel: "Извлечение текста",
    },
    "ocr-pdf": {
      quality: "Качество",
      language: "Язык",
      autoDetect: "Автоопределение",
      pages: "Страницы",
      pagesPlaceholder: "все, 1-3, 5",
      pagesHint: "Введите номера страниц или диапазоны (напр. 1-3, 5, 8-10). Макс. 50 страниц.",
      submit: "Извлечь текст",
      submitBatch: "Извлечь текст ({count} файлов)",
      progressLabel: "Извлечение текста из PDF",
    },
    "blur-faces": {
      blurRadius: "Радиус размытия",
      blurLight: "Лёгкое",
      blurHeavy: "Сильное",
      detectionSensitivity: "Чувствительность обнаружения",
      moreFaces: "Больше лиц",
      fewerFaces: "Меньше лиц",
      submit: "Размыть лица",
      progressLabel: "Размытие лиц",
    },
    "enhance-faces": {
      quality: "Качество",
      enhancementStrength: "Сила улучшения",
      onlyCenterFace: "Только центральное лицо",
      detectionSensitivity: "Чувствительность обнаружения",
      submit: "Улучшить лица",
      submitBatch: "Улучшить лица ({count} файлов)",
      progressLabel: "Улучшение лиц",
    },
    "smart-crop": {
      subjectFocus: "Фокус на объекте",
      faceFocus: "Фокус на лице",
      autoTrim: "Автообрезка",
      customSize: "Пользовательский размер",
      socialPresets: "Шаблоны для соцсетей",
      detectionStrategy: "Стратегия обнаружения",
      detectionStrategyHint:
        "Внимание находит наиболее визуально заметную область. Энтропия находит область с наибольшей детализацией и информацией.",
      attention: "Внимание",
      entropy: "Энтропия",
      padding: "Отступ",
      paddingHint: "Дополнительное пространство вокруг области фокуса",
      outputQuality: "Качество вывода",
      outputQualityHint: "Для вывода в JPEG и WebP. PNG всегда без потерь.",
      subjectDescription:
        "Определяет наиболее интересную область с помощью анализа заметности и обрезает до целевого размера.",
      framing: "Кадрирование",
      facePadding: "Отступ вокруг лица",
      facePaddingHint: "Дополнительное пространство вокруг обнаруженных лиц",
      fewerFalsePositives: "Меньше ложных срабатываний",
      faceDescription:
        "Использует AI-обнаружение лиц для правильного кадрирования. При отсутствии лиц переключается на фокус по объекту.",
      trimTolerance: "Допуск",
      trimDescription:
        "Насколько пиксель рамки может отличаться от цвета края и всё ещё быть обрезанным. Выше = агрессивнее.",
      padToSquare: "Дополнить до квадрата",
      targetSizePx: "Целевой размер (px)",
      padColor: "Цвет заполнения",
      trimHint:
        'Удаляет однородные по цвету рамки вокруг объекта. Включите "Дополнить до квадрата" для изображений, готовых к e-commerce.',
      submitSubject: "Умная обрезка",
      submitFace: "Обрезка по лицу",
      submitTrim: "Обрезать поля",
    },
    imageEnhancement: {
      enhancementMode: "Режим улучшения",
      auto: "Авто",
      portrait: "Портрет",
      landscape: "Пейзаж",
      lowLight: "Слабое освещение",
      food: "Еда",
      document: "Документ",
      intensity: "Интенсивность",
      deepEnhance: "Глубокое улучшение (AI)",
      deepEnhanceDescription: "Удаляет шум и артефакты с помощью AI",
      deepEnhanceRequires: "Требуется пакет увеличения и улучшения",
      analyzingImage: "Анализ изображения...",
      detectedIssues: "Обнаруженные проблемы",
      imageLooksGood: "Изображение выглядит хорошо. Настройте с помощью ползунка интенсивности.",
      issueUnderexposed: "Низкая экспозиция",
      issueOverexposed: "Переэкспонировано",
      issueLowContrast: "Плоский контраст",
      issueColorCast: "Цветовой сдвиг",
      issueDesaturated: "Обесцвечено",
      issueSoftFocus: "Мягкий фокус",
      issueNoisy: "Зашумлено",
      submit: "Улучшить",
      submitDeep: "Глубокое улучшение",
      submitBatch: "Улучшить ({count} файлов)",
      submitDeepBatch: "Глубокое улучшение ({count} файлов)",
      progressLabel: "Улучшение изображения",
      progressLabelBatch: "Улучшение {count} изображений",
    },
    "noise-removal": {
      denoisingTier: "Уровень шумоподавления",
      quick: "Быстрый",
      balanced: "Сбалансированный",
      quality: "Качество",
      maximum: "Максимальный",
      quickDesc: "Быстрый, лёгкий",
      balancedDesc: "Хорошее качество, умеренная скорость",
      qualityDesc: "На основе AI, медленный",
      maximumDesc: "Лучшая AI-модель, самый медленный",
      strength: "Сила",
      subtle: "Лёгкая",
      aggressive: "Агрессивная",
      detailPreservation: "Сохранение деталей",
      smooth: "Гладкие",
      sharp: "Чёткие",
      colorNoise: "Цветовой шум",
      heavy: "Сильный",
      outputFormat: "Формат вывода",
      gifAiWarning:
        "AI-шумоподавление для файлов GIF обрабатывает только первый кадр. Для анимированных GIF используйте быстрый или сбалансированный уровень.",
      submit: "Удалить шум",
      submitBatch: "Удалить шум ({count} файлов)",
      progressLabel: "Удаление шума",
      progressLabelBatch: "Удаление шума из {count} изображений",
    },
    "red-eye-removal": {
      sensitivity: "Чувствительность",
      strict: "Строгая",
      aggressive: "Агрессивная",
      correctionStrength: "Сила коррекции",
      subtle: "Лёгкая",
      dark: "Тёмная",
      outputFormat: "Формат вывода",
      quality: "Качество",
      submit: "Исправить красные глаза",
      submitBatch: "Исправить красные глаза ({count} файлов)",
      progressLabel: "Исправление красных глаз",
      progressLabelBatch: "Исправление красных глаз на {count} изображениях",
    },
    "restore-photo": {
      scratchRemoval: "Удаление царапин",
      scratchRemovalDesc: "Обнаружение и восстановление царапин, разрывов, пятен",
      faceEnhancement: "Улучшение лиц",
      faceEnhancementDesc: "Восстановление повреждённых лиц с помощью CodeFormer AI",
      faceFidelity: "Точность лица",
      enhanced: "Улучшенный",
      faithful: "Достоверный",
      noiseReduction: "Подавление шума",
      noiseReductionDesc: "Удаление зернистости и шума со старых фотографий",
      denoiseStrength: "Сила шумоподавления",
      autoColorize: "Автоколоризация",
      autoColorizeDesc: "Добавление цвета к чёрно-белым фотографиям с помощью DDColor AI",
      colorizeStrength: "Сила колоризации",
      vivid: "Яркий",
      submit: "Восстановить фото",
      submitBatch: "Восстановить фото ({count})",
      progressLabel: "Восстановление фото",
      progressLabelBatch: "Восстановление {count} фотографий",
    },
    "content-aware-resize": {
      widthPx: "Ширина (px)",
      heightPx: "Высота (px)",
      resizeToSquare: "Привести к квадрату",
      protectFaces: "Защитить лица",
      protectFacesHint:
        "Обнаружение и защита областей лиц от удаления швов с помощью обнаружения лиц",
      smoothing: "Сглаживание",
      edgeSensitivity: "Чувствительность к границам",
      submit: "Изменить размер",
      submitBatch: "Изменить размер ({count} файлов)",
      progressLabel: "Контентно-зависимое масштабирование",
    },
    "ai-canvas-expand": {
      quality: "Качество",
      fast: "Быстро",
      balanced: "Сбалансировано",
      highQuality: "Высокое качество",
      fastDesc: "Быстрый предпросмотр, меньше проходов AI",
      balancedDesc: "Хорошее качество, умеренная скорость",
      highQualityDesc: "Лучший результат, медленнее",
      extendToAspectRatio: "Расширить до соотношения сторон",
      extendByPixels: "Расширить на (пиксели)",
      top: "Сверху",
      right: "Справа",
      bottom: "Снизу",
      left: "Слева",
      newSize: "Новый размер: {width} x {height}",
      submit: "Расширить холст",
      submitBatch: "Расширить ({count} файлов)",
      progressLabel: "Расширение холста",
    },
    colorize: {
      aiModel: "AI-модель",
      fast: "Быстрая",
      fastDesc: "Быстрый результат",
      balanced: "Сбалансированная",
      balancedDesc: "Лучшая из доступных",
      best: "Лучшая",
      bestDesc: "Наивысшее качество",
      colorIntensity: "Интенсивность цвета",
      grayscaleLabel: "Оттенки серого",
      subtleLabel: "Приглушённый",
      naturalLabel: "Натуральный",
      vividLabel: "Яркий",
      intensityHint: "Низкие значения дают более приглушённые, винтажные цвета.",
      strength: "Сила колоризации",
      submit: "Колоризировать",
      submitBatch: "Колоризировать ({count} файлов)",
      progressLabel: "Колоризация",
      progressLabelBatch: "Колоризация {count} изображений",
    },
    "passport-photo": {
      country: "Страна",
      searchCountries: "Поиск стран...",
      noCountriesFound: "Страны не найдены",
      customDimensions: "Пользовательские размеры",
      documentType: "Тип документа",
      dimensionsMm: "Размеры (мм)",
      dpi: "DPI",
      pixelsPerInch: "пикселей на дюйм",
      backgroundColor: "Цвет фона",
      maxFileSize: "Макс. размер файла",
      noLimit: "Без ограничений",
      customKb: "Указать в KB...",
      uploadPortrait: "Загрузите портретное фото",
      uploadHint:
        "Перетащите или загрузите изображение на левую панель для предпросмотра фото на документы",
      analyzingPhoto: "Анализ фото",
      detectingLandmarks: "Определение ориентиров лица и удаление фона...",
      generatePassportPhoto: "Создать фото на документы",
      generating: "Создание...",
      downloadPhoto: "Скачать фото",
      faceCentered: "Лицо по центру",
      headLevel: "Голова ровно",
      lookingStraight: "Взгляд прямо",
      faceSize: "Размер лица",
      whatYouSee: "Вы скачиваете то, что видите",
      dragToAdjust: "Перетащите для настройки",
      scrollToZoom: "Прокрутите для масштабирования",
      photoGenerated: "Фото создано. Скачайте с левой панели.",
    },
    "transcribe-audio": {
      language: "Язык",
      autoDetect: "Автоопределение",
      outputFormat: "Формат вывода",
      plainText: "Простой текст",
      submit: "Транскрибировать",
      submitBatch: "Транскрибировать ({count} файлов)",
      progressLabel: "Транскрипция аудио",
    },
    "auto-subtitles": {
      language: "Язык",
      autoDetect: "Автоопределение",
      format: "Формат субтитров",
      submit: "Создать субтитры",
      submitBatch: "Создать субтитры ({count} файлов)",
      progressLabel: "Создание субтитров",
    },
    "transparency-fixer": {
      description: "Загрузите PNG с ложной прозрачностью, и мы исправим его в один клик.",
      removeWatermark: "Удалить водяной знак",
      removeWatermarkHelp: "Обнаружение и удаление полупрозрачных водяных знаков",
      requiresEraser: "Требуется пакет удаления объектов",
      advanced: "Расширенные",
      defringe: "Удаление ореола",
      outputFormat: "Формат вывода",
      submit: "Исправить прозрачность",
      submitBatch: "Исправить прозрачность ({count} файлов)",
      progressLabel: "Исправление прозрачности",
    },
    "background-replace": {
      color: "Цвет фона",
      submit: "Заменить фон",
      submitBatch: "Заменить фон ({count} файлов)",
      progressLabel: "Замена фона",
    },
    "blur-background": {
      intensity: "Интенсивность размытия",
      submit: "Размыть фон",
      submitBatch: "Размыть фон ({count} файлов)",
      progressLabel: "Размытие фона",
    },
    "watermark-text": {
      watermarkText: "Текст водяного знака",
      fontSize: "Размер шрифта",
      color: "Цвет",
      opacity: "Непрозрачность",
      position: "Позиция",
      rotation: "Поворот",
      center: "Центр",
      topLeft: "Сверху слева",
      topRight: "Сверху справа",
      bottomLeft: "Снизу слева",
      bottomRight: "Снизу справа",
      tiled: "Плитка",
      submit: "Добавить водяной знак",
      submitBatch: "Добавить водяной знак ({count} файлов)",
      progressLabel: "Добавление водяного знака",
    },
    "watermark-image": {
      uploadWatermark: "Загрузить изображение водяного знака",
      position: "Позиция",
      opacity: "Непрозрачность",
      scale: "Масштаб",
      submit: "Применить водяной знак",
      submitBatch: "Применить водяной знак ({count} файлов)",
    },
    "text-overlay": {
      text: "Текст",
      fontSize: "Размер шрифта",
      color: "Цвет",
      position: "Позиция",
      top: "Сверху",
      center: "Центр",
      bottom: "Снизу",
      backgroundBox: "Фоновый блок",
      backgroundColor: "Цвет фона",
      shadow: "Тень",
      submit: "Добавить текст",
      submitBatch: "Добавить текст ({count} файлов)",
      progressLabel: "Добавление текста",
      download: "Скачать",
      defaultText: "Ваш текст",
    },
    compose: {
      uploadOverlay: "Загрузить накладываемое изображение",
      xPosition: "Позиция X",
      yPosition: "Позиция Y",
      opacity: "Непрозрачность",
      blendMode: "Режим наложения",
      submit: "Наложить",
    },
    "meme-generator": {
      selectTemplate: "Выберите шаблон из галереи или загрузите своё изображение для начала.",
      chooseLayout: "Выберите макет текста для Вашего изображения.",
      textContent: "Текст",
      textStyle: "Стиль текста",
      font: "Шрифт",
      fontSize: "Размер шрифта",
      textColor: "Цвет текста",
      strokeColor: "Цвет обводки",
      allCaps: "ВСЕ ЗАГЛАВНЫЕ",
      generate: "Создать Meme",
      generating: "Создание...",
      downloadMeme: "Скачать Meme",
      backToGallery: "Назад к галерее",
    },
    info: {
      loadingInfo: "Загрузка информации...",
      filename: "Имя файла",
      fileSize: "Размер файла",
      dimensions: "Размеры",
      format: "Формат",
      channels: "Каналы",
      colorSpace: "Цветовое пространство",
      density: "Плотность",
      bitDepth: "Глубина цвета",
      progressive: "Прогрессивный",
      pages: "Страницы",
      hasAlpha: "Альфа-канал",
      hasProfile: "Профиль",
      hasExif: "EXIF",
      hasIcc: "ICC",
      hasXmp: "XMP",
      readInfo: "Считать данные",
      reading: "Чтение...",
      channelStats: "Статистика каналов",
      yes: "Да",
      no: "Нет",
      na: "Н/Д",
      failedToRead: "Не удалось считать данные",
    },
    compare: {
      uploadSecondImage: "Загрузить второе изображение",
      similarity: "Сходство: {percent}%",
      submit: "Сравнить",
      downloadDiff: "Скачать разницу",
    },
    "find-duplicates": {
      preset: "Шаблон",
      exact: "Точные",
      similar: "Похожие",
      loose: "Приблизительные",
      exactDesc: "Идентичные копии, одно изображение в разных форматах.",
      similarDesc: "Масштабированные, пережатые или слегка отредактированные копии.",
      looseDesc: "Визуально связанные изображения, лёгкие кадрировки, различная экспозиция.",
      threshold: "Порог",
      submit: "Искать дубликаты",
      scanning: "Сканирование...",
    },
    "color-palette": {
      submit: "Извлечь палитру",
      extracting: "Извлечение...",
      dominantColors: "Доминирующие цвета",
      clickToCopy: "Нажмите для копирования",
    },
    "qr-generate": {
      contentType: "Тип содержимого",
      url: "URL",
      text: "Текст",
      wifi: "WiFi",
      vcard: "vCard",
      email: "Эл. почта",
      phone: "Телефон",
      sms: "SMS",
      styling: "Стилизация",
      dotStyle: "Стиль точек",
      cornerSquareStyle: "Стиль угловых квадратов",
      cornerDotStyle: "Стиль угловых точек",
      foregroundColor: "Цвет переднего плана",
      bgColor: "Цвет фона",
      logo: "Логотип",
      downloadFormat: "Формат скачивания",
      submit: "Сгенерировать QR-код",
      download: "Скачать QR-код",
    },
    "html-to-image": {
      modeUrl: "URL",
      modeHtml: "HTML-файл",
      htmlFile: "HTML-файл",
      url: "URL",
      urlPlaceholder: "https://snapotter.com",
      format: "Формат вывода",
      quality: "Качество",
      devicePreset: "Устройство",
      viewportWidth: "Ширина",
      viewportHeight: "Высота",
      fullPage: "Вся страница",
      submit: "Захватить",
      download: "Скачать снимок",
      capturing: "Захват веб-страницы...",
      errorTimeout: "Страница загружалась слишком долго",
      errorBlocked: "Этот URL нельзя захватить",
      errorUnavailable: "Сервис снимков экрана недоступен",
      errorFailed: "Не удалось захватить страницу",
      placeholder: 'Введите URL и нажмите "Захватить"',
      presets: {
        desktop: "Компьютер",
        tablet: "Планшет",
        mobile: "Мобильный",
        custom: "Пользовательский",
      },
    },
    "barcode-read": {
      submit: "Сканировать штрихкоды",
      submitBatch: "Сканировать ({count} файлов)",
      scanning: "Сканирование...",
      noBarcodesFound: "Штрихкоды не найдены",
      barcodesFound: "Найден {count} штрихкод",
      barcodesFoundPlural: "Найдено {count} штрихкодов",
    },
    collage: {
      template: "Шаблон",
      aspectRatio: "Соотношение сторон",
      gap: "Отступ",
      cornerRadius: "Скругление углов",
      backgroundColor: "Цвет фона",
      outputFormat: "Формат вывода",
      quality: "Качество",
      submit: "Создать коллаж",
      downloadCollage: "Скачать коллаж",
    },
    stitch: {
      direction: "Направление",
      horizontal: "Горизонтально",
      vertical: "Вертикально",
      grid: "Сетка",
      gridColumns: "Столбцы сетки",
      resizeMode: "Режим масштабирования",
      fit: "Вписать",
      original: "Оригинал",
      stretchMode: "Растянуть",
      cropMode: "Обрезать",
      alignment: "Выравнивание",
      start: "Начало",
      center: "Центр",
      end: "Конец",
      gap: "Отступ",
      border: "Рамка",
      cornerRadius: "Скругление углов",
      backgroundColor: "Цвет фона",
      outputFormat: "Формат вывода",
      quality: "Качество",
      submit: "Объединить изображения",
    },
    split: {
      modeGrid: "Сетка",
      modeTileSize: "Размер плитки",
      presets: "Шаблоны",
      columns: "Столбцы",
      rows: "Строки",
      tileWidth: "Ширина плитки",
      tileHeight: "Высота плитки",
      outputFormat: "Формат вывода",
      quality: "Качество",
      submit: "Разделить изображение",
      downloadAll: "Скачать всё (ZIP)",
    },
    border: {
      presets: "Шаблоны",
      borderWidth: "Ширина рамки",
      borderColor: "Цвет рамки",
      padding: "Отступ",
      paddingColor: "Цвет отступа",
      cornerRadius: "Скругление углов",
      shadow: "Тень",
      shadowBlur: "Размытие тени",
      shadowOffsetX: "Смещение тени X",
      shadowOffsetY: "Смещение тени Y",
      shadowColor: "Цвет тени",
      shadowOpacity: "Непрозрачность тени",
      submit: "Добавить рамку",
      submitBatch: "Добавить рамку ({count} файлов)",
      progressLabel: "Добавление рамки",
    },
    beautify: {
      preset: "Шаблон",
      backgroundType: "Тип фона",
      solidColor: "Сплошной цвет",
      linearGradient: "Линейный градиент",
      radialGradient: "Радиальный градиент",
      customImage: "Своё изображение",
      gradientAngle: "Угол градиента",
      padding: "Отступ",
      borderRadius: "Скругление углов",
      shadowPreset: "Шаблон тени",
      deviceFrame: "Рамка устройства",
      submit: "Украсить",
      submitBatch: "Украсить ({count} файлов)",
      progressLabel: "Украшение скриншота",
    },
    "circle-crop": {
      submit: "Круглая обрезка",
      submitBatch: "Круглая обрезка ({count} файлов)",
      progressLabel: "Обрезка по кругу",
    },
    duotone: {
      shadow: "Цвет теней",
      highlight: "Цвет светов",
      submit: "Применить дуотон",
      submitBatch: "Применить дуотон ({count} файлов)",
      progressLabel: "Применение дуотона",
    },
    "image-pad": {
      target: "Целевое соотношение",
      color: "Цвет фона",
      submit: "Добавить поля",
      submitBatch: "Добавить поля ({count} файлов)",
      progressLabel: "Добавление полей",
    },
    pixelate: {
      blockSize: "Размер блока",
      submit: "Пикселизировать",
      submitBatch: "Пикселизировать ({count} файлов)",
      progressLabel: "Пикселизация",
    },
    vignette: {
      strength: "Интенсивность",
      color: "Цвет виньетки",
      submit: "Применить виньетку",
      submitBatch: "Применить виньетку ({count} файлов)",
      progressLabel: "Применение виньетки",
    },
    "gif-webp": {
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация анимации",
    },
    histogram: {
      submit: "Создать гистограмму",
      submitBatch: "Создать гистограмму ({count} файлов)",
      progressLabel: "Создание гистограммы",
    },
    "lqip-placeholder": {
      width: "Ширина",
      blur: "Размытие",
      submit: "Создать заглушку",
      submitBatch: "Создать заглушку ({count} файлов)",
      progressLabel: "Создание заглушки",
    },
    "sprite-sheet": {
      columns: "Столбцы",
      padding: "Отступ",
      background: "Цвет фона",
      submit: "Создать спрайт-лист",
      submitBatch: "Создать спрайт-лист",
      progressLabel: "Создание спрайт-листа",
    },
    "svg-to-raster": {
      outputFormat: "Формат вывода",
      sizing: "Размер",
      scaleMode: "Масштаб",
      customMode: "Пользовательский",
      scalePresets: "Шаблоны масштаба",
      dpiPresets: "Шаблоны DPI",
      customWidth: "Ширина (px)",
      customHeight: "Высота (px)",
      background: "Фон",
      bgTransparent: "Прозрачный",
      bgColor: "Цвет",
      quality: "Качество",
      submit: "Конвертировать SVG",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация SVG",
    },
    vectorize: {
      preset: "Шаблон",
      logo: "Логотип",
      illustration: "Иллюстрация",
      photo: "Фотография",
      sketch: "Эскиз",
      customPreset: "Пользовательский",
      colorMode: "Цветовой режим",
      bw: "Ч/Б",
      colorModeColor: "Цветной",
      threshold: "Порог",
      colorPrecision: "Точность цвета",
      layerDifference: "Разница слоёв",
      filterSpeckle: "Фильтр артефактов",
      pathMode: "Режим контуров",
      cornerThreshold: "Порог углов",
      invertColors: "Инвертировать цвета",
      submit: "Векторизовать",
      submitBatch: "Векторизовать ({count} файлов)",
      progressLabel: "Векторизация",
    },
    "gif-tools": {
      mode: "Режим",
      resize: "Изменить размер",
      optimize: "Оптимизировать",
      speed: "Скорость",
      reverse: "Реверс",
      extract: "Извлечь",
      rotateMode: "Повернуть",
      pixel: "Пиксели",
      percentage: "Проценты",
      colors: "Цвета",
      dither: "Дизеринг",
      effort: "Усилие",
      speedFactor: "Коэффициент скорости",
      loopControl: "Управление циклом",
      infinite: "Бесконечный",
      once: "Один раз",
      customLoop: "Пользовательский",
      loopCount: "Количество циклов",
      extractSingle: "Один кадр",
      extractRange: "Диапазон",
      extractAll: "Все",
      frameNumber: "Номер кадра",
      frameStart: "Начальный кадр",
      frameEnd: "Конечный кадр",
      extractFormat: "Формат",
      submit: "Обработать GIF",
      submitBatch: "Обработать ({count} файлов)",
      progressLabel: "Обработка GIF",
    },
    "image-to-base64": {
      outputFormat: "Формат вывода",
      keepOriginal: "Сохранить оригинал",
      quality: "Качество",
      maxWidth: "Макс. ширина",
      maxHeight: "Макс. высота",
      submit: "Конвертировать в Base64",
      submitBatch: "Конвертировать ({count} файлов)",
      copyBase64: "Копировать Base64",
      copyDataUri: "Копировать Data URI",
      copyImgTag: "Копировать <img>",
      copyCssUrl: "Копировать CSS url()",
    },
    "barcode-generate": {
      text: "Текст",
      type: "Тип штрихкода",
      scale: "Масштаб",
      includeText: "Включить текст",
      submit: "Создать штрихкод",
      download: "Скачать штрихкод",
    },
    "chart-maker": {
      kind: "Тип диаграммы",
      title: "Заголовок",
      width: "Ширина",
      height: "Высота",
      submit: "Создать диаграмму",
      submitBatch: "Создать диаграмму ({count} файлов)",
      progressLabel: "Создание диаграммы",
    },
    "enhance-faces-standalone": {
      model: "Модель",
      fast: "Быстрая",
      balanced: "Сбалансированная",
      best: "Лучшая",
    },
    "convert-video": {
      format: "Формат вывода",
      quality: "Качество",
      high: "Высокое",
      balanced: "Сбалансированное",
      small: "Минимальный размер",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "compress-video": {
      quality: "Сжатие",
      light: "Лёгкое",
      balanced: "Сбалансированное",
      strong: "Сильное",
      resolution: "Разрешение",
      original: "Оригинал",
      submit: "Сжать",
      submitBatch: "Сжать ({count} файлов)",
      progressLabel: "Сжатие",
    },
    "trim-video": {
      start: "Начало (секунды)",
      end: "Конец (секунды)",
      precise: "Покадровая точность (перекодировка)",
      submit: "Обрезать",
      submitBatch: "Обрезать ({count} файлов)",
      progressLabel: "Обрезка",
    },
    "mute-video": {
      submit: "Удалить звук",
      submitBatch: "Удалить звук ({count} файлов)",
      progressLabel: "Удаление звука",
    },
    "video-to-gif": {
      fps: "Кадров в секунду",
      width: "Ширина (px)",
      start: "Начало (секунды)",
      duration: "Длительность (секунды)",
      submit: "Создать GIF",
      submitBatch: "Создать GIF ({count} файлов)",
      progressLabel: "Создание GIF",
    },
    "resize-video": {
      preset: "Шаблон",
      width: "Ширина (px)",
      height: "Высота (px)",
      hint: "Оставьте одно измерение пустым для сохранения пропорций",
      submit: "Изменить размер",
      submitBatch: "Изменить размер ({count} файлов)",
      progressLabel: "Изменение размера",
    },
    "crop-video": {
      width: "Ширина (px)",
      height: "Высота (px)",
      x: "Смещение X",
      y: "Смещение Y",
      submit: "Кадрировать",
      submitBatch: "Кадрировать ({count} файлов)",
      progressLabel: "Кадрирование",
    },
    "rotate-video": {
      transform: "Преобразование",
      cw90: "Поворот на 90° по часовой",
      ccw90: "Поворот на 90° против часовой",
      rotate180: "Поворот на 180°",
      hflip: "Отразить по горизонтали",
      vflip: "Отразить по вертикали",
      submit: "Повернуть",
      submitBatch: "Повернуть ({count} файлов)",
      progressLabel: "Поворот",
    },
    "change-fps": {
      fps: "Кадров в секунду",
      submit: "Изменить fps",
      submitBatch: "Изменить fps ({count} файлов)",
      progressLabel: "Изменение fps",
    },
    "video-color": {
      brightness: "Яркость",
      contrast: "Контрастность",
      saturation: "Насыщенность",
      gamma: "Гамма",
      submit: "Применить",
      submitBatch: "Применить ({count} файлов)",
      progressLabel: "Настройка цвета",
    },
    "video-speed": {
      factor: "Коэффициент скорости",
      keepPitch: "Сохранить исходную тональность",
      submit: "Изменить скорость",
      submitBatch: "Изменить скорость ({count} файлов)",
      progressLabel: "Изменение скорости",
    },
    "reverse-video": {
      hint: "Ограничено клипами до 5 минут",
      submit: "Обратить",
      submitBatch: "Обратить ({count} файлов)",
      progressLabel: "Обращение",
    },
    "video-loudnorm": {
      hint: "Нормализация звука по стандарту EBU R128",
      submit: "Нормализовать",
      submitBatch: "Нормализовать ({count} файлов)",
      progressLabel: "Нормализация",
    },
    "aspect-pad": {
      target: "Целевое соотношение",
      color: "Цвет фона",
      colorHint: "HEX-цвет, например #000000",
      submit: "Добавить поля",
      submitBatch: "Добавить поля ({count} файлов)",
      progressLabel: "Добавление полей",
    },
    "blur-pad": {
      target: "Целевое соотношение",
      blur: "Сила размытия",
      submit: "Добавить поля",
      submitBatch: "Добавить поля ({count} файлов)",
      progressLabel: "Добавление полей",
    },
    "watermark-video": {
      text: "Текст водяного знака",
      position: "Положение",
      fontSize: "Размер шрифта",
      opacity: "Непрозрачность",
      color: "Цвет",
      colorHint: "HEX-цвет, например #ffffff",
      submit: "Добавить водяной знак",
      submitBatch: "Добавить водяной знак ({count} файлов)",
      progressLabel: "Добавление водяного знака",
    },
    "stabilize-video": {
      smoothing: "Сглаживание",
      hint: "Выполняется в два прохода и занимает больше времени",
      submit: "Стабилизировать",
      submitBatch: "Стабилизировать ({count} файлов)",
      progressLabel: "Стабилизация",
    },
    "gif-to-video": {
      format: "Формат вывода",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "video-to-webp": {
      fps: "Кадров в секунду",
      width: "Ширина (px)",
      quality: "Качество",
      loop: "Зациклить анимацию",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "video-to-frames": {
      mode: "Режим извлечения",
      modeAll: "Все кадры",
      modeNth: "Каждый N-й кадр",
      modeTimestamps: "Конкретные метки времени",
      n: "Брать каждый N-й кадр",
      timestamps: "Метки времени (секунды)",
      timestampsHint: "Через запятую, например 0.5, 2, 4.5",
      format: "Формат изображения",
      submit: "Извлечь кадры",
      submitBatch: "Извлечь кадры ({count} файлов)",
      progressLabel: "Извлечение кадров",
    },
    "merge-videos": {
      hint: "Файлы объединяются в порядке загрузки",
      submit: "Объединить",
      submitBatch: "Объединить ({count} файлов)",
      progressLabel: "Объединение",
    },
    "replace-audio": {
      hint: "Сначала загрузите видео, затем аудио",
      submit: "Заменить звук",
      submitBatch: "Заменить звук ({count} файлов)",
      progressLabel: "Замена звука",
    },
    "burn-subtitles": {
      fontSize: "Размер шрифта",
      hint: "Загрузите видео и файл субтитров (.srt или .vtt)",
      submit: "Вшить субтитры",
      submitBatch: "Вшить субтитры ({count} файлов)",
      progressLabel: "Вшивание субтитров",
    },
    "embed-subtitles": {
      language: "Код языка",
      languageHint: "Трёхбуквенный код ISO 639-2, например eng, spa, fra",
      submit: "Встроить субтитры",
      submitBatch: "Встроить субтитры ({count} файлов)",
      progressLabel: "Встраивание субтитров",
    },
    "extract-subtitles": {
      submit: "Извлечь субтитры",
      submitBatch: "Извлечь субтитры ({count} файлов)",
      progressLabel: "Извлечение субтитров",
    },
    "images-to-video": {
      secondsPerImage: "Секунд на изображение",
      resolution: "Разрешение",
      fps: "Кадров в секунду",
      submit: "Создать видео",
      submitBatch: "Создать видео ({count} файлов)",
      progressLabel: "Создание слайд-шоу",
    },
    "video-metadata": {
      hint: "Отчёт о метаданных появится в результате",
      submit: "Удалить метаданные",
      submitBatch: "Удалить метаданные ({count} файлов)",
      progressLabel: "Удаление метаданных",
    },
    "convert-audio": {
      format: "Формат вывода",
      bitrate: "Битрейт (kbps)",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "trim-audio": {
      start: "Начало (секунды)",
      end: "Конец (секунды)",
      submit: "Обрезать",
      submitBatch: "Обрезать ({count} файлов)",
      progressLabel: "Обрезка",
    },
    "extract-audio": {
      format: "Формат вывода",
      submit: "Извлечь",
      submitBatch: "Извлечь ({count} файлов)",
      progressLabel: "Извлечение",
    },
    "volume-adjust": {
      "gain-db": "Усиление (dB)",
      submit: "Настроить громкость",
      submitBatch: "Настроить громкость ({count} файлов)",
      progressLabel: "Настройка громкости",
    },
    "normalize-audio": {
      hint: "Нормализация громкости по стандарту EBU R128",
      submit: "Нормализовать",
      submitBatch: "Нормализовать ({count} файлов)",
      progressLabel: "Нормализация",
    },
    "fade-audio": {
      "fade-in-s": "Нарастание (секунды)",
      "fade-out-s": "Затухание (секунды)",
      submit: "Применить переходы",
      submitBatch: "Применить переходы ({count} файлов)",
      progressLabel: "Применение переходов",
    },
    "reverse-audio": {
      submit: "Обратить",
      submitBatch: "Обратить ({count} файлов)",
      progressLabel: "Обращение",
    },
    "audio-speed": {
      factor: "Множитель скорости",
      submit: "Изменить скорость",
      submitBatch: "Изменить скорость ({count} файлов)",
      progressLabel: "Изменение скорости",
    },
    "pitch-shift": {
      semitones: "Полутоны",
      hint: "Значение 0 полутонов не допускается",
      submit: "Сдвинуть тональность",
      submitBatch: "Сдвинуть тональность ({count} файлов)",
      progressLabel: "Сдвиг тональности",
    },
    "audio-channels": {
      mode: "Режим каналов",
      "stereo-to-mono": "Стерео в моно",
      "mono-to-stereo": "Моно в стерео",
      swap: "Поменять левый/правый",
      submit: "Преобразовать каналы",
      submitBatch: "Преобразовать каналы ({count} файлов)",
      progressLabel: "Преобразование каналов",
    },
    "silence-removal": {
      "threshold-db": "Порог тишины (dB)",
      "min-silence-s": "Минимальная длительность тишины (секунды)",
      submit: "Удалить тишину",
      submitBatch: "Удалить тишину ({count} файлов)",
      progressLabel: "Удаление тишины",
    },
    "noise-reduction": {
      strength: "Интенсивность",
      light: "Лёгкая",
      medium: "Средняя",
      strong: "Сильная",
      submit: "Снизить шум",
      submitBatch: "Снизить шум ({count} файлов)",
      progressLabel: "Снижение шума",
    },
    "merge-audio": {
      format: "Выходной формат",
      mp3: "MP3",
      wav: "WAV",
      flac: "FLAC",
      m4a: "M4A",
      "order-hint": "Файлы будут соединены в порядке загрузки",
      submit: "Объединить аудио",
      submitBatch: "Объединить аудио ({count} файлов)",
      progressLabel: "Объединение аудио",
    },
    "split-audio": {
      mode: "Режим разделения",
      time: "По времени",
      parts: "Равные части",
      silence: "По тишине",
      "segment-s": "Длина сегмента (секунды)",
      "num-parts": "Количество частей",
      "threshold-db": "Порог тишины (dB)",
      "min-silence-s": "Минимальная длительность тишины (секунды)",
      submit: "Разделить аудио",
      submitBatch: "Разделить аудио ({count} файлов)",
      progressLabel: "Разделение аудио",
    },
    "ringtone-maker": {
      "start-s": "Время начала (секунды)",
      "duration-s": "Длительность (секунды)",
      "max-hint": "Максимум 30 секунд",
      submit: "Создать рингтон",
      submitBatch: "Создать рингтон ({count} файлов)",
      progressLabel: "Создание рингтона",
    },
    "waveform-image": {
      width: "Ширина (px)",
      height: "Высота (px)",
      color: "Цвет волновой формы",
      submit: "Создать осциллограмму",
      submitBatch: "Создать осциллограмму ({count} файлов)",
      progressLabel: "Создание осциллограммы",
    },
    "audio-metadata": {
      strip: "Удалить все метаданные",
      title: "Название",
      artist: "Исполнитель",
      album: "Альбом",
      submit: "Применить метаданные",
      submitBatch: "Применить метаданные ({count} файлов)",
      progressLabel: "Применение метаданных",
    },
    "merge-pdf": {
      addFiles: "Добавьте PDF для объединения",
      needTwo: "Необходимо минимум два PDF",
      orderHint: "{count} PDF будут объединены в этом порядке",
      submit: "Объединить",
      submitBatch: "Объединить ({count} файлов)",
      progressLabel: "Объединение",
    },
    "split-pdf": {
      mode: "Режим разделения",
      range: "Диапазон страниц",
      rangeHint: "напр. 1-3, 5, 7-z",
      everyN: "Страниц в части",
      submit: "Разделить",
      submitBatch: "Разделить ({count} файлов)",
      progressLabel: "Разделение",
    },
    "compress-pdf": {
      preset: "Предустановка качества",
      screen: "Экран (минимальный размер)",
      ebook: "Электронная книга (баланс)",
      printer: "Печать (лучшее качество)",
      submit: "Сжать",
      submitBatch: "Сжать ({count} файлов)",
      progressLabel: "Сжатие",
    },
    "rotate-pdf": {
      angle: "Угол поворота",
      range: "Диапазон страниц",
      rangeHint: "напр. 1-3, 5, 1-z (все страницы)",
      submit: "Повернуть",
      submitBatch: "Повернуть ({count} файлов)",
      progressLabel: "Поворот",
    },
    "convert-document": {
      format: "Выходной формат",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "convert-presentation": {
      format: "Выходной формат",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "convert-spreadsheet": {
      format: "Выходной формат",
      hint: "Многолистовые книги экспортируют в CSV только первый лист.",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "excel-to-pdf": {
      submit: "Конвертировать в PDF",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "powerpoint-to-pdf": {
      submit: "Конвертировать в PDF",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "word-to-pdf": {
      submit: "Конвертировать в PDF",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "extract-pages": {
      range: "Диапазон страниц",
      rangeHint: "напр. 1-3, 5, 7-z",
      submit: "Извлечь",
      submitBatch: "Извлечь ({count} файлов)",
      progressLabel: "Извлечение",
    },
    "remove-pages": {
      pages: "Страницы для удаления",
      pagesHint: "напр. 2, 4-6, z (последняя страница)",
      submit: "Удалить",
      submitBatch: "Удалить ({count} файлов)",
      progressLabel: "Удаление",
    },
    "organize-pdf": {
      order: "Порядок страниц",
      orderHint: "напр. 3,1,2 или 1-z (без изменений)",
      submit: "Упорядочить",
      submitBatch: "Упорядочить ({count} файлов)",
      progressLabel: "Упорядочивание",
    },
    "protect-pdf": {
      userPassword: "Пароль пользователя",
      ownerPassword: "Пароль владельца (необязательно)",
      ownerPasswordHint: "По умолчанию совпадает с паролем пользователя",
      submit: "Защитить",
      submitBatch: "Защитить ({count} файлов)",
      progressLabel: "Шифрование",
    },
    "unlock-pdf": {
      password: "Пароль",
      submit: "Разблокировать",
      submitBatch: "Разблокировать ({count} файлов)",
      progressLabel: "Дешифрование",
    },
    "repair-pdf": {
      submit: "Восстановить",
      submitBatch: "Восстановить ({count} файлов)",
      progressLabel: "Восстановление",
    },
    "linearize-pdf": {
      submit: "Оптимизировать",
      submitBatch: "Оптимизировать ({count} файлов)",
      progressLabel: "Линеаризация",
    },
    "grayscale-pdf": {
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "pdfa-convert": {
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "crop-pdf": {
      margin: "Поля (пункты)",
      submit: "Обрезать",
      submitBatch: "Обрезать ({count} файлов)",
      progressLabel: "Обрезка",
    },
    "nup-pdf": {
      perSheet: "Страниц на лист",
      submit: "Скомпоновать",
      submitBatch: "Скомпоновать ({count} файлов)",
      progressLabel: "Компоновка",
    },
    "booklet-pdf": {
      perSheet: "Страниц на лист",
      submit: "Создать буклет",
      submitBatch: "Создать буклет ({count} файлов)",
      progressLabel: "Создание буклета",
    },
    "watermark-pdf": {
      text: "Текст водяного знака",
      position: "Положение",
      fontSize: "Размер шрифта",
      opacity: "Непрозрачность",
      rotation: "Поворот",
      submit: "Добавить водяной знак",
      submitBatch: "Добавить водяной знак ({count} файлов)",
      progressLabel: "Нанесение водяного знака",
    },
    "pdf-page-numbers": {
      position: "Положение",
      fontSize: "Размер шрифта",
      submit: "Добавить нумерацию",
      submitBatch: "Добавить нумерацию ({count} файлов)",
      progressLabel: "Нумерация",
    },
    "flatten-pdf": {
      submit: "Свести слои",
      submitBatch: "Свести слои ({count} файлов)",
      progressLabel: "Сведение слоёв",
    },
    "redact-pdf": {
      terms: "Слова для зачернения",
      termsHint: "По одному слову на строку (максимум 50)",
      caseSensitive: "С учётом регистра",
      submit: "Зачернить",
      submitBatch: "Зачернить ({count} файлов)",
      progressLabel: "Зачернение",
    },
    "pdf-to-text": {
      submit: "Извлечь текст",
      submitBatch: "Извлечь текст ({count} файлов)",
      progressLabel: "Извлечение текста",
    },
    "pdf-to-word": {
      hint: "Лучше всего подходит для текстовых PDF; для сканов нужен OCR",
      submit: "Конвертировать в Word",
      submitBatch: "Конвертировать в Word ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "pdf-metadata": {
      title: "Название",
      author: "Автор",
      subject: "Тема",
      keywords: "Ключевые слова",
      submit: "Задать метаданные",
      submitBatch: "Задать метаданные ({count} файлов)",
      progressLabel: "Установка метаданных",
    },
    "html-to-pdf": {
      hint: "Внешние ресурсы отключены для конфиденциальности.",
      submit: "Конвертировать в PDF",
      submitBatch: "Конвертировать в PDF ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "markdown-to-docx": {
      submit: "Конвертировать в DOCX",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "markdown-to-html": {
      hint: "Внешние изображения в исходном файле остаются без изменений.",
      submit: "Конвертировать в HTML",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "markdown-to-pdf": {
      hint: "Внешние ресурсы отключены для конфиденциальности.",
      submit: "Конвертировать в PDF",
      submitBatch: "Конвертировать в PDF ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "epub-convert": {
      format: "Выходной формат",
      hint: "Внешние ресурсы внутри книги не загружаются.",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "to-epub": {
      submit: "Конвертировать в EPUB",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "csv-excel": {
      sheet: "Номер листа",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "csv-json": {
      pretty: "Форматированный вывод",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "json-xml": {
      pretty: "Форматированный вывод",
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "split-csv": {
      rowsPerFile: "Строк в файле",
      keepHeader: "Сохранять заголовок в каждом файле",
      submit: "Разделить",
      submitBatch: "Разделить ({count} файлов)",
      progressLabel: "Разделение",
    },
    "merge-csvs": {
      submit: "Объединить",
      submitBatch: "Объединить ({count} файлов)",
      progressLabel: "Объединение",
    },
    "yaml-json": {
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "xml-to-csv": {
      submit: "Конвертировать",
      submitBatch: "Конвертировать ({count} файлов)",
      progressLabel: "Конвертация",
    },
    "create-zip": {
      submit: "Создать ZIP",
      submitBatch: "Создать ZIP ({count} файлов)",
      progressLabel: "Архивация",
    },
    "extract-zip": {
      submit: "Извлечь",
      submitBatch: "Извлечь ({count} файлов)",
      progressLabel: "Извлечение",
    },
  },
  urlImport: {
    title: "Импорт по URL",
    placeholder: "Вставьте URL изображений, по одному на строку...",
    importButton: "Импортировать URL",
    addButton: "Добавить {count} файлов",
    adding: "Добавление...",
    retryButton: "Повторить",
    cancelButton: "Отмена",
    readyCount: "{count} готово",
    failedStatus: "Ошибка",
  },
  comparison: {
    original: "Оригинал",
    processed: "Обработано",
    before: "До",
    after: "После",
    savings: "Экономия",
  },
  toolPage: {
    emptyPrompt: "Перетащите или загрузите изображение для начала",
    filesCount: "Файлы ({count})",
    addMore: "+ Добавить ещё",
    clearAll: "Очистить всё",
    acceptDescription: "Только файлы {exts}",
    notFound: "Инструмент не найден",
    configureAndGenerate: "Настройте параметры и запустите генерацию.",
    processingFailed: "Обработка этого файла не удалась",
    conversionComplete: "Конвертация завершена",
    cannotPreviewDownload:
      "Файлы {type} невозможно просмотреть в браузере. Используйте кнопку скачивания для сохранения файла.",
    generatingPreview: "Генерация предпросмотра...",
    cannotPreviewWillProcess:
      "Файлы {ext} невозможно просмотреть в браузере. Инструмент всё равно обработает этот файл.",
    previousImage: "Предыдущий файл",
    nextImage: "Следующий файл",
    imageCounter: "{current} / {total}",
    settingsLabel: "Настройки",
    downloadAllZip: "Скачать всё (ZIP)",
    hideSettings: "Скрыть настройки",
    imageArea: "Область предпросмотра",
    disabledByAdmin: "Этот инструмент отключён администратором",
    browseOtherTools: "Другие инструменты",
    privacyNote: "Файлы обрабатываются на вашем сервере и не покидают вашу сеть",
    applyAndDownload: "Применить и скачать",
    andMore: "и ещё {count}",
    importFromFiles: "Импорт из Файлов",
    saveToFiles: "Сохранить в Файлы",
    savedToFiles: "Сохранено в Файлы",
    adjustSettings: "Настроить параметры",
    startOver: "Начать заново с новым файлом",
    newFile: "Новый файл",
    previewUnavailable: "Предпросмотр будет доступен после обработки",
    generatePreview: "Сгенерировать предпросмотр",
    previewFailed: "Не удалось сгенерировать предпросмотр",
    backToTools: "Назад к инструментам",
    original: "Оригинал",
    processed: "Обработано",
    saved: "Сохранено",
    noChange: "без изменений",
    download: "Скачать",
    settingsSaved: "Ваши настройки сохранены.",
    tryAgain: "Попробовать снова",
    tryDifferentFile: "Попробовать другой файл",
    batchPartialSuccess: "{success} из {total} обработано. {failed} с ошибкой.",
    dataResultsHint:
      "Результаты показаны выше. Используйте кнопку копирования на панели результатов.",
    downloadAsFile: "Скачать как файл",
    downloadAll: "Скачать все",
    downloadFiles: "Скачать {count} файлов",
    audioDecodeUnsupported: "Этот аудиоформат не поддерживается для предпросмотра в браузере",
  },
  homePage: {
    generatingPreview: "Генерация предпросмотра...",
    loadingPreview: "Загрузка предпросмотра...",
    changeFile: "Сменить файл",
    quickActions: "Быстрые действия",
    allTools: "Все инструменты",
    searchPlaceholder: "Поиск среди {count} инструментов...",
    recent: "Недавние",
    popular: "Популярные",
    browseByCategory: "По категориям",
    gettingStarted: "Начало работы",
    noToolsMatch: "Инструменты по запросу '{query}' не найдены",
    clearSearch: "Очистить поиск",
    all: "Все",
    documents: "PDF",
    data: "Файлы",
    pdf: "PDF",
    files: "Файлы",
    toolCount: "{count} инструментов",
    heading: "Инструменты SnapOtter",
  },
  fullscreenGrid: {
    searchPlaceholder: "Поиск инструментов...",
    hideDetails: "Скрыть подробности",
    showDetails: "Показать подробности",
    switchToSidebar: "Переключить на боковую панель",
    sidebarButton: "Боковая панель",
    noToolsFound: "Инструменты не найдены",
    tryDifferent: "Попробуйте другой поисковый запрос",
  },
  editor: {
    menu: {
      file: {
        label: "Файл",
        new: "Новый",
        open: "Открыть",
        save: "Сохранить",
        exportAs: "Экспортировать как...",
        quickExportPng: "Быстрый экспорт в PNG",
        close: "Закрыть",
      },
      edit: {
        label: "Редактирование",
        undo: "Отменить",
        redo: "Повторить",
        cut: "Вырезать",
        copy: "Копировать",
        copyMerged: "Копировать совмещённое",
        paste: "Вставить",
        pasteInPlace: "Вставить на место",
        delete: "Удалить",
        freeTransform: "Свободная трансформация",
        transform: {
          label: "Трансформация",
          scale: "Масштаб",
          rotate: "Поворот",
          skew: "Наклон",
          flipHorizontal: "Отразить по горизонтали",
          flipVertical: "Отразить по вертикали",
        },
      },
      image: {
        label: "Изображение",
        imageSize: "Размер изображения...",
        canvasSize: "Размер холста...",
        rotation: {
          label: "Поворот изображения",
          cw90: "90° по часовой",
          ccw90: "90° против часовой",
          r180: "180°",
          flipHorizontal: "Отразить по горизонтали",
          flipVertical: "Отразить по вертикали",
        },
        trim: "Обрезка",
        adjustments: {
          label: "Коррекция",
          brightnessContrast: "Яркость/Контраст",
          hueSaturation: "Тон/Насыщенность",
          colorBalance: "Цветовой баланс",
          levels: "Уровни",
          curves: "Кривые",
        },
      },
      layer: {
        label: "Слой",
        newLayer: "Новый слой",
        duplicateLayer: "Дублировать слой",
        deleteLayer: "Удалить слой",
        arrange: {
          label: "Расположение",
          bringToFront: "На передний план",
          bringForward: "Переместить вперёд",
          sendBackward: "Переместить назад",
          sendToBack: "На задний план",
        },
        mergeDown: "Объединить с нижним",
        flattenImage: "Выполнить сведение",
      },
      select: {
        label: "Выделение",
        all: "Выделить всё",
        deselect: "Снять выделение",
        inverse: "Инвертировать",
        colorRange: "Цветовой диапазон...",
      },
      filter: {
        label: "Фильтр",
        blur: {
          label: "Размытие",
          gaussian: "Размытие по Гауссу",
          motion: "Размытие в движении",
          radial: "Радиальное размытие",
          surface: "Поверхностное размытие",
        },
        sharpen: {
          label: "Резкость",
          sharpen: "Повысить резкость",
          unsharpMask: "Нерезкая маска",
        },
        noise: {
          label: "Шум",
          addNoise: "Добавить шум",
          reduceNoise: "Уменьшить шум",
        },
        pixelate: {
          label: "Пикселизация",
          pixelate: "Пикселизация",
          mosaic: "Мозаика",
        },
        stylize: {
          label: "Стилизация",
          emboss: "Тиснение",
          solarize: "Соляризация",
          posterize: "Постеризация",
        },
        grayscale: "Оттенки серого",
        sepia: "Сепия",
        invert: "Инверсия",
      },
      view: {
        label: "Вид",
        zoomIn: "Увеличить",
        zoomOut: "Уменьшить",
        fitOnScreen: "По размеру экрана",
        actualPixels: "Реальный размер",
        rulers: "Линейки",
        grid: "Сетка",
        guides: "Направляющие",
        snap: "Привязка",
        panels: "Панели",
      },
    },
    menuBar: {
      backTitle: "Назад к SnapOtter",
    },
    welcome: {
      ariaLabel: "Зона перетаскивания изображений",
      heading: "Редактор изображений",
      dropDescription: "Перетащите изображение сюда для начала работы",
      openImageButton: "Открыть изображение",
      newDocumentButton: "Новый документ",
      pasteHint: "Или вставьте из буфера обмена (Ctrl+V)",
    },
    mobile: {
      heading: "Рекомендуется настольный ПК",
      description:
        "Редактор изображений лучше работает на настольных экранах. Переключитесь на устройство с большим дисплеем для полноценного редактирования.",
    },
    errors: {
      serverDecodeFailed: "Ошибка декодирования на сервере",
    },
    shapes: {
      shape: "Фигура",
      fill: "Заливка",
      stroke: "Обводка",
      strokeWidth: "Ширина",
      cornerRadius: "Радиус",
      sides: "Стороны",
      points: "Точки",
      dashStyle: "Штрих",
      solid: "Сплошная",
      dashed: "Штриховая",
      dotted: "Точечная",
      none: "Нет",
      opacity: "Прозрачность",
      rectangle: "Прямоугольник",
      ellipse: "Эллипс",
      line: "Линия",
      arrow: "Стрелка",
      polygon: "Многоугольник",
      star: "Звезда",
    },
  },
  settings: {
    heading: "Настройки",
    nav: {
      general: "Общие",
      systemSettings: "Системные настройки",
      security: "Безопасность",
      people: "Пользователи",
      teams: "Команды",
      roles: "Роли",
      auditLog: "Журнал аудита",
      usage: "Использование",
      apiKeys: "API-ключи",
      aiFeatures: "AI-функции",
      tools: "Инструменты",
      about: "О программе",
    },
    general: {
      heading: "Общие",
      description: "Пользовательские настройки и параметры отображения.",
      loading: "Загрузка...",
      logOut: "Выйти",
      defaultToolViewLabel: "Вид инструментов по умолчанию",
      defaultToolViewDescription: "Как инструменты отображаются на главной странице",
      sidebarOption: "Боковая панель",
      fullscreenGridOption: "Полноэкранная сетка",
      appVersionLabel: "Версия приложения",
      appVersionDescription: "Текущая версия SnapOtter",
      saveButton: "Сохранить настройки",
      saveSuccess: "Настройки сохранены.",
      saveFailed: "Не удалось сохранить настройки.",
    },
    system: {
      heading: "Системные настройки",
      description: "Серверные настройки и ограничения.",
      fileUploadLimitLabel: "Ограничение загрузки файлов (MB)",
      fileUploadLimitDescription: "Максимальный размер файла за загрузку",
      defaultThemeLabel: "Тема по умолчанию",
      defaultThemeDescription: "Тема, применяемая для новых сессий",
      lightOption: "Светлая",
      darkOption: "Тёмная",
      systemOption: "Системная",
      languageLabel: "Язык",
      languageDescription: "Язык интерфейса",
      loginAttemptLimitLabel: "Лимит попыток входа",
      loginAttemptLimitDescription: "Максимум неудачных попыток входа в минуту до блокировки",
      fileManagementHeading: "Управление файлами",
      maxFileAgeLabel: "Макс. время хранения файлов (часы)",
      maxFileAgeDescription: "Как долго обработанные файлы хранятся до автоматической очистки",
      startupCleanupLabel: "Очистка при запуске",
      startupCleanupDescription: "Удалять старые временные файлы при запуске сервера",
      saveButton: "Сохранить настройки",
      saveSuccess: "Настройки сохранены.",
      saveFailed: "Не удалось сохранить настройки.",
      limitsAndResources: "Ограничения и ресурсы",
      maxFileSize: "Макс. размер файла",
      maxBatchSize: "Макс. размер пакета",
      concurrentJobs: "Параллельные задачи",
      workerThreads: "Рабочие потоки",
      maxPipelineSteps: "Макс. шагов Pipeline",
      processingTimeout: "Таймаут обработки",
      rateLimitPerMin: "Лимит запросов (запросов/мин)",
      unlimited: "Без ограничений",
      auto: "Авто",
      envOverride: "Задано переменной окружения",
      maxCanvasPixels: "Макс. пикселей холста",
      maxSvgSize: "Макс. размер SVG",
      maxSplitGrid: "Макс. сетка разделения",
      maxPdfPages: "Макс. страниц PDF",
      sessionDuration: "Длительность сессии",
      supportBundleButton: "Скачать диагностический архив",
      supportBundleDescription:
        "Скачать архив с обезличенной конфигурацией, логами и данными задач для диагностики.",
      supportBundleFailed: "Не удалось скачать диагностический архив.",
    },
    security: {
      heading: "Безопасность",
      description: "Настройки пароля и аутентификации.",
      changePasswordHeading: "Смена пароля",
      currentPasswordPlaceholder: "Текущий пароль",
      newPasswordPlaceholder: "Новый пароль",
      confirmPasswordPlaceholder: "Подтвердите новый пароль",
      passwordsMismatch: "Пароли не совпадают",
      passwordTooShort: "Пароль должен содержать не менее 4 символов",
      changeSuccess: "Пароль успешно изменён",
      changeFailed: "Не удалось изменить пароль",
      currentPasswordIncorrect: "Текущий пароль неверен",
      changePasswordButton: "Изменить пароль",
      loginAttemptLimitNote: "Лимиты попыток входа можно настроить в Системных настройках.",
      adminHeading: "Настройки безопасности администратора",
      adminDescription: "Корпоративные политики безопасности. Применяются ко всем пользователям.",
      sessionIdleTimeout: "Тайм-аут бездействия сессии (минуты)",
      sessionIdleTimeoutDesc: "Автоматический выход из неактивных сессий. 0 = отключено.",
      maxSessionsPerUser: "Макс. сессий на пользователя",
      maxSessionsPerUserDesc:
        "Ограничение одновременных сессий на пользователя. 0 = без ограничений.",
      mfaPolicy: "Политика MFA",
      mfaPolicyDesc: "Требование многофакторной аутентификации для пользователей.",
      mfaPolicyOptional: "Необязательно",
      mfaPolicyAdminsOnly: "Обязательно для администраторов",
      mfaPolicyRequired: "Обязательно для всех пользователей",
      ssoEnforcement: "Принудительный SSO",
      ssoEnforcementDesc: "Требовать вход через SSO для всех пользователей, кроме аварийных.",
      ssoBreakGlassUsername: "Имя аварийного администратора",
      ssoBreakGlassUsernameDesc:
        "Этот администратор может входить с локальными учётными данными при включённом SSO.",
      passwordMinLength: "Минимальная длина пароля",
      passwordMinLengthDesc: "Минимальное количество символов в пароле.",
      passwordRequireUppercase: "Требовать заглавные буквы",
      passwordRequireUppercaseDesc: "Требовать хотя бы одну заглавную букву.",
      passwordRequireNumber: "Требовать цифры",
      passwordRequireNumberDesc: "Требовать хотя бы одну цифру.",
      passwordRequireSpecial: "Требовать спецсимволы",
      passwordRequireSpecialDesc: "Требовать хотя бы один специальный символ.",
      passwordPolicyHeading: "Политика паролей",
      securitySettingsSaved: "Настройки безопасности сохранены",
      securitySettingsFailed: "Не удалось сохранить настройки безопасности",
    },
    people: {
      heading: "Пользователи",
      description: "Управление участниками рабочего пространства и их правами",
      userCount: "{count} пользователь",
      userCountPlural: "{count} пользователей",
      searchPlaceholder: "Поиск участников...",
      addMembersButton: "Добавить участников",
      newMemberHeading: "Новый участник",
      usernamePlaceholder: "Имя пользователя",
      passwordPlaceholder: "Пароль",
      roleUserOption: "Пользователь",
      roleEditorOption: "Редактор",
      roleAdminOption: "Администратор",
      roleUserDescription: "Базовый доступ к инструментам",
      roleEditorDescription: "Все файлы и Pipeline",
      roleAdminDescription: "Полный доступ",
      noDescription: "Без описания",
      defaultTeamOption: "По умолчанию",
      createButton: "Создать",
      cancelButton: "Отмена",
      createSuccess: "Пользователь успешно создан",
      createFailed: "Не удалось создать пользователя",
      userLimitReached: "Достигнут лимит пользователей (макс. {max})",
      deleteConfirm: 'Удалить пользователя "{username}"? Это действие необратимо.',
      deleteSuccess: 'Пользователь "{username}" удалён',
      deleteFailed: "Не удалось удалить пользователя",
      editHeading: "Редактирование {username}",
      updateSuccess: "Пользователь обновлён",
      updateFailed: "Не удалось обновить пользователя",
      cannotRemoveOwnAdmin: "Нельзя снять с себя роль администратора",
      resetPasswordHeading: "Сброс пароля для {username}",
      newPasswordLabel: "Новый пароль (мин. 8 символов)",
      resetPasswordButton: "Сбросить пароль",
      resetPasswordWarning: "Это действие аннулирует все сессии и API-ключи этого пользователя.",
      resetSuccess: "Пароль успешно сброшен",
      resetFailed: "Не удалось сбросить пароль",
      tableHeaderUser: "Пользователь",
      tableHeaderRole: "Роль",
      tableHeaderTeam: "Команда",
      noSearchResults: "Участники не найдены.",
      noUsersFound: "Пользователи не найдены.",
      authBadgeLocalOidc: "Локальный + OIDC",
      authBadgeOidc: "OIDC",
      editRoleTeamAction: "Изменить роль / команду",
      resetPasswordAction: "Сбросить пароль",
      deleteUserAction: "Удалить пользователя",
      saveButton: "Сохранить",
      copyPasswordButton: "Скопировать пароль",
      passwordCopied: "Скопировано!",
      copyPasswordWarning:
        "Скопируйте этот пароль сейчас. После создания пользователя вы не сможете его увидеть.",
    },
    teams: {
      heading: "Команды",
      description: "Организуйте участников в команды для удобного управления.",
      createButton: "Создать новую команду",
      newTeamHeading: "Новая команда",
      teamNamePlaceholder: "Название команды",
      createSubmitButton: "Создать",
      cancelButton: "Отмена",
      createSuccess: "Команда успешно создана",
      createFailed: "Не удалось создать команду",
      duplicateTeamError: "Команда с таким именем уже существует",
      renameSuccess: "Команда переименована",
      renameFailed: "Не удалось переименовать команду",
      deleteConfirm: 'Удалить команду "{name}"? Участники будут откреплены.',
      deleteSuccess: 'Команда "{name}" удалена',
      deleteFailed: "Не удалось удалить команду",
      cannotDeleteDefault: "Нельзя удалить команду по умолчанию или команду с участниками",
      tableHeaderTeamName: "Название команды",
      tableHeaderMembers: "Участники",
      emptyState: "Команды не найдены.",
      renameSaveButton: "Сохранить",
      renameCancelButton: "Отмена",
      renameAction: "Переименовать",
      deleteAction: "Удалить",
      totalMembers: "Всего участников",
      nameRequired: "Название команды обязательно",
      nameTooLong: "Название команды не должно превышать 50 символов",
      duplicateName: "Команда с таким именем уже существует",
      teamStorageQuota: "Квота хранилища (MB)",
      teamStorageQuotaDesc:
        "Максимальный объём хранилища для команды в MB. Оставьте пустым для снятия ограничения.",
      teamRetentionHours: "Срок хранения (часы)",
      teamRetentionHoursDesc:
        "Срок хранения обработанных файлов для этой команды. Оставьте пустым для значения по умолчанию.",
      quotaSaved: "Настройки команды сохранены",
    },
    roles: {
      heading: "Роли",
      description: "Управление ролями и их правами. Встроенные роли нельзя изменять.",
      createButton: "Создать пользовательскую роль",
      newRoleHeading: "Новая роль",
      roleNamePlaceholder: "Название роли",
      descriptionPlaceholder: "Описание (необязательно)",
      permissionsLabel: "Права доступа",
      createSubmitButton: "Создать",
      cancelButton: "Отмена",
      createSuccess: "Роль успешно создана",
      createFailed: "Не удалось создать роль",
      duplicateRoleError: "Роль с таким именем уже существует",
      editHeading: "Редактирование роли: {name}",
      editSaveButton: "Сохранить",
      editCancelButton: "Отмена",
      updateSuccess: "Роль обновлена",
      updateFailed: "Не удалось обновить роль",
      deleteConfirm: 'Удалить роль "{name}"? {count} пользователю(ям) потребуется переназначение.',
      deleteConfirmSimple: 'Удалить роль "{name}"?',
      deleteSuccess: 'Роль "{name}" удалена',
      deleteFailed: "Не удалось удалить роль",
      emptyState: "Роли не найдены.",
      builtInBadge: "Встроенная",
      userCountBadge: "{count} пользователь(ей)",
      editRoleTitle: "Редактировать роль",
      deleteRoleTitle: "Удалить роль",
      permGroup: {
        tools: "Инструменты",
        files: "Файлы",
        apiKeys: "API-ключи",
        pipelines: "Pipeline",
        settings: "Настройки",
        users: "Пользователи",
        teams: "Команды",
        system: "Система",
      },
    },
    auditLog: {
      heading: "Журнал аудита",
      allActionsFilter: "Все действия",
      emptyState: "Записей в журнале аудита нет.",
      tableHeaderTime: "Время",
      tableHeaderUser: "Пользователь",
      tableHeaderAction: "Действие",
      tableHeaderTarget: "Объект",
      paginationInfo: "Страница {page} из {totalPages} ({total} записей)",
      previousButton: "Назад",
      nextButton: "Далее",
      justNow: "только что",
      minutesAgo: "{mins} мин. назад",
      hoursAgo: "{hrs} ч. назад",
      daysAgo: "{days} дн. назад",
    },
    usage: {
      heading: "Использование",
      description: "Локальная статистика по задачам и хранилищу файлов.",
      periodLabel: "Период",
      days7: "7 дней",
      days30: "30 дней",
      days90: "90 дней",
      jobsPerDayHeading: "Задач в день",
      topToolsHeading: "Популярные инструменты",
      perUserHeading: "Объём по пользователям",
      durationsHeading: "Перцентили длительности",
      noData: "Нет данных за этот период.",
      dayColumn: "День",
      totalColumn: "Всего",
      completedColumn: "Завершено",
      failedColumn: "Ошибки",
      toolColumn: "Инструмент",
      runsColumn: "Запуски",
      userColumn: "Пользователь",
      bytesInColumn: "Байт на входе",
      poolColumn: "Пул",
      p50Column: "p50",
      p95Column: "p95",
      storageHeading: "Хранилище библиотеки",
      storageFiles: "{count} файлов",
      unknownUser: "(неизвестно)",
      storageByTeam: "Хранилище по командам",
      teamColumn: "Команда",
      storageColumn: "Хранилище",
      usersColumn: "Пользователи",
    },
    apiKeys: {
      heading: "API-ключи",
      description: "Управление API-ключами для программного доступа к SnapOtter.",
      keyNamePlaceholder: "Название ключа (необязательно)",
      generateButton: "Сгенерировать API-ключ",
      removeScopingLabel: "Убрать ограничение прав",
      restrictPermissionsLabel: "Ограничить права (необязательно)",
      expiresLabel: "Истекает:",
      clearButton: "Очистить",
      copyTitle: "Копировать",
      keyWarning: "Сохраните этот ключ в безопасном месте. Он больше не будет показан.",
      existingKeysHeading: "Существующие ключи",
      createdPrefix: "Создан {date}",
      scopedPrefix: "Область:",
      expiresPrefix: "Истекает {date}",
      deleteKeyTitle: "Удалить ключ",
      deleteConfirm:
        "Удалить этот API-ключ? Все интеграции, использующие его, перестанут работать.",
      emptyState: "API-ключей пока нет. Сгенерируйте один для начала.",
    },
    tools: {
      heading: "Инструменты",
      description:
        "Включение и отключение отдельных инструментов. Отключённые инструменты скрыты от всех пользователей.",
      restartBanner: "Для применения изменений требуется перезапуск.",
      searchPlaceholder: "Поиск инструментов...",
      noSearchResults: "Инструменты не найдены.",
      loadFailedError:
        "Не удалось загрузить настройки инструментов. Сохранение отключено во избежание потери данных.",
      saveButton: "Сохранить настройки инструментов",
      disabledCount: "{count} инструмент(ов) отключено",
    },
    experimental: {
      label: "Включить экспериментальные инструменты",
      description:
        "Показать инструменты, находящиеся в разработке. Они могут работать нестабильно.",
    },
    fileManagement: {
      title: "Управление файлами",
      maxAge: "Макс. время хранения файлов (часы)",
      maxAgeDescription: "Как долго обработанные файлы хранятся до автоматической очистки",
      startupCleanup: "Очистка при запуске",
      startupCleanupDescription: "Удалять старые временные файлы при запуске сервера",
    },
    dataRetention: {
      title: "Хранение данных",
      fileMaxAgeHours: "Срок хранения обработанных файлов (часы)",
      fileMaxAgeHoursDesc:
        "Как долго хранить загруженные и обработанные файлы. По умолчанию: 72 часа.",
      jobsRetentionDays: "Срок хранения записей задач (дни)",
      jobsRetentionDaysDesc:
        "Как долго хранить метаданные задач. 0 = хранить бессрочно. По умолчанию: 30 дней.",
      auditRetentionDays: "Срок хранения журнала аудита (дни)",
      auditRetentionDaysDesc:
        "Как долго хранить записи журнала аудита. 0 = хранить бессрочно. По умолчанию: бессрочно.",
    },
    aiFeatures: {
      title: "AI-функции",
      description: "Управление пакетами AI-моделей для расширенной обработки файлов.",
      installAll: "Установить все",
      diskUsage: "Использование диска: {size}",
      installed: "Установлено",
      notInstalled: "Не установлено",
      queued: "В очереди",
      install: "Установить",
      repair: "Восстановить",
      uninstall: "Удалить",
      installing: "Установка...",
      importBundle: "Импорт пакета",
      importDescription: "Загрузите архив .tar.gz, экспортированный из другой установки.",
      importButton: "Импорт из файла",
      importing: "Импорт...",
      importSuccess: "Пакет успешно импортирован.",
      importError: "Ошибка импорта пакета: {error}",
    },
    about: {
      heading: "О программе",
      appName: "SnapOtter",
      appDescription:
        "Самостоятельно размещаемый набор инструментов для обработки файлов с приоритетом конфиденциальности. 157 инструментов. Конвертация, сжатие, редактирование, транскрипция, OCR и автоматизация рабочих процессов с изображениями, видео, аудио, документами и данными без отправки данных в облако.",
      versionLabel: "Версия:",
      linksHeading: "Ссылки",
      githubLink: "Репозиторий GitHub",
      docsLink: "Документация",
      apiRefLink: "Справочник API (Swagger)",
      licenseLabel: "Лицензия:",
      licenseDescription:
        "SnapOtter -- программное обеспечение с открытым исходным кодом, распространяемое по лицензии GNU Affero General Public License v3 (AGPLv3).",
    },
  },
  auth: {
    login: "Вход",
    logout: "Выйти",
    username: "Имя пользователя",
    password: "Пароль",
    loginButton: "Войти",
    loggingIn: "Вход...",
    invalidCredentials: "Неверное имя пользователя или пароль",
    connectionError: "Ошибка подключения",
    signInWith: "Войти через {provider}",
    signInWithSso: "Войти через SSO",
    or: "или",
    methodLocal: "Локальный",
    methodOidc: "OIDC",
    methodBoth: "Локальный + OIDC",
    oidcAuthFailed: "Аутентификация не удалась. Попробуйте снова.",
    oidcProviderUnreachable: "Не удалось связаться с провайдером идентификации. Попробуйте позже.",
    oidcSessionExpired: "Сессия входа истекла. Попробуйте снова.",
    oidcUserNotAuthorized:
      "Вашей учётной записи не предоставлен доступ к этому приложению. Обратитесь к администратору.",
    oidcUserLimitReached: "Достигнут лимит пользователей. Обратитесь к администратору.",
    oidcGenericError: "Ошибка аутентификации. Попробуйте снова.",
    samlAuthFailed: "Ошибка аутентификации SAML. Попробуйте ещё раз.",
    samlUserNotAuthorized:
      "У вашей учётной записи нет доступа к этому приложению. Обратитесь к администратору.",
    samlUserLimitReached: "Достигнут лимит пользователей. Обратитесь к администратору.",
    ssoEnforcedLocalRestricted: "Локальный вход доступен только авторизованным администраторам.",
    mfaRequired: "Введите код аутентификации",
    mfaRecoveryHint: "Вы также можете использовать код восстановления",
    verify: "Подтвердить",
    verifying: "Проверка...",
    mfaInvalidCode: "Неверный код. Попробуйте ещё раз.",
    mfaEnrollmentRequired:
      "Ваша организация требует многофакторную аутентификацию. Настройте MFA в параметрах учётной записи.",
    methodSaml: "SAML",
    passwordManagedByProvider: "Управление паролем осуществляется Вашим провайдером идентификации.",
    enterUsername: "Введите имя пользователя",
    enterPassword: "Введите пароль",
    heroTitle: "Ваши файлы. Остаются Вашими.",
    heroSubtitle: "Все инструменты, которые Вам нужны.",
    rotatingPhrases: [
      "Без регистрации. Без учётных записей.",
      "Никаких загрузок в облако. Никогда.",
      "100% локальная обработка.",
      "Бесплатно. Навсегда.",
      "Без ограничений. Без скрытых лимитов.",
      "Работает полностью офлайн.",
      "Пакетная обработка без ограничений.",
      "157 инструментов.",
      "16 AI-моделей. На Вашем оборудовании.",
      "Молниеносная скорость. На базе Sharp.",
      "Готов к изолированным сетям.",
      "Один Docker-контейнер.",
      "Открытый исходный код. Всегда.",
      "Каждый пиксель остаётся на Вашем оборудовании.",
      "Ваш сервер. Ваши правила.",
      "Установка одной командой docker pull.",
      "Альтернатива облачным сервисам.",
      "Изменение размера, сжатие, конвертация. Локально.",
      "Бесплатный редактор. Без водяных знаков.",
      "Пакетная обработка файлов. Без лимитов.",
      "Удаление фона офлайн.",
      "Замена Canva для собственного сервера.",
      "API-ключи не нужны.",
      "GDPR-совместимость по умолчанию.",
      "Работает без интернета.",
    ],
  },
  changePassword: {
    title: "Смена пароля",
    description:
      "Необходимо установить новый пароль перед продолжением. Пароль должен содержать не менее 8 символов, включая заглавные, строчные буквы и цифру.",
    usernameLabel: "Имя пользователя",
    currentPasswordLabel: "Текущий пароль",
    currentPasswordPlaceholder: "Введите текущий пароль",
    newPasswordLabel: "Новый пароль",
    generateButton: "Сгенерировать надёжный пароль",
    newPasswordPlaceholder: "Не менее 8 символов",
    confirmPasswordLabel: "Подтвердите новый пароль",
    confirmPasswordPlaceholder: "Повторите новый пароль",
    passwordsMismatch: "Пароли не совпадают",
    failedError: "Не удалось изменить пароль",
    connectionError: "Ошибка подключения",
    changingButton: "Смена...",
    changeButton: "Изменить пароль",
    sidebarTitle: "Почти готово",
    sidebarDescription:
      "Установите надёжный пароль для защиты Вашей учётной записи, и можно начинать.",
  },
  automate: {
    title: "Автоматизация",
    invalidPipelineFile: "Недействительный файл Pipeline SnapOtter",
    newerVersion: "Этот Pipeline создан в более новой версии SnapOtter",
    missingName: "В файле Pipeline отсутствует название",
    noSteps: "В файле Pipeline нет шагов",
    importFailed: "Импорт не удался",
    couldNotRead: "Не удалось прочитать файл Pipeline",
    fileCount: "{count} файл",
    fileCountPlural: "{count} файлов",
    importFromLibrary: "Импорт из библиотеки",
    addButton: "+ Добавить",
    libraryButton: "Библиотека",
    clearButton: "Очистить",
    processingFailed: "Обработка этого файла не удалась",
    processingMultiple: "Обработка {count} файлов...",
    processingPipeline: "Выполнение Pipeline...",
    processButton: "Обработать",
    processButtonMultiple: "Обработать ({count})",
    processAllButton: "Обработать все ({count})",
    addTool: "Добавить инструмент",
    toolPalette: "Палитра инструментов",
    clickToAdd: "Нажмите для добавления в Pipeline",
    savedLabel: "Сохранённые",
    importButton: "Импорт",
    noSavedPipelines: "Нет сохранённых Pipeline",
    stepCount: "({count} шаг)",
    stepCountPlural: "({count} шагов)",
    exportPipeline: "Экспортировать Pipeline",
    deletePipeline: "Удалить Pipeline",
    moreCount: "+{count} ещё",
    pipelineBuilder: "Конструктор Pipeline",
    addToolsPrompt: "Добавьте инструменты из палитры для начала",
    stepsConfigured: "Настроен {count} шаг",
    stepsConfiguredPlural: "Настроено {count} шагов",
    noFilesLoaded: "Файлы не загружены",
    downloadZip: "Скачать ZIP",
    saveButton: "Сохранить",
    pipelineNamePlaceholder: "Название Pipeline",
    descriptionPlaceholder: "Описание",
    savingIndicator: "...",
    cancelButton: "Отмена",
    preview: "Предпросмотр",
    previousImage: "Предыдущий файл",
    nextImage: "Следующий файл",
    imageCounter: "{current} / {total}",
    imageArea: "Область предпросмотра",
    templateSocialMedia: "Готово для соцсетей",
    templatePrivacyClean: "Очистка конфиденциальности",
    templateWebOptimization: "Веб-оптимизация",
    templateProfilePicture: "Фото профиля",
    templateWatermarkBatch: "Пакетные водяные знаки",
    createNew: "Создать новую автоматизацию",
    savedAutomations: "Сохранённые автоматизации",
    templates: "Шаблоны",
    addStep: "Добавить шаг",
    removeStep: "Удалить",
    moveUp: "Переместить вверх",
    moveDown: "Переместить вниз",
    savePipeline: "Сохранить Pipeline",
    runPipeline: "Обработать",
    pipelineName: "Название Pipeline",
    pipelineDescription: "Описание (необязательно)",
    noStepsPrompt: "Добавьте шаги для построения автоматизации",
    noStepsHeading: "Шагов пока нет",
    searchToolsPlaceholder: "Поиск инструментов...",
    step: "Шаг",
    modalityWarning: "Несоответствие модальности",
    modalityWarningTooltip:
      "Этот шаг ожидает {expected}, но получает {received}; он может завершиться ошибкой при запуске конвейера.",
  },
  nav: {
    tools: "Инструменты",
    reader: "Ридер",
    automate: "Автоматизация",
    editor: "Редактор",
    files: "Файлы",
    help: "Справка",
    settings: "Настройки",
    grid: "Сетка",
  },
  files: {
    myFiles: "Мои файлы",
    recentTab: "Недавние",
    uploadTab: "Загрузить файлы",
    fileDetailsAriaLabel: "Информация о файле",
    fileDetailsHeading: "Информация о файле",
    searchPlaceholder: "Поиск файлов...",
    selectedCount: "{count} выбрано",
    fileCount: "{count} файлов",
    fileCountSingular: "{count} файл",
    noFilesFound: "Файлы не найдены",
    selectFilePrompt: "Выберите файл для просмотра информации",
    openFile: "Открыть файл",
    selectFile: "Выбрать файл",
    openInPipeline: "Открыть в конвейере",
    dropFilesHere: "Перетащите файлы сюда",
    orClickToSelect: "или нажмите для выбора файлов",
    name: "Имя",
    format: "Формат",
    size: "Размер",
    dimensions: "Размеры",
    version: "Версия",
    toolsUsed: "Использованные инструменты",
    none: "Нет",
    delete: "Удалить",
    pipeline: "Конвейер",
    download: "Скачать",
  },
  dropzone: {
    unsupportedFileType: "Этот тип файла не поддерживается данным инструментом",
    urlFetchFailed: "Не удалось загрузить изображение по URL",
    ariaLabel: "Зона перетаскивания файлов",
    dropPrompt: "Перетащите изображения сюда",
    browseOrPaste: "нажмите в любом месте для выбора или вставьте из буфера обмена",
    uploadButton: "Загрузить",
    defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD и 65+ форматов",
    orSeparator: "или",
    urlPlaceholder: "Вставьте URL изображения...",
    urlLoadingIndicator: "...",
    addUrlButton: "Добавить",
    importMultipleUrls: "Импорт нескольких URL...",
    filesSelected: "Выбрано файлов: {count}",
    dropToAdd: "Отпустите, чтобы добавить файлы",
    dropToReplace: "Отпустите, чтобы заменить файл",
  },
  reviewPanel: {
    processedResultAlt: "Результат обработки",
    sizeLabel: "Размер: {size}",
    typeLabel: "Тип: {type}",
    processedLabel: "Обработано: {time}",
    undoButton: "Отменить",
    downloadButton: "Скачать",
    openInEditor: "Открыть в редакторе",
    reviewHeading: "Обзор",
    continueEditing: "Продолжить редактирование",
  },
  features: {
    notEnabledTitle: "Функция не активирована",
    notEnabledDescription:
      "Эта функция не активирована. Попросите администратора включить её в Настройках.",
    requiresDownload: "Для этой функции требуется дополнительная загрузка (~{size})",
    retryButton: "Повторить",
    queued: "В очереди на установку...",
    enableButton: "Включить {name}",
    repairRequired: "Требуется восстановление",
    repairDescription:
      "Некоторые файлы моделей отсутствуют или повреждены. Восстановление загрузит их заново.",
    repairButton: "Восстановить {name}",
    lessThanMinute: "Осталось менее минуты",
    oneMinuteLeft: "Осталось ~1 минута",
    minutesLeft: "Осталось ~{mins} минут",
    progressMessages: [
      "Почти готово... наверное...",
      "Хорошие вещи требуют времени...",
      "Всё равно быстрее, чем ждать высыхания краски...",
      "Ваше терпение достойно восхищения...",
      "Работаем усерднее, чем кажется...",
      "Сейчас самое интересное, поверьте...",
      "Важные дела происходят за кулисами...",
      "Если Вы это читаете, значит всё работает...",
      "Готовим кое-что потрясающее...",
      "Оно того стоит, честное слово...",
      "Интрига нарастает...",
      "Обучаем Ваш компьютер новым фокусам...",
      "Настраиваем Ваши суперспособности...",
      "Ваши файлы потом скажут спасибо...",
      "Загрузка... но с шиком...",
      "Самое время сходить за кофе...",
      "Рим тоже не за день построили...",
      "Тсс... гений за работой...",
      "Ваши проекты уже завидуют тому, что будет...",
      "Собираем команду мечты...",
      "Распаковываем великолепие...",
      "Почти закончили думать о начале... шутим...",
      "Поворот сюжета: тут реально что-то происходит...",
      "Прогреваем творческие двигатели...",
      "Воображение загружается...",
      "Это не заставка, мы обещаем...",
      "Великое искусство требует времени на установку...",
      "Вы из будущего скажете себе спасибо...",
      "Скачиваем очень умные файлы...",
      "Подождите, лучшее ещё впереди...",
    ],
  },
  help: {
    heading: "Справка",
    gettingStarted: {
      heading: "Начало работы",
      description:
        "Выберите инструмент из боковой панели или воспользуйтесь поиском. Загрузите файл, перетащив его на страницу или нажав область загрузки. Настройте параметры и скачайте результат.",
    },
    keyboardShortcuts: {
      heading: "Горячие клавиши",
      focusSearchBar: "Фокус на строке поиска",
      goToTools: "Перейти к инструментам",
      toggleTheme: "Переключить тему",
      goToResize: "Перейти к изменению размера",
      goToCrop: "Перейти к обрезке",
      goToCompress: "Перейти к сжатию",
      goToConvert: "Перейти к конвертации",
      goToRemoveBackground: "Перейти к удалению фона",
      goToWatermarkText: "Перейти к текстовому водяному знаку",
      goToStripMetadata: "Перейти к удалению метаданных",
      goToImageInfo: "Перейти к информации об изображении",
      processFile: "Обработать файл",
      downloadResult: "Скачать результат",
    },
    resources: {
      heading: "Ресурсы",
      githubLink: "Репозиторий GitHub",
      reportIssueLink: "Сообщить о проблеме",
      docsLink: "Документация",
      apiRefLink: "Справочник API (Swagger)",
    },
    versionLabel: "SnapOtter v{version}",
  },
  errors: {
    generic: "Произошла ошибка",
    offline: "Вы не в сети",
    reconnecting: "Переподключение к серверу...",
    connected: "Подключено",
    processingFailed: "Обработка этого файла не удалась",
    timeout: "Время ожидания истекло. Сервер может быть перегружен. Попробуйте снова.",
    networkError: "Сетевая ошибка. Проверьте подключение.",
    invalidCredentials: "Неверное имя пользователя или пароль",
    connectionError: "Ошибка подключения",
  },
  sidebar: {
    tools: "Инструменты",
    grid: "Сетка",
    automate: "Автоматизация",
    editor: "Редактор",
    files: "Файлы",
    help: "Справка",
    settings: "Настройки",
  },
  toolCard: {
    addToFavourites: "Добавить в избранное",
  },
  appLayout: {
    mobileNavTools: "Инструменты",
    mobileNavAutomate: "Автоматизация",
    mobileNavEditor: "Редактор",
    mobileNavFiles: "Файлы",
    mobileNavSettings: "Настройки",
  },
  a11y: {
    skipToContent: "Перейти к основному содержимому",
    openSidebar: "Открыть боковую панель",
    closeSidebar: "Закрыть боковую панель",
    closeSettings: "Закрыть настройки",
    closeHelp: "Закрыть справку",
    closeDialog: "Закрыть диалог",
    zoomIn: "Увеличить",
    zoomOut: "Уменьшить",
    fitToView: "Вписать в окно",
    actualSize: "Реальный размер",
    pan: "Перемещение",
    previousImage: "Предыдущий файл",
    nextImage: "Следующий файл",
    imageArea: "Область предпросмотра",
    imageViewer: "Просмотр файла",
    fileDropZone: "Область для перетаскивания файлов",
    imageDropZone: "Зона перетаскивания файлов",
    beforeAfterSlider: "Ползунок сравнения до/после",
    imageControls: "Управление предпросмотром",
    zoomControls: "Управление масштабом",
    dragToReorder: "Перетащите для изменения порядка",
    whiteBackground: "Белый фон",
    blackBackground: "Чёрный фон",
    expandPanel: "Развернуть панель",
    collapsePanel: "Свернуть панель",
    swapDimensions: "Поменять размеры местами",
    applyCrop: "Применить обрезку",
    cancelCrop: "Отменить обрезку",
    fontFamily: "Шрифт",
    textColor: "Цвет текста",
    flipHorizontal: "Отразить по горизонтали",
    flipVertical: "Отразить по вертикали",
    hexColorValue: "HEX-значение цвета",
    backgroundColor: "Цвет фона",
    foregroundColor: "Цвет переднего плана",
    swapColors: "Поменять местами основной и фоновый цвета",
    resetColors: "Сбросить цвета по умолчанию",
    foregroundHex: "HEX-значение основного цвета",
    undo: "Отменить",
    redo: "Повторить",
    layers: "Слои",
    addLayer: "Добавить слой",
    deleteLayer: "Удалить слой",
    cancelOperation: "Отменить операцию",
    fill: "Заливка",
    fileDetails: "Информация о файле",
    language: "Язык",
    selected: "Выбрано",
    deleteKey: "Удалить ключ",
    editRole: "Редактировать роль",
    deleteRole: "Удалить роль",
    notInstalled: "Не установлено",
    queued: "В очереди на установку",
    installing: "Установка",
    imageNOfTotal: "Изображение {n} из {total}",
    processingComplete: "Изображение успешно обработано",
    processingFailed: "Ошибка обработки",
    settingsDialog: "Настройки",
    helpDialog: "Справка",
    navigationMenu: "Навигация",
    homeLink: "Главная SnapOtter",
  },
} as const;
