diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 82c9b5b9..5a902d71 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -200,7 +200,7 @@ jobs:
QT_VERSION: 5.10.1
CMAKE_GENERATOR: "Visual Studio 16 2019"
CMAKE_SYSTEM_VERSION: "10.0.18363.657"
- WINDOWS_DEPS_VERSION: '2017'
+ WINDOWS_DEPS_VERSION: '2019'
steps:
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 95643471..b1e1d8ec 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,6 @@ set(advanced-scene-switcher_HEADERS
${advanced-scene-switcher_HEADERS}
src/headers/advanced-scene-switcher.hpp
src/headers/switcher-data-structs.hpp
- src/headers/utility.hpp
src/headers/scene-group.hpp
src/headers/scene-trigger.hpp
src/headers/switch-audio.hpp
@@ -82,32 +81,44 @@ set(advanced-scene-switcher_HEADERS
src/headers/switch-generic.hpp
src/headers/macro-action-edit.hpp
src/headers/macro-action-audio.hpp
+ src/headers/macro-action-filter.hpp
+ src/headers/macro-action-macro.hpp
+ src/headers/macro-action-media.hpp
+ src/headers/macro-action-plugin-state.hpp
src/headers/macro-action-recording.hpp
src/headers/macro-action-replay-buffer.hpp
src/headers/macro-action-run.hpp
+ src/headers/macro-action-scene-switch.hpp
+ src/headers/macro-action-scene-visibility.hpp
+ src/headers/macro-action-source.hpp
src/headers/macro-action-streaming.hpp
- src/headers/macro-action-switch-scene.hpp
src/headers/macro-action-wait.hpp
src/headers/macro-condition-edit.hpp
src/headers/macro-condition-audio.hpp
+ src/headers/macro-condition-counter.hpp
src/headers/macro-condition-file.hpp
src/headers/macro-condition-idle.hpp
+ src/headers/macro-condition-interval.hpp
src/headers/macro-condition-media.hpp
src/headers/macro-condition-plugin-state.hpp
src/headers/macro-condition-process.hpp
src/headers/macro-condition-recording.hpp
src/headers/macro-condition-region.hpp
src/headers/macro-condition-scene.hpp
+ src/headers/macro-condition-source.hpp
src/headers/macro-condition-streaming.hpp
src/headers/macro-condition-video.hpp
src/headers/macro-condition-virt-desktop.hpp
src/headers/macro-condition-window.hpp
src/headers/macro.hpp
+ src/headers/macro-selection.hpp
src/headers/curl-helper.hpp
src/headers/screenshot-helper.hpp
src/headers/name-dialog.hpp
src/headers/duration-control.hpp
src/headers/section.hpp
+ src/headers/platform-funcs.hpp
+ src/headers/utility.hpp
src/headers/volume-control.hpp
src/headers/version.h
)
@@ -139,33 +150,44 @@ set(advanced-scene-switcher_SOURCES
src/switch-generic.cpp
src/macro-action-edit.cpp
src/macro-action-audio.cpp
+ src/macro-action-filter.cpp
+ src/macro-action-macro.cpp
+ src/macro-action-media.cpp
+ src/macro-action-plugin-state.cpp
src/macro-action-recording.cpp
src/macro-action-replay-buffer.cpp
src/macro-action-run.cpp
+ src/macro-action-scene-switch.cpp
+ src/macro-action-scene-visibility.cpp
+ src/macro-action-source.cpp
src/macro-action-streaming.cpp
- src/macro-action-switch-scene.cpp
src/macro-action-wait.cpp
src/macro-condition-edit.cpp
src/macro-condition-audio.cpp
+ src/macro-condition-counter.cpp
src/macro-condition-file.cpp
src/macro-condition-idle.cpp
+ src/macro-condition-interval.cpp
src/macro-condition-media.cpp
src/macro-condition-plugin-state.cpp
src/macro-condition-process.cpp
src/macro-condition-recording.cpp
src/macro-condition-region.cpp
src/macro-condition-scene.cpp
+ src/macro-condition-source.cpp
src/macro-condition-streaming.cpp
src/macro-condition-video.cpp
src/macro-condition-virt-desktop.cpp
src/macro-condition-window.cpp
src/macro.cpp
+ src/macro-selection.cpp
src/macro-tab.cpp
src/curl-helper.cpp
src/screenshot-helper.cpp
src/name-dialog.cpp
src/duration-control.cpp
src/section.cpp
+ src/utility.cpp
src/volume-control.cpp
src/version.cpp
)
diff --git a/data/locale/de-DE.ini b/data/locale/de-DE.ini
index a04f9f70..e300f5dd 100644
--- a/data/locale/de-DE.ini
+++ b/data/locale/de-DE.ini
@@ -227,7 +227,9 @@ AdvSceneSwitcher.networkTab.Disabledwarning="Diese Funktionalität musste unter
AdvSceneSwitcher.networkTab.server="Server starten (Sendet Szenenwechselnachrichten zu allen verbundenen Clients)"
AdvSceneSwitcher.networkTab.server.port="Port"
AdvSceneSwitcher.networkTab.server.lockToIPv4="Nur IPv4 verwenden (deaktiviert IPv6)"
-AdvSceneSwitcher.networkTab.server.restrictSendToAutomatedSwitches="Sende nur Szenenwechselnachrichten für automatisierte Szenenwechsel"
+AdvSceneSwitcher.networkTab.server.sendSceneChange="Sende Nachrichten für Szenenwechsel"
+AdvSceneSwitcher.networkTab.server.restrictSendToAutomatedSwitches="Sende nur Szenenwechselnachrichten für automatisierte Szenenwechsel"
+AdvSceneSwitcher.networkTab.server.sendPreview="Sende Nachrichten für Vorschau Szenenwechsel im Studio-Modus"
AdvSceneSwitcher.networkTab.startFailed.message="Der WebSocket-Server konnte nicht gestartet werden, mögliche Gründe:\n - Der TCP-Port %1 wird möglicherweise gerade von einem anderen Programm verwendet. Versuchen Sie einen anderen Port in den Websocket-Servereinstellungen zu setzen oder alle Programme zu beenden, die den Port möglicherweise verwenden.\n - Fehler: %2"
AdvSceneSwitcher.networkTab.server.status.currentStatus="Aktueller Status"
AdvSceneSwitcher.networkTab.server.status.notRunning="Nicht gestartet"
diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini
index e0c898d0..78dd1c95 100644
--- a/data/locale/en-US.ini
+++ b/data/locale/en-US.ini
@@ -57,8 +57,8 @@ AdvSceneSwitcher.generalTab.priority.macro="Macro"
AdvSceneSwitcher.macroTab.title="Macro"
AdvSceneSwitcher.macroTab.macros="Macros"
AdvSceneSwitcher.macroTab.help="Macros allow you to execute a string of actions depending on multiple conditions.\n\nClick on the highlighted plus symbol to add a new Macro."
-AdvSceneSwitcher.macroTab.editConditionHelp="This section allows you to define Macro conditions.\n\nSelect an existing or add a new Macro on the left."
-AdvSceneSwitcher.macroTab.editActionHelp="This section allows you to define Macro actions.\n\nSelect an existing or add a new Macro on the left."
+AdvSceneSwitcher.macroTab.editConditionHelp="This section allows you to define Macro conditions.\n\nSelect an existing or add a new Macro on the left.\nThen click the plus button below to add a new condition."
+AdvSceneSwitcher.macroTab.editActionHelp="This section allows you to define Macro actions.\n\nSelect an existing or add a new Macro on the left.\nThen click the plus button below to add a new action."
AdvSceneSwitcher.macroTab.edit="Edit macro"
AdvSceneSwitcher.macroTab.edit.logic="Logic type:"
AdvSceneSwitcher.macroTab.edit.condition="Condition type:"
@@ -68,6 +68,7 @@ AdvSceneSwitcher.macroTab.name="Name:"
AdvSceneSwitcher.macroTab.defaultname="Macro %1"
AdvSceneSwitcher.macroTab.exists="Macro name exists already"
AdvSceneSwitcher.macroTab.copy="Create copy"
+
; Macro Logic
AdvSceneSwitcher.logic.none="Ignore entry"
AdvSceneSwitcher.logic.and="And"
@@ -76,17 +77,18 @@ AdvSceneSwitcher.logic.andNot="And not"
AdvSceneSwitcher.logic.orNot="Or not"
AdvSceneSwitcher.logic.rootNone="If"
AdvSceneSwitcher.logic.not="If not"
+
; Macro Conditions
AdvSceneSwitcher.condition.audio="Audio"
-AdvSceneSwitcher.ondition.audio.state.below="Below"
-AdvSceneSwitcher.ondition.audio.state.above="Above"
-AdvSceneSwitcher.condition.audio.entry="Volume of {{audioSources}} is {{condition}} {{volume}} for {{duration}} seconds"
+AdvSceneSwitcher.condition.audio.state.below="Below"
+AdvSceneSwitcher.condition.audio.state.above="Above"
+AdvSceneSwitcher.condition.audio.entry="Volume of {{audioSources}} is {{condition}} {{volume}}"
AdvSceneSwitcher.condition.region="Screen region"
AdvSceneSwitcher.condition.region.entry="Cursor is in {{minX}} {{minY}} x {{maxX}} {{maxY}}"
AdvSceneSwitcher.condition.scene="Scene"
AdvSceneSwitcher.condition.scene.type.current="Current"
AdvSceneSwitcher.condition.scene.type.previous="Previous"
-AdvSceneSwitcher.condition.scene.entry="{{sceneType}} scene is {{scenes}} for {{duration}}"
+AdvSceneSwitcher.condition.scene.entry="{{sceneType}} scene is {{scenes}}"
AdvSceneSwitcher.condition.window="Window"
AdvSceneSwitcher.condition.window.entry.line1="{{windows}} exist and ..."
AdvSceneSwitcher.condition.window.entry.line2="... is {{fullscreen}} fullscreen {{maximized}} maximized {{focused}} focused"
@@ -105,16 +107,16 @@ AdvSceneSwitcher.condition.video.condition.noImage="has no output"
AdvSceneSwitcher.condition.video.askFileAction="Do you want to use an existing file or create a screenshot of the currently selected source?"
AdvSceneSwitcher.condition.video.askFileAction.file="Use existing file"
AdvSceneSwitcher.condition.video.askFileAction.screenshot="Create screenshot"
-AdvSceneSwitcher.condition.video.entry="{{videoSources}} {{condition}} {{filePath}} {{browseButton}} for {{duration}}"
+AdvSceneSwitcher.condition.video.entry="{{videoSources}} {{condition}} {{filePath}} {{browseButton}}"
AdvSceneSwitcher.condition.stream="Streaming"
AdvSceneSwitcher.condition.stream.state.start="Stream running"
AdvSceneSwitcher.condition.stream.state.stop="Stream stopped"
-AdvSceneSwitcher.condition.stream.entry="{{streamState}} for {{duration}}"
+AdvSceneSwitcher.condition.stream.entry="{{streamState}}"
AdvSceneSwitcher.condition.record="Recording"
AdvSceneSwitcher.condition.record.state.start="Recording running"
AdvSceneSwitcher.condition.record.state.pause="Recording paused"
AdvSceneSwitcher.condition.record.state.stop="Recording stopped"
-AdvSceneSwitcher.condition.record.entry="{{recordState}} for {{duration}}"
+AdvSceneSwitcher.condition.record.entry="{{recordState}}"
AdvSceneSwitcher.condition.process="Process"
AdvSceneSwitcher.condition.process.entry="{{processes}} is running {{focused}} and is focused"
AdvSceneSwitcher.condition.idle="Idle"
@@ -126,6 +128,24 @@ AdvSceneSwitcher.condition.virtDesktop="Virtual desktop"
AdvSceneSwitcher.condition.virtDesktop.notAvailable="Not availbale"
AdvSceneSwitcher.condition.virtDesktop.entry.line1="Active virtual desktop is {{virtDesktops}}"
AdvSceneSwitcher.condition.virtDesktop.entry.line2="Current: {{currentDesktop}}"
+AdvSceneSwitcher.condition.interval="Interval"
+AdvSceneSwitcher.condition.interval.entry="{{duration}} have passed"
+AdvSceneSwitcher.condition.counter="Count"
+AdvSceneSwitcher.condition.counter.type.below="Less than"
+AdvSceneSwitcher.condition.counter.type.above="More than"
+AdvSceneSwitcher.condition.counter.type.equal="Exactly"
+AdvSceneSwitcher.condition.counter.reset="Reset"
+AdvSceneSwitcher.condition.counter.entry.line1="{{macros}} was executed {{conditions}} {{count}} times"
+AdvSceneSwitcher.condition.counter.entry.line2="Current count: {{currentCount}} {{resetCount}}"
+AdvSceneSwitcher.condition.source="Source"
+AdvSceneSwitcher.condition.source.type.active="Is active"
+AdvSceneSwitcher.condition.source.type.showing="Is showing"
+AdvSceneSwitcher.condition.source.type.settings="Settings match"
+AdvSceneSwitcher.condition.source.regex="Use regular expressions"
+AdvSceneSwitcher.condition.source.getSettings="Get current settings"
+AdvSceneSwitcher.condition.source.entry.line1="{{sources}} {{conditions}}"
+AdvSceneSwitcher.condition.source.entry.line2="{{settings}}"
+AdvSceneSwitcher.condition.source.entry.line3="{{regex}} {{getSettings}}"
; Macro Actions
AdvSceneSwitcher.action.switchScene="Switch scene"
@@ -159,7 +179,37 @@ AdvSceneSwitcher.action.streaming.type.start="Start streaming"
AdvSceneSwitcher.action.streaming.entry="{{actions}}"
AdvSceneSwitcher.action.run="Run"
AdvSceneSwitcher.action.run.entry="Run {{filePath}} {{browseButton}}"
-
+AdvSceneSwitcher.action.sceneVisibility="Scene item visibility"
+AdvSceneSwitcher.action.sceneVisibility.type.show="Show"
+AdvSceneSwitcher.action.sceneVisibility.type.hide="Hide"
+AdvSceneSwitcher.action.sceneVisibility.entry="On {{scenes}} {{actions}} {{sources}}"
+AdvSceneSwitcher.action.filter="Filter"
+AdvSceneSwitcher.action.filter.type.enable="Enable"
+AdvSceneSwitcher.action.filter.type.disable="Disable"
+AdvSceneSwitcher.action.filter.entry="On {{sources}} {{actions}} {{filters}}"
+AdvSceneSwitcher.action.source="Source"
+AdvSceneSwitcher.action.source.type.enable="Enable"
+AdvSceneSwitcher.action.source.type.disable="Disable"
+AdvSceneSwitcher.action.source.type.settings="Set settings"
+AdvSceneSwitcher.action.source.entry="{{actions}} {{sources}}"
+AdvSceneSwitcher.action.source.warning="Warning: Enabling and disabling sources globally cannot be controlled by the OBS UI"
+AdvSceneSwitcher.action.source.getSettings="Get current settings"
+AdvSceneSwitcher.action.media="Media"
+AdvSceneSwitcher.action.media.type.play="Play"
+AdvSceneSwitcher.action.media.type.pause="Pause"
+AdvSceneSwitcher.action.media.type.stop="Stop"
+AdvSceneSwitcher.action.media.type.restart="Restart"
+AdvSceneSwitcher.action.media.type.next="Next"
+AdvSceneSwitcher.action.media.type.previous="Previous"
+AdvSceneSwitcher.action.media.entry="{{actions}} {{mediaSources}}"
+AdvSceneSwitcher.action.macro="Macro"
+AdvSceneSwitcher.action.macro.type.pause="Pause"
+AdvSceneSwitcher.action.macro.type.unpause="Unpause"
+AdvSceneSwitcher.action.macro.type.resetCounter="Reset counter"
+AdvSceneSwitcher.action.macro.entry="{{actions}} {{macros}}"
+AdvSceneSwitcher.action.pluginState="Plugin state"
+AdvSceneSwitcher.action.pluginState.type.stop="Stop the Advanced Scene Switcher plugin"
+AdvSceneSwitcher.action.pluginState.entry="{{actions}}"
; Transition Tab
AdvSceneSwitcher.transitionTab.title="Transition"
@@ -336,7 +386,9 @@ AdvSceneSwitcher.networkTab.DisabledWarning="This functionality unfortunately ha
AdvSceneSwitcher.networkTab.server="Start server (Sends scene switch messages to all connected clients)"
AdvSceneSwitcher.networkTab.server.port="Port"
AdvSceneSwitcher.networkTab.server.lockToIPv4="Lock server to only using IPv4"
+AdvSceneSwitcher.networkTab.server.sendSceneChange="Send messages for scene changes"
AdvSceneSwitcher.networkTab.server.restrictSendToAutomatedSwitches="Only send messages for automated scene switches"
+AdvSceneSwitcher.networkTab.server.sendPreview="Send messages for preview scene change when running in Studio mode"
AdvSceneSwitcher.networkTab.startFailed.message="The WebSockets server failed to start, maybe because:\n - TCP port %1 may currently be in use elsewhere on this system, possibly by another application. Try setting a different TCP port in the WebSocket server settings, or stop any application that could be using this port.\n - Error message: %2"
AdvSceneSwitcher.networkTab.server.status.currentStatus="Current status"
AdvSceneSwitcher.networkTab.server.status.notRunning="Not running"
@@ -398,6 +450,8 @@ AdvSceneSwitcher.sceneTriggerTab.help="This tab allows you to trigger actions on
AdvSceneSwitcher.hotkey.startSwitcherHotkey="Start the Advanced Scene Switcher"
AdvSceneSwitcher.hotkey.stopSwitcherHotkey="Stop the Advanced Scene Switcher"
AdvSceneSwitcher.hotkey.startStopToggleSwitcherHotkey="Toggle Start/Stop for the Advanced Scene Switcher"
+AdvSceneSwitcher.hotkey.macro.pause="Pause macro %1"
+AdvSceneSwitcher.hotkey.macro.unpause="Unpause macro %1"
AdvSceneSwitcher.askBackup="Detected a new version of the Advanced Scene Switcher.\nShould a backup of the old settings be created?"
@@ -409,10 +463,14 @@ AdvSceneSwitcher.selectPreviousScene="Previous Scene"
AdvSceneSwitcher.currentTransition="Current Transition"
AdvSceneSwitcher.selectTransition="--select transition--"
AdvSceneSwitcher.selectWindow="--select window--"
+AdvSceneSwitcher.selectSource="--select source--"
AdvSceneSwitcher.selectAudioSource="--select audio source--"
AdvSceneSwitcher.selectVideoSource="--select video source--"
AdvSceneSwitcher.selectMediaSource="--select media source--"
AdvSceneSwitcher.selectProcess="--select process--"
+AdvSceneSwitcher.selectFilter="--select filter--"
+AdvSceneSwitcher.selectMacro="--select macro--"
+AdvSceneSwitcher.selectItem="--select item--"
AdvSceneSwitcher.enterPath="--enter path--"
AdvSceneSwitcher.enterText="--enter text--"
AdvSceneSwitcher.invaildEntriesWillNotBeSaved="invalid entries will not be saved"
@@ -425,3 +483,7 @@ AdvSceneSwitcher.unit.milliseconds="milliseconds"
AdvSceneSwitcher.unit.secends="seconds"
AdvSceneSwitcher.unit.minutes="minutes"
AdvSceneSwitcher.unit.hours="hours"
+AdvSceneSwitcher.duration.condition.none="No time constraint"
+AdvSceneSwitcher.duration.condition.more="For at least"
+AdvSceneSwitcher.duration.condition.equal="For exactly"
+AdvSceneSwitcher.duration.condition.less="For at most"
diff --git a/data/locale/ru-RU.ini b/data/locale/ru-RU.ini
new file mode 100644
index 00000000..f4104ce8
--- /dev/null
+++ b/data/locale/ru-RU.ini
@@ -0,0 +1,423 @@
+AdvSceneSwitcher.pluginName="Advanced Scene Switcher"
+AdvSceneSwitcher.windowTitle="Advanced Scene Switcher"
+
+; General Tab
+AdvSceneSwitcher.generalTab.title="Общие"
+AdvSceneSwitcher.generalTab.status="Статус"
+AdvSceneSwitcher.generalTab.status.hotkeytips="Горячие клавиши можно определить в настройках OBS"
+AdvSceneSwitcher.generalTab.status.currentStatus="Advanced Scene Switcher сейчас:"
+AdvSceneSwitcher.generalTab.status.onStartup="При запуске OBS:"
+AdvSceneSwitcher.generalTab.status.onStartup.asLastRun="Запустить переключатель сцен, если он был запущен"
+AdvSceneSwitcher.generalTab.status.onStartup.alwaysStart="Всегда запускать переключатель сцен"
+AdvSceneSwitcher.generalTab.status.onStartup.doNotStart="Не запускать переключатель сцен"
+AdvSceneSwitcher.generalTab.status.start="Старт"
+AdvSceneSwitcher.generalTab.status.stop="Стоп"
+AdvSceneSwitcher.generalTab.status.autoStart="Автоматически запускать переключатель сцен, когда:"
+AdvSceneSwitcher.generalTab.status.autoStart.never="Никогда"
+AdvSceneSwitcher.generalTab.status.autoStart.recording="Запись"
+AdvSceneSwitcher.generalTab.status.autoStart.streaming="Вещание"
+AdvSceneSwitcher.generalTab.status.autoStart.recordingAndStreaming="Запись или потоковое вещание"
+AdvSceneSwitcher.generalTab.status.checkInterval="Проверять условия переключения каждый раз"
+AdvSceneSwitcher.generalTab.generalBehavior="Общее поведение"
+AdvSceneSwitcher.generalTab.generalBehavior.onNoMet="Если не выполняется условие переключения для"
+AdvSceneSwitcher.generalTab.generalBehavior.onNoMetDelayTooltip="Будет только настолько точным, насколько настроен интервал проверки."
+AdvSceneSwitcher.generalTab.generalBehavior.onNoMet.dontSwitch="Не переключаться"
+AdvSceneSwitcher.generalTab.generalBehavior.onNoMet.switchToRandom="Переключиться на любую сцену на вкладке Random"
+AdvSceneSwitcher.generalTab.generalBehavior.onNoMet.switchTo="Переключиться на:"
+AdvSceneSwitcher.generalTab.generalBehavior.cooldown="После совпадения не переключаться между сценами в течение"
+AdvSceneSwitcher.generalTab.generalBehavior.cooldownHint="В течение этого времени потенциальные совпадения будут игнорироваться!"
+AdvSceneSwitcher.generalTab.generalBehavior.verboseLogging="Включить ведение подробного журнала"
+AdvSceneSwitcher.generalTab.generalBehavior.saveWindowGeo="Сохранять положение и размер окна"
+AdvSceneSwitcher.generalTab.generalBehavior.disableUIHints="Отключить подсказки пользовательского интерфейса"
+AdvSceneSwitcher.generalTab.priority="Приоритет"
+AdvSceneSwitcher.generalTab.priority.description="Приоритет методов переключения (самый высокий приоритет - вверху)"
+AdvSceneSwitcher.generalTab.priority.threadPriority="Использовать приоритет потока"
+AdvSceneSwitcher.generalTab.priority.threadPriorityNotice="(Поднимать приоритет выше \"Нормальный\" не рекомендуется)"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings="Сохранить / загрузить настройки"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.export="Экспорт"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.import="Импорт"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.exportWindowTitle="Экспортировать настройки расширенного переключателя сцен в файл ..."
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.importWindowTitle="Импортировать настройки Advanced Scene Switcher из файла ..."
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.textType="Текстовые файлы (*.txt)"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.loadFail="Advanced Scene Switcher не удалось импортировать настройки"
+AdvSceneSwitcher.generalTab.saveOrLoadsettings.loadSuccess="Настройки Advanced Scene Switcher импортированы успешно"
+AdvSceneSwitcher.generalTab.priority.fileContent="Содержание файла"
+AdvSceneSwitcher.generalTab.priority.sceneSequence="Последовательность сцены"
+AdvSceneSwitcher.generalTab.priority.idleDetection="Обнаружение простоя"
+AdvSceneSwitcher.generalTab.priority.executable="Исполняемый файл"
+AdvSceneSwitcher.generalTab.priority.screenRegion="Область экрана"
+AdvSceneSwitcher.generalTab.priority.windowTitle="Заголовок окна"
+AdvSceneSwitcher.generalTab.priority.media="Медиа"
+AdvSceneSwitcher.generalTab.priority.time="Время"
+AdvSceneSwitcher.generalTab.priority.audio="Аудио"
+AdvSceneSwitcher.generalTab.priority.video="Видео"
+AdvSceneSwitcher.generalTab.priority.macro="Макрос"
+
+; Macro Tab
+AdvSceneSwitcher.macroTab.title="Макрос"
+AdvSceneSwitcher.macroTab.macros="Макросы"
+AdvSceneSwitcher.macroTab.help="Макросы позволяют выполнять ряд действий в зависимости от нескольких условий.\n\nНажмите на выделенный символ плюса, чтобы добавить новый макрос."
+AdvSceneSwitcher.macroTab.editConditionHelp="Этот раздел позволяет определить условия макроса.\n\nВыберите существующий или добавьте новый макрос слева."
+AdvSceneSwitcher.macroTab.editActionHelp="Этот раздел позволяет определить действия макроса.\n\n\nВыберите существующий или добавьте новый макрос слева."
+AdvSceneSwitcher.macroTab.edit="Редактировать макрос"
+AdvSceneSwitcher.macroTab.edit.logic="Тип логики:"
+AdvSceneSwitcher.macroTab.edit.condition="Тип условия:"
+AdvSceneSwitcher.macroTab.edit.action="Тип действия:"
+AdvSceneSwitcher.macroTab.add="Добавить новый макрос"
+AdvSceneSwitcher.macroTab.name="Имя:"
+AdvSceneSwitcher.macroTab.defaultname="Макрос %1"
+AdvSceneSwitcher.macroTab.exists="Имя макроса уже существует"
+AdvSceneSwitcher.macroTab.copy="Создать копию"
+; Macro Logic
+AdvSceneSwitcher.logic.none="Игнорировать вход"
+AdvSceneSwitcher.logic.and="И"
+AdvSceneSwitcher.logic.or="Или"
+AdvSceneSwitcher.logic.andNot="И не"
+AdvSceneSwitcher.logic.orNot="Или нет"
+AdvSceneSwitcher.logic.rootNone="Если"
+AdvSceneSwitcher.logic.not="Если нет"
+; Macro Conditions
+AdvSceneSwitcher.condition.audio="Аудио"
+AdvSceneSwitcher.ondition.audio.state.below="Ниже"
+AdvSceneSwitcher.ondition.audio.state.above="Выше"
+AdvSceneSwitcher.condition.audio.entry="Громкость {{audioSources}} равна {{condition}} {{volume}} в течении {{duration}} секунд"
+AdvSceneSwitcher.condition.region="Область экрана"
+AdvSceneSwitcher.condition.region.entry="Курсор находится в {{minX}} {{minY}} x {{maxX}} {{maxY}}"
+AdvSceneSwitcher.condition.scene="Сцена"
+AdvSceneSwitcher.condition.scene.type.current="Текущий"
+AdvSceneSwitcher.condition.scene.type.previous="Предыдущий"
+AdvSceneSwitcher.condition.scene.entry="{{sceneType}} сцена является {{scenes}} на {{duration}}"
+AdvSceneSwitcher.condition.window="Окно"
+AdvSceneSwitcher.condition.window.entry.line1="{{windows}} существует и ..."
+AdvSceneSwitcher.condition.window.entry.line2="... это {{fullscreen}} полноэкранный {{maximized}} максимизированный {{focused}} сфокусированный"
+AdvSceneSwitcher.condition.file="Файл"
+AdvSceneSwitcher.condition.file.entry.line1="Содержимое {{fileType}} {{filePath}} {{browseButton}} соответствует:"
+AdvSceneSwitcher.condition.file.entry.line2="{{matchText}}"
+AdvSceneSwitcher.condition.file.entry.line3="{{useRegex}} {{checkModificationDate}} {{checkFileContent}}"
+AdvSceneSwitcher.condition.media="Медиа"
+AdvSceneSwitcher.condition.media.entry="{{mediaSources}} состояние {{states}} и {{timeRestrictions}} {{time}}"
+AdvSceneSwitcher.condition.video="Видео"
+AdvSceneSwitcher.condition.video.condition.match="точно соответствует"
+AdvSceneSwitcher.condition.video.condition.differ="не совпадает"
+AdvSceneSwitcher.condition.video.condition.hasChanged="изменилось"
+AdvSceneSwitcher.condition.video.condition.hasNotChanged="не изменилось"
+AdvSceneSwitcher.condition.video.condition.noImage="не имеет вывода"
+AdvSceneSwitcher.condition.video.askFileAction="Вы хотите использовать существующий файл или создать скриншот текущего выбранного источника?"
+AdvSceneSwitcher.condition.video.askFileAction.file="Использовать существующий файл"
+AdvSceneSwitcher.condition.video.askFileAction.screenshot="Создать скриншот"
+AdvSceneSwitcher.condition.video.entry="{{videoSources}} {{condition}} {{filePath}} {{browseButton}} для {{duration}}"
+AdvSceneSwitcher.condition.stream="Потоковое вещание"
+AdvSceneSwitcher.condition.stream.state.start="Поток запущен"
+AdvSceneSwitcher.condition.stream.state.stop="Поток остановлен"
+AdvSceneSwitcher.condition.stream.entry="{{streamState}} для {{duration}}"
+AdvSceneSwitcher.condition.record="Запись"
+AdvSceneSwitcher.condition.record.state.start="Запись запущена"
+AdvSceneSwitcher.condition.record.state.pause="Запись приостановлена"
+AdvSceneSwitcher.condition.record.state.stop="Запись остановлена"
+AdvSceneSwitcher.condition.record.entry="{{recordState}} для {{duration}}"
+AdvSceneSwitcher.condition.process="Процесс"
+AdvSceneSwitcher.condition.process.entry="{{processes}} запущен {{focused}} и сфокусирован"
+AdvSceneSwitcher.condition.idle="Простой"
+AdvSceneSwitcher.condition.idle.entry="Не было ни клавиатуры, ни мыши в течении{{duration}}"
+AdvSceneSwitcher.condition.pluginState="Состояние плагина"
+AdvSceneSwitcher.condition.pluginState.state.sceneSwitched="Автоматическая смена сцены была запущена в этом интервале"
+AdvSceneSwitcher.condition.pluginState.entry="{{condition}}"
+
+; Macro Actions
+AdvSceneSwitcher.action.switchScene="Переключить сцену"
+AdvSceneSwitcher.action.scene.entry="Перейти к сцене {{scenes}} используя {{transitions}} с продолжительностью {{duration}} секунд"
+AdvSceneSwitcher.action.wait="Подождать"
+AdvSceneSwitcher.action.wait.type.fixed="фиксированный"
+AdvSceneSwitcher.action.wait.type.random="случайный"
+AdvSceneSwitcher.action.wait.entry.fixed="Ожидать {{waitType}} в течении {{duration}}"
+AdvSceneSwitcher.action.wait.entry.random="Ожидание {{waitType}} длительностью от {{duration}} до {{duration2}}"
+AdvSceneSwitcher.action.audio="Аудио"
+AdvSceneSwitcher.action.audio.type.mute="Замьютить"
+AdvSceneSwitcher.action.audio.type.unmute="Размьютить"
+AdvSceneSwitcher.action.audio.type.sourceVolume="Установить громкость источника"
+AdvSceneSwitcher.action.audio.type.masterVolume="Установить главную громкость"
+AdvSceneSwitcher.action.audio.entry="{{actions}} {{audioSources}} {{volume}}"
+AdvSceneSwitcher.action.recording="Запись"
+AdvSceneSwitcher.action.recording.type.stop="Остановить запись"
+AdvSceneSwitcher.action.recording.type.start="Начать запись"
+AdvSceneSwitcher.action.recording.type.pause="Пауза записи"
+AdvSceneSwitcher.action.recording.type.unpause="Снять запись с паузы"
+AdvSceneSwitcher.action.recording.pause.hint="Обратите внимание, что в зависимости от настроек записи вы можете не иметь возможности приостановить запись"
+AdvSceneSwitcher.action.recording.entry="{{actions}}{{pauseHint}}"
+AdvSceneSwitcher.action.replay="Буфер воспроизведения"
+AdvSceneSwitcher.action.replay.type.stop="Остановить буфер воспроизведения"
+AdvSceneSwitcher.action.replay.type.start="Начать воспроизведение буфера"
+AdvSceneSwitcher.action.replay.type.save="Сохранить буфер воспроизведения"
+AdvSceneSwitcher.action.replay.entry="{{actions}}"
+AdvSceneSwitcher.action.streaming="Потоковое вещание"
+AdvSceneSwitcher.action.streaming.type.stop="Остановить потоковое вещание"
+AdvSceneSwitcher.action.streaming.type.start="Начать потоковое вещание"
+AdvSceneSwitcher.action.streaming.entry="{{actions}}"
+AdvSceneSwitcher.action.run="Запустить"
+AdvSceneSwitcher.action.run.entry="Запустить {{filePath}} {{browseButton}}"
+
+
+; Transition Tab
+AdvSceneSwitcher.transitionTab.title="Переход"
+AdvSceneSwitcher.transitionTab.setTransitionBy="При изменении переходов:"
+AdvSceneSwitcher.transitionTab.transitionOverride="Установить переопределение переходов"
+AdvSceneSwitcher.transitionTab.adjustActiveTransitionType="Изменить тип активного перехода"
+AdvSceneSwitcher.transitionTab.transitionBehaviorSelectionError="Должна быть включена хотя бы одна опция:\n\n - Использовать переопределения переходов\n\n - Изменить тип активного перехода"
+AdvSceneSwitcher.transitionTab.transitionForAToB="Использовать переход для автоматического переключения сцены со сцены A на сцену B"
+AdvSceneSwitcher.transitionTab.transitionsHelp="
Эти настройки только влияют на переходы, вызванные переключателем сцен - Проверьте Transition Table если вы хотите настроить его для ручного изменения сцены. Настройки, определенные здесь, имеют приоритет над настройками перехода, сконфигурированными в других местах переключателя сцен.
Нажмите на символ плюса ниже, чтобы добавить новую запись.
"
+AdvSceneSwitcher.transitionTab.defaultTransition="Изменить переход, если сцена активна"
+AdvSceneSwitcher.transitionTab.entry="Переход от {{scenes}} к {{scenes2}} с помощью {{transitions}} с длительностью {{duration}}"
+AdvSceneSwitcher.transitionTab.defaultTransitionEntry="Когда сцена {{scenes}} активна, изменить переход сцены по умолчанию на {{transitions}}"
+AdvSceneSwitcher.transitionTab.defaultTransitionsHelp="Нажмите на символ плюса, чтобы добавить запись."
+AdvSceneSwitcher.transitionTab.defaultTransition.delay="Переключить переход {{defTransitionDelay}} после смены сцены."
+AdvSceneSwitcher.transitionTab.defaultTransition.delay.help="Задержка используется для того, чтобы избежать отмены переключения сцены, что может произойти, если тип перехода будет изменен, когда переход еще продолжается."
+
+; Pause Scenes Tab
+AdvSceneSwitcher.pauseTab.title="Пауза"
+AdvSceneSwitcher.pauseTab.pauseOnScene="Приостановить Scene Switcher на сцене"
+AdvSceneSwitcher.pauseTab.pauseInFocus1="Приостановить Scene Switcher когда "
+AdvSceneSwitcher.pauseTab.pauseInFocus2="находится в фокусе"
+AdvSceneSwitcher.pauseTab.pauseTypeScene="сцена активна"
+AdvSceneSwitcher.pauseTab.pauseTypeWindow="окно в фокусе"
+AdvSceneSwitcher.pauseTab.pauseTargetAll="все"
+AdvSceneSwitcher.pauseTab.pauseEntry="Пауза {{pauseTargets}} проверяет, когда {{pauseTypes}} {{scenes}} {{windows}}"
+AdvSceneSwitcher.pauseTab.help="На этой вкладке вы можете настроить приостановку отдельных методов переключения, если сцена активна или окно находится в фокусе.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Window Title Tab
+AdvSceneSwitcher.windowTitleTab.title="Название"
+AdvSceneSwitcher.windowTitleTab.regexrDescription="
Введите либо прямые заголовки окон, либо правильное регулярное выражение. Вы можете проверить синтаксис и соответствие регулярных выражений, используя RegExr
"
+AdvSceneSwitcher.windowTitleTab.stayInFocus1="Игнорировать имя этого окна"
+AdvSceneSwitcher.windowTitleTab.stayInFocus2=" "
+AdvSceneSwitcher.windowTitleTab.fullscreen="if fullscreen"
+AdvSceneSwitcher.windowTitleTab.maximized="if maximized"
+AdvSceneSwitcher.windowTitleTab.focused="if focused"
+AdvSceneSwitcher.windowTitleTab.entry="{{windows}} {{scenes}} {{transitions}} {{fullscreen}} {{maximized}} {{focused}}"
+AdvSceneSwitcher.windowTitleTab.windowsHelp="Переключение сцен на основе заголовков окон запущенных приложений.\nВы можете выбрать следующие дополнительные условия:\nОкно полноэкранное\nОкно максимизированное\nОкно сфокусированное\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+AdvSceneSwitcher.windowTitleTab.ignoreWindowsHelp="Если заголовок окна игнорируется, переключатель сцен будет действовать так, как будто ранее выбранное окно все еще в фокусе.\nЭто позволит вам избежать переключения сцен, если вы часто переключаетесь на другое окно, которое не должно вызывать смену сцены.\n\nВыберите окно или введите заголовок окна выше и нажмите на символ плюса ниже, чтобы добавить его в список."
+
+; Executable Tab
+AdvSceneSwitcher.executableTab.title="Исполняемый"
+AdvSceneSwitcher.executableTab.implemented="Implemented by dasOven"
+AdvSceneSwitcher.executableTab.requiresFocus="только если сфокусирован"
+AdvSceneSwitcher.executableTab.entry="Когда {{processes}} запущены, переключить на {{scenes}} используя {{transitions}} {{requiresFocus}}"
+AdvSceneSwitcher.executableTab.help="Эта вкладка позволит вам автоматически переключаться между сценами, если запущен процесс.\nЭто может быть полезно в ситуациях, когда имя окна может измениться или неизвестно.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Screen Region Tab
+AdvSceneSwitcher.screenRegionTab.title="Регион"
+AdvSceneSwitcher.screenRegionTab.currentPosition="Курсор в данный момент находится в:"
+AdvSceneSwitcher.screenRegionTab.showGuideFrames="Показать направляющие кадры"
+AdvSceneSwitcher.screenRegionTab.hideGuideFrames="Скрыть направляющие рамки"
+AdvSceneSwitcher.screenRegionTab.excludeScenes.None="Нет выбора"
+AdvSceneSwitcher.screenRegionTab.entry="Если курсор находится в {{minX}} {{minY}} x {{maxX}} {{maxY}} переключить на {{scenes}} используя {{transitions}} если не указано {{excludeScenes}}"
+AdvSceneSwitcher.screenRegionTab.help="Эта вкладка позволит вам автоматически переключать сцены, основываясь на текущем положении курсора мыши.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Media Tab
+AdvSceneSwitcher.mediaTab.title="Медиа"
+AdvSceneSwitcher.mediaTab.implemented="Implemented by Exeldro"
+AdvSceneSwitcher.mediaTab.states.none="Нет"
+AdvSceneSwitcher.mediaTab.states.playing="Играет"
+AdvSceneSwitcher.mediaTab.states.opening="Открытие"
+AdvSceneSwitcher.mediaTab.states.buffering="Буферизация"
+AdvSceneSwitcher.mediaTab.states.Paused="Приостановлено"
+AdvSceneSwitcher.mediaTab.states.stopped="Остановлено"
+AdvSceneSwitcher.mediaTab.states.ended="Закончилось"
+AdvSceneSwitcher.mediaTab.states.error="Ошибка"
+AdvSceneSwitcher.mediaTab.states.playedToEnd="Воспроизведено до конца"
+AdvSceneSwitcher.mediaTab.states.any="Любой"
+AdvSceneSwitcher.mediaTab.timeRestriction.none="Нет"
+AdvSceneSwitcher.mediaTab.timeRestriction.shorter="Время короче"
+AdvSceneSwitcher.mediaTab.timeRestriction.longer="Время больше"
+AdvSceneSwitcher.mediaTab.timeRestriction.remainShorter="Оставшееся время короче"
+AdvSceneSwitcher.mediaTab.timeRestriction.remainLonger="Время, оставшееся дольше"
+AdvSceneSwitcher.mediaTab.entry="Когда состояние {{mediaSources}} равно {{states}} и {{timeRestrictions}} {{time}} переключиться на {{scenes}} используя {{transitions}}"
+AdvSceneSwitcher.mediaTab.help="Эта вкладка позволит вам переключать сцены на основе состояний медиаисточников.\nНапример, вы можете автоматически переключиться на предыдущую сцену, когда выбранный медиаисточник закончил свое воспроизведение.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; File Tab
+AdvSceneSwitcher.fileTab.title="Файл"
+AdvSceneSwitcher.fileTab.readWriteSceneFile="Считать / записать сцену из / в файл"
+AdvSceneSwitcher.fileTab.currentSceneOutputFile="Записать имя текущей сцены в этот файл:"
+AdvSceneSwitcher.fileTab.switchSceneBaseOnFile="Включить переключение сцен на основе ввода файла"
+AdvSceneSwitcher.fileTab.switchSceneNameInputFile="Считать имя сцены, на которую нужно переключиться, из этого файла:"
+AdvSceneSwitcher.fileTab.switchSceneBaseOnFileContent="Переключать сцену на основе содержимого файла"
+AdvSceneSwitcher.fileTab.remoteFileWarning="Обратите внимание, что при выборе опции remote переключатель сцен будет пытаться получить доступ к удаленному местоположению каждые x мс, как указано на вкладке Общие"
+AdvSceneSwitcher.fileTab.remoteFileWarning1="Обратите внимание, что переключатель сцены будет пытаться получить доступ к удаленному местоположению каждые "
+AdvSceneSwitcher.fileTab.remoteFileWarning2="ms"
+AdvSceneSwitcher.fileTab.libcurlWarning="Не удалось загрузить libcurl! Доступ к удаленным файлам невозможен!"
+AdvSceneSwitcher.fileTab.selectWrite="Выберите файл для записи в ..."
+AdvSceneSwitcher.fileTab.selectRead="Выберите файл для чтения из ..."
+AdvSceneSwitcher.fileTab.textFileType="Текстовые файлы (*.txt)"
+AdvSceneSwitcher.fileTab.anyFileType="Любые файлы (*.*)"
+AdvSceneSwitcher.fileTab.remote="удаленный файл"
+AdvSceneSwitcher.fileTab.local="локальный файл"
+AdvSceneSwitcher.fileTab.useRegExp="использовать регулярные выражения (сопоставление шаблонов)"
+AdvSceneSwitcher.fileTab.checkfileContentTime="если дата модификации изменена"
+AdvSceneSwitcher.fileTab.checkfileContent="если содержимое изменено"
+AdvSceneSwitcher.fileTab.entry="Переключиться на {{scenes}} используя {{transitions}} если содержимое {{fileType}} {{filePath}} {{browseButton}} совпадает:"
+AdvSceneSwitcher.fileTab.entry2="{{matchText}}"
+AdvSceneSwitcher.fileTab.entry3="{{useRegex}} {{checkModificationDate}} {{checkFileContent}}"
+AdvSceneSwitcher.fileTab.help="Эта вкладка позволит вам автоматически переключать сцены на основе содержимого удаленных или локальных файлов.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Random Tab
+AdvSceneSwitcher.randomTab.title="Рандом"
+AdvSceneSwitcher.randomTab.randomDisabledWarning="Функциональность отключена - для активации выберите \"Если условие переключения не выполнено, переключиться на любую сцену на вкладке Random\" на вкладке Общие"
+AdvSceneSwitcher.randomTab.entry="Если условие переключения не выполнено, переключиться на {{scenes}} используя {{transitions}} для {{delay}}"
+AdvSceneSwitcher.randomTab.help="Переключатель сцен будет случайным образом выбирать запись на этой вкладке для переключения на заданное время.\nЗаметьте, что одна и та же запись не будет выбрана дважды подряд.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Time Tab
+AdvSceneSwitcher.timeTab.title="Время"
+AdvSceneSwitcher.timeTab.anyDay="В любой день"
+AdvSceneSwitcher.timeTab.mondays="По понедельникам"
+AdvSceneSwitcher.timeTab.tuesdays="По вторникам"
+AdvSceneSwitcher.timeTab.wednesdays="По средам"
+AdvSceneSwitcher.timeTab.thursdays="По четвергам"
+AdvSceneSwitcher.timeTab.fridays="По пятницам"
+AdvSceneSwitcher.timeTab.saturdays="По субботам"
+AdvSceneSwitcher.timeTab.sundays="По воскресеньям"
+AdvSceneSwitcher.timeTab.afterstart="После начала потокового вещания/записи"
+AdvSceneSwitcher.timeTab.afterstart.tip="Будет использоваться время относительно начала потокового вещания/записи"
+AdvSceneSwitcher.timeTab.entry="{{triggers}} в {{time}} переключаются на {{scenes}} используя {{transitions}}"
+AdvSceneSwitcher.timeTab.help="Эта вкладка позволит вам автоматически переключаться на другую сцену на основе текущего местного времени.\n\nЗаметьте, что переключатель сцен будет переключаться только в точное время, которое вы указали.\nУбедитесь, что вы настроили параметры приоритета на вкладке Общие по своему вкусу, чтобы выбранная временная точка не была пропущена из-за других методов переключения, имеющих более высокий приоритет.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Idle Tab
+AdvSceneSwitcher.idleTab.title="Бездействие"
+AdvSceneSwitcher.idleTab.enable="Включить обнаружение простоя"
+AdvSceneSwitcher.idleTab.idleswitch="После {{duration}} отсутствия ввода с клавиатуры или мыши переключиться на сцену {{scenes}} используя {{transitions}}"
+AdvSceneSwitcher.idleTab.dontSwitchIfFocus1="Не переключаться, если"
+AdvSceneSwitcher.idleTab.dontSwitchIfFocus2="находится в фокусе"
+
+; Scene Sequence Tab
+AdvSceneSwitcher.sceneSequenceTab.title="Последовательность"
+AdvSceneSwitcher.sceneSequenceTab.description="Последовательность автоматического переключения сцен может быть отменена либо паузой/остановкой переключателя сцен, либо ручным переключением на другую сцену"
+AdvSceneSwitcher.sceneSequenceTab.save="Сохранить последовательность сцен в файл"
+AdvSceneSwitcher.sceneSequenceTab.load="Загрузить последовательности сцен из файла"
+AdvSceneSwitcher.sceneSequenceTab.saveTitle="Сохранить последовательность сцен в файл ..."
+AdvSceneSwitcher.sceneSequenceTab.loadTitle="Выберите файл для чтения последовательности сцен из файла ..."
+AdvSceneSwitcher.sceneSequenceTab.loadFail="Advanced Scene Switcher не удалось импортировать настройки!"
+AdvSceneSwitcher.sceneSequenceTab.loadSuccess="Настройки Advanced Scene Switcher импортированы успешно!"
+AdvSceneSwitcher.sceneSequenceTab.fileType="Текстовые файлы (*.txt)"
+AdvSceneSwitcher.sceneSequenceTab.interruptible="прервать"
+AdvSceneSwitcher.sceneSequenceTab.interruptibleHint="Другие методы переключения разрешены для прерывания этой последовательности сцен"
+AdvSceneSwitcher.sceneSequenceTab.entry="Когда {{startScenes}} активен, переключить на {{scenes}} после {{delay}} используя {{transitions}} {{interruptible}}"
+AdvSceneSwitcher.sceneSequenceTab.extendEdit="Расширить последовательность"
+AdvSceneSwitcher.sceneSequenceTab.extendEntry="После {{delay}} переключиться на {{scenes}} используя {{transitions}}"
+AdvSceneSwitcher.sceneSequenceTab.help="Эта вкладка позволит вам автоматически переключаться на другую сцену, если сцена была активна в течение заданного периода времени.\nНапример, вы можете автоматически переключаться между двумя сценами.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Audio Tab
+AdvSceneSwitcher.audioTab.title="Аудио"
+AdvSceneSwitcher.audioTab.condition.above="выше"
+AdvSceneSwitcher.audioTab.condition.below="ниже"
+AdvSceneSwitcher.audioTab.ignoreInactiveSource="если источник неактивен"
+AdvSceneSwitcher.audioTab.entry="Когда громкость {{audioSources}} равна {{condition}} {{volumeWidget}} в течение {{duration}} секунд переключить на {{scenes}} используя {{transitions}} {{ignoreInactiveSource}}"
+AdvSceneSwitcher.audioTab.multiMatchfallbackCondition="Если несколько записей совпадают ..."
+AdvSceneSwitcher.audioTab.multiMatchfallback="... в течение {{duration}} секунд переключить на {{scenes}} используя {{transitions}}"
+AdvSceneSwitcher.audioTab.help="Эта вкладка позволит вам переключать сцены в зависимости от громкости источников.\nНапример, вы можете автоматически переключиться на другую сцену, если громкость вашего микрофона достигнет определенного порога.\n\nНажмите на выделенный символ плюса, чтобы продолжить."
+
+; Video Tab
+AdvSceneSwitcher.videoTab.title="Видео"
+AdvSceneSwitcher.videoTab.getScreenshot="Получить снимок экрана для выбранной записи"
+AdvSceneSwitcher.videoTab.getScreenshotHelp="Получить скриншот источника видео текущей выбранной записи и автоматически установить его в качестве целевого изображени"
+AdvSceneSwitcher.videoTab.condition.match="точно соответствует"
+AdvSceneSwitcher.videoTab.condition.match.tooltip="Точное совпадение требует, чтобы целевое и исходное изображение имели одинаковое разрешение.\nДаже каждый пиксель должен совпадать, поэтому не рекомендуется использовать форматы изображений, которые используют сжатие (например, .JPG)!"
+AdvSceneSwitcher.videoTab.condition.differ="не совпадает"
+AdvSceneSwitcher.videoTab.condition.hasNotChanged="не изменилось"
+AdvSceneSwitcher.videoTab.condition.hasChanged="изменилось"
+AdvSceneSwitcher.videoTab.ignoreInactiveSource="если источник неактивен"
+AdvSceneSwitcher.videoTab.entry="Когда {{videoSources}} {{condition}} {{filePath}} {{browseButton}} для {{duration}} переключиться на {{scenes}} используя {{transitions}} {{ignoreInactiveSource}}"
+AdvSceneSwitcher.videoTab.help="
Эта вкладка позволит вам переключать сцены на основе текущего видеовыхода выбранных источников. Обязательно проверьте Pixel Match Switcher для еще лучшей реализации этой функциональности.
Нажмите на выделенный символ плюса, чтобы продолжить.