{ "app.title": "LED Grab", "app.version": "Версия:", "app.api_docs": "Документация API", "theme.toggle": "Переключить тему", "accent.title": "Цвет акцента", "accent.custom": "Свой", "locale.change": "Изменить язык", "auth.login": "Войти", "auth.logout": "Выйти", "auth.authenticated": "● Авторизован", "auth.title": "Вход в LED Grab", "auth.message": "Пожалуйста, введите ваш API ключ для аутентификации и доступа к LED Grab.", "auth.label": "API Ключ:", "auth.placeholder": "Введите ваш API ключ...", "auth.hint": "Ваш API ключ будет безопасно сохранен в локальном хранилище браузера.", "auth.button.cancel": "Отмена", "auth.button.login": "Войти", "auth.error.required": "Пожалуйста, введите API ключ", "auth.success": "Вход выполнен успешно!", "auth.logout.confirm": "Вы уверены, что хотите выйти?", "auth.logout.success": "Выход выполнен успешно", "auth.please_login": "Пожалуйста, войдите для просмотра", "auth.session_expired": "Ваша сессия истекла или API ключ недействителен. Пожалуйста, войдите снова.", "displays.title": "Доступные Дисплеи", "displays.layout": "Дисплеи", "displays.information": "Информация о Дисплеях", "displays.legend.primary": "Основной Дисплей", "displays.legend.secondary": "Вторичный Дисплей", "displays.badge.primary": "Основной", "displays.badge.secondary": "Вторичный", "displays.resolution": "Разрешение:", "displays.refresh_rate": "Частота Обновления:", "displays.position": "Позиция:", "displays.index": "Индекс Дисплея:", "displays.loading": "Загрузка дисплеев...", "displays.none": "Нет доступных дисплеев", "displays.failed": "Не удалось загрузить дисплеи", "displays.picker.title": "Выберите Дисплей", "displays.picker.select": "Выберите дисплей...", "displays.picker.click_to_select": "Нажмите, чтобы выбрать этот дисплей", "displays.picker.adb_connect": "Подключить ADB устройство", "displays.picker.adb_connect.placeholder": "IP адрес (напр. 192.168.2.201)", "displays.picker.adb_connect.button": "Подключить", "displays.picker.adb_connect.success": "Устройство подключено", "displays.picker.adb_connect.error": "Не удалось подключить устройство", "displays.picker.adb_disconnect": "Отключить", "displays.picker.no_android": "Android устройства не найдены. Подключите по USB или введите IP выше.", "templates.title": "Шаблоны Движков", "templates.description": "Шаблоны захвата определяют, как захватывается экран. Каждый шаблон использует определённый движок захвата (MSS, DXcam, WGC) с настраиваемыми параметрами. Назначайте шаблоны устройствам для оптимальной производительности.", "templates.loading": "Загрузка шаблонов...", "templates.empty": "Шаблоны захвата не настроены", "templates.add": "Добавить Шаблон Движка", "templates.edit": "Редактировать Шаблон Движка", "templates.name": "Имя Шаблона:", "templates.name.placeholder": "Мой Пользовательский Шаблон", "templates.description.label": "Описание (необязательно):", "templates.description.placeholder": "Опишите этот шаблон...", "templates.engine": "Движок Захвата:", "templates.engine.hint": "Выберите технологию захвата экрана", "templates.engine.select": "Выберите движок...", "templates.engine.unavailable": "Недоступен", "templates.engine.unavailable.hint": "Этот движок недоступен в вашей системе", "templates.config": "Конфигурация", "templates.config.show": "Показать конфигурацию", "templates.config.none": "Нет дополнительных настроек", "templates.config.default": "По умолчанию", "templates.created": "Шаблон успешно создан", "templates.updated": "Шаблон успешно обновлён", "templates.deleted": "Шаблон успешно удалён", "templates.delete.confirm": "Вы уверены, что хотите удалить этот шаблон?", "templates.error.load": "Не удалось загрузить шаблоны", "templates.error.engines": "Не удалось загрузить движки", "templates.error.required": "Пожалуйста, заполните все обязательные поля", "templates.error.delete": "Не удалось удалить шаблон", "templates.test.title": "Тест Захвата", "templates.test.description": "Протестируйте этот шаблон перед сохранением, чтобы увидеть предпросмотр захвата и метрики производительности.", "templates.test.display": "Дисплей:", "templates.test.display.select": "Выберите дисплей...", "templates.test.duration": "Длительность Захвата (с):", "templates.test.border_width": "Ширина Границы (px):", "templates.test.run": "Запустить", "templates.test.running": "Выполняется тест...", "templates.test.results.preview": "Полный Предпросмотр Захвата", "templates.test.results.borders": "Извлечение Границ", "templates.test.results.top": "Сверху", "templates.test.results.right": "Справа", "templates.test.results.bottom": "Снизу", "templates.test.results.left": "Слева", "templates.test.results.performance": "Производительность", "templates.test.results.capture_time": "Захват", "templates.test.results.extraction_time": "Извлечение", "templates.test.results.total_time": "Всего", "templates.test.results.max_fps": "Макс. FPS", "templates.test.results.duration": "Длительность", "templates.test.results.frame_count": "Кадры", "templates.test.results.actual_fps": "Факт. FPS", "templates.test.results.avg_capture_time": "Средн. Захват", "templates.test.error.no_engine": "Пожалуйста, выберите движок захвата", "templates.test.error.no_display": "Пожалуйста, выберите дисплей", "templates.test.error.failed": "Тест не удался", "devices.title": "Устройства", "devices.add": "Добавить Новое Устройство", "devices.loading": "Загрузка устройств...", "devices.none": "Устройства не настроены", "devices.failed": "Не удалось загрузить устройства", "devices.wled_config": "Конфигурация WLED:", "devices.wled_note": "Настройте ваше WLED устройство (эффекты, сегменты, порядок цветов, ограничения питания и т.д.) используя", "devices.wled_link": "официальное приложение WLED", "devices.wled_note_or": "или встроенный", "devices.wled_webui_link": "веб-интерфейс WLED", "devices.wled_note_webui": "(откройте IP устройства в браузере).", "devices.wled_note2": "Этот контроллер отправляет данные о цвете пикселей и управляет яркостью для каждого устройства.", "device.scan": "Автопоиск", "device.scan.empty": "Устройства не найдены", "device.scan.error": "Ошибка сканирования сети", "device.scan.already_added": "Уже добавлено", "device.scan.selected": "Устройство выбрано", "device.type": "Тип устройства:", "device.type.hint": "Выберите тип LED контроллера", "device.serial_port": "Серийный порт:", "device.serial_port.hint": "Выберите COM порт устройства Adalight", "device.serial_port.none": "Серийные порты не найдены", "device.led_count_manual.hint": "Количество светодиодов на ленте (должно совпадать с вашим скетчем Arduino)", "device.baud_rate": "Скорость порта:", "device.baud_rate.hint": "Скорость серийного соединения. Выше = больше FPS, но требует соответствия скетчу Arduino.", "device.led_type": "Тип LED:", "device.led_type.hint": "RGB (3 канала) или RGBW (4 канала с выделенным белым)", "device.send_latency": "Задержка отправки (мс):", "device.send_latency.hint": "Имитация сетевой/серийной задержки на кадр в миллисекундах", "device.url.hint": "IP адрес или имя хоста устройства (напр. http://192.168.1.100)", "device.name": "Имя Устройства:", "device.name.placeholder": "ТВ в Гостиной", "device.url": "URL:", "device.url.placeholder": "http://192.168.1.100", "device.led_count": "Количество Светодиодов:", "device.led_count.hint": "Количество светодиодов, настроенных в устройстве", "device.led_count.hint.auto": "Автоматически определяется из устройства", "device.button.add": "Добавить Устройство", "device.button.start": "Запустить", "device.button.stop": "Остановить", "device.button.settings": "Основные настройки", "device.button.capture_settings": "Настройки захвата", "device.button.calibrate": "Калибровка", "device.button.remove": "Удалить", "device.button.webui": "Открыть веб-интерфейс устройства", "device.button.power_off": "Выключить", "device.power.off_success": "Устройство выключено", "device.status.connected": "Подключено", "device.status.disconnected": "Отключено", "device.status.error": "Ошибка", "device.status.processing": "Обработка", "device.status.idle": "Ожидание", "device.fps": "FPS:", "device.display": "Дисплей:", "device.remove.confirm": "Вы уверены, что хотите удалить это устройство?", "device.added": "Устройство успешно добавлено", "device.removed": "Устройство успешно удалено", "device.started": "Обработка запущена", "device.stopped": "Обработка остановлена", "device.metrics.actual_fps": "Факт. FPS", "device.metrics.current_fps": "Текущ. FPS", "device.metrics.target_fps": "Целев. FPS", "device.metrics.potential_fps": "Потенц. FPS", "device.metrics.frames": "Кадры", "device.metrics.frames_skipped": "Пропущено", "device.metrics.keepalive": "Keepalive", "device.metrics.errors": "Ошибки", "device.metrics.uptime": "Время работы", "device.metrics.timing": "Тайминг пайплайна:", "device.metrics.device_fps": "Частота обновления устройства", "device.health.online": "Онлайн", "device.health.offline": "Недоступен", "device.health.streaming_unreachable": "Недоступен во время стриминга", "device.health.checking": "Проверка...", "device.tutorial.start": "Начать обучение", "device.tip.metadata": "Информация об устройстве (кол-во LED, тип, цветовые каналы) определяется автоматически", "device.tip.brightness": "Перетащите для регулировки яркости", "device.tip.start": "Запуск или остановка захвата экрана", "device.tip.settings": "Основные настройки устройства (имя, URL, интервал проверки)", "device.tip.capture_settings": "Настройки захвата (дисплей, шаблон захвата)", "device.tip.calibrate": "Калибровка позиций LED, направления и зоны покрытия", "device.tip.webui": "Открыть встроенный веб-интерфейс устройства для расширенной настройки", "device.tip.add": "Нажмите, чтобы добавить новое LED устройство", "settings.title": "Настройки", "settings.general.title": "Основные Настройки", "settings.capture.title": "Настройки Захвата", "settings.capture.saved": "Настройки захвата обновлены", "settings.capture.failed": "Не удалось сохранить настройки захвата", "settings.brightness": "Яркость:", "settings.brightness.hint": "Общая яркость для этого устройства (0-100%)", "settings.url.hint": "IP адрес или имя хоста устройства", "settings.display_index": "Дисплей:", "settings.display_index.hint": "Какой экран захватывать для этого устройства", "settings.fps": "Целевой FPS:", "settings.fps.hint": "Целевая частота кадров (10-90)", "settings.capture_template": "Шаблон Движка:", "settings.capture_template.hint": "Движок захвата экрана и конфигурация для этого устройства", "settings.button.cancel": "Отмена", "settings.health_interval": "Интервал Проверки (с):", "settings.health_interval.hint": "Как часто проверять статус устройства (5-600 секунд)", "settings.auto_shutdown": "Авто-восстановление:", "settings.auto_shutdown.hint": "Восстанавливать устройство в режим ожидания при остановке целей или сервера", "settings.button.save": "Сохранить Изменения", "settings.saved": "Настройки успешно сохранены", "settings.failed": "Не удалось сохранить настройки", "calibration.title": "Калибровка Светодиодов", "calibration.tip.led_count": "Укажите количество LED на каждой стороне", "calibration.tip.start_corner": "Нажмите на угол для выбора стартовой позиции", "calibration.tip.direction": "Переключение направления ленты (по часовой / против часовой)", "calibration.tip.offset": "Смещение LED — расстояние от LED 0 до стартового угла", "calibration.tip.span": "Перетащите зелёные полосы для настройки зоны покрытия", "calibration.tip.test": "Нажмите на край для теста LED", "calibration.tip.overlay": "Включите оверлей для отображения позиций и нумерации LED на мониторе", "calibration.tip.toggle_inputs": "Нажмите на общее количество LED для скрытия боковых полей", "calibration.tip.border_width": "Сколько пикселей от края экрана использовать для цветов LED", "calibration.tip.skip_leds_start": "Пропуск LED в начале ленты — пропущенные LED остаются выключенными", "calibration.tip.skip_leds_end": "Пропуск LED в конце ленты — пропущенные LED остаются выключенными", "tour.welcome": "Добро пожаловать в LED Grab! Этот краткий тур познакомит вас с интерфейсом. Используйте стрелки или кнопки для навигации.", "tour.dashboard": "Дашборд — обзор запущенных целей, профилей и состояния устройств.", "tour.targets": "Цели — добавляйте WLED-устройства, настраивайте LED-цели с захватом и калибровкой.", "tour.sources": "Источники — управление шаблонами захвата, источниками изображений, звука и цветовых полос.", "tour.profiles": "Профили — группируйте цели и автоматизируйте переключение по расписанию, звуку или значениям.", "tour.settings": "Настройки — резервное копирование и восстановление конфигурации.", "tour.search": "Поиск — быстрый поиск и переход к любому объекту по Ctrl+K.", "tour.theme": "Тема — переключение между тёмной и светлой темой.", "tour.language": "Язык — выберите предпочитаемый язык интерфейса.", "tour.restart": "Запустить тур заново", "tour.dash.perf": "Производительность — графики FPS в реальном времени, метрики задержки и интервал опроса.", "tour.dash.running": "Запущенные цели — метрики стриминга и быстрая остановка.", "tour.dash.stopped": "Остановленные цели — готовы к запуску одним нажатием.", "tour.dash.profiles": "Профили — статус активных профилей и быстрое включение/выключение.", "tour.tgt.led_tab": "LED — стандартные LED-цели с настройкой устройств и цветовых полос.", "tour.tgt.devices": "Устройства — ваши WLED-контроллеры, найденные в сети.", "tour.tgt.css": "Цветовые полосы — определите, как области экрана соответствуют сегментам LED.", "tour.tgt.targets": "LED-цели — объедините устройство, цветовую полосу и источник захвата для стриминга.", "tour.tgt.kc_tab": "Key Colors — альтернативный тип цели с подбором цветов вместо пиксельного маппинга.", "tour.src.raw": "Raw — источники захвата экрана с ваших дисплеев.", "tour.src.templates": "Шаблоны захвата — переиспользуемые конфигурации (разрешение, FPS, обрезка).", "tour.src.static": "Статичные изображения — тестируйте настройку с файлами изображений.", "tour.src.processed": "Обработка — применяйте эффекты: размытие, яркость, цветокоррекция.", "tour.src.audio": "Аудио — анализ микрофона или системного звука для реактивных LED-эффектов.", "tour.src.value": "Значения — числовые источники данных для условий автоматизации профилей.", "tour.prof.list": "Профили — автоматизируйте управление целями по времени, звуку или значениям.", "tour.prof.add": "Нажмите + для создания нового профиля с целями и условиями активации.", "tour.prof.card": "Каждая карточка показывает статус профиля, условия и кнопки управления.", "calibration.tutorial.start": "Начать обучение", "calibration.overlay_toggle": "Оверлей", "calibration.start_position": "Начальная Позиция:", "calibration.position.bottom_left": "Нижний Левый", "calibration.position.bottom_right": "Нижний Правый", "calibration.position.top_left": "Верхний Левый", "calibration.position.top_right": "Верхний Правый", "calibration.direction": "Направление:", "calibration.direction.clockwise": "По Часовой Стрелке", "calibration.direction.counterclockwise": "Против Часовой Стрелки", "calibration.leds.top": "Светодиодов Сверху:", "calibration.leds.right": "Светодиодов Справа:", "calibration.leds.bottom": "Светодиодов Снизу:", "calibration.leds.left": "Светодиодов Слева:", "calibration.offset": "Смещение LED:", "calibration.offset.hint": "Расстояние от физического LED 0 до стартового угла (по направлению ленты)", "calibration.skip_start": "Пропуск LED (начало):", "calibration.skip_start.hint": "Количество LED, которые будут выключены в начале ленты (0 = нет)", "calibration.skip_end": "Пропуск LED (конец):", "calibration.skip_end.hint": "Количество LED, которые будут выключены в конце ленты (0 = нет)", "calibration.border_width": "Граница (px):", "calibration.border_width.hint": "Сколько пикселей от края экрана выбирать для цвета LED (1-100)", "calibration.button.cancel": "Отмена", "calibration.button.save": "Сохранить", "calibration.saved": "Калибровка успешно сохранена", "calibration.failed": "Не удалось сохранить калибровку", "server.healthy": "Сервер онлайн", "server.offline": "Сервер офлайн", "error.unauthorized": "Не авторизован - пожалуйста, войдите", "error.network": "Сетевая ошибка", "error.unknown": "Произошла ошибка", "modal.discard_changes": "У вас есть несохранённые изменения. Отменить их?", "confirm.title": "Подтверждение Действия", "confirm.yes": "Да", "confirm.no": "Нет", "common.loading": "Загрузка...", "common.delete": "Удалить", "common.edit": "Редактировать", "common.clone": "Клонировать", "section.filter.placeholder": "Фильтр...", "section.filter.reset": "Очистить фильтр", "section.expand_all": "Развернуть все секции", "section.collapse_all": "Свернуть все секции", "streams.title": "Источники", "streams.description": "Источники определяют конвейер захвата. Сырой источник захватывает экран с помощью шаблона захвата. Обработанный источник применяет постобработку к другому источнику. Назначайте источники устройствам.", "streams.group.raw": "Захват Экрана", "streams.group.processed": "Обработанные", "streams.group.audio": "Аудио", "streams.section.streams": "Источники", "streams.add": "Добавить Источник", "streams.add.raw": "Добавить Захват Экрана", "streams.add.processed": "Добавить Обработанный", "streams.edit": "Редактировать Источник", "streams.edit.raw": "Редактировать Захват Экрана", "streams.edit.processed": "Редактировать Обработанный Источник", "streams.name": "Имя Источника:", "streams.name.placeholder": "Мой Источник", "streams.type": "Тип:", "streams.type.raw": "Захват экрана", "streams.type.processed": "Обработанный", "streams.display": "Дисплей:", "streams.display.hint": "Какой экран захватывать", "streams.capture_template": "Шаблон Движка:", "streams.capture_template.hint": "Шаблон движка, определяющий способ захвата экрана", "streams.target_fps": "Целевой FPS:", "streams.target_fps.hint": "Целевое количество кадров в секунду (1-90)", "streams.source": "Источник:", "streams.source.hint": "Источник, к которому применяются фильтры обработки", "streams.pp_template": "Шаблон Фильтра:", "streams.pp_template.hint": "Шаблон фильтра для применения к источнику", "streams.description_label": "Описание (необязательно):", "streams.description_placeholder": "Опишите этот источник...", "streams.created": "Источник успешно создан", "streams.updated": "Источник успешно обновлён", "streams.deleted": "Источник успешно удалён", "streams.delete.confirm": "Вы уверены, что хотите удалить этот источник?", "streams.error.load": "Не удалось загрузить источники", "streams.error.required": "Пожалуйста, заполните все обязательные поля", "streams.error.delete": "Не удалось удалить источник", "streams.test.title": "Тест Источника", "streams.test.run": "Запустить", "streams.test.running": "Тестирование источника...", "streams.test.duration": "Длительность Захвата (с):", "streams.test.error.failed": "Тест источника не удался", "postprocessing.title": "Шаблоны Фильтров", "postprocessing.description": "Шаблоны обработки определяют фильтры изображений и цветокоррекцию. Назначайте их обработанным источникам для единообразной постобработки на всех устройствах.", "postprocessing.add": "Добавить Шаблон Фильтра", "postprocessing.edit": "Редактировать Шаблон Фильтра", "postprocessing.name": "Имя Шаблона:", "postprocessing.name.placeholder": "Мой Шаблон Фильтра", "filters.select_type": "Выберите тип фильтра...", "filters.add": "Добавить фильтр", "filters.remove": "Удалить", "filters.move_up": "Вверх", "filters.move_down": "Вниз", "filters.empty": "Фильтры не добавлены. Используйте селектор ниже для добавления.", "filters.brightness": "Яркость", "filters.saturation": "Насыщенность", "filters.gamma": "Гамма", "filters.downscaler": "Уменьшение", "filters.pixelate": "Пикселизация", "filters.auto_crop": "Авто Обрезка", "filters.flip": "Отражение", "filters.color_correction": "Цветокоррекция", "filters.filter_template": "Шаблон фильтров", "postprocessing.description_label": "Описание (необязательно):", "postprocessing.description_placeholder": "Опишите этот шаблон...", "postprocessing.created": "Шаблон успешно создан", "postprocessing.updated": "Шаблон успешно обновлён", "postprocessing.deleted": "Шаблон успешно удалён", "postprocessing.delete.confirm": "Вы уверены, что хотите удалить этот шаблон фильтра?", "postprocessing.error.load": "Не удалось загрузить шаблоны фильтров", "postprocessing.error.required": "Пожалуйста, заполните все обязательные поля", "postprocessing.error.delete": "Не удалось удалить шаблон фильтра", "postprocessing.config.show": "Показать настройки", "postprocessing.test.title": "Тест шаблона фильтра", "postprocessing.test.source_stream": "Источник:", "postprocessing.test.running": "Тестирование шаблона фильтра...", "postprocessing.test.error.no_stream": "Пожалуйста, выберите источник", "postprocessing.test.error.failed": "Тест шаблона фильтра не удался", "device.button.stream_selector": "Настройки источника", "device.stream_settings.title": "Настройки источника", "device.stream_selector.label": "Источник:", "device.stream_selector.hint": "Выберите источник, определяющий что это устройство захватывает и обрабатывает", "device.stream_selector.none": "-- Источник не назначен --", "device.stream_selector.saved": "Настройки источника обновлены", "device.stream_settings.border_width": "Ширина границы (px):", "device.stream_settings.border_width_hint": "Сколько пикселей от края экрана выбирать для цвета LED (1-100)", "device.stream_settings.interpolation": "Режим интерполяции:", "device.stream_settings.interpolation.average": "Среднее", "device.stream_settings.interpolation.median": "Медиана", "device.stream_settings.interpolation.dominant": "Доминантный", "device.stream_settings.interpolation_hint": "Как вычислять цвет LED из выбранных пикселей", "device.stream_settings.smoothing": "Сглаживание:", "device.stream_settings.smoothing_hint": "Временное смешивание между кадрами (0=нет, 1=полное). Уменьшает мерцание.", "device.tip.stream_selector": "Настройки источника и проекции LED для этого устройства", "streams.group.static_image": "Статические", "streams.add.static_image": "Добавить статическое изображение (источник)", "streams.edit.static_image": "Редактировать статическое изображение (источник)", "streams.type.static_image": "Статическое изображение", "streams.image_source": "Источник изображения:", "streams.image_source.placeholder": "https://example.com/image.jpg или C:\\path\\to\\image.png", "streams.image_source.hint": "Введите URL (http/https) или локальный путь к изображению", "streams.validate_image.validating": "Проверка...", "streams.validate_image.valid": "Изображение доступно", "streams.validate_image.invalid": "Изображение недоступно", "targets.title": "Цели", "targets.description": "Цели связывают источники цветовых полос с устройствами вывода. Каждая цель ссылается на устройство и источник цветовой полосы.", "targets.subtab.wled": "LED", "targets.subtab.led": "LED", "targets.section.devices": "Устройства", "targets.section.color_strips": "Источники цветовых полос", "targets.section.targets": "Цели", "targets.section.specific_settings": "Специальные настройки", "targets.add": "Добавить Цель", "targets.edit": "Редактировать Цель", "targets.loading": "Загрузка целей...", "targets.none": "Цели не настроены", "targets.failed": "Не удалось загрузить цели", "targets.name": "Имя Цели:", "targets.name.placeholder": "Моя Цель", "targets.device": "Устройство:", "targets.device.hint": "Выберите LED устройство для передачи данных", "targets.device.none": "-- Выберите устройство --", "targets.color_strip_source": "Источник цветовой полосы:", "targets.color_strip_source.hint": "Выберите источник цветовой полосы, который предоставляет цвета LED для этой цели", "targets.no_css": "Нет источника", "targets.source": "Источник:", "targets.source.hint": "Какой источник изображения захватывать и обрабатывать", "targets.source.none": "-- Источник не назначен --", "targets.fps": "Целевой FPS:", "targets.fps.hint": "Целевая частота кадров для захвата и обновления LED (1-90)", "targets.fps.rec": "Макс. аппаратный ≈ {fps} fps ({leds} LED)", "targets.border_width": "Ширина границы (px):", "targets.border_width.hint": "Сколько пикселей от края экрана выбирать для цвета LED (1-100)", "targets.interpolation": "Режим интерполяции:", "targets.interpolation.hint": "Как вычислять цвет LED из выбранных пикселей", "targets.interpolation.average": "Среднее", "targets.interpolation.median": "Медиана", "targets.interpolation.dominant": "Доминантный", "targets.smoothing": "Сглаживание:", "targets.smoothing.hint": "Временное смешивание между кадрами (0=нет, 1=полное). Уменьшает мерцание.", "targets.keepalive_interval": "Интервал поддержания связи:", "targets.keepalive_interval.hint": "Как часто повторно отправлять последний кадр при статичном источнике для удержания устройства в режиме live (0.5-5.0с)", "targets.created": "Цель успешно создана", "targets.updated": "Цель успешно обновлена", "targets.deleted": "Цель успешно удалена", "targets.delete.confirm": "Вы уверены, что хотите удалить эту цель?", "targets.error.load": "Не удалось загрузить цели", "targets.error.required": "Пожалуйста, заполните все обязательные поля", "targets.error.name_required": "Введите название цели", "targets.error.delete": "Не удалось удалить цель", "targets.button.start": "Запустить", "targets.button.stop": "Остановить", "targets.status.processing": "Обработка", "targets.status.idle": "Ожидание", "targets.status.error": "Ошибка", "targets.metrics.actual_fps": "Факт. FPS", "targets.metrics.target_fps": "Целев. FPS", "targets.metrics.frames": "Кадры", "targets.metrics.errors": "Ошибки", "targets.subtab.key_colors": "Ключевые Цвета", "targets.section.key_colors": "Цели Ключевых Цветов", "kc.add": "Добавить Цель Ключевых Цветов", "kc.edit": "Редактировать Цель Ключевых Цветов", "kc.name": "Имя Цели:", "kc.name.placeholder": "Моя Цель Ключевых Цветов", "kc.source": "Источник:", "kc.source.hint": "Из какого источника извлекать цвета", "kc.source.none": "-- Источник не назначен --", "kc.fps": "FPS Извлечения:", "kc.fps.hint": "Сколько раз в секунду извлекать цвета (1-60)", "kc.interpolation": "Режим Цвета:", "kc.interpolation.hint": "Как вычислять ключевой цвет из пикселей в каждом прямоугольнике", "kc.interpolation.average": "Среднее", "kc.interpolation.median": "Медиана", "kc.interpolation.dominant": "Доминантный", "kc.smoothing": "Сглаживание:", "kc.smoothing.hint": "Временное смешивание между извлечениями (0=нет, 1=полное)", "kc.pattern_template": "Шаблон Паттерна:", "kc.pattern_template.hint": "Выберите шаблон прямоугольников для извлечения цветов", "kc.pattern_template.none": "-- Выберите шаблон паттерна --", "kc.brightness_vs": "Источник Яркости:", "kc.brightness_vs.hint": "Опциональный источник значений, динамически управляющий яркостью каждый кадр (умножается на ручной слайдер яркости)", "kc.brightness_vs.none": "Нет (только ручная яркость)", "kc.created": "Цель ключевых цветов успешно создана", "kc.updated": "Цель ключевых цветов успешно обновлена", "kc.deleted": "Цель ключевых цветов успешно удалена", "kc.delete.confirm": "Вы уверены, что хотите удалить эту цель ключевых цветов?", "kc.error.no_pattern": "Пожалуйста, выберите шаблон паттерна", "kc.error.required": "Пожалуйста, заполните все обязательные поля", "kc.colors.none": "Цвета пока не извлечены", "kc.test": "Тест", "kc.test.error": "Ошибка теста", "targets.section.pattern_templates": "Шаблоны Паттернов", "pattern.add": "Добавить Шаблон Паттерна", "pattern.edit": "Редактировать Шаблон Паттерна", "pattern.name": "Имя Шаблона:", "pattern.name.placeholder": "Мой Шаблон Паттерна", "pattern.description_label": "Описание (необязательно):", "pattern.description_placeholder": "Опишите этот паттерн...", "pattern.rectangles": "Прямоугольники", "pattern.rect.name": "Имя", "pattern.rect.x": "X", "pattern.rect.y": "Y", "pattern.rect.width": "Ш", "pattern.rect.height": "В", "pattern.rect.add": "Добавить Прямоугольник", "pattern.rect.remove": "Удалить", "pattern.rect.empty": "Прямоугольники не определены. Добавьте хотя бы один.", "pattern.created": "Шаблон паттерна успешно создан", "pattern.updated": "Шаблон паттерна успешно обновлён", "pattern.deleted": "Шаблон паттерна успешно удалён", "pattern.delete.confirm": "Вы уверены, что хотите удалить этот шаблон паттерна?", "pattern.delete.referenced": "Невозможно удалить: шаблон используется целью", "pattern.error.required": "Пожалуйста, заполните все обязательные поля", "pattern.visual_editor": "Визуальный Редактор", "pattern.capture_bg": "Захватить Фон", "pattern.source_for_bg": "Источник для Фона:", "pattern.source_for_bg.none": "-- Выберите источник --", "pattern.delete_selected": "Удалить Выбранный", "pattern.name.hint": "Описательное имя для этой раскладки прямоугольников", "pattern.description.hint": "Необязательные заметки о назначении этого паттерна", "pattern.visual_editor.hint": "Нажмите кнопки + чтобы добавить прямоугольники. Тяните края для изменения размера, тяните внутри для перемещения.", "pattern.rectangles.hint": "Точная настройка позиций и размеров прямоугольников в координатах (0.0 до 1.0)", "overlay.button.show": "Показать визуализацию наложения", "overlay.button.hide": "Скрыть визуализацию наложения", "overlay.started": "Визуализация наложения запущена", "overlay.stopped": "Визуализация наложения остановлена", "overlay.error.start": "Не удалось запустить наложение", "overlay.error.stop": "Не удалось остановить наложение", "dashboard.title": "Обзор", "dashboard.section.targets": "Цели", "dashboard.section.running": "Запущенные", "dashboard.section.stopped": "Остановленные", "dashboard.no_targets": "Нет настроенных целей", "dashboard.uptime": "Время работы", "dashboard.fps": "FPS", "dashboard.errors": "Ошибки", "dashboard.device": "Устройство", "dashboard.stop_all": "Остановить все", "dashboard.failed": "Не удалось загрузить обзор", "dashboard.section.profiles": "Профили", "dashboard.targets": "Цели", "dashboard.section.performance": "Производительность системы", "dashboard.perf.cpu": "ЦП", "dashboard.perf.ram": "ОЗУ", "dashboard.perf.gpu": "ГП", "dashboard.perf.unavailable": "недоступно", "dashboard.perf.color": "Цвет графика", "dashboard.poll_interval": "Интервал обновления", "profiles.title": "Профили", "profiles.empty": "Профили не настроены. Создайте профиль для автоматизации целей.", "profiles.add": "Добавить профиль", "profiles.edit": "Редактировать профиль", "profiles.delete.confirm": "Удалить профиль \"{name}\"?", "profiles.name": "Название:", "profiles.name.hint": "Описательное имя для профиля", "profiles.enabled": "Включён:", "profiles.enabled.hint": "Отключённые профили не активируются даже при выполнении условий", "profiles.condition_logic": "Логика условий:", "profiles.condition_logic.hint": "Как объединяются несколько условий: ЛЮБОЕ (ИЛИ) или ВСЕ (И)", "profiles.condition_logic.or": "Любое условие (ИЛИ)", "profiles.condition_logic.and": "Все условия (И)", "profiles.conditions": "Условия:", "profiles.conditions.hint": "Правила, определяющие когда профиль активируется", "profiles.conditions.add": "Добавить условие", "profiles.conditions.empty": "Нет условий — профиль всегда активен когда включён", "profiles.condition.always": "Всегда", "profiles.condition.always.hint": "Профиль активируется сразу при включении и остаётся активным. Используйте для автозапуска целей при старте сервера.", "profiles.condition.application": "Приложение", "profiles.condition.application.apps": "Приложения:", "profiles.condition.application.apps.hint": "Имена процессов, по одному на строку (например firefox.exe)", "profiles.condition.application.browse": "Обзор", "profiles.condition.application.search": "Фильтр процессов...", "profiles.condition.application.no_processes": "Процессы не найдены", "profiles.condition.application.match_type": "Тип соответствия:", "profiles.condition.application.match_type.hint": "Как определять наличие приложения", "profiles.condition.application.match_type.running": "Запущено", "profiles.condition.application.match_type.topmost": "На переднем плане", "profiles.condition.application.match_type.topmost_fullscreen": "На переднем плане + Полный экран", "profiles.condition.application.match_type.fullscreen": "Полный экран", "profiles.targets": "Цели:", "profiles.targets.hint": "Цели для запуска при активации профиля", "profiles.targets.empty": "Нет доступных целей", "profiles.status.active": "Активен", "profiles.status.inactive": "Неактивен", "profiles.status.disabled": "Отключён", "profiles.action.disable": "Отключить", "profiles.last_activated": "Последняя активация", "profiles.logic.and": " И ", "profiles.logic.or": " ИЛИ ", "profiles.logic.all": "ВСЕ", "profiles.logic.any": "ЛЮБОЕ", "profiles.updated": "Профиль обновлён", "profiles.created": "Профиль создан", "profiles.deleted": "Профиль удалён", "profiles.error.name_required": "Введите название", "profiles.toggle_all.start": "Запустить все цели", "profiles.toggle_all.stop": "Остановить все цели", "autostart.title": "Автозапуск целей", "autostart.toggle.enabled": "Автозапуск включён", "autostart.toggle.disabled": "Автозапуск отключён", "autostart.goto_target": "Перейти к цели", "time.hours_minutes": "{h}ч {m}м", "time.minutes_seconds": "{m}м {s}с", "time.seconds": "{s}с", "dashboard.type.led": "LED", "dashboard.type.kc": "Цвета клавиш", "aria.close": "Закрыть", "aria.save": "Сохранить", "aria.cancel": "Отмена", "aria.previous": "Назад", "aria.next": "Вперёд", "aria.hint": "Показать подсказку", "color_strip.add": "Добавить источник цветовой полосы", "color_strip.edit": "Редактировать источник цветовой полосы", "color_strip.name": "Название:", "color_strip.name.placeholder": "Настенная полоса", "color_strip.picture_source": "Источник изображения:", "color_strip.picture_source.hint": "Источник захвата экрана для расчёта цветов светодиодов", "color_strip.fps": "Целевой FPS:", "color_strip.fps.hint": "Целевая частота кадров для обновления цветов светодиодов (10-90)", "color_strip.interpolation": "Режим цвета:", "color_strip.interpolation.hint": "Как вычислять цвет светодиода по пикселям рамки", "color_strip.interpolation.average": "Среднее", "color_strip.interpolation.median": "Медиана", "color_strip.interpolation.dominant": "Доминирующий", "color_strip.smoothing": "Сглаживание:", "color_strip.smoothing.hint": "Временное смешивание кадров (0=без смешивания, 1=полное). Уменьшает мерцание.", "color_strip.frame_interpolation": "Интерполяция кадров:", "color_strip.frame_interpolation.hint": "Смешивает последовательные захваченные кадры для вывода на полной целевой частоте кадров, даже если скорость захвата ниже. Уменьшает заметные ступеньки при плавных переходах.", "color_strip.color_corrections": "Цветокоррекция", "color_strip.brightness": "Яркость:", "color_strip.brightness.hint": "Множитель яркости (0=выкл, 1=без изменений, 2=двойная). Применяется после извлечения цвета.", "color_strip.saturation": "Насыщенность:", "color_strip.saturation.hint": "Насыщенность цвета (0=оттенки серого, 1=без изменений, 2=двойная насыщенность)", "color_strip.gamma": "Гамма:", "color_strip.gamma.hint": "Гамма-коррекция (1=без коррекции, <1=ярче средние тона, >1=темнее средние тона)", "color_strip.test_device": "Тестировать на устройстве:", "color_strip.test_device.hint": "Выберите устройство для отправки тестовых пикселей при нажатии на рамку", "color_strip.leds": "Количество светодиодов", "color_strip.led_count": "Количество LED:", "color_strip.led_count.hint": "Общее число светодиодов на физической полосе. Для источников экрана: 0 = автоматически из калибровки (светодиоды за ТВ будут чёрными). Для статического цвета: укажите точное количество светодиодов устройства.", "color_strip.created": "Источник цветовой полосы создан", "color_strip.updated": "Источник цветовой полосы обновлён", "color_strip.deleted": "Источник цветовой полосы удалён", "color_strip.delete.confirm": "Удалить этот источник цветовой полосы?", "color_strip.delete.referenced": "Невозможно удалить: источник используется в цели", "color_strip.error.name_required": "Введите название", "color_strip.type": "Тип:", "color_strip.type.hint": "Источник изображения получает цвета светодиодов из захвата экрана. Статический цвет заполняет все светодиоды одним постоянным цветом. Градиент распределяет цветовой градиент по всем светодиодам. Смена цвета плавно циклически переключается между заданными цветами. Композит накладывает несколько источников как смешанные слои. Аудиореактив управляет LED от аудиосигнала в реальном времени. API-ввод принимает массивы цветов LED от внешних клиентов через REST или WebSocket.", "color_strip.type.picture": "Источник изображения", "color_strip.type.static": "Статический цвет", "color_strip.type.gradient": "Градиент", "color_strip.type.color_cycle": "Смена цвета", "color_strip.static_color": "Цвет:", "color_strip.static_color.hint": "Статический цвет, который будет отправлен на все светодиоды полосы.", "color_strip.gradient.preview": "Градиент:", "color_strip.gradient.preview.hint": "Предпросмотр градиента. Нажмите на дорожку маркеров чтобы добавить остановку. Перетащите маркеры для изменения позиции.", "color_strip.gradient.stops": "Цветовые остановки:", "color_strip.gradient.stops.hint": "Каждая остановка задаёт цвет в относительной позиции (0.0 = начало, 1.0 = конец). Кнопка ↔ добавляет цвет справа для создания резкого перехода.", "color_strip.gradient.stops_count": "остановок", "color_strip.gradient.add_stop": "+ Добавить", "color_strip.gradient.position": "Позиция (0.0–1.0)", "color_strip.gradient.bidir.hint": "Добавить второй цвет справа от этой остановки для создания резкого перехода в градиенте.", "color_strip.gradient.min_stops": "Градиент должен содержать не менее 2 остановок", "color_strip.gradient.preset": "Пресет:", "color_strip.gradient.preset.hint": "Загрузить готовую палитру градиента. Выбор пресета заменяет текущие остановки.", "color_strip.gradient.preset.custom": "— Свой —", "color_strip.gradient.preset.rainbow": "Радуга", "color_strip.gradient.preset.sunset": "Закат", "color_strip.gradient.preset.ocean": "Океан", "color_strip.gradient.preset.forest": "Лес", "color_strip.gradient.preset.fire": "Огонь", "color_strip.gradient.preset.lava": "Лава", "color_strip.gradient.preset.aurora": "Аврора", "color_strip.gradient.preset.ice": "Лёд", "color_strip.gradient.preset.warm": "Тёплый", "color_strip.gradient.preset.cool": "Холодный", "color_strip.gradient.preset.neon": "Неон", "color_strip.gradient.preset.pastel": "Пастельный", "color_strip.animation": "Анимация", "color_strip.animation.type": "Эффект:", "color_strip.animation.type.hint": "Эффект анимации.", "color_strip.animation.type.none": "Нет (без эффекта анимации)", "color_strip.animation.type.none.desc": "Статичные цвета без анимации", "color_strip.animation.type.breathing": "Дыхание", "color_strip.animation.type.breathing.desc": "Плавное угасание и нарастание яркости", "color_strip.animation.type.color_cycle": "Смена цвета", "color_strip.animation.type.gradient_shift": "Сдвиг градиента", "color_strip.animation.type.gradient_shift.desc": "Сдвигает градиент вдоль ленты", "color_strip.animation.type.wave": "Волна", "color_strip.animation.type.wave.desc": "Синусоидальная волна яркости вдоль ленты", "color_strip.animation.type.strobe": "Стробоскоп", "color_strip.animation.type.strobe.desc": "Быстрое мигание вкл/выкл", "color_strip.animation.type.sparkle": "Искры", "color_strip.animation.type.sparkle.desc": "Случайные светодиоды кратковременно вспыхивают", "color_strip.animation.type.pulse": "Пульс", "color_strip.animation.type.pulse.desc": "Резкая вспышка яркости с быстрым затуханием", "color_strip.animation.type.candle": "Свеча", "color_strip.animation.type.candle.desc": "Тёплое мерцание, как у свечи", "color_strip.animation.type.rainbow_fade": "Радужный перелив", "color_strip.animation.type.rainbow_fade.desc": "Циклический переход по всему спектру оттенков", "color_strip.animation.speed": "Скорость:", "color_strip.animation.speed.hint": "Множитель скорости анимации. 1.0 ≈ один цикл в секунду для дыхания; большие значения ускоряют анимацию.", "color_strip.color_cycle.colors": "Цвета:", "color_strip.color_cycle.colors.hint": "Список цветов для плавной циклической смены. Минимум 2 цвета. По умолчанию — полный радужный спектр.", "color_strip.color_cycle.add_color": "+ Добавить цвет", "color_strip.color_cycle.speed": "Скорость:", "color_strip.color_cycle.speed.hint": "Множитель скорости смены. 1.0 ≈ один полный цикл за 20 секунд; большие значения ускоряют смену.", "color_strip.color_cycle.min_colors": "Смена цвета должна содержать не менее 2 цветов", "color_strip.type.effect": "Эффект", "color_strip.type.effect.hint": "Процедурные LED-эффекты (огонь, метеор, плазма, шум, аврора), генерируемые в реальном времени.", "color_strip.type.composite": "Композит", "color_strip.type.composite.hint": "Наложение нескольких источников цветовой ленты как слоёв с режимами смешивания и прозрачностью.", "color_strip.type.mapped": "Маппинг", "color_strip.type.mapped.hint": "Назначает разные источники цветовой полосы на разные диапазоны LED (зоны). В отличие от композита, маппинг размещает источники рядом друг с другом.", "color_strip.type.audio": "Аудиореактив", "color_strip.type.audio.hint": "Цвета LED управляются аудиосигналом в реальном времени — системный звук или микрофон.", "color_strip.type.api_input": "API-ввод", "color_strip.type.api_input.hint": "Принимает массивы цветов LED от внешних клиентов через REST POST или WebSocket. Используйте для интеграции с собственным ПО, домашней автоматизацией или любой системой, способной отправлять HTTP-запросы.", "color_strip.api_input.fallback_color": "Цвет по умолчанию:", "color_strip.api_input.fallback_color.hint": "Цвет для отображения, когда данные не получены в течение периода ожидания. LED покажут этот цвет при запуске и после потери соединения.", "color_strip.api_input.timeout": "Тайм-аут (секунды):", "color_strip.api_input.timeout.hint": "Время ожидания новых данных о цветах перед возвратом к цвету по умолчанию. Установите 0, чтобы не использовать тайм-аут.", "color_strip.api_input.endpoints": "Эндпоинты для отправки:", "color_strip.api_input.endpoints.hint": "Используйте эти URL для отправки данных о цветах LED из вашего внешнего приложения. REST принимает JSON, WebSocket принимает как JSON, так и бинарные кадры.", "color_strip.api_input.save_first": "Сначала сохраните источник, чтобы увидеть URL эндпоинтов.", "color_strip.composite.layers": "Слои:", "color_strip.composite.layers.hint": "Наложение нескольких источников. Первый слой — нижний, последний — верхний. Каждый слой может иметь свой режим смешивания и прозрачность.", "color_strip.composite.add_layer": "+ Добавить слой", "color_strip.composite.source": "Источник", "color_strip.composite.blend_mode": "Смешивание", "color_strip.composite.blend_mode.normal": "Обычное", "color_strip.composite.blend_mode.add": "Сложение", "color_strip.composite.blend_mode.multiply": "Умножение", "color_strip.composite.blend_mode.screen": "Экран", "color_strip.composite.opacity": "Непрозрачность", "color_strip.composite.enabled": "Включён", "color_strip.composite.error.min_layers": "Необходим хотя бы 1 слой", "color_strip.composite.error.no_source": "Для каждого слоя должен быть выбран источник", "color_strip.composite.layers_count": "слоёв", "color_strip.mapped.zones": "Зоны:", "color_strip.mapped.zones.hint": "Каждая зона привязывает источник цветовой полосы к определённому диапазону LED. Зоны размещаются рядом — промежутки остаются чёрными.", "color_strip.mapped.add_zone": "+ Добавить зону", "color_strip.mapped.zone_source": "Источник", "color_strip.mapped.zone_start": "Начало LED", "color_strip.mapped.zone_end": "Конец LED", "color_strip.mapped.zone_reverse": "Реверс", "color_strip.mapped.zones_count": "зон", "color_strip.mapped.error.no_source": "Для каждой зоны должен быть выбран источник", "color_strip.audio.visualization": "Визуализация:", "color_strip.audio.visualization.hint": "Способ отображения аудиоданных на LED.", "color_strip.audio.viz.spectrum": "Анализатор спектра", "color_strip.audio.viz.beat_pulse": "Пульс бита", "color_strip.audio.viz.vu_meter": "VU-метр", "color_strip.audio.source": "Аудиоисточник:", "color_strip.audio.source.hint": "Аудиоисточник для визуализации. Может быть многоканальным (устройство) или моно (один канал). Создавайте и управляйте аудиоисточниками на вкладке Источники.", "color_strip.audio.sensitivity": "Чувствительность:", "color_strip.audio.sensitivity.hint": "Множитель усиления аудиосигнала. Более высокие значения делают LED чувствительнее к тихим звукам.", "color_strip.audio.smoothing": "Сглаживание:", "color_strip.audio.smoothing.hint": "Временное сглаживание между кадрами. Более высокие значения дают плавную, но медленнее реагирующую визуализацию.", "color_strip.audio.palette": "Палитра:", "color_strip.audio.palette.hint": "Цветовая палитра для полос спектра или пульсации бита.", "color_strip.audio.color": "Базовый цвет:", "color_strip.audio.color.hint": "Цвет низкого уровня для полосы VU-метра.", "color_strip.audio.color_peak": "Пиковый цвет:", "color_strip.audio.color_peak.hint": "Цвет высокого уровня в верхней части полосы VU-метра.", "color_strip.audio.mirror": "Зеркало:", "color_strip.audio.mirror.hint": "Зеркалирование спектра от центра к краям: басы в середине, высокие частоты по краям.", "color_strip.effect.type": "Тип эффекта:", "color_strip.effect.type.hint": "Выберите процедурный алгоритм.", "color_strip.effect.fire": "Огонь", "color_strip.effect.fire.desc": "Клеточный автомат, имитирующий поднимающееся пламя с диффузией тепла", "color_strip.effect.meteor": "Метеор", "color_strip.effect.meteor.desc": "Яркая точка движется по ленте с экспоненциально затухающим хвостом", "color_strip.effect.plasma": "Плазма", "color_strip.effect.plasma.desc": "Наложение синусоидальных волн с палитрой — классический демо-эффект", "color_strip.effect.noise": "Шум", "color_strip.effect.noise.desc": "Прокручиваемый фрактальный шум, отображённый на палитру", "color_strip.effect.aurora": "Аврора", "color_strip.effect.aurora.desc": "Наложенные шумовые полосы, дрейфующие и смешивающиеся — в стиле северного сияния", "color_strip.effect.speed": "Скорость:", "color_strip.effect.speed.hint": "Множитель скорости анимации эффекта (0.1 = очень медленно, 10.0 = очень быстро).", "color_strip.effect.palette": "Палитра:", "color_strip.effect.palette.hint": "Цветовая палитра для отображения значений эффекта в RGB-цвета.", "color_strip.effect.color": "Цвет метеора:", "color_strip.effect.color.hint": "Цвет головной точки метеора.", "color_strip.effect.intensity": "Интенсивность:", "color_strip.effect.intensity.hint": "Интенсивность эффекта — частота искр (огонь), затухание хвоста (метеор) или диапазон яркости (аврора).", "color_strip.effect.scale": "Масштаб:", "color_strip.effect.scale.hint": "Пространственный масштаб — частота волн (плазма), уровень масштабирования (шум) или ширина полос (аврора).", "color_strip.effect.mirror": "Отражение:", "color_strip.effect.mirror.hint": "Режим отскока — метеор меняет направление у краёв ленты вместо переноса.", "color_strip.palette.fire": "Огонь", "color_strip.palette.ocean": "Океан", "color_strip.palette.lava": "Лава", "color_strip.palette.forest": "Лес", "color_strip.palette.rainbow": "Радуга", "color_strip.palette.aurora": "Аврора", "color_strip.palette.sunset": "Закат", "color_strip.palette.ice": "Лёд", "audio_source.title": "Аудиоисточники", "audio_source.group.multichannel": "Многоканальные", "audio_source.group.mono": "Моно", "audio_source.add": "Добавить аудиоисточник", "audio_source.add.multichannel": "Добавить многоканальный", "audio_source.add.mono": "Добавить моно", "audio_source.edit": "Редактировать аудиоисточник", "audio_source.edit.multichannel": "Редактировать многоканальный", "audio_source.edit.mono": "Редактировать моно", "audio_source.name": "Название:", "audio_source.name.placeholder": "Системный звук", "audio_source.name.hint": "Описательное имя для этого аудиоисточника", "audio_source.type": "Тип:", "audio_source.type.hint": "Многоканальный захватывает все каналы с аудиоустройства. Моно извлекает один канал из многоканального источника.", "audio_source.type.multichannel": "Многоканальный", "audio_source.type.mono": "Моно", "audio_source.device": "Аудиоустройство:", "audio_source.device.hint": "Источник аудиосигнала. Устройства обратной петли захватывают системный звук; устройства ввода — микрофон или линейный вход.", "audio_source.parent": "Родительский источник:", "audio_source.parent.hint": "Многоканальный источник для извлечения канала", "audio_source.channel": "Канал:", "audio_source.channel.hint": "Какой аудиоканал извлечь из многоканального источника", "audio_source.channel.mono": "Моно (Л+П микс)", "audio_source.channel.left": "Левый", "audio_source.channel.right": "Правый", "audio_source.description": "Описание (необязательно):", "audio_source.description.placeholder": "Опишите этот аудиоисточник...", "audio_source.description.hint": "Необязательные заметки об этом аудиоисточнике", "audio_source.created": "Аудиоисточник создан", "audio_source.updated": "Аудиоисточник обновлён", "audio_source.deleted": "Аудиоисточник удалён", "audio_source.delete.confirm": "Удалить этот аудиоисточник?", "audio_source.error.name_required": "Введите название", "audio_source.audio_template": "Аудиошаблон:", "audio_source.audio_template.hint": "Шаблон аудиозахвата определяет, какой движок и настройки использовать для этого устройства", "audio_source.test": "Тест", "audio_source.test.title": "Тест аудиоисточника", "audio_source.test.rms": "RMS", "audio_source.test.peak": "Пик", "audio_source.test.beat": "Бит", "audio_source.test.connecting": "Подключение...", "audio_source.test.error": "Ошибка теста аудио", "audio_template.test": "Тест", "audio_template.test.title": "Тест аудиошаблона", "audio_template.test.device": "Аудиоустройство:", "audio_template.test.device.hint": "Выберите устройство для захвата звука во время теста", "audio_template.test.run": "Запуск", "audio_template.title": "Аудиошаблоны", "audio_template.add": "Добавить аудиошаблон", "audio_template.edit": "Редактировать аудиошаблон", "audio_template.name": "Название шаблона:", "audio_template.name.placeholder": "Мой аудиошаблон", "audio_template.description.label": "Описание (необязательно):", "audio_template.description.placeholder": "Опишите этот шаблон...", "audio_template.engine": "Аудиодвижок:", "audio_template.engine.hint": "Выберите движок аудиозахвата. WASAPI — только Windows с поддержкой loopback. Sounddevice — кроссплатформенный.", "audio_template.engine.unavailable": "Недоступен", "audio_template.engine.unavailable.hint": "Этот движок недоступен в вашей системе", "audio_template.config": "Конфигурация", "audio_template.config.show": "Показать конфигурацию", "audio_template.created": "Аудиошаблон создан", "audio_template.updated": "Аудиошаблон обновлён", "audio_template.deleted": "Аудиошаблон удалён", "audio_template.delete.confirm": "Удалить этот аудиошаблон?", "audio_template.error.load": "Не удалось загрузить аудиошаблоны", "audio_template.error.engines": "Не удалось загрузить аудиодвижки", "audio_template.error.required": "Пожалуйста, заполните все обязательные поля", "audio_template.error.delete": "Не удалось удалить аудиошаблон", "streams.group.value": "Источники значений", "value_source.group.title": "Источники значений", "value_source.add": "Добавить источник значений", "value_source.edit": "Редактировать источник значений", "value_source.name": "Название:", "value_source.name.placeholder": "Пульс яркости", "value_source.name.hint": "Описательное имя для этого источника значений", "value_source.type": "Тип:", "value_source.type.hint": "Статический выдаёт постоянное значение. Анимированный циклически меняет форму волны. Аудио реагирует на звук. Адаптивные типы автоматически подстраивают яркость по времени суток или содержимому сцены.", "value_source.type.static": "Статический", "value_source.type.animated": "Анимированный", "value_source.type.audio": "Аудио", "value_source.type.adaptive_time": "Адаптивный (Время суток)", "value_source.type.adaptive_scene": "Адаптивный (Сцена)", "value_source.value": "Значение:", "value_source.value.hint": "Постоянное выходное значение (0.0 = выкл, 1.0 = полная яркость)", "value_source.waveform": "Форма волны:", "value_source.waveform.hint": "Форма цикла анимации яркости", "value_source.waveform.sine": "Синус", "value_source.waveform.triangle": "Треугольник", "value_source.waveform.square": "Прямоугольник", "value_source.waveform.sawtooth": "Пила", "value_source.speed": "Скорость (цикл/мин):", "value_source.speed.hint": "Циклов в минуту — как быстро повторяется волна (1 = очень медленно, 120 = очень быстро)", "value_source.min_value": "Мин. значение:", "value_source.min_value.hint": "Минимальный выход цикла волны", "value_source.max_value": "Макс. значение:", "value_source.max_value.hint": "Максимальный выход цикла волны", "value_source.audio_source": "Аудиоисточник:", "value_source.audio_source.hint": "Аудиоисточник для считывания уровня звука (многоканальный или моно)", "value_source.mode": "Режим:", "value_source.mode.hint": "RMS измеряет среднюю громкость. Пик отслеживает самые громкие моменты. Бит реагирует на ритм.", "value_source.mode.rms": "RMS (Громкость)", "value_source.mode.peak": "Пик", "value_source.mode.beat": "Бит", "value_source.auto_gain": "Авто-усиление:", "value_source.auto_gain.hint": "Автоматически нормализует уровни звука, чтобы выходное значение использовало полный диапазон независимо от громкости входного сигнала", "value_source.auto_gain.enable": "Включить авто-усиление", "value_source.sensitivity": "Чувствительность:", "value_source.sensitivity.hint": "Множитель усиления аудиосигнала (выше = более реактивный)", "value_source.smoothing": "Сглаживание:", "value_source.smoothing.hint": "Временное сглаживание (0 = мгновенный отклик, 1 = очень плавный/медленный)", "value_source.audio_min_value": "Мин. значение:", "value_source.audio_min_value.hint": "Выход при тишине (напр. 0.3 = минимум 30% яркости)", "value_source.audio_max_value": "Макс. значение:", "value_source.audio_max_value.hint": "Выход при максимальном уровне звука", "value_source.schedule": "Расписание:", "value_source.schedule.hint": "Определите минимум 2 временные точки. Яркость линейно интерполируется между ними, с переходом через полночь.", "value_source.schedule.add": "+ Добавить точку", "value_source.schedule.points": "точек", "value_source.picture_source": "Источник изображения:", "value_source.picture_source.hint": "Источник изображения, кадры которого будут анализироваться на среднюю яркость.", "value_source.scene_behavior": "Поведение:", "value_source.scene_behavior.hint": "Дополнение: тёмная сцена = высокая яркость (для фоновой подсветки). Совпадение: яркая сцена = высокая яркость.", "value_source.scene_behavior.complement": "Дополнение (тёмный → ярко)", "value_source.scene_behavior.match": "Совпадение (яркий → ярко)", "value_source.adaptive_min_value": "Мин. значение:", "value_source.adaptive_min_value.hint": "Минимальная выходная яркость", "value_source.adaptive_max_value": "Макс. значение:", "value_source.adaptive_max_value.hint": "Максимальная выходная яркость", "value_source.error.schedule_min": "Расписание требует минимум 2 временные точки", "value_source.description": "Описание (необязательно):", "value_source.description.placeholder": "Опишите этот источник значений...", "value_source.description.hint": "Необязательные заметки об этом источнике значений", "value_source.created": "Источник значений создан", "value_source.updated": "Источник значений обновлён", "value_source.deleted": "Источник значений удалён", "value_source.delete.confirm": "Удалить этот источник значений?", "value_source.error.name_required": "Введите название", "value_source.test": "Тест", "value_source.test.title": "Тест источника значений", "value_source.test.connecting": "Подключение...", "value_source.test.error": "Не удалось подключиться", "value_source.test.current": "Текущее", "value_source.test.min": "Мин", "value_source.test.max": "Макс", "test.frames": "Кадры", "test.fps": "Кадр/с", "test.avg_capture": "Сред", "targets.brightness_vs": "Источник яркости:", "targets.brightness_vs.hint": "Необязательный источник значений для динамического управления яркостью каждый кадр (переопределяет яркость устройства)", "targets.brightness_vs.none": "Нет (яркость устройства)", "targets.min_brightness_threshold": "Мин. порог яркости:", "targets.min_brightness_threshold.hint": "Если итоговая яркость (яркость пикселей × яркость устройства/источника) ниже этого значения, светодиоды полностью выключаются (0 = отключено)", "targets.adaptive_fps": "Адаптивный FPS:", "targets.adaptive_fps.hint": "Автоматически снижает частоту отправки, когда устройство перестаёт отвечать, и постепенно восстанавливает её при стабилизации. Рекомендуется для WiFi-устройств со слабым сигналом.", "targets.protocol": "Протокол:", "targets.protocol.hint": "DDP отправляет пиксели по быстрому UDP (рекомендуется). HTTP использует JSON API — медленнее, но надёжнее, ограничение ~500 LED.", "targets.protocol.serial": "Serial", "search.open": "Поиск (Ctrl+K)", "search.placeholder": "Поиск... (Ctrl+K)", "search.loading": "Загрузка...", "search.no_results": "Ничего не найдено", "search.group.devices": "Устройства", "search.group.targets": "LED-цели", "search.group.kc_targets": "Цели Key Colors", "search.group.css": "Источники цветных лент", "search.group.profiles": "Профили", "search.group.streams": "Потоки изображений", "search.group.capture_templates": "Шаблоны захвата", "search.group.pp_templates": "Шаблоны постобработки", "search.group.pattern_templates": "Шаблоны паттернов", "search.group.audio": "Аудиоисточники", "search.group.value": "Источники значений", "settings.backup.label": "Резервное копирование", "settings.backup.hint": "Скачать всю конфигурацию (устройства, цели, потоки, шаблоны, профили) в виде одного JSON-файла.", "settings.backup.button": "Скачать резервную копию", "settings.backup.success": "Резервная копия скачана", "settings.backup.error": "Ошибка скачивания резервной копии", "settings.restore.label": "Восстановление конфигурации", "settings.restore.hint": "Загрузите ранее сохранённый файл резервной копии для замены всей конфигурации. Сервер перезапустится автоматически.", "settings.restore.button": "Восстановить из копии", "settings.restore.confirm": "Это заменит ВСЮ конфигурацию и перезапустит сервер. Вы уверены?", "settings.restore.success": "Конфигурация восстановлена", "settings.restore.error": "Ошибка восстановления", "settings.restore.restarting": "Сервер перезапускается...", "settings.restore.restart_timeout": "Сервер не отвечает. Обновите страницу вручную.", "settings.button.close": "Закрыть", "settings.auto_backup.label": "Авто-бэкап", "settings.auto_backup.hint": "Автоматическое создание периодических резервных копий конфигурации. Старые копии удаляются при превышении максимального количества.", "settings.auto_backup.enable": "Включить авто-бэкап", "settings.auto_backup.interval_label": "Интервал", "settings.auto_backup.max_label": "Макс. копий", "settings.auto_backup.save": "Сохранить настройки", "settings.auto_backup.saved": "Настройки авто-бэкапа сохранены", "settings.auto_backup.save_error": "Не удалось сохранить настройки авто-бэкапа", "settings.auto_backup.last_backup": "Последний бэкап", "settings.auto_backup.never": "Никогда", "settings.saved_backups.label": "Сохранённые копии", "settings.saved_backups.hint": "Файлы авто-бэкапа на сервере. Скачайте для локального хранения или удалите для освобождения места.", "settings.saved_backups.empty": "Нет сохранённых копий", "settings.saved_backups.restore": "Восстановить", "settings.saved_backups.download": "Скачать", "settings.saved_backups.delete": "Удалить", "settings.saved_backups.delete_confirm": "Удалить эту резервную копию?", "settings.saved_backups.delete_error": "Не удалось удалить копию" }