{
  "pageTitle": "VDO.Ninja Панель управления OBS",
  "mainHeading": "VDO.Ninja Управление OBS",
  "languageSwitcher": {
    "label": "Язык:"
  },
  "collapsible": {
    "clickToExpand": "Нажмите для раскрытия",
    "clickToCollapse": "Нажмите для сворачивания"
  },
  "customCss": {
    "title": "Пользовательский CSS",
    "label": "Введите свой пользовательский CSS здесь:",
    "description": "Этот CSS будет применен к источникам."
  },
  "obsConnection": {
    "title": "Подключение WebSocket OBS",
    "websocketUrlLabel": "URL WebSocket:",
    "passwordLabel": "Пароль:",
    "cameraPrefixLabel": "Общий префикс камеры:",
    "reactionPrefixLabel": "Префикс реакции: VDO.",
    "highlightPrefixLabel": "Префикс выделения: VDO.",
    "reactionPrefixDynamicLabel": "Префикс реакции: {{prefix}}{{separator}}{{subPrefix}}",
    "highlightPrefixDynamicLabel": "Префикс выделения: {{prefix}}{{separator}}{{subPrefix}}",
    "connectButton": "Подключить",
    "disconnectButton": "Отключить",
    "statusDisconnected": "Статус: Отключено",
    "statusConnected": "Статус: Подключено",
    "statusConnecting": "Статус: Подключение...",
    "statusError": "Статус: Ошибка",
    "statusErrorUrlMissing": "Статус: Ошибка - URL отсутствует",
    "statusErrorTimeout": "Статус: Ошибка - Тайм-аут подключения",
    "statusErrorCameraPrefixMissing": "Статус: Ошибка - Префикс камеры отсутствует"
  },
  "vdoNinjaSettings": {
    "title": "Настройки VDO.Ninja",
    "baseUrlLabel": "Базовый URL VDO.Ninja:",
    "baseUrlPlaceholder": "https://vdo.ninja",
    "roomNameLabel": "Название комнаты:",
    "roomNamePlaceholder": "напр., МояКомнатаNinja",
    "passwordLabel": "Пароль:",
    "passwordPlaceholder": "Комната или &password",
    "streamIdsLabel": "ID потоков:",
    "streamIdsPlaceholder": "streamId1,streamId2",
    "roomOrStreamIdsNeeded": "Требуется название комнаты или ID потока",
    "connectButton": "Подключить",
    "disconnectButton": "Отключить",
    "cancelButton": "Отмена",
    "statusDisconnected": "Статус: Отключено",
    "statusConnected": "Статус: Подключено",
    "statusConnecting": "Статус: Подключение...",
    "statusConnectionFailed": "Статус: Сбой подключения",
    "statusConnectionLost": "Статус: Соединение потеряно"
  },
  "streamIdMappings": {
    "title": "Сопоставления ID потоков",
    "addNewMappingButton": "Добавить новое сопоставление",
    "ruleTitle": "Правило сопоставления потока",
    "streamIdPlaceholder": "ID потока",
    "streamIdTooltip": "ID потока VDO.Ninja",
    "labelPlaceholder": "Метка (необязательно)",
    "labelTooltip": "Метка потока VDO.Ninja",
    "matchTypeTooltip": "Как сопоставить поток",
    "matchType": {
        "idOnly": "Только ID",
        "labelOnly": "Только метка",
        "bothRequired": "Оба обязательны",
        "eitherMatch": "Любое совпадение"
    },
    "targetSceneTooltip": "Целевая сцена OBS",
    "selectSceneOption": "Выберите сцену...",
    "removeRuleTooltip": "Удалить это правило сопоставления",
    "cloneToMainSceneLabel": "Клонировать в основную сцену",
    "switchToSceneOnAddLabel": "Переключиться на сцену при добавлении",
    "ruleDescription": "Определите, как входящие потоки направляются в сцены OBS."
  },
  "obsTargetSettings": {
    "title": "Настройки цели OBS",
    "sourceCreationScenesLabel": "Сцены для создания источников:",
    "sourceCreationScenesDesc": "Выберите одну или несколько сцен. Первая будет основной, остальные для копирования.",
    "loadingScenes": "Загрузка сцен...",
    "noScenesFound": "Сцены не найдены",
    "refetchScenesButton": "Перезагрузить сцены",
    "screenShareSettings": {
        "title": "Настройки демонстрации экрана:",
        "widthLabel": "Ширина:",
        "heightLabel": "Высота:",
        "resolutionNote": "Это разрешение будет использоваться для источников демонстрации экрана в сценах с макетом 'Реакция'."
    },
    "autoAddSourcesLabel": "Автоматически добавлять новые потоки как источники",
    "autoRemoveSourcesLabel": "Автоматически удалять источники при отключении",
    "newSourceSizing": {
        "label": "Размер источника по умолчанию:",
        "defaultSizeOption": "По умолчанию (1920x1080 в 0,0)",
        "bestFitOption": "Наилучшее вписывание (Сохранить пропорции)",
        "stretchToFillOption": "Растянуть для заполнения экрана",
        "overrideNote": "Конкретные макеты, определенные в разделе \"Макеты\", переопределят их для этих сцен."
    },
    "codec": {
        "label": "Кодек:",
        "noneOption": "нет",
        "learnMoreTitle": "Узнать больше о параметрах кодека"
    }
  },
  "sceneLayouts": {
    "title": "Макеты сцен",
    "addNewLayoutButton": "Добавить новый макет",
    "description": "Определите автоматические макеты для конкретных сцен OBS. Они переопределят размер источника по умолчанию для настроенных сцен.",
    "sceneLabel": "Сцена:",
    "selectSceneOption": "Выберите сцену...",
    "layoutLabel": "Макет:",
    "selectLayoutOption": "Выберите макет...",
    "layoutTypes": {
        "grid": "Сетка",
        "reaction": "Реакция",
        "highlight": "Выделение"
    },
    "noActiveLayouts": "Нет активных макетов",
    "removeLayoutTooltip": "Удалить эту конфигурацию макета",
    "sceneAlreadyConfiguredTooltip": "(Уже используется)",
    "sceneAlreadyConfiguredAlert": "Сцена '{{sceneName}}' уже используется другой конфигурацией макета.",
    "controls": {
        "margin": "Поля",
        "spacing": "Интервал",
        "offsetX": "Смещение X",
        "offsetY": "Смещение Y",
        "gridSplitScreenTwoCameras": "Разделенный экран для 2 камер (Сетка)",
        "distributeCameras": "Распределить камеры (Реакция/Выделение)"
    }
  },
  "activeStreams": {
    "title": "Активные потоки",
    "noActiveStreams": "Нет активных потоков",
    "streamIdLabel": "ID: {{id}}",
    "labelLabel": "Метка: {{label}}",
    "targetSceneLabelText": "Целевая сцена: {{sceneName}}",
    "notSet": "Не задано",
    "defaultSceneTag": "по умолчанию",
    "mappedSceneTag": "сопоставлено",
    "addedToObs": "✓ Добавлено в OBS",
    "notInObs": "✗ Нет в OBS",
    "buttons": {
        "addToObs": "Добавить в OBS",
        "removeFromObs": "Удалить из OBS",
        "highlight": "Выделить",
        "unhighlight": "Снять выделение",
        "screenShare": "Демонстрация экрана",
        "stopScreenShare": "Остановить демонстрацию экрана"
    }
  },
  "log": {
    "title": "Журнал"
  },
  "vdoNinja": {
    "defaultStreamLabel": "Поток {{id}}"
  },
  "logMessages": {
    "settingsSaved": "Настройки сохранены.",
    "settingsLoaded": "Настройки загружены из localStorage.",
    "customCssChangedWillApplyToSource": "Пользовательский CSS изменен. Он будет применен непосредственно к настройкам источника OBS при следующем создании/обновлении.",
    "errorLoadingSettings": "Ошибка загрузки настроек из localStorage: {{message}}. Использование значений по умолчанию.",
    "noSavedSettings": "Сохраненные настройки не найдены. Использование значений по умолчанию.",
    "appInitialized": "VDO.Ninja OBS Control Dock инициализирован. Добро пожаловать!",
    "jsShaLoaded": "Библиотека jsSHA успешно загружена (резервный вариант для Web Crypto).",
    "errorLoadingJsSha": "Ошибка: Не удалось загрузить библиотеку jsSHA. Аутентификация OBS может не работать, если Web Crypto также недоступен.",
    "loadedStreamMappings": "Загружено {{count}} сопоставлений потоков.",
    "errorLoadingStreamMappings": "Ошибка загрузки сопоставлений потоков из localStorage: {{message}}",
    "warningStreamMappingElementsNotFound": "Предупреждение: Не удалось найти все ожидаемые элементы в div UI сопоставления потока.",
    "loadedLayoutConfigs": "Загружено {{count}} конфигураций макетов сцен.",
    "errorLoadingLayoutConfigs": "Ошибка загрузки конфигураций макетов сцен: {{message}}",
    "savedLayoutConfigs": "Сохранено {{count}} конфигураций макетов сцен.",
    "errorSavingLayoutsDuplicateScene": "Ошибка сохранения макетов: Сцена '{{sceneName}}' настроена несколько раз. Убедитесь, что каждая сцена имеет только один макет.",
    "layoutSceneNotFound": "Сохраненная сцена '{{sceneName}}' для макета не найдена в текущих сценах OBS.",
    "errorHidingSource": "Ошибка скрытия элемента источника {{sourceName}} в {{sceneName}}: {{message}}",
    "sceneAlreadyConfiguredError": "Сцена '{{sceneName}}' уже настроена для другого макета. Возврат выбора.",
    "vdoNinja": {
        "disconnected": "Отключено от VDO.Ninja.",
        "alreadyConnected": "Уже подключено к VDO.Ninja.",
        "errorRoomOrStreamIdNeeded": "Ошибка VDO.Ninja: Должно быть указано название комнаты или ID потока.",
        "connectionTimeout": "Тайм-аут подключения VDO.Ninja. Нет активности от iframe.",
        "roomOrStreamIdNeededForConnect": "VDO.Ninja: Должно быть указано название комнаты или конкретные ID потоков для подключения.",
        "streamIdsEmptyAfterTrim": "VDO.Ninja: ID потоков предоставлены, но были пустыми после обрезки.",
        "initializingIframe": "Инициализация iframe VDO.Ninja с URL: {{url}}",
        "invalidBaseUrl": "Недействительный базовый URL VDO.Ninja в настройках: {{url}}",
        "iframeConnectedActive": "Соединение iframe VDO.Ninja установлено и активно.",
        "streamConnectedActive": "Поток VDO.Ninja подключен/активен: \"{{label}}\" (ID: {{id}})",
        "autoAddingStream": "Автоматическое добавление потока {{id}} в OBS.",
        "streamDisconnectedInactive": "Поток VDO.Ninja отключен/неактивен: \"{{label}}\" (ID: {{id}})",
        "autoRemovingStream": "Автоматическое удаление потока {{id}} из OBS.",
        "streamLabelUpdated": "Метка потока VDO.Ninja обновлена для ID {{id}}: \"{{newLabel}}\" (была \"{{oldLabel}}\")",
        "connectionLostResetting": "Соединение VDO.Ninja потеряно (нет активности от iframe). Попытка сброса."
    },
    "obs": {
        "disconnecting": "Отключение от OBS WebSocket...",
        "errorCameraPrefixRequired": "Ошибка: Общий префикс камеры требуется для подключения OBS.",
        "errorUrlRequired": "Ошибка: URL OBS WebSocket требуется.",
        "attemptingConnection": "Попытка подключения к OBS WebSocket по адресу {{url}}...",
        "connectionTimeout": "Тайм-аут попытки подключения OBS WebSocket.",
        "connectionOpenedWaitingHello": "Соединение OBS WebSocket открыто. Ожидание Server Hello...",
        "receivedHelloSendingIdentify": "Получен Hello от OBS. Отправка Identify...",
        "authDataPrepared": "Данные аутентификации подготовлены для сообщения Identify.",
        "warningAuthRequiredNoPassword": "Предупреждение: Сервер OBS требует аутентификацию, но пароль не предоставлен.",
        "authSuccessConnected": "Аутентификация OBS WebSocket успешна! Соединение установлено.",
        "requestError": "Ошибка запроса OBS (Тип: {{type}}, ID: {{id}}): {{error}} (Код: {{code}})",
        "eventSceneListChanged": "Событие OBS: Список сцен изменен. Перезагрузка сцен.",
        "errorProcessingMessage": "Ошибка обработки сообщения OBS WebSocket: {{message}}. Данные: {{data}}",
        "webSocketError": "Ошибка OBS WebSocket: {{error}}",
        "authFailedReason": "Ошибка аутентификации - неверный пароль или требуется аутентификация, но не предоставлена.",
        "connectionClosedReasonCode": "Код: {{code}}{{wasClean}}",
        "uncleanDisconnection": " (Некорректное отключение)",
        "connectionClosed": "Соединение OBS WebSocket закрыто. Причина: {{reason}}",
        "errorCreatingConnection": "Ошибка создания соединения OBS WebSocket: {{message}}",
        "authGenerationError": "Ошибка генерации аутентификации OBS: {{message}}",
        "cannotSendRequestNotConnected": "Невозможно отправить запрос '{{requestType}}': Не подключено к OBS.",
        "errorSendingRequest": "Ошибка отправки запроса OBS '{{requestType}}': {{message}}",
        "requestTimeout": "Тайм-аут запроса OBS '{{requestType}}' (ID: {{id}}).",
        "connectionEstablishedFetchingData": "Соединение OBS полностью установлено. Получение начальных данных...",
        "errorPostConnectionSetup": "Ошибка во время настройки после подключения OBS (получение сцен): {{message}}",
        "connectionClosedOrLost": "Соединение OBS было закрыто или потеряно.",
        "cannotFetchScenesNotConnected": "Невозможно получить сцены OBS: Не подключено к OBS.",
        "fetchingScenes": "Получение сцен OBS...",
        "fetchedScenesCount": "Получено {{count}} сцен из OBS.",
        "failedToFetchScenes": "Не удалось получить сцены OBS или сцены не возвращены.",
        "errorFetchingScenes": "Ошибка получения сцен OBS: {{message}}",
        "cannotHighlightNotConnected": "Невозможно выделить: Не подключено к OBS.",
        "highlightLayoutActiveManualLegacy": "Сцена '{{sceneName}}' использует новый макет выделения. Ручная кнопка выделения может иметь ограниченный эффект или быть заменена.",
        "stoppingScreenShareForHighlight": "Демонстрация экрана активна ({{id}}). Остановка перед выделением.",
        "cannotScreenShareNotConnected": "Невозможно начать демонстрацию экрана: Не подключено к OBS.",
        "unhighlightingForScreenShare": "Камера выделена ({{id}}). Снятие выделения перед началом демонстрации экрана.",
        "cannotAddScreenShareNotConnected": "Невозможно добавить демонстрацию экрана: Не подключено к OBS.",
        "cannotAddScreenShareNoRoom": "Невозможно добавить демонстрацию экрана: Требуется название комнаты VDO.Ninja для URL демонстрации экрана.",
        "cannotAddScreenShareNoReactionLayoutScene": "Невозможно добавить демонстрацию экрана: Нет сцен, настроенных с макетом 'Реакция'.",
        "addingUpdatingScreenShareToReactionScenes": "Добавление/Обновление источника демонстрации экрана '{{sourceName}}' (URL: {{url}}) в сцены Реакция. Основное создание в '{{primaryScene}}'. ({{count}} сцен всего)",
        "reconfiguringExistingScreenShare": "Переконфигурация существующего источника демонстрации экрана '{{oldName}}' на '{{newName}}'.",
        "reconfiguredRenamedScreenShare": "Переконфигурирован и переименован существующий источник демонстрации экрана в '{{sourceName}}'.",
        "screenShareExistsUpdating": "Источник демонстрации экрана '{{sourceName}}' уже существует. Обновление настроек.",
        "creatingNewScreenShareInScene": "Создание нового источника демонстрации экрана '{{sourceName}}' в сцене '{{sceneName}}'.",
        "ensuredTransformedScreenShareReaction": "Обеспечен и преобразован источник демонстрации экрана '{{sourceName}}' в сцене Реакция '{{sceneName}}'.",
        "sourceFoundInSceneEnabled": "Источник '{{sourceName}}' найден в сцене '{{sceneName}}', ID элемента: {{itemId}}. Убеждаемся, что он включен.",
        "sourceAddedToScene": "Источник '{{sourceName}}' добавлен в сцену '{{sceneName}}', ID элемента: {{itemId}}.",
        "errorCreatingSceneItem": "Ошибка создания элемента сцены для '{{sourceName}}' в '{{sceneName}}': {{message}}",
        "errorCheckingSceneForItem": "Ошибка проверки '{{sourceName}}' в сцене '{{sceneName}}': {{message}}",
        "errorApplyingInitialTransform": "Ошибка применения начального преобразования по умолчанию к '{{sourceName}}' в '{{sceneName}}': {{message}}",
        "successConfigScreenShare": "Демонстрация экрана успешно настроена для потока {{streamId}} ({{label}}).",
        "errorAddingUpdatingScreenShare": "Ошибка добавления/обновления источника демонстрации экрана '{{sourceName}}': {{message}}.",
        "cannotToggleHighlightNotConnected": "Невозможно переключить выделение: Не подключено к OBS.",
        "streamUnhighlighted": "Выделение потока {{id}} снято (переименовано с {{oldName}} на {{newName}}).",
        "streamSuccessfullyUnhighlighted": "Выделение потока {{id}} успешно снято (переименовано в {{newName}}).",
        "streamSuccessfullyHighlighted": "Поток {{id}} успешно выделен (переименован в {{newName}}).",
        "unhighlightError": "Не удалось снять выделение (переименовать) {{sourceName}}, возможно не существует или другая ошибка: {{message}}",
        "highlightError": "Не удалось выделить (переименовать) {{sourceName}}, возможно не существует или другая ошибка: {{message}}",
        "legacyHighlightUnhighlightOnRemove": "Поток {{id}} был выделен старым способом. Снятие выделения.",
        "cannotAddStreamNotConnected": "Невозможно добавить поток \"{{label}}\" ({{id}}) в OBS: Не подключено к OBS.",
        "cannotAddStreamNoTargetSceneName": "Невозможно добавить поток \"{{label}}\" ({{id}}): Требуется имя целевой сцены OBS, но не задано (нет по умолчанию и нет сопоставления).",
        "foundExistingStandardSource": "Найден существующий стандартный источник '{{sourceName}}' для потока {{streamId}}.",
        "foundExistingHighlightForConnectingStream": "Найден существующий источник OBS '{{sourceName}}', который соответствует именованию выделения для подключающегося потока {{streamId}}. Обновление внутреннего состояния выделения.",
        "foundExistingHighlightedSource": "Найден существующий выделенный источник '{{sourceName}}' для потока {{streamId}}.",
        "noExistingSourceFoundWillCreate": "Ни стандартный ('{{baseSourceName}}'), ни выделенный ('{{highlightedSourceName}}') источник не найден для потока {{streamId}}. Будет создан новый.",
        "noExistingStandardSourceSamePrefix": "Стандартный источник '{{sourceName}}' не найден для потока {{streamId}} (префикс выделения такой же). Будет создан новый.",
        "errorGettingCanvasSize": "Ошибка получения размера холста OBS: {{message}}. Использование по умолчанию {{width}}x{{height}}.",
        "sourceNotGlobalCreating": "Источник '{{sourceName}}' не существует глобально. Создание в сцене '{{sceneName}}'.",
        "sourceCreatedAddedToScene": "Источник '{{sourceName}}' создан и добавлен в сцену '{{sceneName}}'.",
        "sourceGlobalUpdatingWithUrl": "Источник '{{sourceName}}' уже существует глобально. Обновление настроек. URL: {{url}}",
        "sourceFoundAsItemInScene": "Источник '{{sourceName}}' найден как элемент в сцене '{{sceneName}}'.",
        "sourceNotInSceneAdding": "Источник '{{sourceName}}' не в сцене '{{sceneName}}'. Добавление.",
        "cloningToMainScene": "Клонирование источника '{{sourceName}}' в основную сцену (из флажков) '{{sceneName}}' из-за правила сопоставления.",
        "addingSourceToOtherScene": "Добавление источника '{{sourceName}}' как элемента в другую выбранную сцену '{{sceneName}}'.",
        "switchingProgramScene": "Переключение текущей программной сцены OBS на '{{sceneName}}'.",
        "successfullyProcessedStream": "Поток успешно обработан \"{{label}}\" ({{id}}), эффективный источник OBS: '{{sourceName}}'.",
        "errorManagingStream": "Ошибка управления потоком '{{sourceName}}' (\"{{label}}\") в OBS: {{message}}",
        "applyTransformAndGridCalled": "applyTransformAndGrid вызван для {{sourceName}} в {{sceneName}}. Запуск полного обновления макета для сцены.",
        "triggeringLayoutUpdate": "Запуск обновления макета для сцены '{{sceneName}}'...",
        "gridFallbackSourceChanged": "Настройки сетки для '{{sourceGridScene}}' (основной резервный кандидат) изменены. Запуск обновления для сцены Реакция/Выделение '{{dependentScene}}'.",
        "noSceneItemsForLayout": "Элементы сцены не найдены в сцене '{{sceneName}}' для обновления макета.",
        "applyingConfiguredLayout": "Применение макета '{{layoutType}}' к сцене '{{sceneName}}'. ({{count}} элементов)",
        "unknownLayoutType": "Неизвестный тип макета '{{layoutType}}' для сцены '{{sceneName}}'. Применение размера по умолчанию.",
        "noSpecificLayoutApplyingDefault": "Нет конкретного макета для сцены '{{sceneName}}'. Применение размера источника по умолчанию ('{{sizing}}').",
    "errorTriggeringLayoutUpdate": "Ошибка во время обновления макета для сцены '{{sceneName}}': {{message}}",
    "applyingDefaultSizing": "Применение размера источника по умолчанию ('{{sizing}}') к {{count}} элементам в сцене '{{sceneName}}'.",
    "errorApplyingDefaultTransformItem": "Ошибка применения преобразования по умолчанию к {{sourceName}} в {{sceneName}}: {{message}}",
    "noSourcesForGridLayout": "Нет источников камер VDO.Ninja для применения макета Сетка в сцене '{{sceneName}}'.",
    "applyingGridLayoutScene": "Применение макета Сетка к {{count}} источникам камер VDO.Ninja в сцене '{{sceneName}}'.",
    "applyingGridSplitScreen": "Применение макета разделенного экрана для 2 камер к сцене '{{sceneName}}'.",
    "reactionMainNotFoundFallbackGrid": "Основной контент для макета Реакция в сцене '{{sceneName}}' не найден/не виден. Применение резервной сетки камер.",
    "highlightMainNotFoundFallbackGrid": "Основной контент для макета Выделение в сцене '{{sceneName}}' не найден/не виден. Применение резервной сетки камер.",
    "usingGridSceneFallbackSettings": "Использование настроек сетки из первой настроенной сцены макета 'Сетка' ('{{sceneName}}') как резервный вариант для '{{targetScene}}'.",
    "usingDefaultGridFallbackSettings": "Сцена макета 'Сетка' не найдена. Использование настроек сетки по умолчанию как резервный вариант для '{{targetScene}}'.",
    "applyingFallbackGridToCameras": "Применение резервного макета Сетка к {{count}} источникам камер в сцене '{{sceneName}}'.",
    "noCamerasForFallbackGridHidingAll": "Нет элементов камер для отображения в резервной сетке для сцены '{{sceneName}}'. Все источники VDO в этой сцене будут скрыты.",
    "cannotRemoveStreamNotConnected": "Невозможно удалить поток {{id}} из OBS: Не подключено к OBS.",
    "triggeredRemoval": "Удаление потока '{{id}}' из OBS инициировано пользователем или автоматически. Базовый источник: '{{baseName}}'.",
    "streamScreenSharingRemoving": "Поток {{id}} активно демонстрировал экран. Начало удаления демонстрации экрана.",
    "finishedRemovingSourceItems": "Завершено удаление элементов источника для потока {{id}} из указанных сцен OBS.",
    "cannotRemoveScreenShareNotConnected": "Невозможно удалить демонстрацию экрана: Не подключено к OBS.",
    "attemptingRemoveScreenShareSource": "Попытка полного удаления источника демонстрации экрана '{{sourceName}}' из OBS (все сцены и входы).",
    "removingGlobalInput": "Удаление глобального входа '{{sourceName}}' из OBS.",
    "successfullyRemovedInput": "Вход '{{sourceName}}' успешно удален.",
    "errorScreenShareRemovalProcess": "Ошибка во время процесса удаления демонстрации экрана для '{{sourceName}}': {{message}}",
    "removingSourceItemFromScene": "Удаление элемента источника '{{sourceName}}' (ID: {{itemId}}) из сцены '{{sceneName}}'.",
    "errorTryingRemoveSourceItem": "Ошибка при попытке удалить элемент источника '{{sourceName}}' из сцены '{{sceneName}}': {{message}}",
    "codecChangedUpdatingSources": "Кодек изменен на: {{codec}}. Обновление источников OBS...",
    "codecChangedNotConnected": "OBS не подключен. Источники не будут обновлены с новым кодеком до переподключения и нового действия.",
    "sourceUpdatedWithUrlAndCss": "Источник '{{sourceName}}' обновлен с URL: {{url}} и пользовательским CSS.",
    "screenShareSourceUpdatedWithUrlAndCss": "Источник демонстрации экрана '{{sourceName}}' обновлен с URL: {{url}} и пользовательским CSS.",
    "codecUpdateComplete": "Обновление кодека для источников OBS завершено.",
    "codecCssUpdateComplete": "Обновление кодека/CSS для источников OBS завершено.",
    "inputNameChanged": "Событие OBS: Имя входа изменено с '{{oldName}}' на '{{newName}}'. Проверка соответствующих сцен для обновлений макета.",
    "foundPreExistingHighlight": "Найден предварительно существующий выделенный источник в OBS: '{{sourceName}}'. Установка активного выделения на ID потока: {{streamId}}.",
    "errorCheckingMainContentEnabled": "Ошибка проверки включен ли основной контент {{sourceName}}: {{message}}"
    }
  }
}