_L = 
{
	"Adding tab silently means, that new tab will be added and specified url will be loaded only when the tab becomes active for the first time.": {"ru": "В режиме отложенной загрузки вкладка будет добавлена сразу же, а заданный url загружен только после первого переключения на эту вкладку."},
	"Create new tab, load specified url only when tab gets switched to.": {"ru": "Создать новую вкладку, загрузить указанный url только после того, как она станет активной."},
	"Create new tab, switch to it and load it immediately.": {"ru": "Создать новую вкладку, переключиться на нее и сразу же загрузить указанный url."},
	"Load silently": {"ru": "Отложенная загрузка"},
	"Label can contain only letters, digits, underscore and spaces" :{"ru": "Название метки может содержать только цифры, буквы, нижнее подчеркивание и пробел"},

	"Rendering": {"ru": "Рендеринг"},
	"Maximum times browser content can be rendered per one second. The lower this value, the lower the CPU usage will be. Setting it too low may affect site operability. Reducing it below 30 may lead to unpredictable consequences. Minimum value is 10.": {"ru": "Максимальное количество раз за одну секунду, которое содержимого браузера может быт отрисовано. Чем ниже это значение, тем меньше будет загрузка процессор. Установка слишком низкого значения может повлиять на работоспособность сайта. Снижение его ниже 30 может привести к непредсказуемым последствиям. Минимальное значение 10."},
	"Maximum FPS": {"ru": "Ограничения частоты кадров"},
	"Don't change": {"ru": "Не менять"},
	"Limit FPS to 30": {"ru": "Ограничить частоту кадров 30"},
	"Don't change FPS": {"ru": "Не менять частоту кадров"},

	"Extension id or name": {"ru": "Id или имя расширения"},
	"Extension id or name. It is not necessary to input whole id or whole name, only its part is allowed.": {"ru": "Идентификатор или имя расширения. Нет необходимости вводить id целиком или полное имя, допускается использование только его части."},
	"Trigger extension with id padekgcemlokbadohgkifijomclgjgif.": {"ru": "Открыть интерфейс расширения padekgcemlokbadohgkifijomclgjgif."},
	"Trigger extension, which id contains padekgcem.": {"ru": "Открыть интерфейс расширения id которого содержит padekgcem."},
	"Trigger extension by name.": {"ru": "Открыть интерфейс расширения найденного по имени."},
	"Trigger extension by name part.": {"ru": "Открыть интерфейс расширения найденного по части имени."},
	"Click on extension button.": {"ru": "Нажать на кнопку расширения."},
	"Executing this action is same as clicking on following": {"ru": "Выполнение этого действия аналогично клику по данной"},
	"button": {"ru": "кнопке"},
	"Extension must be installed first before this action can be used. Use \"Browser settings\" action to install extension.": {"ru": "Перед использованием этого действия необходимо сначала установить расширение. Для этого используйте действие \"Настройки браузера\"."},
	"More information about using extensions can be found on this this": {"ru": "Более подробную информацию об использовании расширений можно найти на этой"},

	"Search": {"ru": "Поиск"},

	/* Toolbox notifications */
	"Please select any element inside browser and click on the '": {"ru": "Пожалуйста, выберите любой элемент в браузере и нажмите на действие '"},
	"' action inside the menu that will appear.": {"ru": "' в появившемся меню."},

	"Site has used prompt javascript function. Use \"Prompt Result\" in order to set result.": {"ru": "На сайте использована javascript функция prompt. Используйте действие \"Окно prompt\" для задания результата работы функции."},
	"Prompt dialog.": {"ru": "Диалог 'prompt'."},

	"Don't use Widevine": {"ru": "Не использовать Widevine"},
	"Use Widevine": {"ru": "Использовать Widevine"},
	"Enable or disable Widevine plugin.": {"ru": "Включить или отключить плагин Widevine."},

	"Stop intercepting recaptcha v3 requests. Site will get your real score. You can enable intercepting later again.": {"ru": "Перестать перехватывать запросы. Сайт получит ваш реальный рейтинг. Вы можете снова включить перехват позже."},
	"Rucaptcha/2captcha Key. Can be blank": {"ru": "Ключ Антигейт/Рукапча. Может быть пустым"},
	"This is a key from service selected in 'Solve Method' field.": {"ru": "Это ключ от сервиса, выбранного в поле 'Метод решения'."},
	"Action name": {"ru": "Название действия"},
	"Contains one or several recaptcha v3 actions. Several action may be separated by commas. When browser will execute one of following actions, user score request will be intercepted and sent to service selected in 'Solve Method' field. By default every request will be intercepted, tweak this field in order to send only important actions.": {"ru": "Содержит одно или несколько действий recaptcha v3. Это поле может содержать несколько действий разделенный запятыми. Когда браузер выполнит одно из этих действий, запрос оценки рейтинга будет перехвачен и отправлен службе, выбранной в поле 'Метод решения'. По умолчанию абсолютно все запросы будут перехвачены, но вы можете настроить это поле для отправки только нужных действий."},
	"Intercept all actions": {"ru": "Перехватывать все действия"},
	"Intercept only 'Action 1', all other actions will return real browser score.": {"ru": "Перехватывать только 'Action 1', все остальные действия будут возвращать реальный рейтинг браузера."},
	"Intercept only 'Action 1' or 'Action 2', all other actions will return real browser score. NOTE: there should not be any spaces near comma.": {"ru": "Перехватывать только 'Action 1' и 'Action 2', все остальные действия будут возвращать реальный рейтинг браузера. ВНИМАНИЕ: между действиями не должно быть пробелов."},
	"Minimal score": {"ru": "Минимальный рейтинг"},
	"Minimal score to which the answer from service must meet. 0.1 - is the lowest score, 0.9 - is the highest. It depends on site, if it wants to accept certain score or not and what to do with low score browsers. 0.6 - is default value it must be acceptable for most of the sites.": {"ru": "Минимальный рейтинг, с которым должен приходить ответ от сервиса. 0.1 - самый низкий рейтинг, 0.9 - самый высокий. Это зависит от сайта, хочет ли он пропускать браузеры с данным рейтингом или нет. 0.6 - это значение по умолчанию, оно должно быть приемлемым для большинства сайтов."},
	"Send current proxy to solver service": {"ru": "Отправлять текущий прокси на сервис"},
	"Forces person who solves recaptcha use proxy that you setted up with \"Proxy\" action.": {"ru": "Заставляет работника, который решает капчу, использовать прокси, который вы настроили с помощью действия \"Прокси\"."},
	"Send current proxy to server. Proxy value is obtained from \"Proxy\" action.": {"ru": "Отправлять текущий прокси на сервис. Значение прокси получается из действия \"Прокси\"."},
	"Don't send proxy. Default value.": {"ru": "Не отправлять прокси. Стандартное значение."},
	"This action solves google recaptcha 3.0.": {"ru": "Это действие решает google recaptcha 3.0."},
	"Recaptcha v3, unlike other captchas, doesn't show any image or challenges. It works silently without any user interactions. Therefore, it can be placed in several places on site, or even on each page. For each page or event where Recaptcha v3 is attached to it returns user score. User score reflects how likely the site visitor to be a bot.": {"ru": "Recaptcha v3, в отличие от других капч, не показывает изображения и не требует от пользователя какого-либо взаимодействия. Она работает абсолютно незаметно. Поэтому ее можно разместить в нескольких местах на сайте или даже на каждой странице. При переходе на страницу или при вызове события, к которым прикреплена Recaptcha v3, сайт получает рейтинг браузера. Рейтинг отражает вероятность того, что посетитель сайта является ботом."},
	"The site can use the result score as it sees fit. For example, site can show captcha if user score is lower than 0.4, other site may require phone verification if score is lower than 0.6 and block the user if it is lower than 0.3.": {"ru": "Сайт может использовать результат по своему усмотрению. Например, один сайт может показывать капчу, если рейтинг пользователя ниже 0.4, на другом сайте может потребоваться проверка телефона, если оценка ниже 0.6, и пользователь будет заблокирован, если она ниже 0.3."},
	"This action intercepts user verification request and send it to specified service. When service will return result, it will replace browser real score with score obtained for one of the worker of selected service.": {"ru": "Это действие перехватывает запрос верификации пользователя сайтом и отправляет его в указанный сервис. Когда сервис вернет результат, он заменит реальный рейтинг браузера на то, что был получен от одного из работников выбранного сервиса."},
	"IMPORTANT: This action doesn't solves any captcha by itself, instead it tells BAS to solve any following Recaptcha v3 with specified parameters. Therefore, it must be placed before any captcha methods are used.": {"ru": "ВАЖНО: Это действие само по себе не решает капчи, вместо этого оно устанавливает параметры решения Recaptcha v3 для последующих вызовов. Следовательно, оно должно быть вызвано до того, как появится Recaptcha v3."},
	"Each site has its own requirements and minimal scores, you can tweak expected minimal score by changing 'Minimal score' parameter.": {"ru": "Каждый сайт имеет свои требования к минимальному рейтингу, вы можете настроить ожидаемое значение, изменив параметр 'Минимальный рейтинг'."},
	"Recaptcha v3 may be placed on every page on site. Each page will have its own action. For example, there could be actions for visiting homepage, visiting FAQ page, and for creating new user. You can disable interception for minor actions and enable it for important one by changing 'Action name' parameter.": {"ru": "Recaptcha v3 может быть размещена на всех страницах сайта. В таком случае, каждая страница будет иметь свое собственное действие. Например, могут быть действия для посещения страницы с ценами, посещения страницы c часто задаваемыми вопроcами и создание нового пользователя. Вы можете отключить перехват для второстепенных действий и включить его для важных, изменив параметр 'Название действия'."},
	"In order to find exact action name on particular site, you need to visit site and trigger required action, message with action name will be shown afterwards.": {"ru": "Чтобы найти точное название действия на конкретном сайте, вам необходимо зайти на страницу с требуемым действием, после чего появится сообщение с его названием."},
	"Each used action will also be added to suggestions for 'Action name' parameter.": {"ru": "Все уже вызванные дейстия будут отображены в выпающем списке для параметра 'Название действия'."},
	"All services requires service key which should be bought on service site and inputted into \"Rucaptcha/2captcha Key\" field.": {"ru": "Использование сервиса требует ключа, который должен быть куплен на сайте сервиса и введен в поле \"Ключ Rucaptcha/2captcha\"."},
	"Alternatively to this action, you can try to bypass Recapthca V3. Here are things which influence on final score: mature profile with Gmail authorization and Google search history, good proxy, long history with site, that you are working with. Let us dwell on the last point more carefully. Recaptcha v3 track your activities on each site by logging every action you perform. For example, if you visit a store, do a search, visit support page and only after that will try to register account, it would be much less suspicious than trying to register account immediately, and it high likely to get a better score.": {"ru": "В качестве альтернативы этому действию вы можете попытаться обойти Recapthca V3. Вот что влияет на итоговый рейтинг: профиль с авторизацией Gmail и историей поиска Google созданный некоторе время назад, хороший прокси, продолжительная история действий на сайте, с которым вы работаете. Остановимся подробнее на последнем пункте. Recaptcha v3 отслеживает ваши действия на каждом сайте, регистрируя каждое действие, которое вы выполняете. Например, если вы посещаете страницу покупок, ищете какой-то товар, посещаете страницу с часто задаваемыми вопросами и только после этого пытаетесь зарегистрировать учетную запись, это будет гораздо менее подозрительно, чем попытка зарегистрировать учетную запись немедленно, и с высокой вероятностью получит лучший результат."},
	"There is another type of recaptcha called invisible recaptcha. It works almost the same as Recaptcha v3, but instead of returning user score, it shows image if user seem to suspicious, this is equivalent of having low user score. BAS is capable of solving it also, check 'Solve Recaptcha 2.0' action.": {"ru": "Существует еще один тип рекапчи, который называется невидимая рекапча. Он работает почти так же, как Recaptcha v3, но вместо того, чтобы возвращать рейтинг пользователя, он показывает изображение, если пользователь кажется подозрительным, это эквивалентно низкому рейтингу. BAS также может решать невидимую рекапчу, для этого используйте действие 'Решить Recaptcha 2.0'."},
	
	/* Browser tabs */
	"Get list of tabs, index of current tab and save it to variables.": {"ru": "Получить список вкладок и индекс текущей вкладки, сохранить информацию в переменных."},
	"Variable [[URL_LIST]] will contain list of urls. Each url corresponds to one tab. Use \"List\" module to process it. For example, action \"First Element\" can get url of first tab, action \"Get Element\" can get url of specified tab.": {"ru": "Переменная [[URL_LIST]] будет содержать список url. Каждый url соответствует одной вкладке. Используйте модуль \"Список\" для его обработки. Например, с помощью действия \"Первый элемент\" можно получить url первой вкладки, а с помощью действия \"Получить элемент\" можно получить url вкладки с заданным индексом."},
	"Variable [[TAB_INDEX]] will hold index of active tab. Index starts from 0, so first tab will have index 0, second tab - index 1, etc.": {"ru": "Переменная [[TAB_INDEX]] будет содержать индекс активной вкладки. Индексация начинается с 0, поэтому первая вкладка будет иметь индекс 0, вторая - индекс 1 и т. д."},
	"Switch to the tab with the specified index.": {"ru": "Переключиться на вкладку с указанным индексом."},
	"Add a new tab with the specified Url.": {"ru": "Добавить новую вкладку с указанным Url."},
	"Close tab with the specified index.": {"ru": "Закрыть вкладку с указанным индексом."},

	"Url list": {"ru": "Список url"},
	"List of urls. Each url corresponds to one tab.": {"ru": "Список url. Каждый url соответствует одной вкладке."},
	"Total number of tabs.": {"ru": "Общее количество вкладок."},
	"Index of current tab. Index starts with 0.": {"ru": "Индекс текущей вкладки. Индексация начинается с 0."},
	"Number of tabs": {"ru": "Количество вкладок"},
	"Current tab index": {"ru": "Индекс текущей вкладки"},
	"Hold ctrl key. Open link in a new tab.": {"ru": "Зажать клавишу ctrl. Открыть ссылку в новой вкладке."},

	"Cursor position X": {"ru": "Положение курсора X"},
	"Cursor position Y": {"ru": "Положение курсора Y"},
	"Browser scroll X": {"ru": "Положение прокрутки X"},
	"Browser scroll Y": {"ru": "Положение прокрутки Y"},
	"Browser width": {"ru": "Ширина браузера"},
	"Browser height": {"ru": "Высота браузера"},
	"Get current browser size, cursor and scroll position.": {"ru": "Получить текущий размер браузера, положение курсора и прокрутки."},
	"In order to change browser resolution, use \"Resize\" action.": {"ru": "Чтобы изменить размеры браузера, используйте действие \"Разрешение\"."},
	"In order to change current scroll, use \"Scroll\" action.": {"ru": "Чтобы изменить текущее положение прокрутки, используйте действие \"Прокрутка\"."},
	"In order to change cursor position, use \"Move on element\" action.": {"ru": "Чтобы изменить текущее положение курсора, используйте действие \"Двигать Мышь\"."},
	"Current cursor coordinates relative to screen position.": {"ru": "Текущие координаты курсора относительно экрана."},
	"Current scroll value.": {"ru": "Текущее положение прокрутки."},
	"Cursor relative position X": {"ru": "Относительное положение курсора X"},
	"Cursor relative position Y": {"ru": "Относительное положение курсора Y"},
	"Cursor absolute position X": {"ru": "Абсолютное положение курсора X"},
	"Cursor absolute position Y": {"ru": "Абсолютное положение курсора Y"},
	"Relative X": {"ru": "Относительные координаты X"},
	"Relative Y": {"ru": "Относительные координаты Y"},
	"Absolute X": {"ru": "Абсолютные координаты X"},
	"Absolute Y": {"ru": "Абсолютные координаты Y"},
	"Integer value, offset relative to web page edge.": {"ru": "Целое значение, смещение относительно края веб-страницы."},
	"Current cursor coordinates relative to web page edge.": {"ru": "Текущие координаты курсора относительно края веб-страницы."},
	"Current browser viewport width, this doesn't include space which takes adress bar or native window. Works same as window.innerWidth.": {"ru": "Текущая ширина браузера, это значение не включает пространство, которое занимает адресная строка или окно браузера. Работает так же, как window.innerWidth."},
	"Current browser viewport height, this doesn't include space which takes adress bar or native window. Works same as window.innerHeight.": {"ru": "Текущая высота браузера, это значение не включает пространство, которое занимает адресная строка или окно браузера. Работает так же, как window.innerHeight."},


	"Use touch screen": {"ru": "Использовать сенсорный экран"},
	"Enable touch screen for current browser session.": {"ru": "Включить эмуляцию сенсорного экрана для текущей сессии браузера."},
	"Enable touch screen": {"ru": "Включить эмуляцию сенсорного экрана"},
	"Desktop mode": {"ru": "Десктопный режим"},
	"Enable touch screen.": {"ru": "Включить эмуляцию сенсорного экрана."},
	"Touch screen will be enabled automatically after changing fingerprint, so this action is not required to call explicitly.": {"ru": "Сенсорный экран будет включен автоматически после изменения отпечатка, поэтому это действие не требуется вызывать явно."},
	"In touch mode browser will behave exactly the same as mobile browser: mouse movement events won't be sent, click events will be replaced with touch events, lots of browser internal methods will be modified, etc.": {"ru": "В режиме cенсорного экрана браузер будет вести себя точно так же, как мобильный браузер: события движения мыши не будут отправляться, клики мыши будут заменены событиями касания, многие внутренние методы браузера также будут модифицированы, и т. д."},
	"Special keys like TAB, CTRL or arrows will remain functional, but browser won't receive any notifications about these events.": {"ru": "Специальные клавиши, такие как TAB, CTRL или стрелки на клавиатуре, останутся функциональными, но браузер не будет получать никаких уведомлений об этих событиях."},
	"Mouse wheel will be replaced with swipes.": {"ru": "События колеса мыши будет заменено свайпами."},
	"Special keys": {"ru": "Специальные клавиши"},


	"Use mouse wheel or touch": {"ru": "Использовать колесо мыши или касания"},
	"If \"Use mouse wheel or touch\" is checked, scrolling will be emulated as if it will be done by a real user. Mouse wheel will be used in desktop environment and touch screen in mobile. If checkbox is unchecked, scroll will be performed instantly.": {"ru": "Если выбрана настройка \"Использовать колесо мыши или касания\", прокрутка будет выполнена так, как если бы ее делал реальный человек. Колесо мыши будет использоваться для настольного ПК и касания для сенсорного экрана в мобильном телефоне. Если флажок не установлен, прокрутка будет выполняться мгновенно."},


	"Current element xml": {"ru": "Код текущего элемента"},
	"Loads previous url from a history list.": {"ru": "Открыть предыдущий url."},
	"This is the same as clicking the \"Back button\" in the browser.": {"ru": "Это действие работает так же, как нажатие на кнопку \"Назад\" в браузере."},
	"If current page is first, this action will load empty page.": {"ru": "Если текущая страница загружена первой, это действие загрузит пустую страницу."},
	"Previous Page": {"ru": "Предыдущая Страница"},
	"Combobox.": {"ru": "Выпадающий список."},
	"In order to automate combobox input you need to use keyboard - start typing option that you want to select and then hit ENTER.": {"ru": "Чтобы автоматизировать выбор элемента из выпадающего списка, вам нужно использовать клавиатуру - начните набирать ту опцию, которую хотите выбрать, и затем нажмите ENTER."},
	"Proxy type will be extracted from proxy line": {"ru": "Тип прокси будет извлечен из строки прокси"},
	"Parameter name is used to identify parameter, could be any string.": {"ru": "Имя параметра используется для его идентификации, может быть любой строкой."},
	"Variable which will contain parameter value.": {"ru": "Переменная, которая будет содержать значение параметра."},
	"Parameter name": {"ru": "Имя параметра"},
	"Get specified parameter value for current function.": {"ru": "Получить значение параметра для текущей функции."},
	"Every function can have any number of parameters, each of them are identified by its name.": {"ru": "Каждая функция может иметь любое количество параметров, каждый из которых идентифицируется с помощью имени."},
	"Consider following example, you have a function which loads certain url parses its content and returns result. In that case, function will have one parameter - page url, you can name it whatever you want: \"Url\", \"Page Url\", etc. \"Get Function Parameter\" action is used to obtain actual url value(or any other parameter value) for current function run. These parameters may be different for each function run, for example, it may be called for different urls: \"url1\", \"url2\", etc any number of times from any place inside code. With the help of functions you can call your code as many times as you want without duplicating whole code.": {"ru": "Рассмотрим следующий пример - есть функция, которая загружает определенный url, парсит содержимое страницы и возвращает результат. В этом случае функция будет иметь один параметр - url страницы, вы можете назвать ее как угодно: \"url\", \"урл страницы\" и т. д. Действие \"Получить Параметр Функции\" используется для получения текущего значения url(или любого другого параметра) с которым была запущена функция. Эти параметры могут отличаться для каждого запуска функции, например, она может вызываться для разных url: \"url1\", \"url2\", любое число раз из любого места внутри кода. Таким образом, с помощью функций вы можете избежать дублирования кода."},
	"Actual parameter values are set inside \"Call function\" action.": {"ru": "Значения параметров устанавливаются из действия \"Вызов функции\"."},
	"In order to change function parameter definitions or add a new one, use function manager, it is located in the bottom-left corner of the interface.": {"ru": "Чтобы изменить параметры функции или добавить новые, используйте менеджер функций, он расположен в нижнем левом углу интерфейса."},
	"This action will only works if execution point is inside function, if it is placed inside \"Main\" function, return value will be null.": {"ru": "Это действие будет работать только в том случае, если точка выполнения находится внутри функции, если она находится внутри функции \"Main\", возвращаемое значение будет null."},
	"If parameter name doesn't exist, this action will return null.": {"ru": "Если заданного имени параметра не существует, это действие вернет null."},
	"Return value": {"ru": "Возвращаемое значение"},
	"Value, which contains result of function work. It will be placed into variable defined in \"Call function\" action, so it can be used after function is finished. If function does not provide any return value, leave this field empty": {"ru": "Значение, которое содержит результат работы функции. Оно будет помещено в переменную, определенную в действии \"Вызов функции\", так чтобы его можно было использовать после завершения функции. Если функция не имеет возвращаемого значения, оставьте это поле пустым"},
	"Immediately interrupt current function call. This action works only if placed inside function.": {"ru": "Немедленно прервать текущий вызов функции. Это действие работает, только если оно расположено внутри функции."},
	"After launch this action stops function immediately, execution point is moved to the next action after \"Call Function\".": {"ru": "После запуска это действие немедленно останавливает функцию, точка выполнения перемещается к следующему действию после \"Вызов функции\"."},
	"Action will return data specified in \"Return value\" parameter into variable defined in \"Call Function\" action. This data contains result of function work.": {"ru": "Действие вернет данные, указанные в параметре \"Возвращаемое значение\", в переменную, определенную в действии \"Вызов функции\". Эти данные содержат результат работы функции."},
	"Consider following example, you have a function which loads certain url, parses its content and returns result. In that case, function will have one parameter - page url, and return value, which will contain page content. With help of \"Return\" action you can set page content as result of function work.": {"ru": "Рассмотрим следующий пример - есть функция, которая загружает определенный url, парсит содержимое страницы и возвращает результат. В этом случае функция будет иметь один параметр - url страницы и возвращаемое значение, которое в котором будет находиться содержимое страницы. С помощью действия \"Return\" вы можете вернуть содержимое страницы как результат работы функции."},


	"Error occurred": {"ru": "Произошла ошибка"},
	"Current loop repetition": {"ru": "Текущее повторение цикла"},
	"Current data": {"ru": "Текущие данные"},

	"Each line must contain either file path or extension id or extension url, examples:\nc:/path/to/extension/\nhttps://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif\npadekgcemlokbadohgkifijomclgjgif": {"ru": "Каждая строка должна содержать либо путь к файлу, либо id расширения, либо url расширения, примеры:\nc:/путь/к/расширению/\nhttps://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif\npadekgcemlokbadohgkifijomclgjgif"},
	"Chrome extension can be used in BAS by inputting either extension id or extension url or extension path into this field. The easiest way to start using extension is to copy paste url from chrome web store.": {"ru": "Расширение Chrome можно использовать в BAS, введя в это поле либо id расширения, либо url расширения, либо путь к расширению. Самый простой способ начать использовать расширение - скопировать url из магазина Chrome в это поле."},
	"Load extension by url": {"ru": "Загрузить расширение по url"},
	"Load extension by id": {"ru": "Загрузить расширение по id"},
	"Chrome extension can be used in BAS by inputting either extension id or extension url or extension path into \"Extensions\" field. Extension id is a unique string with 32 length, for example, padekgcemlokbadohgkifijomclgjgif. Extension url is the main url of extension in": {"ru": "Расширение Chrome можно использовать в BAS, введя либо id расширения, либо url расширения, либо путь к расширению в поле \"Расширения:\". Id расширения - это уникальная строка длиной 32, например padekgcemlokbadohgkifijomclgjgif. Url расширения - это основной адрес расширения в"},
	"chrome web store": {"ru": "магазине Chrome"},
	"It has chrome.google.com domain, for example: https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif. Extension path is path to unpacked extension. Each path must contain extracted extension, a folder with manifest.json and other files. See": {"ru": "Его домен - chrome.google.com, например: https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif. Путь расширения - это путь к распакованным файлым расширения. Каждый путь должен содержать папку с manifest.json и другими файлами. Смотрите"},
	"for information about unpacking extensions and other info about using them": {"ru": "для инструкций касающихся распаковки расширений и другой информации об их использовании"},
	"here": {"ru": "здесь"},
	
	"Load extension from specified folder. File c:/extensions/background/manifest.json must exists": {"ru": "Загрузить расширение из заданной папки. Файл c:/extensions/background/manifest.json обязательно должен существовать"},
	"To use extension, you must download it and specify full path. See": {"ru": "Чтобы использовать расширение, вы должны загрузить его и указать полный путь к файлу. Смотрите"},
	"for more info": {"ru": "чтобы узнать больше"},
	
	"Options below will help you to adjust different browser settings to match new proxy, for example: timezone and geolocation. Default settings will work fine.": {"ru": "Параметры ниже помогут вам задать различные настройки браузера в соответствии с новым прокси, например: часовой пояс и месторасположение. Настройки по умолчанию обеспечат оптимальную работу."},
	"Change timezone": {"ru": "Изменить часовой пояс"},
	"Change browser timezone according to proxy ip. For example, if proxy is located in United Kingdom, then browser timezone offset will be equal to 0(UTC+00:00). You can set timezone to custom value with 'Timezone' module.": {"ru": "Изменить часовой пояс браузера в соответствии с прокси. Например, если прокси находится в Англии, то часовой пояс браузера будет изменен на UTC+00:00. Вы можете задать произвольное значение с помощью модуля 'Часовой пояс'."},
	"Change timezone.": {"ru": "Изменить часовой пояс."},
	"Don't change timezone.": {"ru": "Не изменять часовой пояс."},
	"Change geolocation": {"ru": "Изменить месторасположение"},
	"Change browser geolocation according to proxy ip. Location will be set to a point which is close to proxy longitude/latitude. You can set geolocation to custom value with 'Timezone' module.": {"ru": "Измененить месторасположение(координаты) браузера в соответствии с положением прокси. Оно будет установлено в точку, близкую к долготе/широте прокси. Вы можете задать произвольное значение с помощью модуля 'Часовой пояс'."},
	"A browser request to access your geolocation will be accepted. Browser location will be set to proxy location.": {"ru": "Запрос браузера на доступ к вашему месторасположению будет принят. Расположение браузера будет установлено в соответствии с прокси."},
	"Don't change geolocation. A browser request to access your geolocation will be rejected.": {"ru": "Не менять месторасположение. Запрос браузера на доступ к вашему месторасположению будет отклонен."},
	"Change WebRTC ip": {"ru": "Изменить ip WebRTC"},
	"Replace ip exposed by WebRTC with proxy ip. If you want WebRTC to return custom ip, please use 'Browser Settings' action.": {"ru": "Заменить ip, возвращаемый WebRTC на ip прокси. Если вы хотите задать произвольное значение, используйте действие 'Настройки браузера'."},
	"Enable WebRTC, replace ip exposed by WebRTC with ip of a proxy.": {"ru": "Включить WebRTC, заменить ip, возвращаемый WebRTC на ip прокси."},
	"Don't change WebRTC state.": {"ru": "Не менять состояние WebRTC."},
	"Detect external ip": {"ru": "Определить внешний ip"},
	"Detect proxy ip by querying external service. This option may be used in case if ip that you are using to connect proxy doesn't match ip which is visible to site(external ip). BAS will use an ip.bablosoft.com service to detect external ip and will set 'Change timezone', 'Change geolocation' and 'Change WebRTC ip' according to correct ip value.": {"ru": "Определить ip через внешний сервис. Этот параметр может быть полезен в том случае, если ip, который вы используете для подключения прокси, не соответствует ip видимому сайтом(внешнему ip). BAS будет использовать сервис ip.bablosoft.com для получения значения внешнего ip, а параметры 'Изменить часовой пояс', 'Изменить месторасположение' и 'Изменить ip WebRTC' будут изменены в соответствии с полученным значением ip."},
	"Use external ip obtained by service.": {"ru": "Использовать ip полученный из сервиса."},
	"Don't use external service, detect ip from proxy string.": {"ru": "Использовать ip полученный из строки прокси."},
	"'Security settings' will help you to adjust different browser settings to match new proxy, for example: timezone and geolocation. This will make your application less detectable, check information for each individual setting to understand what are they needed for. Default settings will work fine.": {"ru": "'Настройки безопасности' задают различные настройки браузера в соответствии с новым прокси, например: часовой пояс и месторасположение. Эти сделает ваше приложение менее обнаруживаемым. Проверьте информацию для каждого отдельного параметра, чтобы понять, для чего он нужны. Настройки по умолчанию обеспечат оптимальную работу."},

	"Use default server url, http://rucaptcha.com for rucaptcha, etc": {"ru": "Использовать url по умолчанию, например, http://rucaptcha.com для rucaptcha."},
	"Security settings": {"ru": "Настройки безопасности"},
	

	"Replace ips exposed by WebRTC with values from 'WebRTC ip list' field.": {"ru": "Заменить ip, возвращаемые WebRTC значениями из поля 'WebRTC список ip'."},
	"Replace ips exposed by WebRTC with values from this field. Works only if 'WebRTC' parameter is set to 'replace'. Each line must contain single ip. This setting is for debugging purposes only, the proper way to set is using 'Proxy' action.": {"ru": "Заменить ip, возвращаемые WebRTC значениями из этого поля. Эта настройка работает только если параметр 'WebRTC' установлен в значение 'replace'. Каждая строка этого поля должна содержать один ip. Этот параметр предназначен только для целей отладки, правильный способ изменения WebRTC ip - использовать действие 'Прокси'."},
	"Local address": {"ru": "Локальный адрес"},
	"Remote address": {"ru": "Внешний адрес"},
	"Remove all ips": {"ru": "Удалить все ip"},
	"WebRTC ip list": {"ru": "WebRTC список ip"},

	"Notifications.": {"ru": "Уведомления."},
	"Site requests permission to show notifications. You can allow or deny it. This action must be used <strong>before</strong> notification is requested.": {"ru": "Сайт запрашивает разрешение на отображения уведомлений. Вы можете либо разрешить их или запретить. Это действие должно быть вызвано <strong>перед</strong> запросом на показ уведомлений."},
	"Allow notifications": {"ru": "Разрешать уведомления"},
	"Allow or deny browser notifications.": {"ru": "Разрешать или запрещать уведомления."},
	"In a normal browser notifications are displayed on a user desktop. Before start receiving them user must enable notifications. Using this action is the same as enabling or disabling notifications depending on input parameter.": {"ru": "В обычном браузере уведомления отображаются на рабочем столе пользователя. Перед тем как начать их получать пользователь должен разрешить уведомления. Вызов этого действия идентичен запрету или разрешению уведомлений в зависимости от значения параметра."},
	"Allow or deny notifications.": {"ru": "Разрешать или запрещать уведомления."},
	"Allow notifications": {"ru": "Разрешать уведомления"},
	"Always allow notification for all subsequent requests.": {"ru": "Всегда разрешать уведомления для всех следующих запросов."},
	"Always deny notification for all subsequent requests.": {"ru": "Всегда запрещать уведомления для всех следующих запросов."},
	"By default notifications are disabled.": {"ru": "По умолчанию уведомления отключены."},
	"If you want to enable notifications only for certain sites, use this action several times before each site is loaded.": {"ru": "Если вы хотите включать уведомления только для определенных сайтов, используйте это действие несколько раз перед загрузкой каждого сайта."},
	"This action must be called before any page which shows notifications is loaded.": {"ru": "Это действие необходимо вызвать до того, как будет загружена любая страница, на которой отображаются уведомления."},
	"IMPORTANT: Notifications are often used together with service workers and service worker works only with profiles enabled. So you may want to use local profile together with this action.": {"ru": "ВАЖНО: уведомления часто используются вместе с сервисами, а они работают только с включенными профилями. Таким образом, вместе с этим действием лучше использовать локальные профили."},
	"screen1": {"ru": "скрин1"},
	"screen2": {"ru": "скрин2"},
	"Remove all extensions": {"ru": "Убрать все расширения"},
	"Don't change": {"ru": "Не изменять"},

	"Flash may expose your identity and generally is not safe for usage. If you want to enable it, change this setting and install flash on your PC. Instruction may be found in a help section below.":{"ru": "Использование флеш может раскрыть ваш ip, поэтому включать его не рекомендуется. Если вы все же хотите включить флеш, измените эту настройку и установите его на вашем ПК, инструкции находятся в блоке ниже."},
	"Enable WebRTC":{"ru": "Использовать WebRTC"},
	"WebRTC may show your real ip even if you are using proxy":{"ru": "Использование WebRTC также может раскрыть ваш ip даже если вы используете прокси."},
	"Don't use WebRTC":{"ru": "Отключить WebRTC"},
	"Use WebRTC":{"ru": "Включить WebRTC"},
	"Flash":{"ru": "Флеш"},
	"Canvas is html element with graphics like: shapes, images, text, etc. Different browsers and operation systems render canvas content slightly different. These differences may be exploited by sites to identify you among other users. BAS allows you protect you by disabling canvas or add custom noise to canvas content.":{"ru": "Canvas - это html элемент, который содержит графику: разнообразные фигуры, изображения, текст, и т. д. Разные браузеры и операционные системы рисуют эти элементы немного по разному. Сайт может использовать эти отличия чтобы идентифицировать вас среди других пользователей. BAS позволяет защитить вас отключая canvas элемент полностью или добавляя шум к получаемому изображению."},
	"Use canvas":{"ru": "Использовать canvas"},
	"Don't use canvas":{"ru": "Не использовать canvas"},
	"Add random noise to canvas. For debug purpose only, use FingerprintSwitcher to change it.":{"ru": "Добавить шум к изображению canvas. Только для целей отладки, используйте сервис FingerprintSwitcher чтобы задать шум."},
	"Canvas noise pattern" :{"ru": "Шаблон шума canvas"},

	"This setting is for debugging purposes only, the proper way to set is using FingerprintSwitcher":{"ru": "Эта настройка находится здесь только для целей отладки, правильный метод добавления шума - использование сервиса FingerprintSwitcher"},
	"Use <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> service and <a href=\"#!/FingerprintSwitcher_Get\">Get Fingerprint</a> action to add noise to canvas.":{"ru": "Используйте сервис <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> и действие <a href=\"#!/FingerprintSwitcher_Get\">Получить отпечаток</a> чтобы добавить шум в canvas."},

	"Use <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> service and <a href=\"#!/FingerprintSwitcher_Get\">Get Fingerprint</a> action to add noise to audio.":{"ru": "Используйте сервис <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> и действие <a href=\"#!/FingerprintSwitcher_Get\">Получить отпечаток</a> чтобы добавить шум в audio."},


	"Site may identify user by generating sound and reading it as a data. Different browsers and operating systems will do that operation with slightly different results. BAS allows to protect you by disallowing browser to obtain sound data or by adding custom noise to result.":{"ru": "Сайт может идентифицировать пользователя, генерируя звук и считывая его как массив данных. Различные браузеры и операционные системы будут выполнять эту операцию с немного разными результатами. BAS позволяет защитить вас, запретив браузеру получать звуковые данные или добавляя шум к этим данным."},
	"Enable audio api":{"ru": "Включить audio api"},
	"Disable audio api methods used for fingerprinting":{"ru": "Отключить методы audio api, используемые для получения отпечатков"},
	"Add random noise to generated sound. For debug purpose only, use FingerprintSwitcher to change it.":{"ru": "Добавить шум к получаемому звуку. Только для целей отладки, используйте сервис FingerprintSwitcher чтобы задать шум."},

	"Audio noise pattern":{"ru": "Шаблон шума audio"},

	"Change browser language according to proxy country.":{"ru": "Изменить язык браузера в зависимости от страны прокси."},
	"Don't change browser language, default will be 'en-US,en;q=0.9'.":{"ru": "Не изменять зык браузера, значение по умолчанию - 'en-US,en;q=0.9'."},
	"Change browser language":{"ru": "Изменить язык браузера"},

	

	"Change browser language according to country of proxy. This setting will change 'Accept-Language' header as well as navigator.language and navigator.languages javascript properties. By default language value will be equal to language and country code separated with dash, for example 'de-DE' for Germany. This value is valid, but most browsers uses more complicated strings. If you want to make BAS look like real browser, use FingerprintSwitcher service, it will set language to more natural value, for example for iPhone from Germany it will equal 'de, en;q=0.8, *;q=0.01'. You can also set this value explicitly by using 'Set Header' action" : {"ru":"Изменить язык браузера в зависимости от страны прокси. Этот параметр изменит заголовок Accept-Language, а также свойства javascript navigator.language и navigator.languages. По умолчанию значение языка будет состоять из языка и кода страны, разделенными дефисом, например 'de-DE' для Германии. Это значение корректное, но большинство браузеров использует более сложные варианты. Если вы хотите, чтобы BAS выглядел как настоящий браузер, используйте сервис FingerprintSwitcher, он установит язык более в более естественное значение, например, для iPhone из Германии оно будет равно 'de, en;q=0.8, *;q=0.01'. Вы также можете установить это значение явно, используя действие 'Установить заголовок'"},

	"Use <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> service and <a href=\"#!/FingerprintSwitcher_Get\">Get Fingerprint</a> action to add noise to WebGL.":{"ru": "Используйте сервис <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">FingerprintSwitcher</a> и действие <a href=\"#!/FingerprintSwitcher_Get\">Получить отпечаток</a> чтобы добавить шум в WebGL."},
	"WebGl also may identify you among other users in pretty same ways as canvas.":{"ru": "WebGl также как и canvas позволяет идентифицировать вас среди других пользователей."},
	"Don't use WebGL":{"ru": "Не использовать WebGL"},
	"Use WebGL":{"ru": "Использовать WebGL"},
	"Add random noise to WebGL picture. For debug purpose only, use FingerprintSwitcher to change it.":{"ru": "Добавить шум к изображению WebGL. Только для целей отладки, используйте сервис FingerprintSwitcher чтобы задать шум."},
	"WebGL noise pattern":{"ru": "Шаблон шума WebGL"},
	"WebGL vendor can expose your real hardware through javascript, so it is good idea to change it. Empty string will leave your real settings. This setting is for debugging purposes only, the proper way to set is using FingerprintSwitcher":{"ru": "Через свойство WebGL vendor сайт может узнать характеристики вашего оборудования через javascript, так что имеет смысл менять это значение. Пустое поле оставит реальное значение. Эта настройка находится здесь только для целей отладки, правильный метод добавления шума - использование сервиса FingerprintSwitcher"},
	"Vendor example":{"ru": "Пример поля из реального браузера"},
	"WebGL renderer can expose your real hardware through javascript, so it is good idea to change it. Empty string will leave your real settings. This setting is for debugging purposes only, the proper way to set is using FingerprintSwitcher":{"ru": "Через свойство WebGL renderer сайт может узнать характеристики вашего оборудования через javascript, так что имеет смысл менять это значение. Пустое поле оставит реальное значение. Эта настройка находится здесь только для целей отладки, правильный метод добавления шума - использование сервиса FingerprintSwitcher"},
	"Renderer example":{"ru": "Пример поля из реального браузера"},
	"Rendering":{"ru": "Визуализация"},
	"Extensions":{"ru": "Расширения"},
	"To start BAS with flash enabled besides changing \"Flash\" setting you also need to install flash on your PC. Instruction is located":{"ru": "Чтобы включить флеш, вам нужно помимо изменения настройки \"Флеш\" в этом действии также установить флеш на ваш ПК. Инстукция расположена "},
	
	"Line with several elements separated with \":\" or \",\" or \";\"": {"ru": "Строка с несколькими элементами разделенными \":\" или \",\" или \";\""},
	"This action is deprecated. It is recommended to use the new <a href=\"#!/parse_csv_string\">Parse CSV string</a> action.": {"ru": "Это действие устарело. Рекомендуется использовать новое действие <a href=\"#!/parse_csv_string\">Парсить CSV строку</a>."},
	"List of variables separated by commas. Results will be written into that variables.": {"ru": "Список переменных разделенных запятыми. В эти переменные будут записаны результаты."},
		"Parses line, which contains several elements. Elements are separated with one of following symbols: \":\", \";\", \",\".": {"ru": "Парсить сторку содержащую несколько элементов. Элементы разделяются одним из следующих символов: \":\", \";\", \",\"."},
	"For example, if you apply this action to line email@gmail.com:mypass1 and set \"Variables To Save Result\" param to USERNAME,PASSWORD, than this action will set [[USERNAME]] variable to email@gmail.com and [[PASSWORD]] variable to mypass1.": {"ru": "Например, если вы примените это действие к строке email@gmail.com:mypass1 и установите параметр \"Переменные, в которые сохранять результат\" в USERNAME,PASSWORD, то это действие сохранит email@gmail.com в переменную [[USERNAME]] и mypass1 в переменную [[PASSWORD]]."},
	"If \"Variables To Save Result\" will contain more variables, than number of elements in string, than extra variables will be left unchanged.": {"ru": "Если параметр \"Переменные, в которые сохранять результат\" будет содержать больше переменных, чем количество элементов в строке, то лишние переменные не будут изменены."},
	"Use \"Parse String\" action if you want to get list as a result.": {"ru": "Используйте действие \"Парсить строку\" из модуля Список если хотите получить результат в виде списка."},
	"This action also may parse strings in csv format.": {"ru": "Это действие также может парсить строки в формате csv."},

	"Output avatar": {"ru": "Вывести урл автара"},
	"Output created account": {"ru": "Вывести созданный аккаунт"},
	"Data. Can contain variables and resources.": {"ru": "Данные. Может содержать переменные и ресурсы."},
	"Output data to the results tab.": {"ru": "Вывести данные на вкладку результатов."},
	"This action suites best to output raw data, like accounts registered, posts parsed, etc.": {"ru": "Это действие лучше всего подходит для вывода необработанных данных, таких как учетные записи, url профилей и т. д."},
	"If you want to write message, with date and thread number, better to use \"Log\" action.": {"ru": "Если вы хотите вывести сообщение с датой и номером потока, лучше использовать действие \"Лог\"."},
	"Before running script you can create up to nine tabs for different purposes and give names for them, for example, one for accounts, one for posts, avatars, etc.": {"ru": "Перед запуском скрипта вы можете создать до девяти вкладок под разные данные и указать имена для них, например, одну для аккаунтов, одну для сообщений, для аватаров и т. д."},
	"\"Result Placeholder\" parameter sets tab number, numeration is starting from from 1.": {"ru": "Параметр \"Номер результата\" задает номер вкладки, нумерация начинается с 1."},
	"If you want to output data to file only, use this": {"ru": "Если вы хотите выводить данные только в файл, используйте эту"},

	"Clear log window and log file.": {"ru": "Очистить окно лога и файл лога."},
	"Output resource": {"ru": "Вывод ресурса в лог"},
	"Message about account creation success": {"ru": "Сообщение об успешной регистрции аккаунта"},
	"Output string": {"ru": "Вывод строки"},
	"Message text. Can contain variables and resources.": {"ru": "Текст сообщения. Может содержать переменные и ресурсы."},
		"Write message to log. This message will be shown to user and should inform him about events occurring during script execution.": {"ru": "Вывести сообщение в лог. Это сообщение будет показано пользователю и должно сообщать ему о событиях, происходящих во время выполнении скрипта."},
	"Log messages is also written to file.": {"ru": "Сообщение также будет записано в файл."},
	"BAS will append some information to message: date, thread number, action id. Thats why this action is not good if you want to output raw data, account list for example. Use \"Result\" action to do that.": {"ru": "BAS также добавит некоторую информацию к сообщению: дату, номер потока, идентификатор действия. Вот почему это действие не очень хорошо подходит, если вы хотите, выводить необработанные данные, например, список аккаунтов. В таком случае используйте действие \"Результат\"."},
	"If you want to change message color, use \"Execute code\" action and api call log_html(html, text).": {"ru": "Если вы хотите изменить цвет сообщения, используйте действие \"Выполнить код\" вместе с вызовом api log_html(html, text)."},

	"Maximum fail number as integer. BAS will stop this action and all new thread created by it after maximum fail number is reached.": {"ru": "Максимальное количество неудачных выполнений. БАС остановит выполнение этого действия и всех потоков созданных им после того, как максимальное количество неудачных выполнений будет достигнуто."},
	"Maximum success number as integer. BAS will stop this action and all new thread created by it after maximum success number is reached.": {"ru": "Максимальное количество успешных выполнений. БАС остановит выполнение этого действия и всех потоков созданных им после того, как максимальное количество успешных выполнений будет достигнуто."},
	"Thread number as integer. BAS will create specified here number of threads after action start.": {"ru": "Количество потоков как целое число. БАС создаст заданное здесь количество потоков после вызова этого действия."},
	"Call \"End Script\" inside specified function to stop this action manually.": {"ru": "Вызовите действие \"прервать скрипт\" внутри заданной функции чтобы остановить скрипт вручную."},
		"Execute function specified number of times with specified number of threads. You can think of it as running another script inside current thread.": {"ru": "Выполнить функцию заданное число раз с заданным количеством потоков. Это можно представить как запуск другого скрипта внутри текущего потока."},
	"After BAS encounters this action it starts specified number of threads and runs selected function inside them. Thread which called this actions stops until specified number of success or specified number of fails will be reached, but other threads continue execution.": {"ru": "После того, как BAS начнет выполнять это действие, он запустит указанное количество потоков с заданной функцией. Поток, который вызвал это действие, останавливается до тех пор, пока не будет достигнут заданное количество успешных выполнений или заданное количество неудачных выполнений, а другие потоки продолжают выполнение."},
	"Recently started threads don't know about variables or browser state of thread, who started them, so data exchange between starter thread and recently created can only be performed with global variables or resources.": {"ru": "Недавно начатые потоки не знают о переменных или состоянии браузера в потоке, который их запускали, поэтому обмен данными между стартовым потоком и недавно созданными может осуществляться только с помощью глобальных переменных или ресурсов."},
	"Example #1. You have a script which parses a list of links and want to get its content. Of cource, you can create a loop, iterate over them and parse. But in this case links will be processed one by one - sequentially. With this action you can process them in parallel. Create resource, write all links there and call parsing functions in several threads": {"ru": "Пример #1. У вас есть скрипт, который парсит список ссылок и должен получить их содержимое. Конечно, вы можете создать цикл, и перебрать все ссылки одна за другой. Но в этом случае ссылки будут обрабатываться последовательно. С помощью данного действия вы можете обработать их параллельно. Создайте ресурс, поместите туда все ссылки и вызовите функцию обработки в нескольких потоках"},
	"Example #2. You need call some function before script start and another after script finish. In that case you can set \"Thread number\", \"Success number\" and \"Fail number\" to 1 in main script. Create 3 functions: MainScript, OnStart and OnEnd and call OnStart and OnEnd with one thread, MainScript function should be called with thread and success and fail number same as whole script": {"ru": "Пример #2. Вам нужно вызвать некоторую функцию до начала скрипта, а другую - после завершения скрипта. В этом случае вы можете установить \"Номер потока\", \"Количество успехов\" и \"Количество неудач\" в 1 в главном скрипте. Создать 3 функции: MainScript, OnStart и OnEnd и вызвать OnStart и OnEnd с количеством потом равным 1, а функцию MainScript вызывать с параметрами такими же, как и основной скрипт"},
	"This action never fails even if fail number is reached, so you don't need to wrap it in ignore errors block.": {"ru": "Это действие никогда не завершается с ошибкой, даже если достигнуто максимальное количество неудач, поэтому вам не нужно оборачивать его в блок игнорирования ошибок."},


	"If you see, that your code gets bigger, good practice would be to select script part which does common task, and move it inside new function.": {"ru": "Если вы видите, что ваш код становится трудночитаемым, хорошей идеей было бы выбрать часть скрипта, которая выполняет общую задачу, и переместить ее в новую функцию."},
	"Functions in programming languages has input parameters and return values. For example, posting function may have post text as input parameter and post url on success and empty string on failure as return value. This allows one function do almost the same, but with some differences, posting different text for example. You can't set function parameters or return value in BAS, but you can achive same result with variables. To do that, define variable [[POST_TEXT]] and set it right before function call, thеn read this variable inside function.": {"ru": "Функции в языках программирования могут иметь входные параметры и возвращаемые значения. Например, функция постинга может содержать текст сообщения в качестве входного параметра и url поста в качестве возвращаемого значения. Это позволяет одной функции работать почти одинаково, но с некоторыми отличиями, например, размещать другой текст. Вы не можете установить параметры функции или возвращаемое значение в BAS, но вы можете добиться такого же результата с помощью переменных. Для этого определите переменную [[POST_TEXT]] и измените ее прямо перед вызовом функции, потом используйте эту переменную внутри функции."},
	"Another advantage is that one function may be executed as many times as you want from any place in the script. This helps to avoid code duplication. If you want to update function, you need to do that only once, not in every place where it used.": {"ru": "Другим преимуществом является то, что одна функция может выполняться столько раз, сколько вы хотите и из любого места. Это помогает избежать повторения кода. Если вы хотите изменить функцию, вам нужно сделать это только один раз, а не в любом месте, где она используется."},
	"Functions may be executed(with this action), this means that every action inside it will be executed sequentially.": {"ru": "Функция может быть вызвана(с помощью этого действия), это означает, что каждое действие внутри нее будет выполняться последовательно."},
	"Functions are containers, which holds action list. It helps to group several actions which does same task. For example, there can be function which logins to account, function that checks account balance, etc. It makes your code clear and well organized.": {"ru": "Функции - это контейнеры, в которых содержится список действий. Они помогают группировать несколько действий, которые выполняют одну и ту же задачу. Например, может быть функция, которая логинится на сайте, функция, которая проверяет баланс и т. д. Это делает ваш код понятным и хорошо организованным."},
	"Function name may be selected by pressing on <i class=\"fa fa-dot-circle-o\"></i> button.": {"ru": "Имя функции можно задать, нажав кнопку <i class=\"fa fa-dot-circle-o\"></i>"},
	"Function must be defined beforehand. BAS allows define functions through \"Function Tab\"": {"ru": "БАС позволяет добавлять функции через соответствующую вкладку"},
	"Execute function and proceed with next action.": {"ru": "Выполнить функцию и перейти к следующему действию."},
	"Convert variable to integer": {"ru": "Преобразовать переменную в целое число"},
	"Decrement": {"ru": "Уменьшить"},
	"Increment": {"ru": "Увеличить"},
	"The integer to which the variable will be incremented. If the value has a non-numeric type, then it will be converted.": {"ru": "Целое число, на которое будет увеличена переменная. Если значение имеет не чисельный тип, то оно будет преобразовано."},
	"Variable name. This variable will be changed.": {"ru": "Имя переменной. Данная переменная будет изменена."},
		"This action assumes that variable has number type, if it doesn't, type of variable will be automatically converted.": {"ru": "Это действие предполагает, что переменная будет иметь чисельний тип, если это не так, то тип переменной будет преобразован автоматически."},
		"This action assumes that global variable has number type, if it doesn't, type of variable will be automatically converted.": {"ru": "Это действие предполагает, что глобальная переменная будет иметь чисельний тип, если это не так, то тип переменной будет преобразован автоматически."},
	"Parameter \"Increase variable value\" could be negative, in that case variable will be decreased.": {"ru": "Параметр \"На сколько увеличить переменную\" может быть меньше нуля, в таком случае переменная будет уменьшена на это значение."},
	"Parameter \"Increase variable value\" also could be zero, this will only convert variable to number type.": {"ru": "Параметр \"На сколько увеличить переменную\" также может быть равным нулю, это только преобразует тип переменной в чисельний."},

	"Increase variable by the specified value.": {"ru": "Увеличить переменную на заданное значение."},
	"Increase global variable by the specified value.": {"ru": "Увеличить глобальную переменную на заданное значение."},
	"If you want to set multiline variable, use template action.": {"ru": "Если вы хотите записать многострочную строку в переменную, используйте действие \"Шаблон\""},
	"Any javascript code. Works with expression type": {"ru": "Любой javascript код. Работает только вместе с типом expression"},
	"Any number. Works with int type": {"ru": "Любое число. Работает только вместе с типом int"},
	"Concat 2 variables": {"ru": "Соеденить 2 строки"},
	"Any string will work": {"ru": "Любая строка"},
	"Variable value": {"ru": "Значение переменной"},
	"The name of the variable to be created or modified.": {"ru": "Имя переменной, которая будет создана или изменена."},
	"Create new or update existing variable and set its value.": {"ru": "Создать новую переменную или изменить существующую заданным значением."},
	"Create new or update existing global variable and set its value.": {"ru": "Создать новую глобальную переменную или изменить существующую заданным значением."},
	"Variables are visible only inside current thread, use global variables if you want them to be visible inside whole script.": {"ru": "Обычные переменные видимо только внутри текущего потока, используйте глобальные переменные если вы хотите сделай так, чтобы они были видимы во всех потоках."},
	"Variable name should be in uppercase and should describe its purpose. Naming variable [[A1]] or [[A2]] could make your script very hard to read.": {"ru": "Имя переменной должно быть написано большими латинскими буквами и отражать ее назначение. Называть переменные [[A1]] или [[A2]] не рекомендуется."},
	"Global variable name should be in uppercase and should describe its purpose. Naming variable A1 or A2 could make your script very hard to read.": {"ru": "Имя глобальной переменной должно быть написано большими латинскими буквами и отражать ее назначение. Называть переменные A1 или A2 не рекомендуется."},
	"You can use that variable later inside any field by putting variable name into double square brackets like this: [[NEW_VARIABLE]]. You don't need to type it manually, just click on any field, than on \"Insert variable\" and finally select specific variable.": {"ru": "Созданную здесь переменную можно использовать позже если поместить ее имя в двойных квадратных скобках внутри любого поля: [[NEW_VARIABLE]]. Вам не нужно вводить это значение самостоятельно, просто нажмите на любое поле, затем на \"Из переменной\" и наконец выберите переменную из списка."},
	"You can use that global variable later inside any field by putting variable name into double square brackets like this: [[GLOBAL:NEW_VARIABLE]]. You don't need to type it manually, just click on any field, than on \"Insert variable\" and finally select specific variable.": {"ru": "Созданную здесь переменную можно использовать позже если поместить ее имя в двойных квадратных скобках внутри любого поля: [[GLOBAL:NEW_VARIABLE]]. Вам не нужно вводить это значение самостоятельно, просто нажмите на любое поле, затем на \"Из переменной\" и наконец выберите переменную из списка."},
	
	"\"Value of variable\" parameter by default is a string, but may also contain other variables, like this [[LOGIN]]@gmail.com, or resources. So this action also may concat strings([[PART1]][[PART2]]), update them, etc.": {"ru": "Параметр \"Значение переменной\" может содержать другие переменные, например [[LOGIN]]@gmail.сom или ресурсы. Так что это действие также может соединять строки([[PART1]][[PART2]]), обновлять их, и т. д."},
	"\"Value\" parameter by default is a string, but may also contain other variables, like this [[LOGIN]]@gmail.com, or resources. So this action also may concat strings([[PART1]][[PART2]]), update them, etc.": {"ru": "Параметр \"Значение\" может содержать другие переменные, например [[LOGIN]]@gmail.сom или ресурсы. Так что это действие также может соединять строки([[PART1]][[PART2]]), обновлять их, и т. д."},
	"By default \"Value of variable\" parameter is a string, but you can change its type to int, so variable will be number.": {"ru": "По умолчанию параметр \"Значение переменной\" является строкой, но вы можете изменить его тип на int, так что переменная будет числом."},
	"By default \"Value\" parameter is a string, but you can change its type to int, so variable will be number.": {"ru": "По умолчанию параметр \"Значение\" является строкой, но вы можете изменить его тип на int, так что переменная будет числом."},
	"Setting type to expression will set variable to result of JavaScript execution. This is very powerful mechanism. For example, to get current timestamp input Date.now() into \"Value of variable\" parameter": {"ru": "При установке типа в expression, в переменную будет записан результат выполнения джаваскрипт кода. Это очень мощный механизм. Например, чтобы получить текущее время, введите Date.now() в поле \"Значение переменной\""},
	"Setting type to expression will set variable to result of JavaScript execution. This is very powerful mechanism. For example, to get current timestamp input Date.now() into \"Value\" parameter": {"ru": "При установке типа в expression, в переменную будет записан результат выполнения джаваскрипт кода. Это очень мощный механизм. Например, чтобы получить текущее время, введите Date.now() в поле \"Значение\""},
	"You can use JavaScript functions on BAS variables, for example, [[LINE]].split(\":\")[0] will split string into two pieces and take first.": {"ru": "Вы можете применять JavaScript функции к переменным BAS, например, код [[LINE]].split(\":\")[0] разделит строку на части и возьмёт первый элемент."},

		"Ignore errors inside one or several actions and continue script execution further.": {"ru": "Игнорировать ошибки при выполнении одного или нескольких действий и продолжить выполнение скрипта дальше."},
	"If something wrong will happen during action execution, BAS will stop thread immediately and assign fail result to it. This is not very convenient, because sometimes script must recover from error. That's where \"ignore errors\" comes in handy.": {"ru": "Если при выполнении действия произойдёт ошибка, БАС остановит поток немедленно с неудачным результатом. Это может быть не очень удобно так как в некоторых случаях скрипт должен продолжить работу и после ошибки. Именно для этого может быть полезно действие \"игнорировать ошибки\"."},
	"Usage is very simple, just wrap one or several actions inside ignore errors block. Following example will ignore all page load errors": {"ru": "Использовать это действие очень просто, достаточно только обернуть одно или несколько действий в блок игнорирование ошибок. Следующий пример будет игнорировать любые ошибки во время загрузки страницы"},
	"\"Ignore errors\" can contain several actions, if any of them will fail, all following will be skipped": {"ru": "Вы можете обернуть несколько действий в блок игнорирования ошибок, если хотя бы одно из них выполнится с ошибкой, то все следующие за ним будут пропущены"},
	"You can check [[WAS_ERROR]] variable, to detect if there was error during \"Ignore Errors\" block.": {"ru": "Вы можете использовать переменную [[WAS_ERROR]] чтобы проверить, были ли ошибки во время последнего блока \"Игнорировать Ошибки\"."},
	"You can also obtain error string from [[LAST_ERROR]] variable": {"ru": "В переменной [[LAST_ERROR]] содержится текст ошибки"},
	"Wrap ignore errors into while loop to run certain actions until all of them will be executed successfully.": {"ru": "Поместите блок игнорирование ошибок в цикл while чтобы повторять определенный набор действий пока все они не отработают удачно."},
	"Using several actions inside ignore errors block could be very convenient, for example, you have split script in several stages: login, following, posting, then you can wrap each stage inside ignore errors block. If something goes wrong during following, then thread won't be stopped, user will get error message that something wrong with following, but there is no need to relogin with this account and script can try do posting.": {"ru": "Использование несколько действий внутри блока игнорирование ошибок может быть очень удобным. Например, у вас есть скрипт состоящий из нескольких стадий: вход в аккаунт, фолловинг, постинг, тогда вы можете обернуть каждую стадию в блок игнорирования ошибок. Если фолловинг завершится с ошибкой, тогда поток не будет остановлен, пользователь получит сообщение с текстом ошибки при фолловинге, а скрипт сможет продолжить работу с данным аккаунтом и перейти к постингу."},

	"Move execution point to label previously set with \"Set label\" action.": {"ru": "Переместить точку выполнения к метке ранее заданной с помощью действия 'Установить метку'."},
	"To use labels you need first to \"set label\" inside place where you want to move later, then you need to use \"move to label\"(this action) from anywhere in the script": {"ru": "Чтобы использовать метки сначала вы должны выполнить \"установить метку\" в том месте, в которое вы хотите переместить точку выполнения впоследствии, затем вам нужно использовать \"перейти к метке\"(данное действие)"},

	"Set label so execution point may be transfered to that label later.": {"ru": "Установить метку так, чтобы точка выполнения могла быть перенесена к этой метки позже."},

	"Labels helps to transfer execution point between two arbitrary places inside script.": {"ru": "Метки нужны чтобы перенести точку выполнения из одного места в другое."},
	"To use labels you need first to \"set label\"(this action) inside place where you want to move later, then you need to use \"move to label\" action from anywhere in the script": {"ru": "Чтобы использовать метки сначала вы должны выполнить \"установить метку\"(данное действие) в том месте, в которое вы хотите переместить точку выполнения впоследствии, затем вам нужно использовать действие перейти к метке"},
	"With labels you can jump inside loops, conditions, functions. If you jump inside loop, then [[CYCLE_INDEX]] variable might not be correct, and after loop body will be executed, execution point will be moved outside of the loop.": {"ru": "С помощью меток вы можете перемещать точку выполнения в циклы, условия, функции. Если вы перемещаете метку внутрь цикла, тогда переменная [[CYCLE_INDEX]] может иметь неправильное значение, и после выполнения тела цикла он завершит свою работу, а выполнение продолжится на действии установленном после цикла."},
	"One of typical use example for labels maybe setting label at the thread start and returning to it on some condition.": {"ru": "Одним из примеров использования меток может служить установка метки в начале работы потока и возвращения к ней при некотором условии."},
	"It is not recommended to use labels very often, if you overdo with using labels your script may become unreadable and hard to modify. It is better to use functions instead, unless you absolutely need labels.": {"ru": "Не рекомендовано использовать метки очень часто, если вы переборщите с ними, скрипт может стать нечитаемым и его сложно будет изменять. Лучше вместо этого использовать функции, если только вы не можете обойтись без меток."},

	"This action finishes whole script, not just single thread, use it in case of fatal error and if script can't be continued under no circumstances. For example, if API key to some service doesn't match.": {"ru": "Это действие завершает весь скрипт, а не только отдельный поток, Используйте его в случае возникновения критической ошибки и если скрипт не может быть продолжен ни при каких обстоятельствах. Например, если ключ API к какому-то сервису не подходит."},
	"This action finishes whole script, not just single thread, use it in case of fatal error and if script can't be continued under no circumstances.": {"ru": "Это действие завершает весь скрипт, а не только отдельный поток, Используйте его в случае возникновения критической ошибки и если скрипт не может быть продолжен ни при каких обстоятельствах."},
	"BAS also uses this action internally in case of resource absence, so if, for example, user didn't set any proxy file, script will finish instantly.": {"ru": "БАС тоже используют это действие в случае отсутствия ресурса, таким образом, если пользователь не задал файл с прокси, скрипт закончится мгновенно."},
	"There are two modes, how this action works. First mode is instant finish, this means that script will finish at the same second as you called that action, each thread will also stop instantly even if it was in the middle of some task. Second mode is graceful finish, in this case BAS will wait until all threads will finish their tasks. Second mode is useful in case if you don't want to lose important data, for example, phone numbers or emails.": {"ru": "Есть два режима работы этого действия. Первый режим - это  мгновенное завершение, Это означает что скрипт завершится в ту же самую секунду, в которую вызвано это действие, каждый поток также остановиться мгновенно даже если он выполнял какое-то важное задание. Второй режим -  это плавное завершение потоков, в этом случае БАС будет ждать пока все потоки закончат свою работу, и только потом завершить скрипт. Второй режим полезен в том случае если вы не хотите потерять важных данных, например, номера телефонов или почтовые адреса."},

	"In case if some action fails thread execution will be interrupted and thread status will be set to failure.": {"ru": "В случае если одно из действий выполняется неправильно, поток будет остановлен с ошибочным статусом."},
	"You may also interrupt thread and set fail message with this action": {"ru": "Вы также можете прервать поток и установить сообщение об ошибке с помощью этого действия"},
	"Thread final fail message. This will be outputted to log and to script report.": {"ru": "Последнее сообщение об ошибке, которое выводится в лог в конце работы."},

	"Thread final success message. This will be outputted to log and to script report.": {"ru": "Последнее сообщение об успехе, которое выводится в лог в конце работы потока."},
	"It is important to understand this action stops only current thread not full script.": {"ru": "Важно понимать что это действие останавливает только текущий поток, а не весь скрипт."},
		"Every thread started by BAS has a result status, which may be success or fail.": {"ru": "Каждый поток в БАС  может завершиться либо успешно либо с ошибкой."},
	"In case if all actions executed correctly, BAS sets success result for that thread.": {"ru": "В случае если все действия выполнены правильно, БАС устанавливает статус завершения успешным для этого потока."},
	"You can set result status to success and finished thread beforehand with this action": {"ru": "Вы можете установить статус завершения успешным и остановить поток с помощью этого действия"},

		"Immediately finish current loop iteration and start next one. This action works only if placed inside loop(foreach, for, while actions).": {"ru": "Немедленно остановить текущее выполнение цикла и начать следующее. Это действие работает только если оно помещено внутрь цикла(действия for, foreach, while)."},
	"Common practice is to put continue action inside if action and therefore stop current iteration only under certain condition": {"ru": "После вызова этого действия текущее выполнение цикла прерывается немедленно, а точка выполнения перемещается в начало цикла"},

		"Interrupt current loop immediately. This action works only if placed inside loop(foreach, for, while actions).": {"ru": "Немедленно прервать текущий цикл. Это действие работает только если оно помещено внутрь цикла(действия for, foreach, while)."},
	"After launch this action stops loop immediately, no more iterations are performance, and script execution point is moved to the next action after loop.": {"ru": "После выполнения этого действия цикл прерывается немедленно, текущий цикл не будет выполнен не единожды, а точка выполнения перемещается за следующие после цикла действие."},
	"Common practice is to put break inside if action and therefore stop loop only under certain condition": {"ru": "Обычной практикой является помещение действия break внутрь действия if, таким образом цикл будет остановлен только при некоем условии"},

		"This field contains list, list could be created with \"create list\" action, or obtain it through \"resources to a list\" action, also \"read file to list\" returns list. Besides variables you can put there array directly, for example, [4, 5, 6]. You can't put resource in this field, because resource is a string and this field requires list.": {"ru": "Это поле должно содержать список, список может быть создан с помощью действия \"создать список\", или получен через действие \"ресурс в список\", также действие \"читать файл список\" возвращает список. Кроме переменных вы можете поместить в это поле список напрямую, например, [4, 5, 6]. вы не можете использовать ресурсы в этом поле, потому что ресурсы является строкой, а в это поле нужно вводить именно список."},
	"Define list directly.": {"ru": "Определить список напрямую."},
	"Get list from the variable.": {"ru": "Получить список из переменной."},

		"Execute defined actions for every list element. Works only for lists.": {"ru": "Выполнить заданный набор действий для каждого элемента списка. Работает только для списков."},
	"This action takes list as input parameter, then applies all child actions to each list element.": {"ru": "Это действие получает на входе список, потом применяет все дочерние действия к каждому элементу этого списка."},
	"For example, you have a list with all users which needs to be followed and you can achieve this by putting user list as input parameter of foreach action, and also by putting correct action sequence to follow user(probably action which press on follow button on site) as a child of foreach loop.": {"ru": "Например, у вас есть список с пользователями, которые должны быть зафоловленны, вы можете сделать это используя действие foreach с этим списком в качестве входного параметра, также вам нужно поместить правильный набор действий для добавления пользователя в друзья внутрь действия foreach(скорее всего это будет нажатии на кнопку follow внутри браузера)."},
	"There is a special variable called [[FOREACH_DATA]] which is available only inside foreach loop and which holds current list element.": {"ru": "Существует также специальная переменная [[FOREACH_DATA]], которая доступна только внутри цикла foreach и содержит текущий элемент списка."},
	"Here is the most basic example of using foreach action - iterate over some list and an output every element to the log": {"ru": "Вот наиболее простой метод использования цикла foreach - перебор всех элементов некого списка и вывод каждого в лог"},
	"To create or process list use list module.": {"ru": "Чтобы создать или изменить список используйте модуль \"список\"."},
	"Input parameter \"foreach array\" holds any JavaScript code including variables and resources. So besides variables you can put there array directly, for example, [4, 5, 6].": {"ru": "Входной параметр \"foreach массив\" содержит джаваскрипт код, включая переменные и ресурсы. Так что кроме переменных, вы можете поместить определение массива прямо в это поле, например, [4, 5, 6]."},
	"Summarising all the above, when BAS counters foreach loop it searches for loop body and repeat it for each list element, it also changes [[FOREACH_DATA]] on each loop iteration.": {"ru": "Суммируя сказанное выше, когда БАС находит цикл foreach, он ищет тело цикла и выполняет все действия заданные в нём для каждого элемента списка, он также изменяет переменную [[FOREACH_DATA]] при каждом новом выполнении цикла."},
	"Lower bound as integer value.": {"ru": "Нижняя граница как целое число."},
	"Upper bound as integer value.": {"ru": "Верхняя граница как целое число."},

		"Execute defined list of actions specified number of times.": {"ru": "Выполнить определенный список действий заданное число раз."},
	"You can define lower and upper bounds, for example, if you want to scroll page for three times, you should define lower bound as 1 and upper bound of 3.": {"ru": "Вы можете определить нижнюю и верхнюю границу, например, если вы хотите скролить страницу 3 раза, вы должны установить нижнюю границу в единицу и верхнюю в тройку."},
	"If you want to parse users on second page, need to set lower bound as 10 and upper bound as 20.": {"ru": "Если вы хотите парсить юзеров на второй странице, вам нужно установить нижнюю границу в 10 и верхнюю границу в 20."},
	"Bounds also may be variables. Consider following example, you need to iterate over all pages and you don't know total amount of them. First you need to parse page amount and put it to variable and then use for loop with lower bound as one and upper bound equals to that variable.": {"ru": "Границы могут быть переменными. Например, если вам нужно обойти все страницы и вы не знаете их количество заранее, то сначала вам нужно получить количество страниц и сохранить это значение в переменную, а потом использовать цикл с нижней границей равной единице и верхней равной этой переменной."},
	"For loop may be interrupted at any time with break action. A common practice would be to put break action inside if.": {"ru": "Цикл for может быть прерван в любой момент с помощью действия break. Распространённой практикой является использование действия Break внутри If."},
	"There is a special variable called [[CYCLE_INDEX]] available inside for loop and it always contains current iteration index and has number type.": {"ru": "Существует специальная переменная под названием [[CYCLE_INDEX]] доступная внутри цикла for, она всегда содержит текущий номер выполнения цикла и является целым числом."},
	"Summarizing all the above, when BAS encounters for loop it searches for loop body and repeat it number of times equal difference between upper and lower bound and update [[CYCLE_INDEX]] on each iteration.": {"ru": "Суммируя сказанное выше, когда бас встречает цикл for, он ищет тело цикла и повторяет его количество раз равное разнице между верхней и нижней границой. Переменная [[CYCLE_INDEX]] обновляется при каждом выполнении."},

		"There is a special variable called [[CYCLE_INDEX]] available inside while loop and it always contains current iteration index and always have number type.": {"ru": "Существует специальная переменная под названием [[CYCLE_INDEX]] доступная внутри цикла while, она всегда содержит текущий номер выполнения цикла и является целым числом."},
	"Summarizing all the above, when BAS encounters while loop it checks condition, if it's true execute loop body then checks condition again and so on. It also updates [[CYCLE_INDEX]] on each iteration.": {"ru": "Суммируя сказанное выше, когда БАС находит цикл while, он проверяет условие, если оно истинно выполняет тело цикла, проверяет условие ещё раз и так далее. При этом переменная [[CYCLE_INDEX]] обновляется на каждом при каждом выполнении цикла."},

	"Execute defined list of actions while some condition is true.": {"ru": "Выполнять заданный список действий пока какое-то условие является истинным."},
	"For example, take element from list and post it to the site, then delete element and repeat all these actions while list is not empty.": {"ru": "Например, взять элемент из списка и запостить его на каком-то сайте, потом удалить этот элемент и повторять всю цепочку действий пока список не станет пустым."},
	"If you know how many times loop should be repeated, then it is better to use for loop.": {"ru": "Если вы знаете сколько раз должен быть запущен цикл, тогда лучше использовать цикл for."},
	"If you want to iterate over list elements it is better to use foreach action.": {"ru": "Если вы хотите запустить цикл по всем элементам списка, тогда лучше использовать цикл foreach."},
	"Be careful, if \"while expression\" will always be true then you may end up with infinite loop which may be the reason of problems in your script.": {"ru": "Убедитесь в том, чтобы \"while выражение\" не было постоянно истинным, иначе цикл будет выполняться бесконечное число раз и это может быть причиной проблем в вашем скрипте."},
	"While expression parameter could be any JavaScript code. It may also contain variables and resources. For example, [[POST_LENGTH]] &gt; 0. Or [[LIST]].length &gt; 0.": {"ru": "\"while выражение\" параметр может быть любым джаваскрипт кодом. Он также может содержать переменные ресурсы. Например, [[POST_LENGTH]] &gt; 0. Или [[LIST]].length &gt; 0."},
	"Loop may be finished with break action at any time. If you call break action this interrupts loop immediately. A common practice would be to put break action inside if.": {"ru": "Цикл может быть завершён с помощью действия Break в любое время. Если вы вызываете действие Break, это прерывает цикл немедленно. Распространённой практикой является использование действия Break внутри If."},
	"Setting \"while expression\" to true will make loop run infinite amount of times, and this is necessary to finish it with break action.": {"ru": "Установка \"while выражение\" значением true заставить цикл выполняться бесконечное число раз, в таком случае его обязательно необходимо завершить с помощью действия Break."},

	"Always false.": {"ru": "Всегда ложь."},

	"Enable QUIC protocol": {"ru": "Включить протокол QUIC"},
	"Unlike HTTP, QUIC protocol is build on top of UDP. Not all proxies supports UDP. It means that enabling QUIC can cause problems when working with certain proxies. It is recommended to enable this option only if sure, that your proxy supports it. Disabled by default.": {"ru": "В отличие от HTTP, протокол QUIC построен поверх UDP. Не все прокси поддерживают UDP. Это означает, что включение QUIC может вызвать проблемы при работе с определенными прокси. Рекомендуется включать эту опцию только в том случае, если вы уверены, что прокси ее поддерживает. По умолчанию отключено."},
	"Enable QUIC": {"ru": "Включить QUIC"},
	"Disable QUIC": {"ru": "Отключить QUIC"},
	
	"Enable module ": {"ru": "Включить модуль "},
	"In order to use this module, you need to enable it first. It will restart script.": {"ru": "Чтобы использовать этот модуль, вам необходимо сначала включить его. Это перезапустит скрипт."},
	"You can disable it later by using Menu -> Module manager.": {"ru": "Вы можете отключить его позже, используя Меню -> Менеджер модулей."},

	 
	"Always true.": {"ru": "Всегда истина."},
	"Executes only if VARIABLE is equal to \"val\"": {"ru": "Выполняется только если переменная VARIABLE будет равна \"val\""},
	"Executes only if VARIABLE don't contain substring \"val\"": {"ru": "Выполняется только если переменная VARIABLE не будет содержать \"val\""},
	"Continues only if VARIABLE is equal to \"val\"": {"ru": "Продолжает выполнение только если переменная VARIABLE будет равна \"val\""},
	"Continues only if VARIABLE don't contain substring \"val\"": {"ru": "Продолжает выполнение только если переменная VARIABLE не будет содержать \"val\""},
	"If condition. This field can contain any JavaScript value including variables and resources.": {"ru": "Этот параметр содержит условие как джаваскрипт код включая переменные и ресурсы."},

	
	"Check specified condition, if it's true execute some action sequence, if it's false execute another action sequence. Finally proceed with next actions.": {"ru": "Проверить заданное условие, если оно истинно, выполнить определенную последовательность действий, если оно ложно выполнить другую последовательность действий, наконец продолжить выполнение скрипта."},
	"Even though description of this task may not sound very exciting, it is used very often to build custom logic.": {"ru": "Несмотря на то, что описание этого действия выглядит не очень убедительно, оно используется очень часто чтобы задать логику скрипта."},
	"For example, if you want to check if element exists on page and depending on that condition make a log or stop a thread.": {"ru": "Например, если вы хотите проверить существование элемента на странице и в зависимости от этого выполнить определенные действия, например, вывести сообщение в лог или остановить поток."},
	"It is very important to understand, that if expression is a custom JavaScript code. Here are some valid examples. 10 &gt; 2 is always true, \"text\".indexOf(\"te\") &gt;= 0 is also true, while \"text\".indexOf(\"z\") &gt; 0 is false.": {"ru": "Очень важно понимать, что выражение для проверки - это джаваскрипт код. Вот несколько правильных примеров выражение. 10 &gt; 2 всегда будет истинно, \"text\".indexOf(\"te\") &gt;= 0 тоже истина, тогда как \"text\".indexOf(\"z\") &gt; 0 всегда ложно."},
	"Expression also may contain variables and resources, their declarations are replaced with actual values, for example, [[PAGE_SOURCE]].length &gt; 100 is same \"&lt;html&gt;&lt;body&gt;...\".length &gt; 100. And some other valid examples: [[USER_ID]] == 123, {{login}} + \"@gmail.com\".": {"ru": "Выражение также могут содержать переменные и ресурсы, ихние определения будут заменены на текущие значения, например, [[PAGE_SOURCE]].length &gt; 100 тоже самое что \"&lt;html&gt;&lt;body&gt;...\".length &gt; 100. Вот еще несколько примеров [[USER_ID]] == 123, {{login}} + \"@gmail.com\"."},
	"You may use expression constructor in case if you don't know JavaScript. To do that click on \"if expression\" field and choose \"create value in visual constructor\".": {"ru": "Вы можете использовать конструктор выражений в случае если вы не знакомы с джаваскрипт. Для этого нажмите на поле \"if выражение\" и выберете \" создать значение в конструкторе\"."},
	"If \"if expression\" will be resolved to non-boolean type, its type will be converted to boolean. For example, number 100 will be converted to true, while 0 will be converted to false. Check JavaScript manual to understand how types are converted.": {"ru": "Если значение \"if выражение\" будет иметь не булевый тип, то оно будет преобразовано к булевуму типу. Например, число 100 будет преобразовано true, а число 0 будет преобразовано к false. Обратитесь к руководству по джаваскрипт чтобы понять, как работает преобразование типов."},
	"In case if expression is false alternative action sequence may be specified through else checkbox.": {"ru": "В том случае если условие ложно, else блок может быть использован для задания альтернативного сценария."},
	"After action is created you need to add actions inside it, this actions will be executed only if condition is true.": {"ru": "После создания действия вам нужно поместить последовательность действий внутри него, все они будут выполнены последовательно только если условие истинно."},

	"Not only element actions may be used inside loop, but any other action like: log, writing to file, etc.": {"ru": "Внутри цикла могут использоваться не только действия по работе с элементами, но и любые другие: лог, запись в файл и т. д."},
	"Selectors created by BAS usually looks like this [[FOR_EACH_CSS]]&gt;AT&gt;[[CYCLE_INDEX]] and you can update them. For example, if you want to get subelement, change selector like this [[FOR_EACH_CSS]]&gt;AT&gt;[[CYCLE_INDEX]]&gt;CSS&gt; your subselector.": {"ru": "Селекторы созданные БАС для дочерних элементов выглядят так [[FOR_EACH_CSS]]&gt;AT&gt;[[CYCLE_INDEX]], но вы можете изменить их. Например, если вы хотите получить подэлемент элемента из цикла измените селектор таким образом [[FOR_EACH_CSS]]&gt;AT&gt;[[CYCLE_INDEX]]&gt;CSS&gt; селектор подэлемента."},
	"You can also iterate over element with \"Get Elements Count\" action.": {"ru": "Вы также можете создать цикл с помощью действия \"Получить Количество Элементов\"."},
	"To start cycle, click on element inside browser, choose For Each Element -&gt; Start Loop and update selector. You should choose selector which matches all elements that you want to iterate, for example, selector &gt;CSS&gt; a will find all links on page, &gt;CSS&gt; .my-class will find elements by class, etc. Clicking ok button will create a loop. Than you need to put some actions inside loop body, every action which you will put there will be executed for each element matching query. To add action click on any element inside browser and select any action inside For Each Element submenu. These type of actions are the same as standart with one difference - BAS creates selector for them automatically.": {"ru": "Чтобы начать цикл, кликните на элемент в браузере, выберите \"Для каждого элемента\" -> \"Начать Цикл\" и измените селектор. Вы должны выбрать селектор соответствующий всем элементам, которые вы хотите перебрать, например, селектор &gt;CSS&gt; a найдет все ссылки на странице, &gt;CSS&gt; .my-class найдет элементы по css классу и т. д. При нажатии кнопки ok создается цикл. Дальше нужно поместить какие-то действия внутрь этого цикла, все действия, которое вы поместите туда, будут выполнены для каждого элемента, соответствующего запросу. Чтобы добавить дочернее действие, кликните на любой элемент внутри браузера и выберите действие внутри подменю \"Для каждого элемента\". Эти действия аналогичны стандартным с одним отличием - BAS автоматически создает селектор для них."},
	"This type of cycle has small delay between each step, so if you want to parse page very fast, get page source and use xpath or regular expression.": {"ru": "У циклов этого типа есть небольшая задержка между каждым шагом, поэтому, если вы хотите быстро спарсить страницу, лучше получите код страницы и используйте xpath или регулярное выражение."},
	"Starts loop which iterates over all elements matching query.": {"ru": "Начать цикл по все элементам страницы соответствующим запросу."},

	"After action will finish this variable will contain number of elements matching selector.": {"ru": "По завершении действия эта переменная будет содержать количество элементов, соответствующих селектору."},
	"You can iterate through all elements which match certain selector, for example selector by class \"c\". To do that you should get number of elements with this action, than start for loop from 0 to element length - 1. And finally select element with &gt;CSS&gt; .c &gt;AT&gt; [[CYCLE_INDEX]] inside loop.": {"ru": "Вы можете перебирать все элементы, которые соответствуют определенному селектору, возьмем для примера селектор по классу \"c\". Для этого вы должны получить количество элементов с помощью этого действия, потом начать цикл for от 0 до количества элементов - 1. И, наконец, получить элемент с помощью селектора &gt;CSS&gt; .c &gt;AT&gt; [[CYCLE_INDEX]] внутри цикла."},
	"In case of absence of an element it returns zero.": {"ru": "В случае отсутствия элемента оно возвращает ноль."},
	"This action always returns immediately and doesn't wait in case if element doesn't exist.": {"ru": "Это действие всегда возвращается мгновенно и не ждет, если элемент не существует."},
	"For example, you can change id of element with markup &lt;div id=\"message-old\"&gt;text&lt;/a&gt; if you use this action with parameters id and message-new.": {"ru": "Например, можно поменять атрибут id элемента с разметкой &lt;div id=\"message-old\"&gt;text&lt;/a&gt; если использовать это действие с параметрами id и message-new."},
	"Set html attribute of given element.": {"ru": "Установить html атрибут заданного элемента."},
	"If element has markup &lt;div id=\"message\"&gt;text&lt;/a&gt;, you can get id by selecting attribute id.": {"ru": "Если элемент содержит разметку &lt;div id=\"message\"&gt;text&lt;/a&gt;, вы можете получить идентиификатор элемента через атрибут id."},
	"For example, if element is a link and has following markup &lt;a href=\"https://google.com\"&gt;google&lt;/a&gt;, than you can find reference by getting attribute href.": {"ru": "Например, если элемент содержит такую разметку &lt;a href=\"https://google.com\"&gt;google&lt;/a&gt;, тогда вы можете найти адрес ссылки получая атрибут href."},
	"Get html attribute of selected element.": {"ru": "Получить html атрибут выбранного элемента."},
	"For example, if element coordinates is 200,200 and window position is 50,50, then this action will return 150, 150. In case if window position is 0,0, than this action will return absolute element coordinates.": {"ru": "Например, если координаты элемента 200,200, а положение окна - 50,50, то это действие вернет 150,150. Если позиция окна равна 0,0, то это действие вернет абсолютные координаты элемента."},
	"Get coordinates of element relative to current window position.": {"ru": "Получить координаты элемента относительно текущей позиции окна."},
	"If element is already visible, than this action will do nothing, otherwise it will scroll viewport in such way, that element are located as close as possible to screen center.": {"ru": "Если элемент уже виден, то это действие ничего не сделает, иначе оно будет прокручивать окно таким образом, чтобы элемент располагался как можно ближе к центру."},
	"This action ensures that certian element is visible on screen.": {"ru": "Это действие гарантирует, что определенный элемент будет виден на экране."},
	"Use \"display\" to check if element is visible, \"width\" to check element width etc.": {"ru": "Используйте \"display\", чтобы проверить, виден ли элемент, \"width\" чтобы получить ширину элемента и т. д."},
	"Get element css style.": {"ru": "Получить css стиль элемента."},
	"If \"Check if visible on a screen\" is checked, action returns true only if element exists and visible on screen.": {"ru": "Если галка \"Проверять, виден ли элемент на экране\" установлена, действие возвращает true только если элемент существует и он видимый."},
	"It writes result to variable which is true or false, use \"if\" action to process it.": {"ru": "Оно записывает результат в переменную, который может быть true или false, используйте if чтобы обработать его."},
	"This action returns instantly.": {"ru": "Это действие завершается мгновенно."},
	"Checks if element exists on page.": {"ru": "Проверяет существует ли элемент на странице."},
	"You can also use resources and variables here but only in read mode. Following code will work self.getAttribute([[ATTRIBUTE]]), but you can't do like this <strike>[[RESULT]] = self.getAttribute([[ATTRIBUTE]])</strike>.": {"ru": "Вы также можете использовать ресурсы и переменные здесь, но только в режиме чтения. Следующий код будет работать self.getAttribute([[ATTRIBUTE]]), а такой нет: <strike>[[RESULT]] = self.getAttribute([[ATTRIBUTE]])</strike>."},
	"This action is deprecated. It is recommended to use the new <a href=\"#!/browserjavascript\">Javascript</a> action.": {"ru": "Это действие устарело. Рекомендуется использовать новое действие <a href=\"#!/browserjavascript\">Яваскрипт</a>."},
	"This action is deprecated. It is recommended to use the new \"Execute Javascript On Element\" action. Click on any element and select \"Execute Javascript On Element\" in order to use it.": {"ru": "Это действие устарело. Рекомендуется использовать новое действие \"Выполнить Javascript На Элементе\". Кликните на любой элемент и выберите \"Выполнить Javascript На Элементе\", чтобы использовать его."},
	"Action works exactly the same as if you input code into browser console and output result into variable.": {"ru": "Действие работает точно так же, как если бы вы вводили код в консоль браузера, а результат записывался в переменную."},
	"document, window and other browser javascript objects are available.": {"ru": "Доступны document, window и другие javascript объекты браузера."},
	"Use self variable, which points to selected element.": {"ru": "Используйте переменную self, которая указывает на выбранный элемент."},
	"Find element and execute javascript on it.": {"ru": "Найти элемент и выполнить javascript в его контексте."},
	"This action can be applied to textarea or input to get its value.": {"ru": "Это действие может быть применено к полю для ввода чтобы получить введенное значения."},
	"For example, if you apply that action to whole page, you will get page text without markup.": {"ru": "Например, если вы примените это действие ко всей странице, то получите весь видимый на странице текст."},
	"Get element text, visible on screen.": {"ru": "Получить текст элемента видимого на экране."},
	"Get element html code and save it to variable.": {"ru": "Получить html код элемента и сохранить его в перменную."},
	"Before using this action, you must also call \"Drag\" or \"Drag On Element\" action.": {"ru": "Перед вызовом этого действия, нужно также использовать \"Начать Перетаскивание\" или \"Начать Перетаскивание На Элементе\"."},
	"If you want to drop to element, select it inside browser and choose \"Drop On Element\".": {"ru": "Если вы хотите закончить перетягивание в элемент, выберите его в браузере и нажмите на \"Закончить Перетаскивание На Элементе\"."},
	"Drop to given coordinates.": {"ru": "Закончить перетягивание в заданные координаты."},
	"If you want to drag file from outside of browser, use \"Start Drag File\" action.": {"ru": "Если вы хотите перетащить файл из файловой системы в браузер, то воспользуйтесь действием \"Начать Перетягивать Файл\"."},
	"If you want to drag from element, select it inside browser and choose \"Drag On Element\".": {"ru": "Если вы хотите начать перетягивание от элемента, выберите его в браузере и нажмите на \"Начать Перетаскивание На Элементе\"."},
	"Start drag from given coordinates.": {"ru": "Начать перетягивание из заданных координат."},
	"If you want to move on element, select it inside browser and choose \"Move On Element\".": {"ru": "Если вы хотите двигать мышь к элементу, выберите его в браузере и нажмите на \"Двигать Мышь Над Элементом\"."},
	"Move cursor to given coordinates.": {"ru": "Двигать курсор к заданным координатам."},
	"If you want to click on element, select it inside browser and choose \"Click On Element\".": {"ru": "Если вы хотите кликнуть по элементу, выберите его в браузере и нажмите на \"Кликнуть На Элемент\"."},
	"Click on given coordinates.": {"ru": "Кликнуть по заданным координатам."},
	"If coordinates is not visible, page will be scrolled.": {"ru": "Если координаты не видны, страница будет прокручена так, чтобы они стали видимы."},
	"This action works with absolute coordinates.": {"ru": "Это действие работает с абсолютными координатами."},
	"If you want to click on element, select it inside browser and choose \"Move And Click On Element\".": {"ru": "Если вы хотите кликнуть по элементу, выберите его в браузере и нажмите на \"Двигать Мышь И Кликнуть На Элемент\"."},
	"Move mouse and click on given coordinates.": {"ru": "Переместить мышь и кликнуть по заданным координатам."},

	"Command line": {"ru": "Командная строка"},
	"List of command line parameters can be found": {"ru": "Список параметров командной строки можно найти"},
	"Each line must contain one command line parameter, which will be used to start browser. It can be just single key or a key and a value.\nExamples:\n--disable-component-update\n--lang=ru-RU": {"ru": "Каждая строка должна содержать один параметр командной строки, который будет использоваться для запуска браузера. Это может быть как только один ключ так и ключ вместе со значением.\nПримеры:\n--disable-component-update\n--lang=ru-RU"},
	"This field may contain additional command line parameters used to start browser. They can also be specified by changing chrome_command_line.txt file inside apps/BASVERSION folder. If same key will be specified in both places, preference will be given to this field. Previous command line parameter list will be overridden by this value.": {"ru": "Это поле может содержать дополнительные параметры командной строки, используемые для запуска браузера. Их также можно указать, изменив файл chrome_command_line.txt внутри папки apps/BASVERSION. Если в обоих местах будет указан один и тот же ключ, предпочтение будет отдано этому полю. Предыдущий список параметров командной строки будет заменен этим значением."},
	"Send key only": {"ru": "Отправить только ключ"},
	"Send key and value": {"ru": "Отправить ключ со значением"},
	"Remove all command line params": {"ru": "Удалить все параметры командной строки"},


	"If you want to change settings for every thread, it is better to use settings tab.": {"ru": "Если вы хотите поменять настройки для всех потоков, то лучше воспользоваться вкладкой настройки."},
	"\"Components\", \"Extensions\", \"Widevine\", \"Command line\", \"Browser version\" or \"Profile\" options will restart browser process and thereby reset all settings(proxies, headers, etc), so the best place to use this action is thread start.": {"ru": "Смена параметров \"Компоненты\", \"Расширения\", \"Widevine\", \"Командная строка\", \"Версия браузера\" или \"Профиль\" перезапустит браузер и таким образом обнулят остальные настройки(прокси, заголовки, и т.д.), так что лучшее место для этого действия - начало работы потока."},
	"Empty string or 0 means, that value wont be changed.": {"ru": "Пустая строка или 0 означает, что значение изменяться не будут."},
	"Changes browser settings: network, canvas, webgl, etc. Use \"Get Fingerprint\" action to change browser fingerprint.": {"ru": "Изменяет настройки браузера: работа с сетью, canvas, webgl и другое. Используйте действие \"Получить отпечаток\" чтобы поменять отпечаток браузера."},
	"BAS allows to set timeout for every action individually, to do that click on hourglass icon near cancel button inside action interface.": {"ru": "BAS позволяет установить таймаут для каждого действия индивидуально, для этого щелкните на значок песочных часов возле кнопки отмены внутри интерфейса конкретного действия."},
	"Or run this action with \"General\" timeout type to change maximum execution time for all other actions.": {"ru": "Или запустите это действие с типом таймаута \"General\", чтобы изменить максимальное время выполнения для всех других действий."},
	"To change maximum captcha solving time run this action with \"Solver\" timeout type.": {"ru": "Чтобы изменить максимальное время решения капчи, выполните это действие с типом таймаута \"Solver\"."},
	"By default execution time for captcha solving in non manual mode is 120 seconds and 60 seconds for every other action.": {"ru": "По умолчанию максимальное время решения капчи в неручном режиме составляет 120 секунд и 60 секунд для каждого другого действия."},
	"BAS limits execution time for every action. No action can last forever except sleep and manual captcha solving, but you can tweak limits.": {"ru": "BAS ограничивает время выполнения каждого действия. Никакое действие не может длиться вечно, кроме сна и ручного решения капчи, но вы можете настроить лимиты."},
	"If last captcha was solved without service(with software or in manual mode) this action will do nothing.": {"ru": "Если последняя капча была решена без использования сервиса(с помощью софта или в ручном режиме), это действие не сделает ничего."},
	"It will be reported to service and money won't be removed from the balance.": {"ru": "На сервис отправляется запрос о неверном решении и деньги за решения не будут сняты со счета."},
	"Use this action if last captcha was solved wrong.": {"ru": "Используйте это действие, если прошлая капча была решена неправильно."},
	"If you want to solve recaptcha, click on recaptcha checkbox inside browser and choose \"Solve Recaptcha 2.0\" action.": {"ru": "Если вы хотите решить recaptcha, нажмите на флажок recaptcha внутри браузера и выберите \"Решить Recaptcha 2.0\"."},
	"If you want to take captcha from element on screen, you should click on it and use \"Solve Captcha\" action.": {"ru": "Если вы хотите решить капчу из элемента на экране, вы должны нажать на него и используйте действие \"Решить Капчу\"."},
	"Captcha text is saved to variable and can be used later.": {"ru": "Результат решения сохраняется в переменной и может быть использован позже."},
	"This action solves image captcha(not recaptcha) and works only if you have image data formatted as base64 string.": {"ru": "Это действие решает капчу в виде картинки(не recaptcha) и работает, только если у вас есть данные изображения, отформатированного как строка в формате base64."},
	"If you want to make screenshot of whole page, click on any browser element and use \"Screenshot\" action with &gt;CSS&gt; body selector.": {"ru": "Если вы хотите сделать снимок всей страницы, нажмите на любой элемент в браузере и используйте действие \"Скриншот\" с селектором &gt;CSS&gt; body."},
	"If you want to make screenshot of certain element, click on it and select \"Screenshot\" action.": {"ru": "Если вы хотите сделать скриншот определенного элемента, нажмите на него и выберите действие \"Скриншот\"."},
	"X and Y coordinates are calculated in absolute displacement from page edges.": {"ru": "Координаты X и Y задаются в абсолютном смещении от краев страницы."},
	"If selected area is not visible, page will be scrolled.": {"ru": "Если выбранная область не видна, страница будет прокручена."},
	"This action makes screenshot of selected screen part and saves it to png image encoded as base64 string.": {"ru": "Это действие делает скриншот выбранной части экрана и сохраняет его в изображении в формате png, закодированном как строка base64."},
	"If you want to scroll to page bottom, use following settings \"Scroll x position\" = 0, \"Scroll y position\" = 999999.": {"ru": "Если вы хотите прокрутить страницу в самый низ, используйте следующие настройки: \"X координата\" = 0, \"Y координата\" = 999999."},
	"If you want to make certain element visible, use \"Scroll to element\" instead.": {"ru": "Если вы хотите, чтобы определенный элемент, а не координаты, был видимым, вместо этого действия используйте \"Прокрутка К Элементу\"."},
	"It doesn't move left top corner of screen to desired position, just ensures that certian position is visible on screen. If coordinates are already visible, than this action will do nothing, otherwise it will scroll viewport in such way, that coordinates are located as close as possible to screen center.": {"ru": "Оно не перемещает левый верхний угол в заданное положение, просто гарантирует, что определенная позиция видна на экране. Если координаты уже видны, то это действие ничего не сделает, иначе оно будет прокручивать окно таким образом, чтобы координаты располагались как можно ближе к центру."},
	"Scroll browser. The objective of this action is to make specified coordinates visible.": {"ru": "Прокрутка браузера. Цель этого действия - сделать указанные координаты видимыми на экране."},
	"In case if this action will be called after window popup, authentication process will fail.": {"ru": "В случае, если оно будет вызвано после отображения окна, аутентификация работать не будет."},
	"Good idea would be to put it to the start of the script.": {"ru": "Хорошей идеей было бы поставить действие в начало сценария."},
	"HTTP authentication provides method for user to input site login and password. It is rarely used nowadays, but some sites still rely on it. During authentication process browser shows window and user must input authentication data there. This process can be automated, all you need to do is to call this action before window is triggered.": {"ru": "HTTP аутентификация предоставляет метод для ввода логина и пароля от сайта. В настоящее время он редко используется, но некоторые сайты все еще полагаются на него. Во время аутентификации браузер показывает окно, и пользователь должен ввести данные. Этот процесс может быть автоматизирован, все, что вам нужно сделать, - это вызвать данное действие до отображения окна."},
	"HTTP authentication provides method for user to input site login and password. It is rarely used nowadays, but some sites still rely on it.": {"ru": "HTTP аутентификация предоставляет метод для ввода логина и пароля от сайта. В настоящее время он редко используется, но некоторые сайты все еще полагаются на него."},
	"Prompt window browser documentation <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt');return false\">link</a>.": {"ru": "<a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt');return false\">Ссылка</a> на документацию."},
	"Principle is the same as in \"Open File Result\", first you call action which sets result and than trigger dialog, BAS will recognize it and input previously setted up value.": {"ru": "Принцип такой же, как в \"Диалог Открыть Файл\", сначала вы вызываете действие, которое задает результат, а потом запускаете диалог, BAS распознает его и вводит ранее установленное значение."},
	"Prompt window displays a dialog with an optional message prompting the user to input some text. It is outdated functionality and most sites don't use it any more. BAS allows to input text into that window automatically, to do that you must call this action before prompt window will appear.": {"ru": "Prompt отображает диалоговое окно с необязательным запросом на ввод текста. Это устаревшая функциональность, и большинство сайтов больше не используют ее. BAS позволяет автоматически вводить текст в это окно, для этого вы должны вызвать действие до появления диалога."},
	"Prompt window displays a dialog with an optional message prompting the user to input some text. It is outdated functionality and most sites don't use it any more.": {"ru": "Prompt отображает диалоговое окно с необязательным запросом на ввод текста. Это устаревшая функциональность, и большинство сайтов больше не используют ее."},
	"Dont forget to drop it with Drop or Drop On Element action.": {"ru": "Не забудьте закончить перетягивание с помощью действия Закончить Перетаскивание или Закончить Перетаскивание На Элементе."},
	"Calling this action is the same as start dragging file into ordinary browser.": {"ru": "Вызов этого действия аналогичен началу перетаскивания файла в обычном браузере."},
	"This action is alternative to \"Open File Result\" with only difference - it drag file into browser instead of opening dialog.": {"ru": "Это действие является альтернативой \"Диалог Открыть Файл\" с одной разницей - оно перетаскивает файл в браузер вместо открытия диалога."},
	"Use resource with type FilesFromDirectory to upload all files from folder and distribute them across threads.": {"ru": "Используйте ресурс с типом \"Файлы из папки\" для загрузки всех файлов из папки и распределения их по потокам."},
	"You must always call this action before starting upload, otherwise BAS won't know which file it need to send to browser.": {"ru": "Вы всегда должны вызывать это действие перед началом загрузки, иначе BAS не будет знать, какой файл ему нужно отправить в браузер."},
	"Uploading file is performed in two steps: setting next open file dialog result with this action and clicking on element which triggers file upload, like \"Upload\" button.": {"ru": "Загрузка файла выполняется в два этапа: установка следующего результата диалога открытия файла с помощью этого действия и нажатия на элемент, который запускает загрузку, например кнопку \"Загрузить\"."},
	"Don't call this action on thread start, BAS will clear data at the beginning of thread automatically.": {"ru": "Не вызывайте это действие при запуске потока, BAS автоматически очистит данные самостоятельно."},
	"It is recommended to set \"Restart process\" checkbox to purge all data, however, restarting process may affect CPU usage and you may leave \"Restart process\" unchecked if it is enough to clear only mentioned earlier data.": {"ru": "Рекомендуется установить флажок \"Перезапуск процесса\", чтобы очистить все данные, однако перезапуск процесса может повлиять на использование CPU, и его можно отключить, если вам достаточно очистить только упомянутые ранее данные."},
	"By default this action doesn't restart browser process and therefore may leave browser cache, local storage and several other object.": {"ru": "По умолчанию это действие не перезапускает процесс браузера и поэтому может оставить данные localstorage, кеш браузера и несколько других объектов."},
	"Clear all browser data: proxy, user agent, headers, BAS cache filters, BAS cache data, cookies.": {"ru": "Очистите все данные браузера: прокси, user-agent, заголовки, фильтры БАС, данные кэша БАС, cookie."},
	"Use <a href=\"#!/custom\">Execute Code</a> action if you want to run javascript inside thread.": {"ru": "Используйте <a href=\"#!/custom\">Выполнить код</a>, если вы хотите выполнить javascript внутри потока."},
	"You can also use resources and variables here but only in read mode. Following code will work document.getElementById([[ID]]).innerHTML, but you can't do like this <strike>[[RESULT]] = document.getElementById([[ID]]).innerHTML</strike>.": {"ru": "Вы также можете использовать ресурсы и переменные здесь, но только в режиме чтения. Следующий код будет работать document.getElementById ([[ID]]).innerHTML, а такой нет: <strike>[[RESULT]] = document.getElementById([[ID]]).innerHTML</strike>."},
	"Action works exactly the same as if you input code into browser console and output result into variable.": {"ru": "Действие работает точно так же, как если бы вы вводили код в консоль браузера, а результат записывался в переменную."},
	"Execute javascript inside browser. This means that document, window and other browser javascript objects are available.": {"ru": "Выполнить javascript внутри браузера. Это означает, что доступны document, window и другие javascript объекты браузера."},
	"Setting individual proxy for urls or tabs works only if tunneling is disabled.": {"ru": "Установка индивидуальных прокси для каждого урл или для каждой вкладки не будет работать с включенным туннелированием."},
	"BAS can apply proxy in 2 ways: tunneling and passing all connections through curl. By default first option is used, you can change it in settings.": {"ru": "BAS может установить прокси двумя способами: туннелированием и передачей всех запросов через curl. По умолчанию используется первый вариант, вы можете изменить его в настройках."},
	"Proxy with empty parameter will reset it to default value(direct connection).": {"ru": "Пустой параметр сбросит прокси до значения по умолчанию(прямое соединение)."},
	"You can change proxy before or after browser created or page is loaded.": {"ru": "Вы можете изменить прокси до или после создания браузера или загрузки страницы."},
	"Use resources if you want to take them from file, url or database.": {"ru": "Используйте ресурсы, если вы хотите взять прокси из файла, url или базы данных."},
	"By default browser works without proxy, this action sets browser proxy.": {"ru": "По умолчанию браузер работает без прокси, это действие устанавливает его."},
	"If you want to type big text, use 0 interval or \"Set Clipboard\" and type &lt;CONTROL&gt;V text.": {"ru": "Если вы хотите ввести большой текст, используйте 0 интервал или действие \"Запись В Буфер Обмена\" и ввод &lt;CONTROL&gt;V"},
	"This action is capable to input any characters including special keys like enter, backspace, insert, delete, etc.": {"ru": "Это действие может вводить любые символы включая специальные клавиши, такие как enter, backspace, insert, delete и т. д."},
	"If you want to type inside specific element, click on it and choose \"Type Text\".": {"ru": "Если вы хотите ввести текст в определенный элемент, кликните по нему и выберите \"Ввод Текста\"."},
	"Type text inside element with focus.": {"ru": "Ввод текста в элемент с фокусом."},
	"Read more": {"ru": "Читать дальше"},
	"If you want take image from cache, from file or from any base64 string, you should use \"Solve Captcha\" action from \"Browser\" module.": {"ru": "Если вы хотите взять изображение из кеша, из файла или из любой строки base64, вы должны использовать действие \"Решить Капчу\" из модуля \"Браузер\"."},
	"Captcha text is saved to variable and can be used later.": {"ru": "Текст капчи сохраняется в переменной и может быть использован позже."},
	"If you want to solve recaptcha, click on recaptcha checkbox inside browser and choose \"Solve Recaptcha 2.0\" action.": {"ru": "Если вы хотите решить recaptcha, нажмите на флажок recaptcha внутри браузера и выберите \"Решить Recaptcha 2.0\"."},
	"Rendering element can leave additional image border or slightly change color of some pixels due to render inaccuracies, and thus this method is good only if your captcha will be solved by human. In case of automatic machine solver it is important to get captcha picture execatly the same as generated on server, thats why if you use capmonster, captchasniper or xevil, this action will take image from cache. Taking image from cache is not automatic, at first run you will get error which gives captcha url and name of action that you need to use, which is \"Allow cache\". It is important to partition constant url part and part which is always changes. You should replace changing part with * and leave as is constant part. For example, if you have /image?id=1234, than cache mask would be /image?id=*. Of cource, you can add every url to cache by using * mask, but that would increase memory consumption and may cause other bugs.": {"ru": "После рендеринга изображение может содержать дополнительную границу или немного изменить цвет некоторых пикселей из-за неточностей рендеринга, и, таким образом, этот метод хорош только в том случае, если капча будет решаться человеком. В случае автоматического машинного решения важно, чтобы изображение было точно таким же, как и сгенерированное на сервере, поэтому, если вы используете capmonster, captchasniper или xevil, это действие будет искать изображение в кеше. Взятие данных из кеша не производится автоматическим при первом запуске вы получите ошибку, которая дает url капчи и имя действия, которое вам нужно использовать - \"Разрешить кэш\". Важно разделять постоянную часть и переменную часть url. Вы должны заменить меняющуюся часть на *, а постоянную часть оставить как есть. Например, если url капчи /image?id=1234, то маска может быть /image?id=*. Разумеется, вы можете добавить абсолютно все данне в кеш с помощью маски *, но это увеличит потребление памяти и может вызвать другие ошибки."},
	"This action solves image captcha(not recaptcha). Image is obtained as result of element render.": {"ru": "Это действие решает капчу с изображением(а не recaptcha). Изображение капчи получается в результате рендеринга элемента."},
	"This variable contains element attribute value as a string": {"ru": "Эта переменная содержит значение атрибута элемента как строку"},
	
	"Expand spintax.": {"ru": "Преобразовывать спинтакс."},
	"Expand variables and resources.": {"ru": "Преобразовывать переменные и ресурсы."},

	"Attribute name as a string.": {"ru": "Имя атрибута как строка."},
	"Get element styles": {"ru": "Получить стили элемента"},
	"Get element id": {"ru": "Получить id элемента"},
	"This variable will contain element attribute value as a string": {"ru": "Эта переменная будет содержать значение атрибута элемента как строку"},
	
	"Set combobox index to random int. Works only on comboboxes(not text input).": {"ru": "Установить номер значения выпадающего списка в случайное число. Работает только на выпадающих списках(не на текстовых полях для ввода)."},
	"Integer which contains combobox index starting from zero": {"ru": "Целое число, содержащее индекс выпадающего списка начиная с нуля"},
	"Set combobox index to desired int. Works only on comboboxes(not text input).": {"ru": "Установить номер значения выпадающего списка в заданное число. Работает только на выпадающих списках(не на текстовых полях для ввода)."},
	"String which contains exact value present in combobox": {"ru": "Строка, которая содежит точное значение присутствующее в выпадающем списке"},
	"You can use \"type text\" action to set combobox value. Click on combobox inside browser and select \"Type Text\" option, than input desired value or several first letters with &lt;RETURN&gt; at the end. For example, if combobox contains two values: male and female, you can select male by typing male&lt;RETURN&gt; or ma&lt;RETURN&gt;.": {"ru": "Вы можете использовать действие \"Ввод текста\" для установки значения выпадающего списка. Для этого кликните на выпадающий список внутри браузера и выберите \"Ввод текста\", потом установите текст для ввода в желаемое значение или несколько первых символов с &lt;RETURN&gt; в конце. Например, если выпадающий список содержит два значения: мужчина и женщин, то вы можете выбрать первое значения введя мужчина&lt;RETURN&gt; или муж&lt;RETURN&gt;."},
	"In case if combobox don't contain default markup, this function won't work. In that case, use \"Set Combobox Index\" action instead.": {"ru": "Если выпадающий список имеет нестандартную разметку, эта функция не будет работать, в этом случае используйте действие \"Установить Индекс Комбобокса\"."},
	"Integer value, element height.": {"ru": "Целое значение, высота элемента."},
	"Integer value, element width.": {"ru": "Целое значение, ширина элемента."},
	"Integer value, offset relative to current window position.": {"ru": "Целое значение, смещение относительно текущей позиции окна."},
	
	"Get Coordinates": {"ru": "Получить Координаты"},
	
	"This action makes screenshot of selected element and saves it to png image encoded as base64 string.": {"ru": "Это действие делает скриншот выбранного элемента и сохраняет его в изображении в формате png, закодированном как строка base64."},
	"If \"Check if visible on a screen\" is checked, action ends only if element exists and visible on screen.": {"ru": "Если галка \"Проверять, виден ли элемент на экране\" установлена, действие завершается только если элемент существует и он видимый."},
	"Get width": {"ru": "Получить ширину"},
	"Check visibility": {"ru": "Проверить видимость"},
	"Css value to check. Internally this action calls window.getComputedStyle(self).": {"ru": "Css стиль для получения. Это действие вызывает javascript код window.getComputedStyle(self)."},
	"Computed style as a string.": {"ru": "Значение стиля в виде строки."},
	"Check result with boolean type. Could be true or false. Use \"if\" action to process it.": {"ru": "Результат проверки с типом boolean. Может иметь значение true или false. Используйте действие \"if\" чтобы обработать результат."},
	"Element found": {"ru": "Элемент найден"},
	"Element not found": {"ru": "Элемент не найден"},
	
	"Disabling mouse move emulation will make it action act same as executing self.value = \"value\".": {"ru": "Отключение эмуляции мыши и клавиатуры превратит это действие в выполнение javascript кода self.value = \"value\" на элементе."},
	"Mouse will be moved to random point close to center before input.": {"ru": "Перед вводом текста будет передвинут курсор мыши в место близкое к центру элемента."},
	"Type text inside element.": {"ru": "Ввод текста в заданный элемент."},
	"This action is equivalent to typing &lt;CONTROL&gt;A&lt;BACK&gt;.": {"ru": "Это действие эквивалентно вводу &lt;CONTROL&gt;A&lt;BACK&gt;."},
	"Before using this action, you must also call \"Drag\" or \"Drag On Element\" action.": {"ru": "Перед вызовом этого действия, нужно также использовать \"Начать Перетаскивание\" или \"Начать Перетаскивание На Элементе\"."},
	"Drop to given element.": {"ru": "Закончить перетягивание в заданный элемент."},
	"Start drag from given element.": {"ru": "Начать перетягивание из выбранного элемента."},
	"If you used this action, you must also call \"Drop\" or \"Drop On Element\" action.": {"ru": "После вызова этого действия, нужно также использовать \"Закончить Перетаскивание\" или \"Закончить Перетаскивание На Элементе\"."},
	"Move mouse and click on given element.": {"ru": "Навести курсор и кликнуть на данный элемент."},
	"If you are clicking on some element, which causes page load, you should select \"wait for full page load\". Using this option will make browser wait for page load after click.": {"ru": "Если вы нажмете на какой-либо элемент, который вызывает загрузку страницы, выберите \"ждать полной загрузки страницы\". Использование этой опции заставит браузер ждать загрузки страницы после клика."},
	"Mouse move trajectory is always random and reminds one made by human, you can twaek move parameters with settings button located near cancel.": {"ru": "Траектория перемещения мыши всегда случайна и напоминает выполненную человеком, вы можете изменить параметры перемещения кнопкой настройки, расположенной рядом с \"Отмена\"."},
	"Disabling mouse emulation will make this action identical to executing click javascript function on element.": {"ru": "Отключение эмуляции мыши превратит это действие в выполнение javascript функции click на элементе."},
	"If element is not visible, page will be scrolled.": {"ru": "Если элемент не виден, страница будет прокручена так, чтобы он стал видимым."},
	"Target coordinates are always random but they are located close to center.": {"ru": "Конечные координаты всегда случайны, но расположены близко к центру."},
	"Move mouse pointer on element.": {"ru": "Навести курсор на элемент."},
	"Click on given element.": {"ru": "Кликнуть на заданный элемент."},
	"If element won't be found instantly, BAS will wait while it will appear for one minute. If element won't be found for 10 seconds, notice will be written to log and if it won't be found for a minute, BAS will stop thread with error. You can handle this error if you uncheck \"Fail thread if element not found\" checkbox(at page top) or if you wrap this action in ignore error. You can also set max wait time by clicking on hourglass icon near cancel button.": {"ru": "Если элемент не будет найден после первой попытки, BAS продолжит ожидать его на протяжении минуты. Если на протяжении 10 секунд элемент не будет найден, в лог будет добавлено сообщение, если элемент не появится на протяжении минуты, поток завершится с ошибкой. Вы можете обработать эту ошибку если уберете настройку \"Остановить поток, если элемент не найден\" (вверху страницы) или если обернете данное действие в блок игнорирования ошибок. Вы также можете настроить максимальное время ожидания если нажмете на иконку песочных часов."},
	"Extract digits from element text.": {"ru": "Извлечь цифры из текста элемента."},
	"Get element top coordinate": {"ru": "Получить y координату элемента"},
	"Pure javascript click": {"ru": "Кликнуть по кнопке используя яваскрипт"},
	"Get input field value": {"ru": "Получить значения поля"},
	"Script that will be executed on found element. You can use self variable, which points to found element. Type of that value should be string. If you set type to expression, than script will be evaluated in BAS context first and than result of that evaluation will be send to browser. Using expression is usefull if you want to create script dynamically, but you need to use string type in most cases.": {"ru": "Скрипт будет выполнен на найденном элементе. Вы можете использовать переменную self для доступу к этому элементу. Тип этого параметра должен быть string. Если вы установите тип в expression, то скрипт будет сначала выполняться в контексте BAS, а затем результат этого выполнения будет отправлен в браузер. Использование expression полезно, если вы хотите динамически создавать скрипт, но в большинстве случаев вам нужно использовать string."},
	
	"This variable will contain text of selected element as string": {"ru": "Эта переменная будет содержать текст выбранного элемента"},
	
	"This variable will contain html source of selected element as string": {"ru": "Эта переменная будет содержать html код выбранного элемента в виде строки"},
	
	"Floating point value which sets force of cursor deviation from strait line between starting and ending points. Think of it as a wind, which blows cursor away from the line - the shortest path between two points.": {"ru": "Значение плавающей точки, которое устанавливает силу отклонения курсора от линии между начальной и конечной точками. Это можно представить как ветер, который отклоняет курсор от этой линии."},
	"Floating point value which sets force of cursor attraction to strait line between starting and ending points. If you set this value too big, cursor will move by straight line, if you set it too low, cursor will move chaotically on the screen.": {"ru": "Значение плавающей запятой, которое устанавливает силу притяжения курсора к линии между начальной и конечной точками. Если вы установите слишком большое значение, курсор будет перемещаться по прямой, если слишком маленькое, курсор будет перемещаться хаотично на экране."},
	"Mouse movement speed as floating point value, if you change this, don't forget to change gravity and deviation proportionally.": {"ru": "Скорость движения мыши как число с плавающей запятой, если вы меняете этот параметр, не забудьте изменить притяжение и отклонение пропорционально."},
	"This is mouse movement settings. You set it either globally(through this action) or for each action individually by clicking on settings icon near cancel button inside any action, that uses mouse.": {"ru": "Это настройки перемещения мыши. Вы можете установить его либо глобально(посредством этого действия), либо для каждого действия индивидуально, нажав на значок настроек возле кнопки отмены внутри любого действия, которое использует мышь."},
	"This setting is deprecated. It does nothing in tunneling mode. Try not to use it.": {"ru": "Это устаревшая настройка. Она не делает ничего в режиме туннелирования. Старайтесь не использовать ее."},
	"CPU saving mode": {"ru": "Режим сохранения процессорного времени"},
	"Default value, no frame skip": {"ru": "Стандартное значение, без пропуска кадров"},
	"Don't change this setting": {"ru": "Не изменять эту настройку"},
	"Frame skip tells BAS to postpond rendering page, executing javascript and do other browser work. The more you set this value, the lazier browser becomes. This parameter helps to save cpu time. On other hand setting it too high can cause your script will become unstable, you may encounter javascript errors and other unpredictable results.": {"ru": "Пропуск кадров указывает BAS откладывать рендеринг страницы, выполнение javascript и другие задания браузера. Чем больше вы устанавливаете это значение, тем более ленивым становится браузер. Этот параметр помогает экономить процессорное время. С другой стороны, установка этого параметра в слишком высокое значение может привести к тому, что ваш скрипт станет нестабильным, вы можете столкнуться с ошибками javascript и другими непредсказуемыми результатами."},
	"Enable": {"ru": "Включить"},
	"Disable": {"ru": "Отключить"},
	"Webrtc and canvas are disabled by default, it helps to preserve anonymity and complicated not detected. You may enable them with this option.": {"ru": "Webrtc и canvas по умолчанию отключены, это помогает сохранить анонимность и усложняет обнаружение ботов. Но вы можете включить их с помощью этой настройки."},
	"This option determines how proxies will be applied to browser process: through tunnel or with routing all requests to curl library. First option is default and if proxy is set it will replace all direct network requests with requests through proxy. Second option replaces all chrome network stack with curl. The difference between them is that first option acts more like real browser, while second gives extra features like ipv6 proxy support and setting proxy for individual network requests.": {"ru": "Этот параметр определяет, как прокси будут применяться к процессу браузера: через туннель или с маршрутизацией всех запросов в библиотеку curl. Первый вариант работает по умолчанию, и если установлен прокси, то он заменит все сетевые запросы запросами через прокси. Второй вариант подменяет весь сетевой стек chrome на curl. Разница между ними заключается в том, что первый вариант больше похож на настоящий браузер, а второй дает дополнительные функции, такие как поддержка ipv6 прокси и установка прокси индивидуально для отдельных сетевых запросов."},
	"Don't use flash": {"ru": "Не использовать flash"},
	"Use flash": {"ru": "Использовать flash"},
	"String with profile folder. Slash type is not important. If folder doesn't exist, it will be created. If folder already exists, BAS will use it as profile and restore all data from it like cookies, localstorage, etc": {"ru": "Строка с путем к папке профиля. Тип разделителя не имеет значения. Если папка не существует, она будет создана. Если папка уже существует, BAS будет использовать ее в качестве профиля и восстановит все данные из нее, такие как cookie, localstorage и т. д."},
	
	"String with captcha result": {"ru": "Строка с результатом решения капчи"},
	"String which contains server url.": {"ru": "Строка, которая содержит url сервера."},
	"This key is needed only if you are using services to solve captcha. It is not needed in manual, capmonster and captchasniper modes. In case of deathbycaptcha this field must contain dbc_login:dbc:password.": {"ru": "Этот ключ необходим только в том случае, если вы используете сервисы для решения капчи. Он не нужен в режимах manual, capmonster и captchasniper. В случае deathbycaptcha это поле должно содержать dbc_login:dbc_password."},
	"Use http://deathbycaptcha.com/ service": {"ru": "Решить с помощью сервиса http://deathbycaptcha.com/"},
	"Use capmonster": {"ru": "Решить с помощью capmonster"},
	"Solve with http://2captcha.com/ service": {"ru": "Решить с помощью сервиса http://2captcha.com/"},
	"Solve with http://rucaptcha.com/ service": {"ru": "Решить с помощью сервиса http://rucaptcha.com/"},
	"Solve with http://anti-captcha.com/ service": {"ru": "Решить с помощью сервиса http://anti-captcha.com/"},
	"Image is solved directly by person who uses BAS.": {"ru": "Капча решается вручную человеком, который использует БАС."},
	"Solve method is a string, you can set value directly or use variable or resource.": {"ru": "Метод решения - это строка, вы можете установить значение напрямую или использовать перменную или ресурс."},
	"Data in base64 format can be obtained from screenshot action or from read file action.": {"ru": "Данные в формате base64, их можно получить из действия скриншот или из действия читать файл."},
	
	"After action will finish, this variable will contain base64 encoded image data, you can use it as captcha or write to file.": {"ru": "По завершении действия эта переменная будет содержать данные изображения в кодировке base64, вы можете использовать ее как captcha или сохранить в файл."},
	"Image height. Can't be bigger that window height.": {"ru": "Высота изображения. Не может быть больше чем высота окна."},
	"Image width. Can't be bigger that window width.": {"ru": "Ширина изображения. Не может быть больше чем ширина окна."},
	
	"Scroll to page bottom": {"ru": "Прокрутка вниз страницы"},
	"Scroll page, so 500 px will be visible": {"ru": "Прокрутка страницы так, чтобы 500 px был виден"},
	"Scroll to top": {"ru": "Прокрутка вверх страницы"},
	"Integer value, offset from the top edge of the page": {"ru": "Целое число, смещение от верхнего края страницы"},
	"Integer value, offset from the left edge of the page": {"ru": "Целое число, смещение от левого края страницы"},
	
	"Site password, could be any string": {"ru": "Пароль от сайта, любая строка"},
	"Site login, could be any string": {"ru": "Логин от сайта, любая строка"},
	
	"Any string": {"ru": "Любая строка"},
	
	"This parameter is a string with file path. Slash type is not important.": {"ru": "Этот параметр - строка с путем к файлу. Тип разделителя значения не имеет."},
	"This parameter is a string with file path. Slash type is not important. It also could be a json array with several files, see examples. In that case BAS acts like if user would selected several files.": {"ru": "Этот параметр - строка с путем к файлу. Тип разделителя значения не имеет. Это также может быть json массив с несколькими файлами, смотрите примеры. В этом случае BAS действует, как если бы пользователь выбрал несколько файлов."},
	
	
	"Set navigator.platform": {"ru": "Установить navigator.platform"},
	"Set global variable in browser context": {"ru": "Установка глобальной переменной в контексте браузера"},
	"Script which must be executed at page start. May contain variables or resources.": {"ru": "Скрипт, который должен быть выполнен на этапе создания страницы. Может содержать переменные или ресурсы."},
	"This action sets script which must be executed inside every page and every frame immediately after page is created. Unlike javascript action, script defined here is executed at the very beginning of page load, which gives possibility to change browser internals like window.navigator. Action should be called before page load.": {"ru": "Это действие задает скрипт, который должен выполняться на каждой странице и в каждом фрейме сразу после создания страницы. В отличие от действия \"Яваскрипт\", скрипт, определенный здесь, выполняется в самом начале загрузки страницы, что дает возможность изменять внутренние элементы браузера, такие как window.navigator. Действие должно быть выполнено до загрузки страницы."},
	"This action sets script which must be executed inside every page and every frame immediately after page is created.": {"ru": "Это действие задает скрипт, который должен выполняться на каждой странице и в каждом фрейме сразу после создания страницы."},
	"Click on element with id from [[ID]] variable": {"ru": "Кликнуть по элементу с идентификатором из переменной [[ID]]"},
	"Find number of links on page": {"ru": "Найти количество ссылок на странице"},
	"Check if page is loading": {"ru": "Проверить статус загрузки страницы"},
	"Get window width": {"ru": "Получить ширину браузера"},
	"Script that will be executed in browser. Type of that value should be string. If you set type to expression, than script will be evaluated in BAS context first and than result of that evaluation will be send to browser. Using expression is usefull if you want to create script dynamically, but you need to use string type in most cases.": {"ru": "Скрипт, который будет выполнен в браузере. Тип этого параметра должен быть string. Если вы установите тип в expression, то скрипт будет сначала выполняться в контексте BAS, а затем результат этого выполнения будет отправлен в браузер. Использование expression полезно, если вы хотите динамически создавать скрипт, но в большинстве случаев вам нужно использовать string."},
	"Variable with result of javascript execution. Type of variable is always string, if expression is evaluated to other type, it will be converted. If exception will occur during script execution, than empty string will return.": {"ru": "Переменная с результатом выполнения javascript. Тип переменной всегда является строкой, если после выполнения получается другой тип, он будет преобразован. В случае исключения, возвращается пустая строка."},
	
	"Get from resource": {"ru": "Получить из ресурса"},
	"Only first tab": {"ru": "Только первая вкладка"},
	"Any tab": {"ru": "Любая вкалдка"},
	"Change this parameter if you want to apply action only to certain tabs. * means any tabs. Numbering starts from 0. You can use several actions with different \"Target tab number\" parameters. For example, set one proxy to 0 tab and another to 1 tab. Or set one proxy for 0 tab and another for all rest with *": {"ru": "Измените этот параметр, если вы хотите применить действие только к определенным вкладкам. * означает применить к любым вкладкам. Вы можете использовать несколько действий с разными параметрами \"Применять к вкладке с номером\". Например, установите один прокси-сервер для 0 вкладки и другой для 1 вкладки. Или установите один прокси для 0 вкладки и другой для всех остальных с помощью *"},
	"Any url which contains google.com": {"ru": "Любой адрес, который содержит google.com"},
	"Any url": {"ru": "Любой url"},
	"Change this parameter if you want to apply action only to certain urls. * symbol means any number of any characters. You can use several actions with different \"Target Url\" parameters. For example, set one proxy to *instagram.com* urls and another to *google.com* urls. Or set one proxy for *instagram.com* urls and another for all rest with *": {"ru": "Измените этот параметр, если вы хотите применить действие только к определенным url * означает любое количество любых символов. Вы можете использовать несколько действий с разными параметрами \"Применять к урл\". Например, установите один прокси-сервер для *instagram.com* адресов и другой для *google.com* адресов. Или установите один прокси для *instagram.com* адресов и другой для всех остальных с помощью *"},
	"Proxy password, overrides password set in proxy string. Useful if you have many proxy with same login and password.": {"ru": "Пароль от прокси, переопределяет пароль в строке прокси. Полезно, если у вас много прокси с одинаковыми логинами и паролями."},
	"Proxy login, overrides login set in proxy string. Useful if you have many proxy with same login and password.": {"ru": "Логин от прокси, переопределяет логин в строке прокси. Полезно, если у вас много прокси с одинаковыми логинами и паролями."},
	"socks5 and http proxy types are supported.": {"ru": "Поддерживаются прокси типа socks5 и http."},
	"Same as http": {"ru": "То же, что и http"},
	"Same as socks": {"ru": "То же, что и socks"},
	"Empty string": {"ru": "Пустая строка"},
	"Without proxy": {"ru": "Без прокси"},
	"String with information about proxy. It may contain ip, port, proxy type in different formats. This string may also contain login and password, if it doesn't, auth can be set with \"Proxy Login\" and \"Proxy Password\" parameters.": {"ru": "Строка, c информацией о прокси. Она может содержать ip, порт и тип прокси в разных форматах. Эта строка может также содержать логин и пароль, если их нету, данные для аутентификации могут быть заданы с параметрами \"Логин прокси\" и \"Прокси пароль\"."},
	
	/* Browser */

	"Changes browser resolution. Standart value is 1024x600. If you want to get typical resolutions for different platforms, use service <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">fingerprint switcher</a>.": {"ru": "Изменяет разрешение браузера. Стандартное значение 1024x600. Если вы хотите получить стандартные разрешения для разных платформ, используйте сервис <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://fp.bablosoft.com'); return false;\">fingerprint switcher</a>."},
	"Changes browser resolution. Standart value is 1024x600.": {"ru": "Изменяет разрешение браузера. Стандартное значение 1024x600."},
	" This action works only with element inside browser.": {"ru": " Это действие работает только с элементом внутри браузера."},
	"Browser height in pixels": {"ru": "Высота браузера в пикселях"},
	"Browser width in pixels": {"ru": "Ширина браузера в пикселях"},
	"Press escape": {"ru": "Нажать escape"},
	"Clear input": {"ru": "Очистить поле"},
	"Paste text": {"ru": "Вставить значение из буфера обмена"},
	"Input hello world!": {"ru": "Ввести hello world!"},
	"This could be any character sequence.": {"ru": "Это может быть любая последовательность символов."},
	"Text is entered instantly.": {"ru": "Текст вводится мгновенно."},
	"Default value. Human like input emulation.": {"ru": "Стандартное значение. Похоже на ввод реальным человеком."},
	"Interval between each key press in milliseconds. BAS uses different interval for every key which is close to this parameter. For example, if you set interval to 100, that could result following sequence: key #1, wait 91 millisecond, key #2, wait 117 millisecond, key #3, etc": {"ru": "Интервал между каждым нажатием в миллисекундах. BAS использует разные интервалы для каждой кнопки, близкие к этому параметру. Например, если вы установите интервал в 100, это может дать такую последовательность: кнопка №1, ждать 91 миллисекунду, кнопка №2, ждать 117 миллисекунд, кнопка №3 и т. д."},
	
	"Variable where page source will be saved.": {"ru": "Переменная, в которую будет записан текущий код страницы"},
	"Get page source and save it to variable. This action saves current source with all changes but not the initial returned by server.": {"ru": "Получение кода страницы и сохранение его в переменной. Это действие сохраняет текущий код со всеми изменениями, а не тот, который сервер вернул изначально."},
	"You can parse it with regular expressions or xpath.": {"ru": "Вы можете парсить его с помощью регулярных выражений или xpath."},
	"Image data in base64 format": {"ru": "Изображение в формате base64"},
	"Finding image searches for best matching picture on a screen and checks matching quality. If this quality is good enough, searching will end with success, otherwise search will be performed again and again until desired quality will be achieved. This value sets quality threshold. 80 will do almost for every task, including deformated images. Use 0 if you want search image only once. Values close to 100 will find image exactly as sample.": {"ru": "Поиск изображения находит наилучшее совпадение на экране и проверяет качество совпадения. Если это качество будет достаточно хорошим, поиск завершится успехом, иначе поиск будет выполняться снова и снова, пока не будет достигнуто заданное качество. Это значение устанавливает порог качества. 80 подойдет почти для каждой задачи, включая искаженные изображения. Используйте 0, если вы хотите, чтобы поиск происходил только один раз. Значения, близкие к 100, найдут изображение абсолютно идентичное образцу."},
	"If page will be scrolled to find image. \"no scroll\" option can save time, but if element is located on page bottom, than it won't be found. If you are sure, that element is located inside viewport, use \"no scroll\", otherwise - \"scroll\"": {"ru": "Будет ли использоваться прокрутка страницы для поиска изображения. Вариант \"no scroll\" может сэкономить время, но если элемент расположен на нижней части страницы, то он не будет найден. Если вы уверены, что этот элемент находится на экране, используйте \"no scroll\", иначе - \"scroll\""},
	"Find root element(body). This type of selector is useful if you make screenshot of whole page.": {"ru": "Найти корневой элемент(body). Этот тип селектора полезен, если вы делаете снимок экрана всей страницы."},
	"Find by coordinates. Consider using actions which works with coordinates not at selector.": {"ru": "Найти по координатам. Лучше использовать действия, которые работают с координатами, а не селектором at."},
	"&gt;XPATH&gt; //*[contains(@attribute,'value part')] - find element, with attribute, that contains \"value part\"": {"ru": "&gt;XPATH&gt; //*[contains(@attribute,'value part')] - найти элемент атрибут которого содержит \"value part\""},
	"Find by xpath. &gt;XPATH&gt; //*[@id='element-parent'] - find el by id": {"ru": "Найти по xpath. &gt;XPATH&gt; //*[@id='element-parent'] - найти по id"},
	"will find element with markup &lt;div title=\"Search\"&gt;Text&lt;/div&gt;": {"ru": "найдут элемент с разметкой &lt;div title=\"Search\"&gt;Text&lt;/div&gt;"},
	"Find by markup part. &gt;MATCH&gt;title=\"Search\" and &gt;MATCH&gt;&lt;div title": {"ru": "Найти по части разметки. &gt;MATCH&gt;title=\"Search\" и &gt;MATCH&gt;&lt;div title"},
	"&gt;CSS&gt; #element-id - find by id, &gt;CSS&gt; [attribute*=\"value part\"] - find element, with attribute, that contains \"value part\"": {"ru": "&gt;CSS&gt; #element-id - найти по id, &gt;CSS&gt; [attribute*=\"value part\"] - искать элемент атрибут которого содержит \"value part\""},
	"Find element with css selector. &gt;CSS&gt; .element-class - find by class": {"ru": "Найти элемент по css селектору. &gt;CSS&gt; .element-class - найти по классу"},
	"How to search for element": {"ru": "Как найти элемент"},
	"Get current url from browser address bar.": {"ru": "Получить текущий url из адресной строки браузера."},
	"Variable where browser url will be saved.": {"ru": "Переменная, в которую будет записан текущий url браузера"},
	"Wiki link": {"ru": "Ссылка на вики"},
	"Load google.com": {"ru": "Загрузить google.com"},
	"Load instagram.com": {"ru": "Загрузить instagram.com"},

	"Referrer. Can be blank": {"ru": "Referrer. Может быть пустым."},
	"Referrer used for current page load.": {"ru": "Referrer, используемый для загрузки данной страницы."},
	"Page is loaded by clicking on google search result.": {"ru": "Страница загружается при нажатии на результат поиска Google."},
	"Page is loaded by typing url in address bar.": {"ru": "Страница загружается путем ввода url в адресной строке."},

	"Url to load. Protocol may be omitted.": {"ru": "Url для загрузки. Протокол может быть опущен."},
	"Field content will be treated as string. If you input test@gmail.com, result will be \"test@gmail.com\".":{"ru":"Содержимое поля будет рассматриваться как строка. Если вы введете test@gmail.com, результатом будет \"test@gmail.com\"."},
	"Variables and resuorces will be replaced by values. If you input [[USERNAME]], result will be \"my_username\"": {"ru": "Переменные и ресурсы будут заменены их значениями. Если вы введете [[USERNAME]], результатом будет \"my_username\""},
	"[[USERNAME]]@gmail.com will give \"my_username@gmail.com\"": {"ru": "[[USERNAME]]@gmail.com будет преобразовано в \"my_username@gmail.com\""},
	"Field content will be treated as javascript code. \"test@gmail.com\" will convert to \"test@gmail.com\".": {"ru": "Содержимое поля будет рассматриваться как код javascript. \"test@gmail.com\" преобразуется в \"test@gmail.com\"."},
	"[[USERNAME]] + \"@gmail.com\" will give \"my_username@gmail.com\". 2 + 2 will give 4.": {"ru": "[[USERNAME]] + \"@gmail.com\" даст \"my_username@gmail.com\". 2 + 2 вернет 4."},
	"Javascript expressions can be complex. [[USERNAME]].split(\"_\")[0] will give \"my\".": {"ru": "Javascipt код может быть сколько угодно сложным. [[USERNAME]].split(\"_\")[0] вернет \"my\"."},
	"Field content will be treated as number.": {"ru": "Содержимое поля будет рассматриваться как число."},
	"Examples : ": {"ru": "Примеры : "},
	"Execute this action and don't save it to script tab.":{"ru":"Выполнить это действие и не сохранять его на панель сценария."},
	"Don't execute this action but save it to script tab.":{"ru":"Не выполнить это действие но сохранить его на панель сценария."},
	"Execute this action and save it to script tab.":{"ru":"Выполнить это действие и сохранить его на панель сценария."},
	"If you encounter errors during execution of this action, try to remove wait for full page load checkbox or wrap load action in ignore error block.":{"ru":"Если вы столкнулись с ошибками во время выполнения этого действия, попробуйте снять флажок \"Ждать полной загрузки страницы\" или обернуть действие загрузки в блок игнорирования ошибок."},
	"Loads specified url into browser. Examples: Load google.com, Load instagram.com.":{"ru":"Загружает указанный URL в браузере. Примеры: загрузить google.com, загрузить instagram.com."},
	"Headers, for example:\nUser-Agent: Mozilla/5.0 Gecko/20100101 Firefox/57.0\nReferer: google.com":{"ru": "Заголовки, например:\nUser-Agent: Mozilla/5.0 Gecko/20100101 Firefox/57.0\nReferer: google.com"},
	"Use http request capture button at the top left corner to generate requests automatically.":{"ru": "Используйте кнопку перехвата HTTP запросов в врехнем левом углу чтобы сгенерировать их автоматически."},
	"Recipient":{"ru": "Получатель"},
	"List with found mail ids":{"ru": "Список с идентификаторами найденных писем"},
	"Id of found message":{"ru": "Идентификатор найденного сообщения"},
	"Process tunneling":{"ru": "Туннелирование процесса"},
	"Mail text":{"ru": "Текст письма"},
	"to enable it":{"ru": "чтобы включить его"},
	"settings":{"ru": "настройки"},
	"Node.js is not enabled, use ":{"ru": "Node.js не активирован, используйте "},
	"Copy any action from scenario panel and paste it inside code editor":{"ru": "Вы можете скопировать любое действие из панели сценария и вставить его в редактор"},
	"File list is empty, please create one.":{"ru": "Список файлов пустой, сначала нужно создать файл."},
	"Select file":{"ru": "Выберите файл"},
	"Use file":{"ru": "Использовать файл"},
	"Edit file name":{"ru": "Редактировать имя файла"},
	"Are you sure, that you want to remove this file?":{"ru": "Вы уверенны, что хотите удалить этот файл?"},
	"Add new file":{"ru": "Добавить новый файл"},
	"Files:":{"ru": "Файлы:"},
	"Current" :{"ru": "Текущий"},
	"Tools:" :{"ru": "Инструменты:"},
	"Updating" :{"ru": "Обновляю"},
	"Use variable" :{"ru": "Использовать переменную"},
	"Synchronize" :{"ru": "Синхронизировать"},
	"Call API" :{"ru": "Вызвать API"},
	"Fail" :{"ru": "Fail"},

	"IP information" :{"ru": "Информация об IP"},
	"Options below will define method to obtain information about IP. Default settings will work fine." :{"ru": "Параметры ниже отвечают за метод получения информации о IP. Настройки по умолчанию обеспечат оптимальную работу."},
	"IP info method" :{"ru": "Метод получения информации о IP"},
	"Use internal IP database" :{"ru": "Использовать внутреннюю базу IP адресов"},
	"Use ip-api.com service" :{"ru": "Использовать сервис ip-api.com"},
	"Сustom BAS function to obtain IP information" :{"ru": "Отдельная BAS функция для получения информации."},
	"Method which will be used to obtain information about IP." :{"ru": "Метод, который будет использоваться для получения информации об IP."},
	"Use internal database, it is fast and always available. Even though the database is constantly being updated, this method may not be the most accurate compared to the others." :{"ru": "Использовать внутреннюю базу данных, данный подход работает быстро и всегда доступен. Хотя база данных постоянно обновляется, этот метод может быть не самым точным по сравнению с другими."},
	"Use ip-api.com service. Free version has limit - 45 requests from single IP. Pro version is not limited to request number but costs 15$ per month." :{"ru": "Использовать сервис ip-api.com. Бесплатная версия имеет ограничение - 45 запросов с одного IP. Pro версия не ограничена количеством запросов, но стоит 15$ в месяц."},
	"Use custom BAS function to obtain IP information." :{"ru": "Использовать отдельную BAS функцию для получения информации."},
	"ip-api.com key. Can be blank." :{"ru": "Ключ ip-api.com. Может быть пустым."},
	"Key from the ip-api.com service, pro version. Key available after purchase. This parameter is used only if \"IP info method\" is set to \"ip-api.com\" value." :{"ru": "Ключ от сервиса ip-api.com pro версии. Ключ доступен после покупки. Этот параметр используется только в том случае, если для параметра \"Метод получения информации о IP\" задано значение \"ip-api.com\"."},
	"Use free version" :{"ru": "Использовать бесплатную версию"},
	"Use pro version" :{"ru": "Использовать pro версию"},
	"Custom IP information function" :{"ru": "Отдельная функция для получения информации об IP"},
	"Custom BAS function, which takes IP string as input(&quot;Ip&quot; input parameter) and returns JSON with IP information. This parameter is used only if &quot;IP info method&quot; is set to &quot;custom function&quot; value." :{"ru": "Отдельная функция BAS, которая получает строку IP (входной параметр называется &quot;Ip&quot;) и возвращает JSON с информацией об IP. Этот параметр используется только в том случае, если для параметра &quot;Метод получения информации о IP&quot; задано значение &quot;custom function&quot;."},
	"JSON example, which must return custom function." :{"ru": "Пример JSON, который должна возвращать функция."},
	"Key" :{"ru": "Ключ"},


	"Failed to update" :{"ru": "Не удалось обновить"},
	
	"There are two types of goto: long and short. Short move is performed if goto and label are located inside same block (has one parent). This type of move preserves execution history and script continues afterward. In other cases long move is performed, which clears execution history. Long move case is perfect if you are jumping on script start, but if you move inside loop, you must use another move to leave it, otherwise thread will stop with success message.": 
	{"ru": "Есть два типа goto: длинные и короткие. Короткое перемещение выполняется, если goto и метка расположены внутри одного и того же блока (имеют одного родителя). Этот тип перемещения сохраняет историю выполнения и скрипт продолжается впоследствии. В других случаях выполняется длинное перемещение, которое очищает историю выполнения скрипта. Вариант с длинным перемещением идеально подходит, если вы перемещаетесь в начало скрипта, но если вы перемещаетесь в цикл или в условие, то вы должны использовать еще одно действие перемещения, чтобы выйти из цикла, иначе поток остановится с успешным сообщением."},
	"Enable Flash": {"ru": "Использовать Флеш"},
	"Profile Path": {"ru": "Путь к профилю"},
	"Don't use profile": {"ru": "Не использовать профиль"},
	"Disable webrtc and canvas": {"ru": "Отключить webrtc и canvas"},

	"Force UTF-8 Encoding": {"ru": "Преобразовывать все страницы в UTF-8"},
	"Proxies reconnect": {"ru": "Восстановление соединения"},
	"Number of frames to skip in run mode": {"ru": "Пропуск кадров в рабочем режиме."},

	"File path to start drag": {"ru": "Путь к файлу для начала перетягивания"},
	

	"Scroll to search for image": {"ru": "Прокрутка для поиска изображения"},
	"How well the image must fit. 100 - exactly fits, 0 - does not fit at all.": {"ru": "Насколько хорошо изображение должно подходить. 100 - точно подходит, 0 - не подходит совсем."},
	"Additional parameters.": {"ru": "Дополнительные параметры."},
	"Image data as base64": {"ru": "Данные изображения в формате base64."},
	"Variable to save screenshot as base64": {"ru": "Переменная для сохранения результата как base64."},
	"Wait for element.": {"ru": "Ждать появления элемента."},
	"Fail thread if element not found.": {"ru": "Остановить поток, если элемент не найден."},
	"Use \"Set Variable\" action to create variable.": {"ru": "Используйте действие \"Установить переменную\" для создания переменной."},
	"You can create resource with \"+ Create New Resource\" button which is located in the panel to the right.": {"ru": "Вы можете создать ресурс с помощью кнопки \"+ Создать новый ресурс\", которая расположена на панели справа."},
	"By default script will stop after resource is finished. You can use this option to complete not the entire script, but only the thread.": {"ru": "По умолчанию скрипт останавливается после завершения ресурса. Вы можете использовать эту опцию для остановки не всего скрипта, а только потока."},
	"Next": {"ru": "Дальше"},
	"found": {"ru": "найдено"},
	"Select resource": {"ru": "Выбрать ресурс"},
	"Element selector": {"ru": "Селектор элемента"},
	"Insert existing variable": {"ru": "Вставить существующую переменную"},
	"Create value in visual constructor": {"ru": "Создать значение в конструкторе"},
	"Load from file, user input, database": {"ru": "Взять из файла, поля для ввода или базы"},
	"Insert variable": {"ru": "Из переменной"},
	"Remove bookmark": {"ru": "Удалить закладку"},
	"Your recent actions": {"ru": "Последние действия"},
	"History": {"ru": "История"},
	"Bookmarks": {"ru": "Закладки"},
	"Drag actions here": {"ru": "Перетаскивайте действия сюда"},
	"Data exchange can only be performed with global variables or resources.": {"ru": "Обмен данными может быть осуществлен только с помощью глобальных переменных или ресурсов."},
	"Global: ": {"ru": "Глобальная: "},
	"Record list": {"ru": "Список записей"},
	"Remove all filters" : {"ru": "Убрать все фильтры"},
	"Remove all filters?" : {"ru": "Удалить все фильтры?"},
	"Click to edit or remove this filter": {"ru": "Нажмите чтобы изменить или удалить этот фильтр"},
	"Edit": {"ru": "Редактировать"},
	"Are you sure you want to change the filter?": {"ru": "Вы уверены, что хотите изменить фильтр?"},
	"No value": {"ru": "Нет значения"},
	"Remove": {"ru": "Удалить"},
	"Remove this filter?": {"ru": "Удалить этот фильтр?"},
	"Inclusive": { "ru": "Включающий" },
	"Passes only the data that meets the specified filter conditions. Any data that does not match the conditions will be excluded.": { "ru": "Пропускает только те данные, которые соответствуют указанным параметрам фильтра. Данные, не соответствующие условиям, будут отброшены." },
	"Exclusive": { "ru": "Исключающий" },
	"Passes data that does not meet the specified filter conditions, and excludes any data that matches those conditions.": { "ru": "Пропускает данные, которые не соответствуют параметрам фильтра, и исключает те, которые соответствуют." },
	"Such a filter already exists": {"ru": "Такой фильтр уже существует"},
	"The parameter \"": {"ru":"Параметр \""},
	"\" is not specified": {"ru":"\" не указан"},
	"Variable": {"ru":"Переменная"},
	"Not empty": {"ru": "Не пустое"},
	"Is empty": {"ru": "Пустое"},
	"Matches if the data is empty or contains no values.": {"ru": "Фильтр пропускает данные, если они пусты или не содержат значений."},
	"Starts with": {"ru": "Начинается с"},
	"Matches if the data starts with the specified value. Suitable for records where the data starts with certain characters or text.": {"ru": "Фильтр пропускает данные, если они начинаются с указанного значения. Подходит для поиска записей, чьи строки данных начинаются с определённых символов или текста."},
	"Ends with": {"ru": "Заканчивается на"},
	"Matches if the data ends with the specified value. Used to find records where the data ends with the given sequence of characters.": {"ru": "Фильтр пропускает данные, если они заканчиваются указанным значением. Используется для поиска записей, чьи данные завершаются заданной последовательностью символов."},
	"Contains": {"ru": "Содержит"},
	"Matches if the data contains the specified value. Useful for searching records that include particular characters or text fragments.": {"ru": "Фильтр пропускает данные, если они содержат указанное значение. Применяется для поиска записей, которые содержат определённые символы или фрагменты текста."},
	"Matches the mask": {"ru": "Соответствует маске"},
	"Matches if the data follows the specified mask. Use \"*\" to match any number of characters and \"?\" to match a single character.": {"ru": "Фильтр пропускает данные, если они соответствуют заданной маске. Символ \"*\" соответствует любому количеству символов, а \"?\" — одному символу."},
	"Matches regular expression": {"ru": "Соответствует регулярному выражению"},
	"Matches if the data conforms to the specified regular expression pattern. Enables complex checks on string data.": {"ru": "Фильтр пропускает данные, если они соответствуют регулярному выражению. Позволяет выполнять сложные проверки строк на соответствие определённому шаблону."},
	"Equals": {"ru": "Равно"},
	"Matches if the data exactly matches the specified value. Suitable for precise comparisons of strings or numbers.": {"ru": "Фильтр пропускает данные, если они полностью совпадают с указанным значением. Используется для точного соответствия строк или чисел."},
	"Not equals": {"ru": "Не равно"},
	"Contained in list": {"ru": "Находится в списке"},
	"Matches if the data is included in the predefined list of values. Useful for verifying if data belongs to a set of acceptable values.": {"ru": "Фильтр пропускает данные, если они содержатся в заранее определённом списке значений. Подходит для проверки данных на наличие в наборе допустимых значений."},
	"Greater": {"ru": "Больше"},
	"Matches if the data is greater than the specified value. Applied to numerical values such as sizes or timestamps.": {"ru": "Фильтр пропускает данные, если их значение больше указанного. Применяется для числовых значений, таких как размеры или временные метки."},
	"Less": {"ru": "Меньше"},
	"Matches if the data is less than the specified value. Used for numerical data that should be smaller than the given value.": {"ru": "Фильтр пропускает данные, если их значение меньше указанного. Используется для числовых данных, которые должны быть меньше заданного значения."},
	"Greater or equal": {"ru": "Больше или равно"},
	"Matches if the data is greater than or equal to the specified value. Suitable for numerical values or dates that must meet or exceed a certain threshold.": {"ru": "Фильтр пропускает данные, если их значение больше или равно указанному. Подходит для числовых значений или дат, которые должны быть больше или равны определённому порогу."},
	"Less or equal": {"ru": "Меньше или равно"},
	"Matches if the data is less than or equal to the specified value. Applied to numerical data or dates that must be less than or equal to the given value.": {"ru": "Фильтр пропускает данные, если их значение меньше или равно указанному. Применяется для числовых данных или дат, которые должны быть меньше или равны заданному значению."},
	"Is true": {"ru": "Истинное"},
	"Matches if the data evaluates to true (e.g., boolean true or similar values). Used to filter positive or enabled states.": {"ru": "Фильтр пропускает данные, если они оцениваются как 'истина' (например, логическое значение true или аналогичные значения). Используется для отбора положительных или включённых состояний."},
	"Is false": {"ru": "Ложное"},
	"Matches if the data evaluates to false (e.g., boolean false or similar values). Applied to filter negative or disabled states.": {"ru": "Фильтр пропускает данные, если они оцениваются как 'ложь' (например, логическое значение false или аналогичные значения). Применяется для отбора отрицательных или выключенных состояний."},
	"Later than": {"ru": "Позже чем"},
	"Matches if the data is later than the specified date. Applied to filter records with timestamps after the given date.": {"ru": "Фильтр пропускает данные, если их дата позже указанного значения. Применяется для отбора данных с временными метками после определённой даты."},
	"Earlier than": {"ru": "Раньше чем"},
	"Matches if the data is earlier than the specified date. Used for filtering records with timestamps before the specified date.": {"ru": "Фильтр пропускает данные, если их дата раньше указанного значения. Используется для отбора данных с временными метками до указанной даты."},
	"Same year": {"ru": "В тот же год"},
	"Matches if the data is from the same year as the specified date. Suitable for filtering records that belong to the same year.": {"ru": "Фильтр пропускает данные, если их дата соответствует указанному году. Применяется для отбора данных, которые относятся к тому же году, что и заданное значение."},
	"Same month": {"ru": "В тот же месяц"},
	"Matches if the data is from the same month as the specified date. Useful for finding records from a particular month.": {"ru": "Фильтр пропускает данные, если их дата соответствует указанному месяцу. Используется для поиска данных, относящихся к определённому месяцу."},
	"Same day": {"ru": "В тот же день"},
	"Matches if the data is from the same day as the specified date. Used for filtering records by a specific day.": {"ru": "Фильтр пропускает данные, если их дата соответствует указанному дню. Применяется для отбора данных, которые относятся к указанному дню."},
	"Same hour": {"ru": "В тот же час"},
	"Matches if the data is from the same hour as the specified date. Applied to precisely match records based on time.": {"ru": "Фильтр пропускает данные, если их временная метка соответствует указанному часу. Используется для точного сопоставления данных по времени."},
	"Filter matching logic": {"ru": "Логика соответствия фильтрам"},
	"Determines how filters are applied to the data. Depending on the selected logic, the data must either match all filters simultaneously or at least one of them.": {"ru": "Определяет, каким образом фильтры будут применяться к данным. В зависимости от выбранной логики, данные должны либо соответствовать всем фильтрам одновременно, либо хотя бы одному из них."},
	"Match all": {"ru": "Соответствует всем"},
	"All specified filters must be met (logical \"AND\")": {"ru": "Все указанные фильтры должны быть выполнены (логическое \"И\")"},
	"Match any": {"ru": "Соответствует любому"},
	"It is sufficient for at least one of the specified filters to be met (logical \"OR\")": {"ru": "Достаточно выполнения хотя бы одного из указанных фильтров (логическое \"ИЛИ\")"},
	"Action history is clean": {"ru": "История действий пуста"},
	"Return to main screen": {"ru": "Вернуться на главный экран"},
	"Javascript is executed inside browser. Use <a href=\"#!/custom\">Execute Code</a> action if you want to run javascript inside thread.": {"ru": "Яваскрипт выполняется внутри браузера. Используйте действие <a href=\"#!/custom\">Выполнить код</a> если вы хотите выполнить яваскрипт внутри потока."},

	"Table": {"ru": "Таблица"},
	"Choose one of following labels": {"ru": "Выберите одну из следующих меток"},
	"Field": {"ru": "Поле"},
	"Filter field": {"ru": "Поле для фильтрации"},
	"Determines the field containing the data that will be filtered.": {"ru": "Определяет поле, содержащее данные, по которым будет производиться фильтрация."},
	"Filter type": {"ru": "Тип фильтра"},
	"Defines the filter's behavior, determining which data will be included or excluded based on the specified conditions.": {"ru": "Определяет поведение фильтра: какие данные будут включены или исключены в зависимости от указанных условий."},
	"Filtering method": {"ru": "Метод фильтрации"},
	"Value class": {"ru": "Класс значения"},
	"Determines the method by which the filter will check the data for matching.": {"ru": "Определяет способ, с помощью которого фильтр будет проверять данные на соответствие."},
	"Available methods depend on the type of data in the selected field.": {"ru": "Доступные методы зависят от типа данных в выбранном поле."},
	"The value used to compare against the data. This value depends on the selected filtering method and will determine whether the data matches the filter criteria.": { "ru": "Значение, с которым будут сравниваться данные. Это значение зависит от выбранного метода фильтрации и будет использовано для определения соответствия данных фильтру." },
	"Remove filter": {"ru": "Удалить фильтр"},
	"Add filter": {"ru": "Добавить фильтр"},
	"Edit filter": {"ru": "Изменить фильтр"},
	"If this setting is enabled, then every time you use resource, it will be replaced with same value. For example, if you are reading from file with 'Reuse Resource' enabled, then same line will be used during all thread lifetime. You need to disable this setting to take new line.": {"ru": "Если использовать этот параметр, то каждый раз, когда вы получаете ресурс, он будет заменен одним и тем же значением. Например, если вы читаете из файла с настройкой 'Повторное использование', то одна и та же строка будет использоваться в течение всего времени жизни потока. Вы можете отключить эту настройку, чтобы брать новую строку."},
	"Tweak speed and other parameters for mouse move.": {"ru": "Настроить скорость и другие параметры для перемещения мыши."},
	"Tweak emulation before action.": {"ru": "Настроить эмуляцию перед действием."},
	"Emulation before action": {"ru": "Эмуляция перед действием"},
	"<b>Idle emulation</b>. This section allows to configure idle emulation which will take place before current action. Idle emulation allows to browse of the current page as if the user is exploring it or searching for something on it.": {"ru": "<b>Эмуляция бездействия</b>. В этом блоке можно настроить параметры эмуляции бездействия, которая будет выполняться перед текущим действием. Эмуляция бездействия позволяет выполнять просмотр текущей страницы, как будто пользователь изучает её или что то ищет на ней."},
	"This section allows to configure idle emulation only for this individual action. Use <a href=\"#!/IdleEmulationSetGeneralSettings\">Enable automatic idle emulation</a> action to configure emulation generally. Use <a href=\"#!/IdleEmulationNew\">idle emulation</a> action to start emulation instantly. Specified settings from this section will override any default or general settings, and for unspecified, default or general settings will be used.":{"ru":"Используя параметры из этого блока, вы можете настроить эмуляцию выполняемую перед этим конкретным действием. Используйте <a href=\"#!/IdleEmulationSetGeneralSettings\">Включить автоматическую эмуляцию бездействия</a> для общей настройки эмуляции. Используйте <a href=\"#!/IdleEmulationNew\">Эмуляция бездействия</a>, чтобы начать эмуляцию немедленно. Указанные здесь параметры переопределят любые другие настройки эмуляции, а для неуказанных будут использованы настройки по умолчанию или общие настройки, если они установлены."},
	"Tweak speed and other scrolling parameters.": {"ru": "Настроить скорость и другие параметры прокрутки."},
	"Speed": {"ru": "Скорость"},
	"Gravity": {"ru": "Притяжение"},
	"Deviation": {"ru": "Отклонение"},
	"Using the parameters from this block, you can configure page scrolling at your discretion by changing the scrolling speed, pause time, and cursor movement while scrolling.": {"ru": "Используя параметры из этого блока, вы можете настроить прокрутку страницы по своему усмотрению, изменяя скорость прокрутки, время пауз, а также движение курсора во время прокрутки."},
	"Scroll speed": {"ru": "Скорость прокрутки"},
	"The speed of scrolling, as a number. The higher the number, the faster the scrolling, and the lower the number, the slower the scrolling.": {"ru": "Скорость выполнения прокрутки, в виде числа. Чем больше число, тем быстрее выполняется прокрутка, а чем оно меньше, тем прокрутка выполняется медленнее."},
	"Minimum pause": {"ru": "Минимальная пауза"},
	"Minimum pause between several spins of the wheel, in milliseconds.": {"ru": "Минимальная пауза между несколькими прокрутками колеса, в миллисекундах."},
	"Maximum pause": {"ru": "Максимальная пауза"},
	"Maximum pause between several spins of the wheel, in milliseconds.": {"ru": "Максимальная пауза между несколькими прокрутками колеса, в миллисекундах."},
	"Move chance": {"ru": "Шанс движения"},
	"Chance of performing a mouse movement during scrolling, as a floating point number, with a value from 0 to 100.": {"ru": "Шанс на выполнение движения мыши во время прокрутки, как число с плавающей запятой, со значением от 0 до 100."},
	"Don't move the mouse while scrolling": {"ru": "Не выполнять движение мыши во время прокрутки"},
	"Move in scroll direction": {"ru": "Движение в направлении прокрутки"},
	"If enabled, the mouse movement will be in the scrolling direction and only in rare cases in the opposite direction.": {"ru": "Если активирован, то движение мыши будут производится в направлении прокрутки и лишь в редких случаях в противоположном направлении."},
	"Mouse movement in scroll direction": {"ru": "Движение мыши в направлении прокрутки"},
	"Mouse movement in a random direction": {"ru": "Движение мыши в случайном направлении"},
	"Screen border": {"ru": "Граница экрана"},
	"The mode of interaction of the mouse cursor with the borders of the screen when the mouse moves.": {"ru": "Режим взаимодействия курсора мыши с границами экрана при движении мыши."},
	"The mode will be selected randomly before scrolling starts": {"ru": "Режим будет выбран случайно, перед началом прокрутки"},
	"Don't go beyond the boundaries, the cursor will rest against them": {"ru": "Не выходить за границы, курсор будет упираться в них"},
	"The cursor may go out of boundaries, but when exiting it will be returned to the screen": {"ru": "Курсор может выйти за границу, но при выходе он будет возвращен на экран"},
	"Move minimum distance": {"ru": "Минимальное расстояние движения"},
	"Minimum mouse movement distance, in pixels.": {"ru": "Минимальное расстояние движения мыши, в пикселях."},
	"Move maximum distance": {"ru": "Максимальное расстояние движения"},
	"Maximum mouse movement distance, in pixels.": {"ru": "Максимальное расстояние движения мыши, в пикселях."},
	"Move speed": {"ru": "Скорость движения"},
	"Move gravity": {"ru": "Притяжение движения"},
	"Move deviation": {"ru": "Отклонение движения"},
	"Use 'Timeout' action to set default timeout.": {"ru": "Используйте действие 'Таймаут' чтобы установить максимальное время ожидания по умолчанию."},
	"default": {"ru": "дефолт"},
	"Select Label": {"ru": "Выберите Метку"},
	"No label found. Create one with 'Set label' action.": {"ru": "Меток не найдено. Метку можно создать с помощью действия 'Установить метку'."},
	"Default": {"ru": "По умолчанию"},
	"seconds": {"ru": "секунд"},
	"Maximum time to perform an action.": {"ru": "Максимальное время выполнения задания"},
	"Target url": {"ru": "Применять к урл"},
	"Target tab number": {"ru": "Применять к вкладке с номером"},
	"Dont restart thread.": {"ru": "Не перезапускать поток.","en": "Don't restart thread."},
	"Finish script instantly.": {"ru": "Завершить скрипт мгновенно."},
	"Load cookies from browser.": {"ru": "Загрузить куки из браузера."},
	"Load cookies from http client.": {"ru": "Загрузить куки из http клиента."},
	"Close browser.": {"ru": "Закрыть браузер."},
	"Open browser.": {"ru": "Открыть браузер."},
	"Restart process": {"ru": "Перезапуск процесса"},
	"Variable To save file name": {"ru": "Переменная для сохранения пути к файлу"},
	"Add As Base64 Data": {"ru": "Добавить как данные base64"},
	"Additional Parameters": {"ru": "Дополнительные параметры"},
	"Content Type": {"ru": "Тип содержимого"},
	"Encoding": {"ru": "Кодировка"},
	"Request Parameter Value": {"ru": "Значение параметра запроса"},
	"Request Parameter Name": {"ru": "Имя параметра запроса"},
	"Use these buttons to fill POST data": {"ru": "Используйте эти кнопки, чтобы заполнить данные запроса"},
	"Add As File": {"ru": "Добавить Как Файл"},
	"Method": {"ru": "Метод"},
	"Drag x position": {"ru": "X Координата"},
	"Drop x position": {"ru": "X Координата"},
	"Drop y position": {"ru": "Y Координата"},
	"Trying to interrupt ...": {"ru": "Пытаюсь прервать ..."},
	"Interrupt": {"ru": "Прервать"},
	"Executing Action": {"ru": "Выполняется действие"},
	"Tab Index": {"ru": "Номер Вкладки"},
	"Emulate mouse movements": {"ru": "Имитировать движения мыши"},
	"Disable mouse emulation.": {"ru": "Отключить эмуляцию мыши."},
	"Disable mouse and keyboard emulation.": {"ru": "Отключить эмуляцию мыши и клавиатуры."},
	"Server url. Can be blank": {"ru": "Url сервера. Может быть пустым"},
	"Immediately End Script": {"ru": "Немедленно Прервать Скрипт"},
	"Use Template": {"ru": "Использовать Шаблон"},
	"Replace all occurrences of one string to another": {"ru": "Заменить все вхождения одной строки на другую"},
	"Resolves template to variable. Can contain {{Resources}} and [[VARIABLES]] and spintax {hi|hello}.": {"ru": "Генерирует строку по шаблону. Шаблон может содержать {{Ресурсы}} и [[ПЕРЕМЕННЫЕ]] и спинтакс {вариант 1|вариант 2}"},
	"Replace From": {"ru": "Заменить Из"},
	"Original String": {"ru": "Оригинальная Строка"},
	"Replace To": {"ru": "Заменить На"},
	"Allowed Chars": {"ru": "Разрешенные Символы"},
	"Result String Length": {"ru": "Длина Генерируемой Строки"},
	"Minimum Value": {"ru": "Минимальное Значение"},
	"Maximum Value": {"ru": "Максимальное Значение"},
	"Additional processing. Use this option if you want to load template from file or variable.": {"ru": "Дополнительная обработка. Используйте эту настройку, чтобы грузить шаблон из файла или переменной."},
	
	"If error will occur during ignore error block, it will be ignored and execution will continue on next after block instruction.": {"ru": "Если ошибка произойдет во время блока игнорирования ошибок, то ошибка будет проигнорирована, а выполнение продолжится на следующем после блока действии."},
	"Increase variable value": {"ru": "На сколько увеличить переменную"},
	"In other words, this action means [[VARIABLE]] = [[VARIABLE]] + num": {"ru": "Другими словами, это действие выполняет [[VARIABLE]] = [[VARIABLE]] + num"},
	"In other words, this action means [[GLOBAL:VARIABLE]] = [[GLOBAL:VARIABLE]] + num": {"ru": "Другими словами, это действие выполняет [[GLOBAL:VARIABLE]] = [[GLOBAL:VARIABLE]] + num"},
	"Variable Name": {"ru": "Имя Переменной"},
	"Wait full page load after this action": {"ru": "Ждать полной загрузки страницы после этого действия"},
	"Toggle target. Apply this action only to specific url or to specific tab.": {"ru": "Применить это действие только к определенным урл или определенным вкладкам."},

	/* Custom */
	"Run javascript code in web interface context.": {"ru": "Выполнить javascript код в контексте веб интерфейса."},
	"Execute javascript code. This code can work with variables but can't work with elements in web browser.": {"ru": "Выполнить javascript код. Этот код может работать с переменными, но не может работать с элементами в браузере."},

	/* Waiters */
	"Wait for full page load": {"ru": "Ждать полной загрузки"},
	"Wait until page is fully loaded.": {"ru": "Ждать пока страница не будет загружена полностью."},
	"URL filters allow you to specify conditions for selecting the URL that should be awaited for complete loading. They enable you to precisely indicate which URL's load should be awaited. If no filters are set, the action will wait for any URL to be loaded.": {"ru": "Фильтры для URL позволяют задать условия для выбора URL, загрузку которого необходимо дождаться. С их помощью можно точно указать, для какого URL следует ожидать завершения загрузки. Если фильтры не заданы, действие будет ожидать загрузки любого URL."},
	"Wait until the browser loads a URL matching the specified filters.": {"ru": "Ждать, пока браузер загрузит URL, соответствующий указанным фильтрам."},
	"This action waits until a URL matching the specified filters is fully loaded.": {"ru": "Это действие ждёт пока URL, соответствующий указанным фильтрам, не будет полностью загружен."},
	"This action waits only for the main URL to load. If the page at this URL contains dynamically loaded resources (such as CSS, JavaScript, or other files), the action will not wait for their loading.": {"ru": "Это действие дожидается загрузки только основного URL. Если страница по этому адресу содержит динамически подгружаемые ресурсы (например, CSS, JavaScript или другие файлы), действие не будет ожидать их загрузки."},
	"If no filters are specified, the action will wait until at least one URL is loaded.": {"ru": "Если фильтры не указаны, то действие будет ждать пока не будет загружен хотя бы один любой URL."},
	"If the corresponding URL was loaded before this action started, the action will complete immediately.": {"ru": "Если соответствующий URL был загружен ещё до начала выполнения этого действия, то это действие завершится немедленно."},
	"To check if a URL has been loaded without waiting for it, use the \"<a href=\"#!/isloaded\">Is Loaded</a>\" action from the \"<b>Network</b>\" module.": {"ru": "Чтобы проверить был ли загружен URL, без его ожидания, используйте действие \"<a href=\"#!/isloaded\">Был ли запрос</a>\" из модуля \"<b>Сеть</b>\"."},
	"Wait until address bar contains specified URL.": {"ru": "Ждать пока адресная строка не будет содержать указанный URL."},
	"Wait until specific text appears on the page.": {"ru": "Ждать пока на странице не появится определенный текст."},
	"Wait until specific CSS-selector returns a non-empty result.": {"ru": "Ждать пока определенный CSS-селектор не вернет непустой результат."},
	"Wait for the end of the current download.": {"ru": "Ждать окончания текущей загрузки."},
	"Pauses current thread for the specified number of milliseconds.": {"ru": "Приостанавливает текущий поток на указанное количество миллисекунд."},

	/* Network */
	"Restrict all file downloads.": {"ru": "Запретить все загрузки файлов."},
	"This action blocks the ability to download any files in the browser, providing additional protection against potentially malicious or unwanted content.": {"ru": "Это действие блокирует возможность скачивания любых файлов в браузере, обеспечивая дополнительную защиту от потенциально вредоносного или нежелательного контента."},
	"You can restrict specific download with \"<a href=\"#!/requestmaskdeny\">Deny request</a>\" action.": {"ru": "Запретить конкретные загрузки можно с помощью действия \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\"."},
	"To cancel this action, use the \"<a href=\"#!/allowdownloads\">Allow downloads</a>\" action.": {"ru": "Чтобы отменить это действие, используйте действие \"<a href=\"#!/allowdownloads\">Разрешить загрузку файлов</a>\"."},
	"Restrict all popups.": {"ru": "Запретить все всплывающие окна."},
	"This action prevents new tabs from being opened when clicking on a link with the <code>target=\"_blank\"</code> attribute, opening a link while holding the Ctrl key, or using any other methods, including JavaScript.": {"ru": "Это действие запрещает создание новых вкладок при клике по ссылке с атрибутом <code>target=\"_blank\"</code>, открытии ссылки с зажатой клавишей Ctrl, а также любыми другими способами, включая JavaScript."},
	"The restriction on creating new tabs also applies to the \"<a href=\"#!/addtab\">Add Tab</a>\" action, which will return an error during the restriction period.": {"ru": "Запрет на создание новых вкладок распространяется и на действие \"<a href=\"#!/addtab\">Добавить вкладку</a>\", которое будет выдавать ошибку во время запрета."},
	"You can restrict specific popup with \"<a href=\"#!/requestmaskdeny\">Deny request</a>\" action.": {"ru": "Запретить конкретные окна можно с помощью действия \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\"."},
	"To cancel this action, use the \"<a href=\"#!/allowpopups\">Allow popups</a>\" action.": {"ru": "Чтобы отменить это действие, используйте действие \"<a href=\"#!/allowpopups\">Разрешить всплывающие окна</a>\"."},
	"URL filters allow you to define conditions for selecting URLs for which the request is permitted. They enable you to precisely specify which addresses should be allowed to load. If no filters are set, the allow action will apply to all requests of the selected type.": {"ru": "Фильтры для URL позволяют задать условия для выбора URL, для которых разрешается выполнение запроса. С их помощью можно точно указать, какие адреса должны быть разрешены для загрузки. Если фильтры не заданы, разрешение будет применяться ко всем запросам выбранного типа."},
	"Allow all types of HTTP requests": {"ru": "Разрешать все типы HTTP-запросов"},
	"The type of HTTP request that should be allowed. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to allow all request types.": {"ru": "Тип HTTP-запроса, выполнение которого нужно разрешать. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы разрешать все типы запросов."},
	"Allow URL loading if URL matches specified filters. By default every URL is loaded.": {"ru": "Разрешить загрузку URL, если URL соответствует указанным фильтрам. По умолчанию каждый URL загружается."},
	"This action creates a filtering function that will allow requests matching the specified filters and the selected request type.": {"ru": "Это действие создает функцию фильтрации, которая будет разрешать запросы, соответствующие указанным фильтрам и выбранному типу запроса."},
	"If no filters are specified, the function will allow all requests of the selected type.": {"ru": "Если фильтры не заданы, функция будет разрешать все запросы выбранного типа."},
	"All functions created by this action and the \"<a href=\"#!/requestmaskdeny\">Deny request</a>\" action are added to a common list. When a request is created, this list is checked in the order of addition.": {"ru": "Все функции, созданные этим действием и действием \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\", попадают в один общий список. При создании запроса этот список проверяется в порядке добавления."},
	"If no function matches the request, it is executed without restrictions. If exactly one matching function is found, its action (allow or block) is applied. If there are multiple matching functions, the one that was added last will be executed.": {"ru": "Если ни одна функция не соответствует запросу – он выполняется без ограничений. Если найдено одно совпадение – применяется действие этой функции (разрешение или блокировка). При наличии нескольких совпадающих функций, будет выполнена та, которая была добавлена последней."},
	"By combining this action with the \"<a href=\"#!/requestmaskdeny\">Deny request</a>\" action, you can flexibly control which requests are allowed and which are blocked, saving bandwidth and preventing the loading of unwanted content (such as advertisements).": {"ru": "Комбинируя это действие с \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\", вы можете гибко управлять разрешением и блокировкой запросов, экономя трафик и исключая загрузку нежелательного контента (например, рекламы)."},
	"URL filters allow you to define conditions for selecting URLs whose loading should be blocked. They enable you to precisely specify which addresses should have their requests prevented. If no filters are set, all requests matching the selected type will be blocked.": {"ru": "Фильтры для URL позволяют задать условия для выбора URL, загрузка которых должна быть заблокирована. С их помощью можно точно указать, для каких адресов следует предотвращать выполнение запроса. Если фильтры не заданы, будут блокироваться все запросы выбранного типа."},
	"Block all types of HTTP requests": {"ru": "Блокировать все типы HTTP-запросов"},
	"The type of HTTP request that should be blocked. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to block all request types.": {"ru": "Тип HTTP-запроса, выполнение которого нужно блокировать. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы блокировать все типы запросов."},
	"Deny URL loading if URL matches specified filters. By default every URL is loaded.": {"ru": "Запретить загрузку URL, если URL соответствует указанным фильтрам. По умолчанию каждый URL загружается."},
	"This action creates a filtering function that will block requests matching the specified filters and the selected request type.": {"ru": "Это действие создает функцию фильтрации, которая будет блокировать запросы, соответствующие указанным фильтрам и выбранному типу запроса."},
	"If no filters are specified, the function will block all requests of the selected type.": {"ru": "Если фильтры не заданы, функция будет блокировать все запросы выбранного типа."},
	"All functions created by this action and the \"<a href=\"#!/requestmaskallow\">Allow request</a>\" action are added to a common list. When a request is created, this list is checked in the order of addition.": {"ru": "Все функции, созданные этим действием и действием \"<a href=\"#!/requestmaskallow\">Разрешать запрос</a>\", попадают в один общий список. При создании запроса этот список проверяется в порядке добавления."},
	"By combining this action with the \"<a href=\"#!/requestmaskallow\">Allow request</a>\" action, you can flexibly control which requests are allowed and which are blocked, saving bandwidth and preventing the loading of unwanted content (such as advertisements).": {"ru": "Комбинируя это действие с \"<a href=\"#!/requestmaskallow\">Разрешать запрос</a>\", вы можете гибко управлять разрешением и блокировкой запросов, экономя трафик и исключая загрузку нежелательного контента (например, рекламы)."},
	"You can also stop all filtering functions at once by using the \"<a href=\"#!/clearmasks\">Clear filters</a>\" action.": {"ru": "Вы также можете остановить сразу все функции фильтрации, используя действие \"<a href=\"#!/clearmasks\">Очистить фильтры</a>\"."},
	"Allow all file downloads.": {"ru": "Разрешить все загрузки файлов."},
	"This action removes the file download restriction set by the \"<a href=\"#!/restrictdownloads\">Restrict downloads</a>\" action.": {"ru": "Это действие снимает ограничение на скачивание файлов, установленное с помощью действия \"<a href=\"#!/restrictdownloads\">Запретить загрузку файлов</a>\"."},
	"If the file download restriction was not set, this action will do nothing.": {"ru": "Если запрет на скачивание файлов не был установлен, то это действие ничего не сделает."},
	"You can wait for the file to download and get its path using the \"<a href=\"#!/waitfiledownload\">Wait File Download</a>\" action from the \"<b>Waiters</b>\" module.": {"ru": "Вы можете дождаться загрузки фала и получить к нему путь с помощью действия \"<a href=\"#!/waitfiledownload\">Ждать Загрузки Файла</a>\" из модуля \"<b>Ожидание</b>\"."},
	"Allow all popups.": {"ru": "Разрешить все всплывающие окна."},
	"This action removes the restriction on creating new tabs that was previously set by the \"<a href=\"#!/restrictpopups\">Restrict popups</a>\" action.": {"ru": "Это действие снимает ограничение на создание новых вкладок, ранее установленное с помощью действия \"<a href=\"#!/restrictpopups\">Запретить всплывающие окна</a>\"."},
	"If the restriction on creating new tabs was not set, this action will do nothing.": {"ru": "Если запрет на создание новых вкладок не был установлен, то это действие ничего не сделает."},
	"URL filters allow you to define conditions for selecting requests whose data should not be cached. They enable you to precisely specify for which URLs data saving will be prevented, helping to avoid caching unnecessary information. If no filters are set, the function will block data saving for all requests of the selected type.": {"ru": "Фильтры для URL позволяют задать условия для выбора запросов, данные которых не будут сохраняться в кэш. С их помощью можно точно указать, для каких URL сохранение данных будет запрещено, что помогает избежать кэширования ненужной информации. Если фильтры не заданы, функция заблокирует сохранение данных для всех запросов выбранного типа."},
	"Prevent saving data for all types of HTTP requests": {"ru": "Запретить сохранение данных для всех типов HTTP-запросов"},
	"The type of HTTP request for which to prevent data from being saved. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to prevent data from being saved for all request types.": {"ru": "Тип HTTP-запроса, для которого нужно запретить сохранение данных. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы запретить сохранение данных для всех типов запросов."},
	"The maximum number of requests for which data saving will be prohibited.": {"ru": "Максимальное количество запросов, для которых сохранение данных будет запрещено."},
	"Do not add page content to cache if URL matches specified filters. Works only on pages which will be loaded next after this action call.": {"ru": "Не добавлять содержимое страницы в кэш, если URL соответствует указанным фильтрам. Работает только на страницах, которые будут загружены после вызова этого действия."},"If a request matches multiple functions (allowing or denying), the last added function will determine whether the request data is saved or not.": {"ru": "Если запрос подпадает под несколько функций (разрешающих или запрещающих), сработает последняя добавленная — именно она и определит, сохранять данные запроса или нет."},
	"This action creates a filtering function that will prevent data from being saved for requests matching the specified filters and the selected request type.": {"ru": "Это действие создает функцию фильтрации, которая будет запрещать сохранение данных для запросов, соответствующих указанным фильтрам и выбранному типу запроса."},
	"If no filters are specified, the function will block data saving for all requests of the selected type.": {"ru": "Если фильтры не заданы, функция будет блокировать сохранение данных для всех запросов выбранного типа."},
	"All functions created by this action and the \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" action are added to a common list. When a request is received, this list is checked in the order of addition.": {"ru": "Все функции, созданные этим действием и действием \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", попадают в один общий список. При получении запроса этот список проверяется в порядке добавления."},
	"By combining this action with the \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" action, you can flexibly control which request data will be saved and which will not. This allows you to store only the necessary data, such as dynamic captcha data, an authorization token, and so on.": {"ru": "Комбинируя это действие с \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", вы можете гибко контролировать, данные каких запросов будут сохранены, а каких — нет. Это позволяет сохранять только нужные данные, такие как динамические данные капчи, токен авторизации и прочее."},
	"URL filters allow you to define conditions for selecting requests whose data should be cached. They enable you to precisely specify which URLs' requests will be intercepted and stored, helping to limit the volume of cached data. If no filters are set, the function will save data for all requests of the selected type.": {"ru": "Фильтры для URL позволяют задать условия для выбора запросов, данные которых будут сохранены в кэш. С их помощью можно точно указать, для каких URL будет перехвачена и сохранена информация, что помогает ограничить объем кэшируемых данных. Если фильтры не заданы, функция будет сохранять данные для всех запросов выбранного типа."},
	"Save data for all types of HTTP requests": {"ru": "Сохранять данные для всех типов HTTP-запросов"},
	"The type of HTTP request for which data should be saved. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to save data for all request types.": {"ru": "Тип HTTP-запроса, для которого нужно сохранять данные. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы сохранять данные для всех типов запросов."},
	"The maximum number of requests for which data will be saved.": {"ru": "Максимальное количество запросов, для которых будут сохранены данные."},
	"Add page content to cache if URL matches specified filters. Works only on pages which will be loaded next after this action call.": {"ru": "Добавлять содержимое страницы в кэш, если URL соответствует указанным фильтрам. Работает только на страницах, которые будут загружены после вызова этого действия."},
	"This action creates a filtering function that will intercepts requests matching the specified filters and the selected request type, saving their data for further use.": {"ru": "Это действие создает функцию фильтрации, которая будет перехватывать запросы, соответствующие указанным фильтрам и выбранному типу запроса, и сохраняет их данные для дальнейшего использования."},
	"If no filters are specified, the function will save the data of all requests of the selected type. Try to avoid this, and specify the most detailed filters possible to reduce the amount of cached data. Adding item to cache is resource consuming task, by limiting number of cache items you can optimize your script.": {"ru": "Если фильтры не заданы, функция будет сохранять данные всех запросов выбранного типа. Старайтесь этого избегать и указывать максимально подробные фильтры, чтобы сократить объем кэшируемых данных. Добавление страницы в кеш является ресурсоемкой задачей, ограничивая количество элементов, вы можете оптимизировать скрипт."},
	"All functions created by this action and the \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\" action are added to a common list. When a request is received, this list is checked in the order of addition.": {"ru": "Все функции, созданные этим действием и действием \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\", попадают в один общий список. При получении запроса этот список проверяется в порядке добавления."},
	"If no function matches the request, the request data is not saved. If exactly one matching function is found, its action (data is saved or not) is applied. If there are multiple matching functions, the one that was added last will be executed.": {"ru": "Если ни одна функция не соответствует запросу, данные запроса не сохраняются. Если найдено одно совпадение, применяется его действие (данные сохраняются или нет). При наличии нескольких совпадающих функций, будет выполнена та, которая была добавлена последней."},
	"By combining this action with the \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\" action, you can flexibly control which request data will be saved and which will not. This allows you to store only the necessary data, such as dynamic captcha data, an authorization token, and so on.": {"ru": "Комбинируя это действие с \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\", вы можете гибко контролировать, данные каких запросов будут сохранены, а каких — нет. Это позволяет сохранять только нужные данные, такие как динамические данные капчи, токен авторизации и прочее."},
	"The response data from the last request can be retrieved using the \"<a href=\"#!/getfromcache\">Get last item from cache</a>\" action.": {"ru": "Данные ответа из последнего запроса можно получить с помощью действия \"<a href=\"#!/getfromcache\">Получить последний элемент кэша</a>\"."},
	"The list of all request data can be retrieved using the \"<a href=\"#!/getallcache\">Get all items from cache</a>\" action.": {"ru": "Список данных всех запросов можно получить с помощью действия \"<a href=\"#!/getallcache\">Получить все элементы кэша</a>\"."},
	"All saved request data can be deleted using the \"<a href=\"#!/cleardata\">Clear Cached Data</a>\" action.": {"ru": "Все сохранённые данные запросов можно удалить с помощью действия \"<a href=\"#!/cleardata\">Очистить кэшированные данные</a>\"."},
	"URL filters allow you to define conditions for selecting a specific cached request based on its address. They enable you to precisely specify which URL's latest cached response should be retrieved. If no filters are set, the latest cache item for any URL matching the selected request type will be returned.": {"ru": "Фильтры для URL позволяют задать условия для выбора конкретного кэшированного запроса по его адресу. С их помощью можно точно указать, для какого URL должен быть извлечён последний кэшированный ответ. Если фильтры не заданы, будет возвращён последний кэшированный элемент для любого URL, соответствующего выбранному типу запроса."},
	"Get cache item with any HTTP request type": {"ru": "Получить элемент кэша с любым типом HTTP-запроса"},
	"The type of HTTP request for which to get a cache item. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to get a cache item of any type.": {"ru": "Тип HTTP-запроса, для которого нужно получить элемент кэша. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы получить элемент кэша с любым типом."},
	"Wait for cache item": {"ru": "Ждать элемент кэша"},
	"If activated and the required cache item is missing, the action will wait for it to appear.": {"ru": "Если активирован и нужный элемент кэша отсутствует, действие будет ожидать его появления."},
	"Wait for the item if it's absent": {"ru": "Ждать элемент, если он отсутствует"},
	"Return an empty string if the item is absent": {"ru": "Возвращать пустую строку при отсутствии элемента"},
	"Variable in which, after the successful execution of the action, the retrieved data will be written.": {"ru":"Переменная, в которую после успешного выполнения действия, будет записаны полученные данные."},
	"If activated, then the retrieved data will not be decoded and will be stored in base64 string format. This is necessary for proper handling of binary files (e.g., audio, images, or video) that are not intended for text interpretation.": {"ru":"Если активирован, то полученные данные не декодируются и сохраняются в формате base64-строки. Это необходимо для корректной работы с двоичными файлами (например, аудио, изображениями или видео), которые не предназначены для текстовой интерпретации."},
	"Save the retrieved data as a base64 string": {"ru": "Сохранить полученные данные в виде base64-строки"},
	"Decode the retrieved data and save as a UTF-8 string": {"ru": "Декодировать полученные данные и сохранить в виде UTF-8 строки"},
	"Get the latest cache item for a URL that matches the specified filters.": {"ru": "Получить последний элемент кэша для URL, соответствующего указанным фильтрам."},
	"This action retrieves the last cache item that matches the specified filters and selected request type, and stores the request response data in the specified variable.": {"ru": "Это действие получит последний элемент кэша, соответствующий указанным фильтрам и выбранному типу запроса, и сохраняет данные ответа на запрос в указанную переменную."},
	"For proper handling of binary data, activate the \"<b>Encode in base64</b>\" parameter. In this case, the data will be stored as a base64 string.": {"ru": "Для корректной обработки бинарных данных активируйте параметр \"<b>Кодировать в base64</b>\". В этом случае данные будут сохраняться в виде base64-строки."},
	"You can save the resulting base64 string to a file using the \"<a href=\"#!/filesystem_writefile\">Write File</a>\" action from the \"<b>Filesystem</b>\" module by activating the corresponding parameter there.": {"ru": "Полученную base64-строку можно сохранить в файл с помощью действия \"<a href=\"#!/filesystem_writefile\">Запись В Файл</a>\" из модуля \"<b>Файловая система</b>\", активировав там соответствующий параметр."},
	"If the retrieved data is an image, you can use this base64 string in the \"<a href=\"#!/solvecaptcha\">Solve Captcha</a>\" action or in the \"<b>Image processing</b>\" module.": {"ru": "Если полученные данные являются изображением, вы можете использовать эту base64-строку в действии \"<a href=\"#!/solvecaptcha\">Решить Капчу</a>\" или в модуле \"<b>Обработка изображений</b>\"."},
	"By default, if the required item is not in the cache, the action will wait for it to appear. You can disable this behavior by deactivating the corresponding parameter in the additional settings.": {"ru": "По умолчанию, если нужного элемента нет в кэше, действие будет ожидать его появления. Вы можете отключить это поведение, деактивировав соответствующий параметр в дополнительных настройках."},
	"You can change the maximum waiting time by clicking the hourglass icon next to the \"<b>Cancel</b>\" button.": {"ru": "Вы можете изменить максимальное время ожидания, кликнув на значок песочных часов, расположенный рядом с кнопкой \"<b>Отмена</b>\"."},
	"If waiting is enabled but the item does not appear within the specified time, the action will end with an error, which can be handled using the \"<a href=\"#!/ignoreerrors\">Ignore Errors</a>\" action.": {"ru": "Если ожидание включено, но элемент не появляется в течение указанного времени, действие завершится с ошибкой, которую можно обработать при помощи действия \"<a href=\"#!/ignoreerrors\">Игнорировать Ошибки</a>\"."},
	"If waiting is disabled and the required item is not found, the action will return an empty string.": {"ru": "Если ожидание отключено, но требуемого элемента нет, то действие вернёт пустую строку."},
	"By using the \"<a href=\"#!/getallcache\">Get all items from cache</a>\" action, you can retrieve a list of all cache items. This list will include the complete request data, not just the response data." : {"ru": "С помощью действия \"<a href=\"#!/getallcache\">Получить все элементы кэша</a>\" вы можете получить список всех элементов кэша. В этом списке будут представлены полные данные запросов, а не только данные ответов."},
	"URL filters allow you to define conditions for selecting cached requests based on their address. These filters provide flexibility in retrieving cache entries by enabling you to specify exactly which URLs should have their cached data retrieved. If no filters are set, all cache items matching the selected request type will be retrieved.": {"ru": "Фильтры для URL позволяют задать условия для выбора кэшированных запросов по их адресу. Эти фильтры обеспечивают гибкость при извлечении кэшированных элементов, позволяя точно указать, для каких URL необходимо получить данные. Если фильтры не заданы, будут извлечены все кэшированные записи, соответствующие выбранному типу запроса."},
	"Get cache items with any types of HTTP requests": {"ru": "Получить элементы кэша с любыми типами HTTP-запросов"},
	"The type of HTTP request for which to get a cache items. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to get cache items of any type.": {"ru": "Тип HTTP-запроса, для которого нужно получить элементы кэша. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы получить элементы кэша любого типа."},
	"Get all cache items for a URL that matches the specified filters.": {"ru": "Получить все элементы кэша для URL, соответствующего указанным фильтрам."},
	"Set request header for subsequent browser requests.": {"ru": "Установить заголовок запроса для последующих запросов браузера."},
	"Current action is deprecated. To ensure header authenticity, it is recommended to use the \"<a href=\"#!/FingerprintSwitcher_Apply\">Apply fingerprint</a>\" action. Additionally, the \"<b>Referrer</b>\" should be specified in the \"<a href=\"#!/load\">Load</a>\" action for the required Urls.": {"ru": "Текущее действие устарело. Для аутентичности заголовков рекомендуется использовать действие \"<a href=\"#!/FingerprintSwitcher_Apply\">Применить отпечаток</a>\". А также \"<b>Referrer</b>\" следует указывать в действии \"<a href=\"#!/load\">Загрузить</a>\" для нужных Url."},
	"This action will set an extra HTTP header that will be sent with every browser request made after this action.": {"ru": "Это действие установит дополнительный HTTP-заголовок, который будет отправляться с каждым запросом браузера выполняемым после этого действия."},
	"To disable all headers set by this action, use the \"<a href=\"#!/reset\">Reset</a>\" action. However, it clears all browser data, not just the headers.": {"ru": "Чтобы отключить все заголовки, установленные этим действием, используйте действие \"<a href=\"#!/reset\">Сброс</a>\". Однако оно очищает все данные браузера, а не только заголовки."},
	"Delete information about all loaded URLs from the cache.": {"ru": "Удалить информацию о всех загруженных URL из кэша."},
	"This action will completely and permanently delete all cached data resulting from running functions created using the \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" and \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\" actions.": {"ru": "Это действие полностью и безвозвратно удалит все кэшированные данные, полученные в результате выполнения функций, созданных с помощью действий \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\" и \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\"."},
	"Also, this action will clear the list of loaded URLs, which is used in the \"<a href=\"#!/getstatus\">Get Status</a>\" and \"<a href=\"#!/isloaded\">Is Loaded</a>\" actions.": {"ru": "Также это действие очистит список загруженных URL, который используется в действиях \"<a href=\"#!/getstatus\">Получить статус запроса</a>\" и \"<a href=\"#!/isloaded\">Был ли запрос</a>\"."},
	"Load cookies from http client to browser.": {"ru": "Загрузить cookies из http клиента в браузер."},
	"This action will overwrite all cookies set in the browser with cookies received from the http client.": {"ru": "Это действие перезапишет все куки, установленные в браузере, куками полученными из http клиента."},
	"This action is useful when performing certain operations is difficult with an HTTP client but easy in a browser.": {"ru": "Это действие полезно, если выполнение определённых операций оказывается сложным при использовании http клиента, но простым в браузере."},
	"After performing the necessary actions, the updated cookies can be transferred back to the http client using the \"<a href=\"#!/loadcookiesfrombrowser\">Load cookies from browser</a>\" action.": {"ru": "После выполнения необходимых действий обновлённые куки можно вернуть обратно в http клиент с помощью действия \"<a href=\"#!/loadcookiesfrombrowser\">Загрузить cookies из браузера</a>\"."},
	"URL filters allow you to define conditions for selecting the URL whose HTTP request status should be retrieved. They enable you to precisely specify which URL's response status should be returned. If no filters are set, the status of the first loaded URL matching the selected request type will be returned.": {"ru": "Фильтры для URL позволяют задать условия для выбора URL, для которого необходимо получить HTTP-статус запроса. С их помощью можно точно указать, для какого URL будет возвращён статус ответа. Если фильтры не заданы, будет возвращён статус первого загруженного URL, соответствующего выбранному типу запроса."},
	"Variable in which, after executing the action, the numeric HTTP status of the loaded Url request will be written, or <code>0</code> if the Url was not loaded.": {"ru": "Переменная, в которую после выполнения действия будет записан числовой HTTP-статус запроса загруженного Url, либо <code>0</code>, если Url не был загружен."},
	"Get request status for the URL matching the specified filters.": {"ru": "Получить статус запроса для URL, соответствующего указанным фильтрам."},
	"This action will return the numeric HTTP request status for the loaded URL that matches the specified filters, or <code>0</code> if the URL has not yet been loaded or is currently being loaded.": {"ru": "Это действие вернёт числовой HTTP-статус запроса для загруженного URL, соответствующего указанным фильтрам, или <code>0</code>, если URL ещё не загружен или находится в процессе загрузки."},
	"You can compare the status using the \"<a href=\"#!/if\">If</a>\" action. For example, by using the expression <code>[[SAVED_STATUS]] == 200</code>, you can check whether the request was successful.": {"ru": "Вы можете сравнить статус с помощью действия \"<a href=\"#!/if\">If</a>\". Например, используя выражение <code>[[SAVED_STATUS]] == 200</code>, можно проверить, был ли запрос успешным."},
	"If no filters are specified, the action will return the status of the first loaded URL.": {"ru": "Если фильтры не указаны, то действие вернёт статус первого загруженного URL."},
	"This action does not require allow cache as it uses a separate list of loaded URLs. URLs are added to this list after the corresponding request is completed.": {"ru": "Это действие не требует разрешения кэша, так как оно использует отдельный список загруженных URL. URL добавляются в этот список после завершения соответствующего запроса."},
	"The list of loaded URLs can be cleared using the \"<a href=\"#!/cleardata\">Clear Cached Data</a>\" action.": {"ru": "Список загруженных URL можно очистить с помощью действия \"<a href=\"#!/cleardata\">Очистить кэшированные данные</a>\"."},
	"List of all <a href=\"#\" class=\"tr\" onclick=\"BrowserAutomationStudio_OpenUrl('https://httpstatuses.com/');return false\">HTTP statuses</a>.": {"ru": "Список всех <a href=\"#\" class=\"tr\" onclick=\"BrowserAutomationStudio_OpenUrl('https://httpstatuses.com/');return false\">HTTP-статусов</a>."},
	"URL filters allow you to define conditions to determine whether a specific URL has finished loading. They enable you to precisely specify which URL should be checked for complete loading. If no filters are set, the check will be performed on any loaded URL.": {"ru": "Фильтры для URL позволяют задать условия для определения, был ли загружен нужный URL. С их помощью можно точно указать, какой URL следует проверить на полную загрузку. Если фильтры не заданы, проверка будет осуществляться для любого загруженного URL."},
	"Variable in which, after executing the action, the value <code>1</code> or <code>0</code> will be written, depending on whether the Url was loaded or not.": {"ru":"Переменная, в которую после выполнения действия будет записано значение <code>1</code> или <code>0</code> в зависимости от того, загружен Url или нет."},
	"The Url is fully loaded": {"ru": "Url полностью загружен"},
	"The Url has not yet been loaded or is currently being loaded": {"ru": "Url ещё не загружен или находится в процессе загрузки"},
	"Check if a URL matching the specified filters has been loaded.": {"ru": "Проверить, был ли загружен URL, соответствующий указанным фильтрам."},
	"This action returns <code>1</code> if the URL matching the specified filters has been fully loaded, and <code>0</code> if it is not yet loaded or is currently being loaded. This result may be used with \"<a href=\"#!/if\">If</a>\" action.": {"ru": "Это действие вернёт <code>1</code>, если URL, соответствующий указанным фильтрам, уже полностью загружен, и <code>0</code>, если он ещё не загружен или находится в процессе загрузки. Результат может быть использован вместе с действием \"<a href=\"#!/if\">If</a>\"."},
	"If no filters are specified, the action will check if at least one URL has been loaded.": {"ru": "Если фильтры не указаны, то действие проверит, был ли загружен хотя бы один любой URL."},
	"To wait for a URL to load, use the \"<a href=\"#!/waitload\">Wait Url Loaded</a>\" action from the \"<b>Waiters</b>\" module.": {"ru": "Для ожидания загрузки URL используйте действие \"<a href=\"#!/waitload\">Ждать Загрузки Url</a>\" из модуля \"<b>Ожидание</b>\"."},
	"Clear all previously added request filters.": {"ru": "Очистить все ранее добавленные маски запросов."},
	"Clear all previously added cache and request filters.": {"ru": "Очистите все ранее добавленные фильтры кэша и запросов."},
	"This action will completely and permanently stop all cache and request filtering functions previously created via the following actions: \"<a href=\"#!/cachemaskallow\">Allow cache</a>\", \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\", \"<a href=\"#!/requestmaskallow\">Allow request</a>\", or \"<a href=\"#!/requestmaskdeny\">Deny request</a>\".": {"ru": "Это действие полностью и безвозвратно остановит все функции фильтрации кэша и запросов, созданные ранее с помощью следующих действий: \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\", \"<a href=\"#!/requestmaskallow\">Разрешать запрос</a>\" или \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\"."},
	"To stop specific functions, use the \"<a href=\"#!/disablerules\">Stop replacement</a>\" action.": {"ru": "Для остановки конкретных функций используйте действие \"<a href=\"#!/disablerules\">Остановить замену</a>\"."},
	"Stopping a function removes all information about it, making it impossible to retrieve statistics for these functions after this action is performed.": {"ru": "Остановка удаляет всю информацию о функции, поэтому после выполнения этого действия получить статистику по этим функциям будет невозможно."},
	"If no cache or request filtering functions have been created, this action will do nothing.": {"ru": "Если функции фильтрации кэша и запросов ещё не были созданы, то это действие ничего не сделает."},
	"Variable in which, after executing the action, a JSON string containing the retrieved cookies will be written.": {"ru":"Переменная, в которую после выполнения действия будет записана JSON-строка с полученными куки."},
	"Domain": {"ru": "Домен"},
	"Domain or domain mask for which cookies should be retrieved. In the mask, the \"*\" character matches any number of characters, and \"?\" matches a single character (does not match a dot). Matching is case-insensitive. If the mask starts with \"^\", strict mode is enabled: the pattern is matched exactly, without adding \"*\" at the beginning and end. You can specify multiple domains (or masks) as a list or in a comma-separated string. If no value is specified, the action will retrieve cookies for all domains.": {"ru": "Домен или маска домена, для которого нужно получить куки. В маске символ \"*\" соответствует любому количеству символов, а \"?\" — одному символу (не сопоставляется с точкой). Сравнение производится без учёта регистра. Если маска начинается с \"^\", включается строгий режим: шаблон сопоставляется точно, без добавления \"*\" в начало и конец. Можно указать несколько доменов (или масок) в виде списка или строки, разделённой запятыми. Если значение не указано, то действие получит куки для всех доменов."},
	"Get cookies for all domains": {"ru": "Получить куки для всех доменов"},
	"Save browser cookies into variable.": {"ru": "Сохранить куки браузера в переменную."},
	"This action will get cookies from the browser and save them as a JSON string to the specified variable.": {"ru": "Это действие получит куки из браузера и сохранит их в виде JSON-строки в указанную переменную."},
	"In the \"<b>Domain</b>\" parameter, you can specify one or more domains (or domain masks) for which to retrieve cookies. If no value is specified, all available cookies will be retrieved.": {"ru": "В параметр \"<b>Домен</b>\" можно указать один или несколько доменов (или масок домена), для которых нужно получить куки. Если значение не задано, будут получены все доступные куки."},
	"However, not all websites use cookies for storing authentication; they may rely on localStorage or other mechanisms. Therefore, a more universal solution is to use <a href=\"#!/UseProfile\">profiles</a>, which already include cookies, localStorage, and other data.": {"ru": "Однако не все сайты используют куки для хранения авторизации — они могут применять localStorage или другие механизмы. Поэтому более универсальным решением является использование <a href=\"#!/UseProfile\">профилей</a>, которые уже включают куки, localStorage и другие данные."},
	"The cookie JSON string is an object with a single property, \"<b>cookies</b>\" which is an array containing a list of all received cookies.": {"ru": "JSON-строка куки представляет собой объект с единственным свойством \"<b>cookies</b>\", которое является массивом, содержащим список всех полученных куки."},
	"Each individual element of this array is an object with the following properties:": {"ru": "Каждый отдельный элемент этого массива представляет собой объект со следующими свойствами:"},
	"<b>name</b> - The name of the cookie.": {"ru": "<b>name</b> - имя куки."},
	"<b>value</b> - The value of the cookie.": {"ru": "<b>value</b> - значение куки."},
	"<b>domain</b> - The domain to which the cookie is assigned.": {"ru": "<b>domain</b> - домен, к которому привязан куки."},
	"<b>path</b> - The path for which the cookie is valid.": {"ru": "<b>path</b> - путь, для которого действителен куки."},
	"<b>expires</b> - A floating-point number representing the cookies expiration time in Unix timestamp format, or <code>-1</code> if the cookie is session.": {"ru": "<b>expires</b> - дробное число, время истечения срока действия куки в формате Unix timestamp или <code>-1</code>, если куки являются сессионными."},
	"The cookie expiration date can be determined by multiplying the value of the \"<b>expires</b>\" property by 1000 and using the resulting value in the \"<a href=\"#!/datetime_msecondstodate\">Milliseconds To Date</a>\" action.": {"ru": "Дату истечения куки можно получить умножив значение свойства \"<b>expires</b>\" на 1000 и использовав результат в действии \"<a href=\"#!/datetime_msecondstodate\">Миллисекунды В Дату</a>\"."},
	"<b>size</b> - An integer representing the size of the cookie in bytes.": {"ru": "<b>size</b> - целое число, размер куки в байтах."},
	"<b>httpOnly</b> - A flag indicating whether the cookie is accessible only via HTTP (true/false).": {"ru": "<b>httpOnly</b> - флаг, указывающий, доступен ли куки только через HTTP (true/false)."},
	"<b>secure</b> - A flag indicating that the cookie is transmitted only over HTTPS (true/false).": {"ru": "<b>secure</b> - флаг, указывающий, что куки передаются только по HTTPS (true/false)."},
	"<b>session</b> - A flag indicating whether the cookie is a session cookie (true/false).": {"ru": "<b>session</b> - флаг, указывающий, является ли куки сессионным (true/false)."},
	"And other more specific properties. A list of all properties and their descriptions can be found <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie'); return false;\">here</a>.": {"ru": "И других более специфичных свойств. Список всех свойств и их описание можно найти <a href=\"#\" onclick=\"BrowserAutomationStudio_OpenUrl('https://chromedevtools.github.io/devtools-protocol/tot/Network/#type-Cookie'); return false;\">здесь</a>."},
	"If you need to modify cookies or extract specific values from them, use actions from the \"<b>JSON</b>\" module.": {"ru": "Если вам нужно изменить куки или извлечь из них определённые значения, используйте действия из модуля \"<b>JSON</b>\"."},
	"A JSON string containing the cookies to be set in the browser. If the value is not specified and adding to existing cookies is disabled, the action will clear all cookies in the browser.": {"ru": "JSON-строка, содержащая куки, которые необходимо установить в браузер. Если значение не указано и добавление к существующим куки отключено, то действие очистит все куки в браузере."},
	"Clear cookies": {"ru": "Удалить куки"},
	"Add cookies to existing ones": {"ru": "Добавить cookies к существующим"},
	"If enabled, the specified cookies will be added to the existing cookies, rather than replacing them.": {"ru":"Если активирован, то указанные куки будут добавлены к существующим, а не заменят их."},
	"Add the specified cookies to existing ones": {"ru":"Добавить указанные куки к существующим"},
	"Replace existing cookies with the specified ones": {"ru":"Заменить существующие куки указанными"},
	"Set cookies for browser.": {"ru": "Установить куки для браузера."},
	"This action will overwrite the browser cookies with the values from the specified JSON string or add them to the existing ones if the corresponding parameter is activated in the additional settings.": {"ru": "Это действие перезапишет куки браузера значениями из указанной JSON-строки или добавит их к уже существующим, если в дополнительных настройках активирован соответствующий параметр."},
	"If the \"<b>Cookies</b>\" parameter is not specified and the \"<b>Add cookies to existing ones</b>\" parameter in the additional settings is not activated, this action will completely clear all cookies in the browser.": {"ru": "Если параметр \"<b>Cookies</b>\" не задан и параметр \"<b>Добавить cookies к существующим</b>\" в дополнительных настройках не активирован, действие полностью очистит все куки в браузере."},
	"The cookie JSON string is an object with a single property, \"<b>cookies</b>\" which is an array containing a list of all cookies.": {"ru": "JSON-строка куки представляет собой объект с единственным свойством \"<b>cookies</b>\", которое является массивом, содержащим список всех куки."},
	"Network": {"ru": "Сеть"},
	"Filters for URL": {"ru": "Фильтры для URL"},
	"URL filters allow you to set conditions for determining to which requests the URL replacement will be applied. These filters provide flexibility in processing requests, enabling you to specify exactly for which URLs the replacement will be performed based on the specified conditions.": {"ru": "Фильтры по URL-адресу запроса позволяют задать условия для определения, к каким запросам будет применяться замена URL-адреса. Эти фильтры обеспечивают гибкость в обработке запросов, позволяя точно указать, для каких URL-адресов будет выполнена замена на основании заданных условий."},
	"If no filters are set, the replacement will be applied to all requests that match the selected type.": {"ru": "Если фильтры не заданы, замена будет применяться ко всем запросам, соответствующим выбранному типу."},
	"URL filters allow you to set conditions for determining to which requests the content replacement will be applied. These filters provide flexibility in processing requests, enabling you to specify exactly for which URLs the content replacement will be performed based on the specified conditions.": {"ru": "Фильтры по URL-адресу запроса позволяют задать условия для определения, к каким запросам будет применяться замена содержимого запроса. Эти фильтры обеспечивают гибкость в обработке запросов, позволяя точно указать, для каких URL-адресов будет выполнена замена содержимого на основании заданных условий."},
	"URL filters allow you to set conditions for determining to which requests the content replacement in the server response will be applied. These filters provide flexibility in processing requests, enabling you to specify exactly for which URLs the content replacement in the server response will be performed based on the specified conditions.": {"ru": "Фильтры по URL-адресу запроса позволяют задать условия для определения, к каким запросам будет применяться замена содержимого ответа сервера. Эти фильтры обеспечивают гибкость в обработке запросов, позволяя точно указать, для каких URL-адресов будет выполнена замена содержимого ответа на основании заданных условий."},
	"Filters for content": {"ru": "Фильтры для контента"},
	"Request content filters allow you to set conditions for determining to which requests the content modification will be applied. These filters provide flexibility in processing requests, enabling you to specify exactly which requests will be modified based on the specified conditions.": {"ru": "Фильтры по содержимому запроса позволяют задать условия для определения, к каким запросам будет применяться замена их содержимого. Эти фильтры обеспечивают гибкость в обработке запросов, что позволяет точно указать, какие запросы должны быть изменены на основании заданных условий."},
	"Content filters allow you to define conditions for determining to which server responses the content replacement will be applied. These filters provide flexibility in processing requests, enabling you to specify exactly which server responses will have their content replaced based on the specified conditions.": {"ru": "Фильтры по содержимому ответа позволяют задать условия для определения, к каким ответам сервера будет применяться замена содержимого. Эти фильтры обеспечивают гибкость в обработке запросов, позволяя точно указать, для каких ответов сервера будет выполнена замена на основании заданных условий."},
	"Request type": {"ru": "Тип запроса"},
	"Applies the replacement to all types of HTTP requests": {"ru": "Применяет замену ко всем типам HTTP-запросов"},
	"The type of HTTP request to which the replacement should be applied. You can specify multiple types as a list or a comma-separated string, or use the string \"<b>ALL</b>\" to apply the replacement to all request types.": {"ru": "Тип HTTP-запроса, к которому нужно применять замену. Можно указать несколько типов в виде списка или строки, разделённой запятыми, либо использовать строку \"<b>ALL</b>\", чтобы замена применялась ко всем типам запросов."},
	"Replace mode": {"ru": "Режим замены"},
	"Defines the method of replacing the URL in the browser request.": {"ru": "Определяет способ замены URL-адреса в запросе браузера."},
	"Defines the method of replacing the content in the request body.": {"ru": "Определяет способ замены содержимого в теле запроса."},
	"Defines the method of replacing content in the server response to the browser request.": {"ru": "Определяет способ замены содержимого в ответе сервера на запрос браузера."},
	"Replace exact value": {"ru": "Заменить точное значение"},
	"If selected, an exact match of the specified value will be searched for, and if found, it will be replaced with the new value.": {"ru": "Если выбрано, будет выполняться поиск точного совпадения с указанным значением, и при его обнаружении оно будет заменено на новое значение."},
	"Replaces an exact match of the specified value with the new value.": {"ru": "Заменяет точное совпадение указанного значения новым значением."},
	"Exact value": {"ru": "Точное значение"},
	"The exact value that needs to be replaced.": {"ru": "Точное значение, которое необходимо заменить."},
	"Replace all matches": {"ru": "Заменить все совпадения"},
	"If activated, all occurrences of the exact value will be replaced.": {"ru": "Если активирован, будут заменены все вхождения точного значения."},
	"Activated": {"ru": "Активирован"},
	"Replace all occurrences of the exact value": {"ru": "Заменить все вхождения точного значения"},
	"Deactivated": {"ru": "Деактивирован"},
	"Replace only the first occurrence of the exact value": {"ru": "Заменить только первое вхождение точного значения"},
	"Replace with regex": {"ru": "Заменить регулярным выражением"},
	"If selected, the replacement will be performed based on the specified regular expression.": {"ru": "Если выбрано, замена будет выполняться на основе указанного регулярного выражения."},
	"Replaces URL content based on the specified regular expression.": {"ru": "Заменяет содержимое URL на основе указанного регулярного выражения."},
	"Replaces content based on the specified regular expression.": {"ru": "Заменяет содержимое на основе указанного регулярного выражения."},
	"Regular expression": {"ru": "Регулярное выражение"},
	"The regular expression that will be used for replacement. It supports both regular and named groups, allowing for flexible pattern matching in complex operations.": {"ru": "Регулярное выражение, которое будет использоваться для замены. Поддерживает использование обычных и именованных групп, что позволяет создавать гибкие шаблоны для сложных операций."},
	"Regex flags": {"ru": "Флаги регулярного выражения"},
	"Ignore case": {"ru": "Игнорировать регистр"},
	"Ignore case sensitivity during the replacement": {"ru": "Игнорировать регистр символов во время замены"},
	"Consider case sensitivity during the replacement": {"ru": "Учитывать регистр символов во время замены"},
	"If \"<b>enable</b>\" is selected, the regular expression will ignore case sensitivity during the replacement.": {"ru": "Если выбрано \"<b>enable</b>\", регулярное выражение будет игнорировать регистр символов при замене."},
	"Global search": {"ru": "Глобальный поиск"},
	"Replace all matching occurrences": {"ru": "Заменить все найденные совпадения"},
	"Replace only the first matching occurrence": {"ru": "Заменить только первое найденное совпадение"},
	"If \"<b>enable</b>\" is selected, the regular expression will replace all matching occurrences.": {"ru": "Если выбрано \"<b>enable</b>\", регулярное выражение будет заменять все найденные совпадения."},
	"Multiline mode": {"ru": "Многострочный режим"},
	"Enable multiline mode for regular expression": {"ru": "Включить многострочный режим для регулярного выражения"},
	"Disable multiline mode for regular expression": {"ru": "Отключить многострочный режим для регулярного выражения"},
	"If \"<b>enable</b>\" is selected, the regular expression will treat the content as multiple lines, allowing the start (^) and end ($) anchors to match the start and end of each line, rather than the entire content.": {"ru": "Если выбрано \"<b>enable</b>\", регулярное выражение будет обрабатывать содержимое как несколько строк, позволяя якорям начала (^) и конца ($) строки соответствовать началу и концу каждой строки, а не всего содержимого."},
	"Replace completely": {"ru": "Заменить полностью"},
	"If selected, the entire request URL will be completely replaced with the new value.": {"ru": "Если выбрано, весь URL запроса будет полностью заменён на новое значение."},
	"Completely replaces the request URL with the new value.": {"ru": "Полностью заменяет URL запроса на новое значение."},
	"Completely replaces the content of the request with the new value.": {"ru": "Полностью заменяет содержимое запроса на новое значение."},
	"Completely replaces the content of the server response with the new value.": {"ru": "Полностью заменяет содержимое ответа сервера на новое значение."},
	"Insert before": {"ru": "Вставить до"},
	"If selected, an exact match with the specified value will be searched for, and if found, the new value will be inserted before it.": {"ru": "Если выбрано, будет выполняться поиск точного совпадения с указанным значением, и при его обнаружении перед ним будет вставлено новое значение."},
	"Inserts the new value before the specified value if found.": {"ru": "Вставляет новое значение перед указанным значением, если оно найдено."},
	"The value before which the new value needs to be inserted.": {"ru": "Значение, перед которым необходимо вставить новое значение."},
	"Insert after": {"ru": "Вставить после"},
	"If selected, an exact match with the specified value will be searched for, and if found, the new value will be inserted after it.": {"ru": "Если выбрано, будет выполняться поиск точного совпадения с указанным значением, и при его обнаружении новое значение будет вставлено после него."},
	"Inserts the new value after the specified value if found.": {"ru": "Вставляет новое значение после указанного значения, если оно найдено."},
	"The value after which the new value needs to be inserted.": {"ru": "Значение, после которого необходимо вставить новое значение."},
	"Replace between": {"ru": "Заменить между"},
	"If selected, an exact match of the two specified values will be searched for. If both values are found, the content between them will be replaced with the new value.": {"ru": "Если выбрано, будет выполняться поиск точного совпадения двух указанных значений. Если оба значения найдены, содержимое между ними будет заменено на новое значение."},
	"Replaces the content between two specified values if both are found.": {"ru": "Заменяет содержимое между двумя указанными значениями, если они оба найдены."},
	"Left value": {"ru": "Левое значение"},
	"The value located before the content that needs to be replaced.": {"ru": "Значение, находящееся перед содержимым, которое требуется заменить."},
	"Right value": {"ru": "Правое значение"},
	"The value positioned after the content that needs to be replaced.": {"ru": "Значение, расположенное после содержимого, которое требуется заменить."},
	"Replace to": {"ru": "Заменить на"},
	"The new value that will be used for the replacement. If the replacement is done using a regular expression, both regular and named groups from the specified regular expression can be used in this value.": {"ru": "Новое значение, которое будет использоваться для замены. Если замена производится с использованием регулярного выражения, в этом значении можно использовать как обычные, так и именованные группы, определённые в регулярном выражении."},
	"Number of actuations": {"ru": "Количество срабатываний"},
	"The maximum number of requests for which the replacement will be applied.": {"ru": "Максимальное количество запросов, для которых будет применена замена."},
	"If not specified or set to zero, there will be no limit.": {"ru": "Если значение не указано или установлен ноль, ограничение отсутствует."},
	"Don't limit the number of actuations": {"ru": "Не ограничивать количество срабатываний"},
	"Empty value": {"ru": "Пустое значение"},
	"Replacement ID": {"ru": "ID замены"},
	"Variable in which, after successful execution of the action, the ID of the created filtering function will be written. Using this ID, you can stop the function or get its statistics.": {"ru":"Переменная, в которую после успешного выполнения действия будет записан ID созданной функции фильтрации. С помощью ID можно остановить эту функцию или получить её статистику."},
	"Variable in which, after successful execution of the action, the ID of the created replacement function will be written. Using this ID, you can stop the function or get its statistics.": {"ru":"Переменная, в которую после успешного выполнения действия будет записан ID созданной функции замены. С помощью ID можно остановить эту функцию или получить её статистику."},
	"Replace the browser request URL with another URL.": {"ru": "Заменить URL-адрес запроса браузера другим URL-адресом."},
	"This action creates a replacement function that will partially or fully replace the URL of browser requests that match the specified filters and request type, using the provided replacement parameters.": {"ru": "Это действие создает функцию замены, которая будет частично или полностью заменять URL запросов браузера, соответствующих указанным фильтрам и типу запроса, с использованием заданных параметров замены."},
	"If no filters are specified, the function will be applied to all requests matching the selected type.": {"ru": "Если фильтры не указаны, то функция будет применяться ко всем запросам, соответствующим выбранному типу."},
	"The function can be stopped using the replacement ID obtained as a result of executing this action in the \"<a href=\"#!/disablerules\">Stop replacement</a>\" action.": {"ru": "Функцию можно остановить, используя ID замены, полученный в результате выполнения этого действия, в действии \"<a href=\"#!/disablerules\">Остановить замену</a>\"."},
	"This replacement ID can also be used in the \"<a href=\"#!/getrulestats\">Get replacement stats</a>\" action to retrieve the function's execution statistics.": {"ru": "ID замены также можно использовать в действии \"<a href=\"#!/getrulestats\">Получить статистику замены</a>\", чтобы получить статистику выполнения функции."},
	"In additional settings, you can set a limit on the number of function executions.": {"ru": "В дополнительных настройках можно установить ограничение на количество срабатываний функции."},
	"This function modifies the request URL before it is sent, ensuring that the change is invisible on the page—meaning the original URL will remain in the address bar and cache.": {"ru": "Эта функция изменяет URL запроса перед его отправкой, при этом изменение будет незаметно на странице — в адресной строке и кэше сохранится исходный URL."},
	"If selected, the entire content of the request will be completely replaced with the new value.": {"ru": "Если выбрано, всё содержимое запроса будет полностью заменено новым значением."},
	"Replace the contents of the browser request.": {"ru": "Заменить содержимое запроса браузера."},
	"This action creates a replacement function that will partially or fully replace the content of browser requests that match the specified filters and request type, using the provided replacement parameters.": {"ru": "Это действие создает функцию замены, которая будет частично или полностью заменять содержимое запросов браузера, соответствующих указанным фильтрам и типу запроса, с использованием заданных параметров замены."},
	"This function also updates the \"<b>content-length</b>\" header when modifying the content to ensure it matches the new data.": {"ru": "Эта функция также обновляет заголовок \"<b>content-length</b>\" при изменении содержимого, чтобы его значение соответствовало новым данным."},
	"This function modifies the content of the request before it is sent, while the original value remains in the cache.": {"ru": "Эта функция изменяет содержимое запроса перед его отправкой, при этом в кэше останется исходное значение."},
	"If selected, the entire content of the server's response to the browser request will be completely replaced with the new value.": {"ru": "Если выбрано, всё содержимое ответа сервера на запрос браузера будет полностью заменено на новое значение."},
	"Replace the contents of the server response to a browser request.": {"ru": "Заменить содержимое ответа сервера на запрос браузера."},
	"This action creates a replacement function that will partially or fully replace the content of server responses to browser requests that match the specified filters and request type, using the provided replacement parameters.": {"ru": "Это действие создает функцию замены, которая будет частично или полностью заменять содержимое ответов сервера на запросы браузера, соответствующих указанным фильтрам и типу запроса, с использованием заданных параметров замены."},
	"This function modifies the content of the server response before it is sent to the browser, with the modified value being stored in the cache.": {"ru": "Эта функция изменяет содержимое ответа сервера перед его отправкой в браузер, при этом в кэше будет сохранено уже изменённое значение."},
	"Stop executing all existing replacement and filtering functions": {"ru": "Остановить выполнение всех существующих функций замены и фильтрации"},
	"The ID of the replacement or filtering function that needs to be stopped. You can specify multiple IDs separated by commas or use a list. To stop all existing functions, use the value \"<b>ALL</b>\".": {"ru":"ID функции замены или фильтрации, выполнение которой нужно остановить. Можно указать несколько ID через запятую или использовать список. Чтобы остановить все существующие функции, нужно использовать значение \"<b>ALL</b>\"."},
	"Stop the replacement or filtering function by its ID.": {"ru": "Остановить функцию замены или фильтрации по её ID."},
	"This action will completely and permanently stop the specified function created using one of the following actions: \"<a href=\"#!/cachemaskallow\">Allow cache</a>\", \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\", \"<a href=\"#!/requestmaskallow\">Allow request</a>\", \"<a href=\"#!/requestmaskdeny\">Deny request</a>\", \"<a href=\"#!/redirectrequests\">Redirect browser requests</a>\", \"<a href=\"#!/replacerequestcontent\">Replace request content</a>\", or \"<a href=\"#!/replaceresponsecontent\">Replace response content</a>\".": {"ru": "Это действие полностью и безвозвратно остановит указанную функцию, созданную с помощью одного из следующих действий: \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\", \"<a href=\"#!/requestmaskallow\">Разрешать запрос</a>\", \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\", \"<a href=\"#!/redirectrequests\">Перенаправить запросы браузера</a>\", \"<a href=\"#!/replacerequestcontent\">Заменить содержимое запроса</a>\" или \"<a href=\"#!/replaceresponsecontent\">Заменить содержимое ответа</a>\"."},
	"To perform this action, you need the replacement ID obtained as a result of executing one of the actions mentioned above.": {"ru": "Для выполнения этого действия нужен ID замены, полученный в результате выполнения одного из вышеуказанных действий."},
	"This action can stop multiple functions at once; for this, a list of IDs must be provided instead of a single ID. You can use a string of IDs separated by commas as a list.": {"ru": "Это действие может останавливать несколько функций сразу. Для этого вместо одного ID должен быть указан список ID. В качестве списка можно использовать строку, состоящую из ID, разделённых запятыми."},
	"By specifying the string \"<b>ALL</b>\" as the ID, you can stop all existing replacement and filtering functions.": {"ru": "Указав строку \"<b>ALL</b>\" в качестве ID, можно остановить выполнение всех существующих функций замены и фильтрации."},
	"Using the \"<a href=\"#!/getrulestats\">Get replacement stats</a>\" action, you can retrieve a list of all replacement IDs, as well as a separate list of only active replacement IDs.": {"ru": "С помощью действия \"<a href=\"#!/getrulestats\">Получить статистику замены</a>\" можно получить список всех ID замены, а также отдельно список только активных ID замены."},
	"Stopping a function removes all information about it, making it impossible to retrieve its statistics after this action is performed.": {"ru": "Остановка удаляет всю информацию о функции, поэтому после выполнения этого действия получить статистику по данной функции будет невозможно."},
	"If the function with the specified ID does not exist, this action will do nothing.": {"ru": "Если функции с указанным ID не существует, то это действие ничего не сделает."},
	"The ID of the replacement or filtering function for which the execution statistics need to be retrieved.": {"ru": "ID функции замены или фильтрации, для которой нужно получить статистику выполнения."},
	"Get only the list of all IDs and the list of active IDs": {"ru": "Получить только список всех ID и список активных ID"},
	"Number of executions": {"ru": "Количество выполнений"},
	"This variable will contain the number of executions of the specified function.": {"ru": "Эта переменная будет содержать количество выполнений указанной функции."},
	"The specified function has not been executed yet": {"ru": "Указанная функция ещё не выполнялась"},
	"The replacement ID was not provided, or the function with the specified ID does not exist": {"ru": "ID замены не был указан или функции с указанным ID не существует"},
	"Is active": {"ru": "Активна"},
	"This variable will be set to <code>true</code> or <code>false</code> depending on whether the specified function is currently active.": {"ru": "Эта переменная будет иметь значение <code>true</code> или <code>false</code> в зависимости от того, активна ли указанная функция в данный момент."},
	"A function is considered active if its number of executions is below the set maximum or if no execution limit is in place.": {"ru": "Функция считается активной, если количество её выполнений ниже установленного максимума или если ограничение отсутствует."},
	"The function is currently active": {"ru": "Функция в данный момент активна"},
	"The replacement ID was not provided, the function with the specified ID does not exist, or it is currently inactive": {"ru": "ID замены не был указан, функции с указанным ID не существует или она неактивна"},
	"List of all replacement IDs": {"ru": "Список всех ID замены"},
	"This variable will contain a list of IDs for all existing replacement and filtering functions.": {"ru": "Эта переменная будет содержать список ID всех существующих функций замены и фильтрации."},
	"The resulting list can be processed using actions from the \"<b>List</b>\" module.": {"ru":"Полученный список можно обработать с помощью действий из модуля \"<b>Список</b>\"."},
	"List of active replacement IDs": {"ru": "Список активных ID замены"},
	"This variable will contain a list of IDs for only the replacement and filtering functions that are currently active.": {"ru": "Эта переменная будет содержать список ID только тех функций замены и фильтрации, которые в данный момент активны."},
	"Get statistics on the execution of a replacement or filtering function by its ID.": {"ru": "Получить статистику выполнения функции замены или фильтрации по её ID."},
	"This action will retrieve the execution statistics of the specified function, created using one of the following actions: \"<a href=\"#!/cachemaskallow\">Allow cache</a>\", \"<a href=\"#!/cachemaskdeny\">Deny cache</a>\", \"<a href=\"#!/requestmaskallow\">Allow request</a>\", \"<a href=\"#!/requestmaskdeny\">Deny request</a>\", \"<a href=\"#!/redirectrequests\">Redirect browser requests</a>\", \"<a href=\"#!/replacerequestcontent\">Replace request content</a>\", or \"<a href=\"#!/replaceresponsecontent\">Replace response content</a>\", and save the data into the specified variables.": {"ru": "Это действие получит статистику выполнения указанной функции, созданной с помощью одного из следующих действий: \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", \"<a href=\"#!/cachemaskdeny\">Запретить кэш</a>\", \"<a href=\"#!/requestmaskallow\">Разрешать запрос</a>\", \"<a href=\"#!/requestmaskdeny\">Запретить запрос</a>\", \"<a href=\"#!/redirectrequests\">Перенаправить запросы браузера</a>\", \"<a href=\"#!/replacerequestcontent\">Заменить содержимое запроса</a>\" или \"<a href=\"#!/replaceresponsecontent\">Заменить содержимое ответа</a>\", и сохранит данные в указанные переменные."},
	"To retrieve the full statistics, you must provide the replacement ID obtained as a result of executing one of the actions mentioned above.": {"ru": "Для получения полной статистики необходимо указать ID замены, полученный в результате выполнения одного из вышеуказанных действий."},
	"If the replacement ID is not provided or a function with the specified ID does not exist, only the list of all replacement IDs and the list of active replacement IDs will be retrieved. The \"<b>Number of executions</b>\" will be set to <code>-1</code>, and \"<b>Is active</b>\" will be set to <code>false</code>.": {"ru": "Если ID замены не указан или функции с указанным ID не существует, будут получены только список всех ID замены и список активных ID замены. Значение \"<b>Количество выполнений</b>\" будет установлено в <code>-1</code>, а \"<b>Активна</b>\" будет установлено в <code>false</code>."},
	"The retrieved ID lists can be processed using actions from the \"<b>List</b>\" module or directly used in the \"<a href=\"#!/disablerules\">Stop replacement</a>\" action.": {"ru": "Полученные списки ID можно обрабатывать с помощью действий из модуля \"<b>Список</b>\" или использовать непосредственно в действии \"<a href=\"#!/disablerules\">Остановить замену</a>\"."},

	/* Tools */
   "Generate a random integer in a given range.": {"ru": "Сгенерировать случайное целое число в заданном диапазоне."},
	
	"Http auth password": {"ru": "HTTP Аутентификация пароль"},
	"Http auth login": {"ru": "HTTP Аутентификация логин"},

	"Prompt user input result": {"ru": "Результат ввода"},

	"EXPRESSION": {"ru": "ВЫРАЖЕНИЕ"},
	"STRING": {"ru": "СТРОКА"},
	"INT": {"ru": "ЧИСЛО"},
	
	"Confirm Changes": {"ru": "Подтвердить Изменения"},
	"Replace old value": {"ru": "Заменить старое значение"},
	"with new one": {"ru": "новым выражением"},
	"OK": {"ru": "ОК"},
	"Enter Value": {"ru": "Введите значение"},
	"CANCEL": {"ru": "ОТМЕНА"},
	
	

	"ACCEPT": {"ru": "ПРИНЯТЬ"},
	"value1": {"ru": "значение1"},
	"value2": {"ru": "значение2"},
	"expression": {"ru": "выражение"},
	"value": {"ru": "значение"},
	"string": {"ru": "строка"},
	"first": {"ru": "первый"},
	"second": {"ru": "второй"},
	"index1": {"ru": "индекс1"},
	"index2": {"ru": "индекс2"},
	"string part": {"ru": "часть строки"},
	"replace from": {"ru": "заменить из"},
	"replace to": {"ru": "заменить на"},
	"regexp": {"ru": "рег выражение"},
	"array": {"ru": "массив"},
	"min": {"ru": "мин"},
	"max": {"ru": "макс"},
	"element": {"ru": "элемент"},
	"number1": {"ru": "число1"},
	"number2": {"ru": "число2"},
	"separator": {"ru": "разделитель"},
	"index": {"ru": "индекс"},
	"array1": {"ru": "массив1"},
	"array2": {"ru": "массив2"},
	"alphabet": {"ru": "словарь"},
	"length": {"ru": "длина"},
  	"Returns true if value1 equal value2, otherwise false": {"ru": "Возвращает true, если значение1 равно значению2, в противном случае возвращает false"},
	"Returns true if value1 is less than value2, otherwise false": {"ru": "Возвращает true, если значение1 меньше значения2, в противном случае возвращает false"},
	"Returns true if value1 is not greater than value2, otherwise false": {"ru": "Возвращает true, если значение1 не больше значения2, в противном случае возвращает false"},
	"Returns true if value1 is greater than value2, otherwise false": {"ru": "Возвращает true, если значение1 больше значения2, в противном случае возвращает false"},
	"Returns true if value1 is not less than value2, otherwise false": {"ru": "Возвращает true, если значение1 не меньше значения2, в противном случае возвращает false"},
    "Value": {"ru": "Значение"},  
    "result": {"ru": "результат"},
    "Code": {"ru": "Код"},
	"and": {"ru": "и"},
	"or": {"ru": "или"},
	"not": {"ru": "не"},
	"if": {"ru": "если"},
	"concat": {"ru": "соединить строки"},
	"length": {"ru": "длина"},
	"contains": {"ru": "содержит"},
	"substring": {"ru": "подстрока"},
	"search": {"ru": "поиск"},
	"replace": {"ru": "заменить"},
	"split with string": {"ru": "разделить строкой"},
	"split with regexp": {"ru": "разделить рег выражением"},
	"matches": {"ru": "совпадает"},
	"scan": {"ru": "поиск"},
	"random number": {"ru": "случайное число"},
	"random string": {"ru": "случайная строка"},
	"random alphabet": {"ru": "случайный словарь"},
	"empty array": {"ru": "пустой массив"},
	"create array": {"ru": "создать массив"},
	"array push": {"ru": "добавить в массив"},
	"array concat": {"ru": "соединить массивы"},
	"array insert": {"ru": "вставить в массив"},
	"array length": {"ru": "длина массива"},
	"array get index": {"ru": "получить элемент"},
	"array join": {"ru": "массив в строку"},
	"subarray": {"ru": "подмассив"},
	"custom": {"ru": "произвольный код"},
	"Returns true if value1 is true and value2 is true, otherwise false": {"ru": "Возвращает true, если значение1 и значение2 равно true, в противном случае false"},
	"Returns true if value1 is true or value2 is true, otherwise false": {"ru": "Возвращает true, если значение1 или значение2 равно true, в противном случае false"},
	"Returns true if value is false and false if value is true": {"ru": "Возвращает true, если значение равно false, и false если значение равно true"},
	"Returns value1 if expression true and value2 otherwise": {"ru": "Возвращает значение1 если выражение равно true и значение2 в противном случае"},
	"Add one string to another": {"ru": "Соединить две строки"},
	"Returns string length": {"ru": "Длина строки"},
	"Check if one string contains another": {"ru": "Проверить, содержит ли одна строка вторую"},
	"Takes substring from a given string. First param - string, second - first index, third - second index": {"ru": "Получает подстроку из заданной строки. Первый параметр - строка, второй - первый индекс, третий - второй индекс"},
	"Searches for string part inside string, if found returns found index, otherwise returns -1": {"ru": "Поиски части строки внутри строки, если строка присутствует, возвращает найденный индекс, в противном случае возвращает -1"},
	"Replace all occurrences of one string with another": {"ru": "Заменить все вхождения одной строки другой"},
	"Splits string with defined separator. Returns array of strings": {"ru": "Разделяет строку другой строкой. Возвращает массив строк"},
	"Splits string with defined regexp. Returns array of strings": {"ru": "Разделяет строку регулярным выражением. Возвращает массив строк"},
	"Returns true if string matches given regexp": {"ru": "Возвращает true, если строка подходит под регулярное выражение"},
	"Generate random number": {"ru": "Случайное число"},
	"Generate random string": {"ru": "Случайная строка"},
	"Generate random string, with given alphabet. Alphabet is just a string, for example, if alphabet is 01 action will generate random binary number": {"ru": "Генерация случайной строки, с заданным алфавитом. Алфавит это просто строка, например, если алфавит является 01, то действие будет генерировать случайные двоичные числа"},
	"Creates empty array": {"ru": "Создать пустой массив"},
	"Creates array with single element": {"ru": "Создать массив с одним элементом"},
	"Add value to the end of array": {"ru": "Добавить элемент в конец массива"},
	"Concat several arrays": {"ru": "Объединить 2 массива"},
	"Add value to specific place of array": {"ru": "Добавить элемент в заданное место массива"},
	"Get array length": {"ru": "Получить длину массива"},
	"Get element from array by index": {"ru": "Получить элемент массива с заданным индексом"},
	"Join array of strings with defined separator": {"ru": "Преобразовать массив в строку с заданным разделителем"},
	"Takes subarray from a given array. First param - array, second - first index, third - second index": {"ru": "Получает подмассив из заданного массива. Первый параметр - массив, второй - первый индекс, третий - второй индекс"},
	"Adds numbers": {"ru": "Прибавить числа"},
	"Substracts numbers": {"ru": "Вычесть числа"},
	"Multiply numbers": {"ru": "Умножить числа"},
	"Divide numbers": {"ru": "Разделить числа"},
	"Execute custom code": {"ru": "Выполнить произвольный код"},

	
	"Timeout Type": {"ru": "Тип таймаута"},
	"Timeout in milliseconds": {"ru": "Таймаут в миллисекундах"},
	"Set Timeout": {"ru": "Установить Таймаут"},
	"Foreach Array": {"ru": "Foreach массив"},
	"Variables To Save Links" : {"ru": "Переменные со ссылками"},
	"Parse email and get link list. Put variables in following format to Variables To Save Links: LINK1,LINK2,LINK3" : {"ru": "Парсить почту и сохранить список ссылок. Поместите переменные в следующем формате: LINK1,LINK2,LINK3"},
	"Use action 'Search First', if you want to get only one message.": {"ru": "Используйте действи 'Найти письмо' если хотите получить только одно сообщение."},
	"If captcha appear" : {"ru": "При появлении капчи"},
	"Reuse Resource" : {"ru": "Повторное использование"},
	"Don't end application if not exists" : {"ru": "Не прерывать приложение"},
	"Load specific url" : {"ru": "Загрузить URL"},
	"Get current url" : {"ru": "Получить Текущий URL"},
	"Save page html to variable" : {"ru": "Сохранить код страницы в переменной"},
	"Browser" : {"ru": "Браузер"},
	"Type text on page. For example, put email in input field" : {"ru": "Вводить текст на странице. Например, вставить электронную почту в поле ввода"},
	"Change browser size" : {"ru": "Изменить размер браузера"},
	"Set proxy" : {"ru": "Установить прокси"},
	"Execute javascript" : {"ru": "Выполнить яваскрипт"},
	"Clear all browser data" : {"ru": "Очистить все данные браузера"},
	"Set open file dialog result" : {"ru": "Установить результат диалога Открыть Файл"},
	"Scroll to position" : {"ru": "Прокрутка к координатам"},
	"Render screen part to variable as png base64 encoded" : {"ru": "Скриншот части экрана в формате PNG в base64 кодировке"},
	"Stop loop." : {"ru": "Остановить цикл"},
	"Continue" : {"ru": "Continue"},

	"File Write" : {"ru": "Запись в файл"},
	"File Read" : {"ru": "Читать из файла"},
	"Threads" : {"ru": "Потоки"},
	"Success Number" : {"ru": "Максимальное число удачных запусков"},
	"Fail Number" : {"ru": "Максимальное число неудачных запусков"},
	"Waiters" : {"ru": "Ожидание"},
	"Script logic" : {"ru": "Логика скрипта"},
	/*"Execute conditional actions" : {"ru": "Выполнить условные действия"},
	"Execute while loop" : {"ru": "Выполнить во время цикла"},
	"Execute for loop" : {"ru": "Выполнить цикл"},
	"Stop loop" : {"ru": "Остановить цикл"},
	"Start next loop iteration" : {"ru": "Начало следующей итерации цикла"},
	"Finish script with success result" : {"ru": "Завершить сценарий с результатом успеха"},
	"Finish script with fail result" : {"ru": "Завершить сценарий с результатом неудачу"},
	"Sets or creates variable" : {"ru": "Устанавливает или создает переменную"},
	"Call function" : {"ru": "Вызов функции"},*/
	"Tools" : {"ru": "Инструменты"},
	/*"Output string to log" : {"ru": "Выходная строка для входа"},
	"Save result" : {"ru": "Сохранить результат"},
	"Execute custom code" : {"ru": "Выполнить пользовательский код"},
	"Write to file" : {"ru": "Запись в файл"},
	"Read from file" : {"ru": "Чтение из файла"},
	"Base64 encode or decode" : {"ru": "Base64 кодирования и декодирования"},
	"Set global variable" : {"ru": "Установить глобальную переменную"},
	"Get global variable" : {"ru": "Получить глобальную переменную"},
	"Parse line like this 'a1:a2:a3' and save to variables" : {"ru": "Анализировать линии, как это 'a1: a2: a3' и сохранить в переменных"},*/
	/*"Set HTTP Headers, like user agent, accept language, etc" : {"ru": "Установить HTTP-заголовки, как агент пользователя, принимают язык и т.д."},
	"Save all cookies to variable" : {"ru": "Сохранить все куки для переменной"},
	"Restore cookies, which is saved with Save Cookies command" : {"ru": "Восстановление куки, которая сохраняется с помощью команды Сохранить Cookies"},
	"Get base64 encoded cached page" : {"ru": "Получить base64 закодирован кэшированной страницы"},*/
	"Email" : {"ru": "Почта"},
	/*"Configure email settings" : {"ru": "Настройка электронной почты"},
	"Configure email proxy" : {"ru": "Настройка электронной почты прокси"},
	"Get messages length" : {"ru": "Получить длину сообщения"},
	"Search for first message" : {"ru": "Поиск первого сообщения"},
	"Search for all messages" : {"ru": "Поиск всех сообщений"},
	"Pull message" : {"ru": "Прицепные сообщение"},
	*/"Script properties" : {"ru": "Cвойства"},
	/*"Set thread number" : {"ru": "Установить номер нити"},
	"Set success number. When script will be executed successfully 'success number' of times, application will stop" : {"ru": "Набор номера успеха. Когда сценарий будет успешно выполнен 'число успеха' раз, приложение остановится"},
	"Set fail number. When script will fail 'fail number' of times, application will stop" : {"ru": "Установить неудачу номер. Когда сценарий потерпит неудачу "сбой" номер раз, приложение остановится"},*/
	"Http Client" : {"ru": "HTTP-клиент"},
	/*"Set proxy for http client" : {"ru": "Установка прокси для HTTP клиента"},
	"Reset http client" : {"ru": "Сброс клиента HTTP"},
	"Make GET request" : {"ru": "Сделать запрос GET"},
	"Make POST request" : {"ru": "Сделать запрос POST"},
	"Download to file" : {"ru": "Загрузить в файл"},
	"Get http client current url" : {"ru": "Получить HTTP-клиент текущий URL"},
	"Get http client request result" : {"ru": "Получить HTTP результат запроса клиента"},
	"Get http client request status" : {"ru": "Получить статус HTTP запроса клиента"},
	"Get http client header" : {"ru": "Получить заголовок HTTP клиента"},
	"Set http client header" : {"ru": "заголовок клиента HTTP Set"},
	"Clear http client request headers" : {"ru": "Четкие заголовки запросов HTTP-клиент"},
	"Save all cookies to variable" : {"ru": "Сохранить все куки для переменной"},
	"Restore cookies, which is saved with Save Cookies command" : {"ru": "Восстановление куки, которая сохраняется с помощью команды Сохранить Cookies"},
	"Fail if error during http request" : {"ru": "Потерпеть неудачу, если ошибка во время запроса HTTP"},
	"Check if error" : {"ru": "Проверьте, если ошибка"},
	"Get last error string" : {"ru": "Получить последнюю строку ошибки"},
	"Execute xpath query and get result xml" : {"ru": "Выполнить XPATH запрос и получить результат XML"},
	"Execute xpath query and get result text" : {"ru": "Выполнить XPATH запрос и получить результирующий текст"},
	"Execute xpath query and get result count" : {"ru": "Выполнить XPATH запрос и получить подсчет результата"},
	"Execute xpath query and check if exists" : {"ru": "Выполнить XPATH запрос и проверить, существует ли"}
*/
	"Ok" : {"ru": "Ок"},
	"Cancel" : {"ru": "Отмена"},
	"Start next loop iteration." : {"ru" : "Начать следующую итерацию."},
	"Finish thread with success result." : {"ru" : "Завершить поток с успешным результатом."},
	"Finish thread with fail result." : {"ru" : "Завершить поток с неуспешным результатом."},
	"Finish whole script." : {"ru" : "Завершить весь скрипт."},
	"Break depth. If blank will break current loop, if integer will break with desired depth, if string will break until desired function." : {"ru" : "Глубина."},
	"Wait address bar will contain url" : {"ru": "Ждать пока адресная строка будет содержать URL"},
	"Select Resource" : {"ru": "Выбрать ресурс"},
	"No resources found." : {"ru": "Не найдено ресурсов."},
	"Select Variable" : {"ru": "Выбор переменной"},
	"No variables found." : {"ru": "Переменных не найдено."},
	"Select Function" : {"ru": "Выберите функцию"},
	"No functions found." : {"ru": "Функций не найдено."},
	"Only execute" : {"ru": "Только выполнить"},
	"Only add" : {"ru": "Только добавить"},
	"Execute and add" : {"ru": "Выполнить и добавить"},
	"Url to load" : {"ru": "Url сайта"},
	"Break depth" : {"ru": "Глубина"},
	"Fail Message" : {"ru": "Сообщение об ошибке"},
	"Success Message" : {"ru": "Сообщение об успехе"},
	"By default action will be added to scenario panel and executed. Change this option if action must only be executed or only added to scenario panel." : {"ru": "По умолчанию действие будет добавлено на панель сценария и выполнено. Измените этот параметр, если действие должно быть только выполнено или только добавлено на панель сценария."},

	"Custom Code" : {"ru": "Пользовательский код"},
	"Wait until browser will load url" : {"ru": "Подождите, пока браузер не загрузит Url"},
	"Wait until specific text will be present on page" : {"ru": "Ждать, пока конкретный текст будет присутствовать на странице"},
	"Wait until specific css selector will return non empty result" : {"ru": "Ждать, пока css селектор вернет непустой результат"},
	"Function name" : {"ru": "Название функции"},
	"Header Name" : {"ru": "Имя заголовка"},
	"Header Value" : {"ru": "Значение заголовка"},
	"Captcha picture data encoded in base64" : {"ru": "Данные изображения в base64"},
	"Solve Method" : {"ru": "Метод решения"},
	"Antigate/Rucaptcha/2captcha/DBC Key. Can be blank" : {"ru": "Ключ Антигейт/Рукапча/2капча/dbc. Может быть пустым"},
	"DBC Login:Password. Can be blank" : {"ru": "DBC Логин:Пароль. Может быть пустым"},
	"Variable To Save Result" : {"ru": "Переменная, в которую сохранять результат"},
	"Variable To Save" : {"ru": "Переменная, в которую сохранить результат"},
	"Script Text" : {"ru": "Текст сценария"},
	"Line" : {"ru": "Строка"},
	"Variables To Save Result" : {"ru": "Переменные, в которые сохранять результат"},
	"Parse line which contains list of varibales. Example, parse line <i>email@gmail.com:mypass1</i> to variables USERNAME and PASSWORD." : {"ru": "Парсить строку, которая содержит список переменных. Пример, строка <i>email@gmail.com:mypass1</i> в переменные USERNAME и PASSWORD."},
	"Put variables in following format to Variables List field: USERNAME,PASSWORD" : {"ru": "Поместите переменные в следующем формате: USERNAME,PASSWORD"},
	"Clear all browser data." : {"ru": "Очистить все данные браузера."},
	"File path to set as result of open file dialog" : {"ru": "Путь к файлу, который будет результатом вызова диалога открытия файла"},
	"Url" : {"ru": "Url"},
	"Cookies" : {"ru": "Cookies"},
	"Scroll x position" : {"ru": "X координата"},
	"Scroll y position" : {"ru": "Y координата"},
	"Width" : {"ru": "Ширина"},
	"Height" : {"ru": "Высота"},
	"Variable to save as base64 png" : {"ru": "Переменная, в которую сохранять в формате base64 PNG"},
	"Match" : {"ru": "Маска"},
	
	"An url, cache for which you want to obtain. Url can contain * symbol, which will be replaced by any symbol sequence." : {"ru": "Url, кеш для которого вы хотите получить. url может содержать символ *, который будет заменен любой последовательностью символов."},
	"Get all cache" : {"ru": "Получить весь кеш"},
	"Get cache for urls, which contain url/part" : {"ru": "Получить кеш для url, который содержит url/part"},
	"Get cache for specific url" : {"ru": "Получить кеш для заданного url"},
	"This variable will contain list of cache items. Each cache item is object with information about request and response headers, received data, status, etc." : {"ru": "Эта переменная будет содержать список элементов кэша. Каждый элемент является объектом с информацией о заголовках запроса и ответа, полученных данных, статусе запроса и т. д."},
	"This action won't work by itself. In order to obtain cache items, you need to use \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" action first, it will specify pages, that will be cached. Then you need to load page, or do actions in browser, which will trigger page load, like inputting text or clicking mouse. Only after executing \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" and page is loaded, you can use this action to obtain cache values." : {"ru": "Это действие не будет работать само по себе. Чтобы получить элементы кэша, вам нужно сначала использовать действие \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", оно задаст страницы, которые будут кэшироваться. Затем нужно загрузить страницу или выполнить действия в браузере, которые будут вызывать загрузку страницы, например ввод текста или клики мышью. Только после выполнения \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\" и загрузки страницы вы можете использовать это действие для получения кеша."},
	"Try not to allow caching of all requests in the \"<a href=\"#!/cachemaskallow\">Allow cache</a>\" action. Instead, specify the most detailed filters possible to reduce the amount of cached data. Adding item to cache is resource consuming task, by limiting number of cache items you can optimize your script." : {"ru": "Старайтесь не разрешать кэширование всех запросов в действии \"<a href=\"#!/cachemaskallow\">Разрешить кэш</a>\", вместо этого указывайте максимально подробные фильтры, чтобы сократить объем кэшируемых данных. Добавление страницы в кеш является ресурсоемкой задачей, ограничивая количество элементов, вы можете оптимизировать скрипт."},
	"This action retrieves all cache items that match the specified filters and the selected request type, and saves their list in the specified variable." : {"ru": "Это действие получит все элементы кэша, соответствующие указанным фильтрам и выбранному типу запроса, и сохраняет их список в указанную переменную."},
	"The resulting list can be processed using actions from the \"<b>List</b>\" module.": {"ru":"Полученный список можно обработать с помощью действий из модуля \"<b>Список</b>\"."},
	"If you only need to retrieve the response data of the last cache item, use the \"<a href=\"#!/getfromcache\">Get last item from cache</a>\" action." : {"ru": "Если вам нужно получить только данные ответа последнего элемента кэша, то используйте действие \"<a href=\"#!/getfromcache\">Получить последний элемент кэша</a>\"."},
	"Each cache item is an object with following properties:" : {"ru": "Каждый элемент кэша - это объект со следующими свойствами:"},
	"<b>status</b> - integer, contains HTTP request status." : {"ru": "<b>status</b> - целое число, содержит статус HTTP запроса."},
	"<b>request_headers</b> - list with request headers sent by browser." : {"ru": "<b>request_headers</b> - список с заголовками запроса, отправленных браузером."},
	"<b>response_headers</b> - list with response headers received from server." : {"ru": "<b>response_headers</b> - список с заголовками ответа, полученных от сервера."},
	"<b>body</b> - response body encoded with base64 encoding. Use \"<a href=\"#!/base64\">Base64 encode/decode</a>\" to decode it." : {"ru": "<b>body</b> - данные ответа в формате base64. Используйте \"<a href=\"#!/base64\">Base64 кодировать/декодировать</a>\" для его декодирования."},
	"<b>url</b> - request url." : {"ru": "<b>url</b> - url запроса."},
	"<b>method</b> - request type." : {"ru": "<b>method</b> - тип запроса."},
	"<b>post_data</b> - request post data encoded with base64." : {"ru": "<b>post_data</b> - пост данные запроса в формате base64."},
	"<b>is_error</b> - boolean value, indicates if there were error during request." : {"ru": "<b>is_error</b> - значение true/false, указывает на наличие ошибки во время запроса."},
	"<b>error</b> - error code as string." : {"ru": "<b>error</b> - код ошибки в виде строки."},
	"<b>is_finished</b> - boolean value, indicates, if request was finished." : {"ru": "<b>is_finished</b> - значение true/false, указывает был ли запрос завершен."},
	"To retrieve the values you need from a cache item, use the actions from the \"<b>JSON</b>\" module." : {"ru": "Чтобы получить нужные вам значения из элемента кэша, используйте действия из модуля \"<b>JSON</b>\"."},

	"Encode in base64" : {"ru": "Кодировать в base64"},
	"Get last cache item for specific url and save it to variable." : {"ru": "Получить содержимое кэшированной страницы, URL которой совпадает с указанным."},
	"Result Data" : {"ru": "Данные"},
	"Result Placeholder" : {"ru": "Номер результата"},
	"File path" : {"ru": "Путь к файлу"},
	"Encode or decode" : {"ru": "Шифровать или расшифровывать"},
	"Group" : {"ru": "Группа"},
	"Name" : {"ru": "Имя"},
	"Value" : {"ru": "Значение"},
	"Global variables are availabe during whole script execution in every thread." : {"ru": "Глобальные переменные доступны на протяжении всей работы скрипта во всех потоках."},
	"Imap Server Host" : {"ru": "Imap сервер"},
	"Port" : {"ru": "Порт"},
	"Username. Can be blank" : {"ru": "Имя пользователя. Может быть пустым"},
	"Password. Can be blank" : {"ru": "Пароль. Может быть пустым"},
	"Encryption" : {"ru": "Шифрование"},
	"Inbox name" : {"ru": "Имя папки"},
	"Proxy String" : {"ru": "Прокси"},
	"Function Name" : {"ru": "Название функции"},
	"Proxy Type" : {"ru": "Тип прокси"},
	"Proxy Login. Can be blank." : {"ru": "Прокси Войти. Может быть пустым."},
	"Proxy password. Can be blank." : {"ru": "Пароль прокси-сервера. Может быть пустым."},
	"Sender Query" : {"ru": "Отправитель Письма"},
	"Subject Query" : {"ru": "Тема Письма"},
	"Body Query" : {"ru": "Текст Письма"},
	"Proxy Login. Can be blank." : {"ru": "Прокси Логин. Может быть пустым."},
	"Proxy password. Can be blank." : {"ru": "Пароль Прокси. Может быть пустым."},
	"Clear all http client data." : {"ru": "Очистить все данные HTTP-клиента."},
	"File Path" : {"ru": "Путь к файлу"},
	"Follow redirects" : {"ru": "Следовать переадресациям"},
	"Post data constructor" : {"ru": "Конструктор данных запроса"},
	"Name" : {"ru": "Имя"},
	"Value" : {"ru": "Значение"},
	"Add" : {"ru": "Добавить"},
	"Is Multipart" : {"ru": "Is Multipart"},
	"Header Name" : {"ru": "Имя заголовка"},
	"Clear all headers." : {"ru": "Очистить все заголовки."},
	"Cookies" : {"ru": "Cookies"},
	"Xpath Query" : {"ru": "Xpath Запрос"},
	"Fail on error" : {"ru": "Завершать работу после ошибки"},
	"If expression" : {"ru": "If Выражение"},
	"Add else block" : {"ru": "Добавить else блок"},
	"While expression" : {"ru": "While выражение"},
	"For from value" : {"ru": "От"},
	"For to value" : {"ru": "До"},
	"Sleep to value in milliseconds" : {"ru": "Время сна в миллисекундах. От"},
	"Sleep from value in milliseconds" : {"ru": "Время сна в миллисекундах. До"},
	"Sleep value in milliseconds" : {"ru": "Время сна в миллисекундах"},
	"Sleep random time" : {"ru": "Спать случайное время"},
	"Name of variable" : {"ru": "Имя переменной"},
	"Value of variable" : {"ru": "Значение переменной"},
	"Script Text" : {"ru": "Текст сценария"},
	"Click on element." : {"ru": "Нажать на элемент."},
	"Move mouse pointer on element." : {"ru": "Навести курсор на элемент."},
	"Move mouse pointer and click on element." : {"ru": "Навести курсор и нажать на элемент."},
	"Clear edit. Works only on edit." : {"ru": "Очистить поле. Работает только на текстовых полях."},
	"Text to type" : {"ru": "Текст для ввода"},
	"Interval in milliseconds" : {"ru": "Интервал в миллисекундах"},
	"Also check if visible on a screen" : {"ru": "Проверять, виден ли элемент на экране"},
	"Check if element exists." : {"ru": "Проверять, существует ли элемент."},
	"Style To Check" : {"ru": "Стиль"},
	
	"Check cehckbox. Works only on checkboxes." : {"ru": "Состояние чекбокса. Работает только на чекбоксах."},
	"Wait until page state will be \"complete\"." : {"ru": "Ждать, пока состояние страницы не будет complete."},
	"Wait while matching query element exists on page." : {"ru": "Ждать, пока соответствующий элемент появится на странице."},
	"Scroll to an element so that it becomes visible on the screen." : {"ru": "Прокрутка к элементу, так чтобы он стал видимым на экране."},

	"Set String" : {"ru": "Строка"},
	"Set combobox value to desired string. Works only on comboboxes(not text input)." : {"ru": "Установить значение выпадающего списка. Работает только на выпадающих списках(не на текстовых полях для ввода)."},
	"Set Index" : {"ru": "Индекс"},
	"Set combobox index to desired int. Works only on comboboxes." : {"ru": "Установить индекс значения выпадающего списка. Работает только на выпадающих списках."},
	"Set combobox index to random int. Works only on comboboxes." : {"ru": "Выбрать случайное значение из выпадающего списка. Работает только на выпадающих списках."},
	"Attribute Name" : {"ru": "Имя атрибута"},

	"Get element attribute." : {"ru": "Получить атрибут элемента."},
	"Attribute Value" : {"ru": "Значение атрибута"},
	"Set element attribute." : {"ru": "Установить атрибут элемента."},
	
	"Get elements number matching query." : {"ru": "Получить количество элементов соответствующее запросу."},
	"To generate query, click on element inside browser and select \"Get Element Count\" action. BAS will automatically guess, which elements are similar to element that you have chosen and select them. This prediction won't always be correct, so you can tweak it in following way. Add element, which selection must include by selecting it and clicking with left button. This will create green background for element, it always will be included into selection. Alternatively click on element, which was inсluded into selection(elements with blue background). This will create red background for element, it always will be excluded from selection. By сonstantly clarifying which elements will be in the cycle and which will not, you can gradually achieve an acceptable result." : {"ru": "Чтобы сгенерировать запрос, нажмите на элемент внутри браузера и выберите действие \"Получить Количество Элементов\". BAS автоматически составит запрос, в который будут включены все элементы похожие на выбранный вами элемент. Этот запрос не всегда будет содержать необходимые элементы, поэтому вы можете настроить его следующим образом. Добавьте элемент, который необходимо включить в запрос, выбрав его и нажав левую кнопку. Это задаст зеленый фон для элемента, и он всегда будет включен в выделение. В качестве альтернативы нажмите на элемент, который был включен в выделение (элемент с синим фоном). Это задаст красный фон для элемента, и он всегда будет исключен из выделения. Постоянно уточняя, какие элементы будут в запросе, а какие нет, вы можете постепенно достичь приемлемого результата."},

	"To start loop, click on element inside browser and choose Start Loop action. BAS will automatically guess, which elements are similar to element that you have chosen and create loop over them. This prediction won't always be correct, so you can tweak it in following way. Add element, which loop must include by selecting it and clicking with left button. This will create green background for element, it always will be included into loop. Alternatively click on element, which was inсluded into loop(elements with blue background). This will create red background for element, it always will be excluded from loop. By сonstantly clarifying which elements will be in the cycle and which will not, you can gradually achieve an acceptable result." : {"ru": "Чтобы начать цикл, нажмите на элемент внутри браузера и выберите действие \"Начать Цикл\". BAS автоматически составит запрос, в который будут включены все элементы похожие на выбранный вами элемент. Этот запрос не всегда будет содержать необходимые элементы, поэтому вы можете настроить его следующим образом. Добавьте элемент, который необходимо включить в запрос, выбрав его и нажав левую кнопку. Это задаст зеленый фон для элемента, и он всегда будет включен в выделение. В качестве альтернативы нажмите на элемент, который был включен в выделение (элемент с синим фоном). Это задаст красный фон для элемента, и он всегда будет исключен из выделения. Постоянно уточняя, какие элементы будут в цикле, а какие нет, вы можете постепенно достичь приемлемого результата."},
	"You also can write selector manually. For example, selector &gt;CSS&gt; a will find all links on page, &gt;CSS&gt; .my-class will find elements by class, etc." : {"ru": "Вы также можете создать селектор вручную. Например, селектор &gt;CSS&gt; a найдет все ссылки на странице, &gt;CSS&gt; .my-class найдет элементы по css классу и т. д."},
	"Clicking ok button will create a loop. Than you need to put some actions inside loop body, every action which you will put there will be executed for each element matching query. To add action click on any element inside browser and select action, which you want to perform. Select \"Element from the loop\" in order to execute action for each element in the loop. BAS creates selector for your action automatically." : {"ru": "При нажатии кнопки ok создается цикл. Дальше нужно поместить какие-то действия внутрь этого цикла, все действия, которое вы поместите туда, будут выполнены для каждого элемента, соответствующего запросу. Чтобы добавить дочернее действие, кликните на любой элемент внутри браузера и выберите действие которое нужно выполнить. Выберите \"Элемент из цикла\", чтобы выполнить действие для каждого элемента в цикле. BAS автоматически создаст селектор для нового действия."},


	"Multiparsing mode is on. Click on items inside browser to add \"must include\" or \"must exclude\" elements. This will tweak the selection." : {"ru": "Режим мультипарсинга включен. Нажмите на элементы внутри браузера, чтобы добавить элементы, которые обязательно должны быть включены или исключены из выделения."},
	"Elements that selection must include:" : {"ru": "Элементы, которые обязательно должны быть влючены:"},
	"Elements that should not be included:" : {"ru": "Элементы, которые обязательно должны быть исключены:"},
	"Clear elements" : {"ru": "Очистить выделение"},

	"Execution point is inside loop. Which element do you want to use?" : {"ru": "Точка выполнения находится внутри цикла. Какой элемент вы хотите использовать?"},
	"Element from the loop" : {"ru": "Элемент из цикла"},
	"action will be performed for each element in a loop" : {"ru": "действие будет выполняться для каждого элемента в цикле"},
	"Element that you just selected" : {"ru": "Выбранный элемент"},
	"default option. Action will be performed each time for same element (element that was just selected)" : {"ru": "вариант по умолчанию. Действие будет выполняться каждый раз для одного и того же элемента (элемент, который был только что выбран)"},

	"Move x position" : {"ru": "Х координата"},
	"Move y position" : {"ru": "У координата"},
	"Click x position" : {"ru": "Х координата"},
	"Click y position" : {"ru": "У координата"},
	"Thread number" : {"ru": "Количество потоков"},
	"Fail number" : {"ru": "Количество допустимых ошибок"},
	"Success number" : {"ru": "Количество успешных выполнений"},
	"Move and click x position" : {"ru": "Х координата"},
	"Move and click y position" : {"ru": "Y координата"},
	"Function name" :{"ru": "Имя функции"},
	"Data to Log" :{"ru": "Данные для вывода"},
	"Data" :{"ru": "Данные"},
	"What to search?" :{"ru": "Что искать?"},
	"Message Id":{"ru": "Идентификатор сообщения"},
	"Use self variable, which is point to selected element.":{"ru": "Используйте переменную self, которая указывает на выбранный элемент."},
	"Start Loop to use this function" :{"ru": "Начните цикл, чтобы использовать эту функцию"},
	"Search by action name, name part or keyword. Examples: 'Ignore Errors', 'phone'." :{"ru": "Искать по названии действия, части названия или ключевому слову. Примеры: 'Игнорировать ошибки', 'телефон'"},
	"Execute javascript on every page load in browser" :{"ru": "Выполнять яваскрипт при каждой загрузке страницы в браузере"},
	
	"File is downloading." :{"ru": "Файл загружается."},
	"BrowserAutomationStudio is downloading file. You can wait for it and obtain file name with \"Wait File Download\" action." :{"ru": "BrowserAutomationStudio скачивает файл. Вы можете дождаться скачивания и получить имя файла с помощью действия \"Ждать Загрузки Файла\"."},
	"Open file dialog." :{"ru": "Выбор файла."},
	"BrowserAutomationStudio needs file input. Use \"Open File Result\" action to set upload file. This action must be used <strong>before</strong> dialog appear." :{"ru": "BrowserAutomationStudio нужен файл для загрузки на сервер. Используйте действие \"Диалог Открыть Файл\" для установки файла загрузки. Это действие должно быть использовано <strong>перед</strong> тем, как появится диалоговое окно."},
	


	"Left click" :{"ru": "Клик левой кнопкой"},
	"Right click" :{"ru": "Клик правой кнопкой"},
	"Middle click" :{"ru": "Клик средней кнопкой"},
	"Double click" :{"ru": "Двойной клик"},
	"Mouse click type" :{"ru": "Тип клика"},


	
	"Imap server name. Can be found by searching imap settings for your email hosting, like this: 'gmail imap settings'":{"ru":"Можно получить, поискав настройки imap для вашего почтового хостинга, например: 'Настройки gmail imap'"},
	"Imap server port. Almost always this value should be equal to 993. If 993 doesn't work, try to search imap settings for your email hosting, like this: 'gmail imap settings'":{"ru":"Порт imap сервера. Почти всегда это значение должно быть равно 993. Если 993 не работает, попробуйте найти настройки imap для своего почтового хостинга, например: 'Настройки gmail imap'"},
	"Default port for imap server":{"ru":"Порт по умолчанию для сервера imap"},
	"Username, this is almost always the same as you email login":{"ru":"Имя пользователя, оно почти всегда совпадает с адресом электронной почты"},
	"Imap login may also not include domain. Check imap settings for your mail service.":{"ru":"Логин может также не включать почтовый домен. Смотрите настройки imap для вашей почты."},
	"Password, this is almost always the same as you email password":{"ru":"Пароль, он почти всегда совпадает с паролем электронной почты"},
	"Mailbox can contain several folders, and you can search into particular folder by changing this parameter. By default it is set to 'INBOX', this folder contains all messages. Each mail hosting provides its own default names for different folders. For example, this is default name of gmail trash folder '[Gmail]/Trash' and spam folder is '[Gmail]/Spam'. You can also create your own folders and use them in this action.":{"ru":"Почтовый ящик может содержать несколько папок, и вы можете искать письма из определенной папки, изменяя этот параметр. По умолчанию он установлен в 'INBOX', эта папка содержит абсолютно все сообщения. Каждый почтовый хостинг предоставляет свои собственные имена по умолчанию для разных папок. Например, имя по умолчанию для папки удаленных писем в gmail - '[Gmail]/Trash', для папки спама - '[Gmail]/Spam'. Вы также можете создавать свои собственные папки и использовать их в этом действии."},
	"Access all messages":{"ru":"Доступ ко всем сообщениям"},
	"Trash folder, only for gmail":{"ru":"Корзина, только для gmail"},
	"Spam folder, only for gmail":{"ru":"Спам-папка, только для gmail"},
	"Configure imap server access required to read email.":{"ru":"Настроить доступ к серверу imap для чтения электронной почты."},
	"This action should be called once before any other action that works with email.":{"ru":"Это действие нужно вызвать один раз перед любым другим действием, которое работает с чтением писем."},
	"You need to fill imap server, your username and password. These settings usually can be found by searching imap settings for your email hosting, like this: 'gmail imap settings'":{"ru":"Вам нужно заполнить imap сервер, ваше имя пользователя и пароль. Их обычно можно найти, выполнив поиск imap настроек для вашего почтового хостинга, например: 'Настройки gmail imap'"},
	"For most of providers you also need to allow imap access in account settings. Here are":{"ru":"Для большинства почтовых хостингов вам также необходимо разрешить доступ imap в настройках учетной записи. Вот"},
	"for gmail":{"ru":"для gmail"},
	"Gmail also requires to":{"ru":"Gmail также требует, чтобы"},
	"allow insecure applications":{"ru":"разрешить доступ небезопасным приложениям"},
	"in order to work with BAS":{"ru":"для работы с BAS"},
	"Login and password are almost always the same as your login and password from mailbox. Login may include or may not include mail domain, check imap settings page for your email hosting.":{"ru":"Логин и пароль почти всегда совпадают с вашим логином и паролем для почтового ящика. Логин может включать или не включать почтовый домен, убедитесь в этом на странице настроек imap для вашей электронной почты."},
	"Mail.ru doesn't allow to make search in mailbox.":{"ru":"Mail.ru не позволяет искать письма в почтовом ящике."},
	"Mailbox can contain several folders, and you can search into particular folder by changing 'Folder name' parameter. By default it is set to 'INBOX', this folder contains all messages. Each mail hosting provides its own default names for different folders. For example, this is default name of gmail trash folder '[Gmail]/Trash' and spam folder is '[Gmail]/Spam'. You can also create your own folders and use them in this action.":{"ru":"Почтовый ящик может содержать несколько папок, и вы можете искать письма из определенной папки, изменяя параметр 'Имя папки'. По умолчанию он установлен в 'INBOX', эта папка содержит абсолютно все сообщения. Каждый почтовый хостинг предоставляет свои собственные имена по умолчанию для разных папок. Например, имя по умолчанию для папки удаленных писем в gmail - '[Gmail]/Trash', для папки спама - '[Gmail]/Spam'. Вы также можете создавать свои собственные папки и использовать их в этом действии."},
	"By default imap client works without proxy, this action sets proxy for imap client.":{"ru":"По умолчанию клиент imap работает без прокси, но он может быть задан с помощью этого действия."},
	"You can change proxy once and it will be applied to every action which works with email.":{"ru":"Вы можете изменить прокси один раз, и он будет применяться к каждому действию, которое работает с получением писем."},
	"This variable will contain integer value with email number.":{"ru":"Эта переменная будет содержать целочисленное значение с количеством писем."},
	"Get message number inside mailbox.":{"ru":"Получить количество сообщений в почтовом ящике."},
	"In order to execute this action correctly you need to run 'Configure' action first.":{"ru":"Для правильной работы необходимо сначала выполнить действие 'Настроить'."},
	"Search by 'from' field(mail sender). Put here part of sender address to filter by mail sender. Leave blank not to filter by sender.":{"ru":"Поиск по полю 'from' (отправитель письма). Поместите здесь часть почтового ящика отправителя. Оставьте пустым, чтобы не фильтровать по отправителю."},
	"Don't filter by sender.":{"ru":"Не фильтровать по отправителю."},
	"Search for message from mail with twitter domain":{"ru":"Поиск письма от твиттер"},
	"Search for email sent from info@twitter.com":{"ru":"Поиск почты, отправленной с info@twitter.com"},
	"Search by 'to' field(mail recepient). Put here part of recepient address to filter by mail receiver. Leave blank not to filter by recepient. This parameter is usefull if you collect mail from several mailboxes.":{"ru":"Поиск по полю 'to' (почтовый получатель). Поместите здесь часть адреса получателя письма. Оставьте пустым, чтобы не фильтровать по получателю. Этот параметр полезен, если вы собираете почту из нескольких почтовых ящиков."},
	"Don't filter by recepient.":{"ru":"Не фильтровать по получателю."},
	"Search for message which is sent to test@yourdomain.com mailbox":{"ru":"Поиск сообщения, отправленного на почтовый ящик test@yourdomain.com"},
	"Search email by subject. This could be combined with other queries.":{"ru":"Поиск по теме письма. Это условие можно комбинировать с другими."},
	"Don't filter by mail subject":{"ru":"Не фильтровать по теме письма"},
	"Subject string part":{"ru":"Часть темы письма"},
	"Search message with subject that contains specified string":{"ru":"Поиск письма с темой, содержащей определенную строку"},
	"Search email by message text. This could be combined with other queries.":{"ru":"Поиск электронной почты по тексту сообщения. Это условие можно комбинировать с другими."},
	"Don't filter by mail body":{"ru":"Не фильтровать по тексту письма"},
	"Body string part":{"ru":"Часть текста письма"},
	"Search message with text that contains specified string":{"ru":"Поиск сообщения с текстом, содержащим определенную строку"},
	"This variable will contain mail headers and body after successful execution. You can extract headers or text parts with regular expression.":{"ru":"Эта переменная будет содержать заголовки сообщения и текст письма после успешного выполнения действия. Вы можете извлекать заголовки или части текста с помощью регулярных выражений."},
	"Found mail identifier, can be used to delete message later with action 'Remove Message'.":{"ru":"Найденный идентификатор письма, может быть использован для удаления сообщения действием 'Удалить сообщение'."},
	"Found message has id 7571":{"ru":"Найдено сообщение с идентификатором 7571"},
	"Links will be automatically extracted from mail text and placed into [[LINK1]], [[LINK2]] and [[LINK3]] variables. You can rename variables or add more variables to extract more links.":{"ru":"Ссылки будут автоматически извлечены из текста письма и помещены в переменные [[LINK1]], [[LINK2]] и [[LINK3]]. Вы можете назвать переменные по другому или добавить новые, чтобы извлечь больше ссылок."},
	"Search for first email matching all criterias, save mail body and headers to specified variable.":{"ru":"Искать первое письмо, соответствующее всем критериям, сохранить тест письма и заголовки в указанных переменных."},
	"If you run this action without queries, then first mail will be fetched.":{"ru":"Если вы вызовете это действие без критериев, то будет найдено первое сообщение."},
	"This action automatically extracts links from email body and saves them to variables.":{"ru":"Это действие автоматически извлекает ссылки из письма и сохраняет их в переменных."},
	"If you want to select several messages, use 'Search All' action.":{"ru":"Если вы хотите получить несколько писем, используйте действие 'Найти все письма'."},
	"To extract headers like 'SUBJECT' or 'FROM' apply regular expression to [[MAIL_BODY]] variable. For example, to extract 'FROM' header, use regular expression <strong>From\\:\\s+(.*)</strong>":{"ru":"Чтобы извлекать заголовки такие как 'SUBJECT' или 'FROM', примените регулярное выражение к переменной [[MAIL_BODY]]. Например, чтобы извлечь заголовок 'FROM', используйте регулярное выражение <strong>From\\:\\s+(.*)</strong>"},

	"Search for all messages from mail with twitter domain":{"ru":"Искать все письма от твиттер"},
	"Search for all mails sent from info@twitter.com":{"ru":"Искать все письма, отправленные с info@twitter.com"},
	"Search for all messages which is sent to test@yourdomain.com mailbox":{"ru":"Искать все письма, отправленные на почтовый ящик test@yourdomain.com"},
	"Search all messages with subject that contains specified string":{"ru":"Искать все сообщения с темой, которая содержит определенную строку"},
	"Search all messages with text that contains specified string":{"ru":"Поиск всех сообщений с текстом, содержащим определенную строку"},
	"This variable will contain list with mail identifiers. Mail identifiers is not the same as mail text or mail headers, but can be used to obtain them with 'Get message' action. Mail identifiers can also be used to delete messages with 'Remove Message' action. Use 'Foreach' to iterate over them.":{"ru":"Эта переменная будет содержать список с идентификаторами писем. Идентификаторы не содержат ни текста сообщения, ни заголовков, но могут использоваться для их получения с помощью действия 'Получить сообщение'. Идентификаторы также могут использоваться для удаления писем действием 'Удалить сообщение'. Используйте действие 'Foreach', чтобы запустить цикл по списку идентификаторов."},
	"No messages found.":{"ru":"Сообщения не найдены."},
	"Found 3 messages.":{"ru":"Найдено 3 сообщения."},
	"Search for all emails matching criterias, save mail ids to variable with list type.":{"ru":"Найти все письма, соответствующие критериям, сохранить идентификаторы в переменную с типом список."},
	"If several queries will be set, this action will return only mails matching all criterias.":{"ru":"Если будет задано несколько критериев, это действие вернет только письма, соответствующие сразу всем критериям."},
	"If you run this action without queries, then all mails in mailbox will be fetched.":{"ru":"Если вы запустите это действие без критериев, будут извлечены все письма в почтовом ящике."},
	"If you want to select first message, use 'Search First' action.":{"ru":"Если вы хотите получить только одно сообщение, используйте действие 'Найти письмо'."},
	"This action returns variable with type list, use 'List' module to manipulate it, or 'Foreach' action to iterate over mail ids":{"ru":"Это действие возвращает переменную с типом список, используйте модуль 'Список' чтобы обработать эту переменную или действие 'Foreach' для создания цикла по списку"},
	"Mail identifier, can be obtained from 'Search First' or from 'Search All' action.":{"ru":"Идентификатор почты, может быть получен из действия 'Найти письмо' или из действия 'Найти все письма'."},
	"Fetch message with id 7571":{"ru":"Извлечь сообщение с идентификатором 7571"},
	"Get mail body by mail id and extract links.":{"ru":"Получить письмо по идентификатору почты и извлечь ссылки."},
	"Delete email with specified id.":{"ru":"Удалить адрес электронной почты с заданным идентификатором."},
	"Remove message with id 7571":{"ru":"Удалить сообщение с идентификатором 7571"},



	"By default http client works without proxy, this action sets proxy for http client.":{"ru":"По умолчанию клиент http работает без прокси, это действие устанавливает прокси."},
"You can change proxy once and it will be applied to every action which uses http client.":{"ru":"Вы можете изменить прокси один раз, и он будет применяться к каждому следующему действию, которое использует http клиент."},
"This action will reset http client and all its settings.":{"ru":"Это действие перезапустит http клиент и сбросит все его настройки."},
"Use 'HTTP-Client Restore Cookies' action with empty value if you want to reset only cookies.":{"ru":"Используйте действие 'HTTP-Клиент Загрузить cookies' с пустым значением, если вы хотите сбросить только файлы cookies."},
"It affect every setting and state that http client has: proxy, headers, content, status, cookies, etc.":{"ru":"Это действие влияет на состояние http клиента и все настройки, такие как: прокси, заголовки, текст последнего ответа от сервера, статус ответа, cookies и т. д."},
"Request url":{"ru":"Url запроса"},
"Url with scheme":{"ru":"Url с протоколом"},
"Url without scheme":{"ru":"Url без протокола"},
"Url with query string":{"ru":"Url со строкой запроса"},
"Url with encoded query. To encode string use encodeURIComponent function.":{"ru":"Url с запросом в формате urlencode. Для кодирования строки используется функция encodeURIComponent."},
"Request method, you can put any string here.":{"ru":"Метод http запроса, вы можете поместить сюда любую строку."},
"Make http request using GET, HEAD, DELETE, TRACE or OPTIONS method,  \ni.e. methods which don't send data.":{"ru":"Сделать http-запрос, используя метод GET, HEAD, DELETE, TRACE или OPTIONS,то есть методы, которые не отправляют данные."},
"Special characters and non-latin query parts must be encoded with encodeURIComponent function. For example, instead of using https://www.google.com/search?q=коты, url must be https://www.google.com/search?q=%D0%BA%D0%BE%D1%82%D1%8B":{"ru":"Специальные и нелатинские символы должны быть закодированы с помощью функции encodeURIComponent. Например, вместо использования https://www.google.com/search?q=коты URL должен быть https://www.google.com/search?q=%D0%BA%D0%BE%D1%82%D1%8B"},
"If 'Record HTTP request' mode is enabled, then every request that browser does will be converted to actions using http client and added to scenario tab":{"ru":"Если включен режим 'Захват HTTP-запросов', то каждый запрос, который выполняет браузер, будет преобразован в действия с помощью http-клиента и добавлен во вкладку сценария"},
"HTTP headers(like User-Agent) can be specified in this action with 'Headers' parameter or with 'HTTP-Client Set Header' action. In first case headers will be modified only for current action, in second case headers will be modified for all following actions.":{"ru":"HTTP заголовки (например, User-Agent) могут быть указаны в параметре 'Заголовки' или с помощью действия 'HTTP-Клиент Установить Заголовок'. В первом случае заголовки будут изменены только для текущего действия, во втором случае заголовки будут изменены для всех следующих действий."},
"By default http client will follow redirects. If you want, you can disable that behavior and process Location header yourself. To get responce header, use 'Get Header' action after request.":{"ru":"По умолчанию http клиент будет следовать переадресациям. Если вы хотите, вы можете отключить эту настройку и обработывать заголовок 'Location' самостоятельно. Чтобы получить заголовки, которые сервер отсылает в ответ, используйте действие 'Получить заголовок' после запроса."},
"'Get' action will not set any variable, to obtain responce you need to call 'Current Url', 'Content', 'Status' or 'Get Header' after request is performed.":{"ru":"Действие 'Get' не возвращает результат через изменение переменных, чтобы получить ответ, вам нужно вызвать действие 'Текущий Url', 'Содержание ответа', 'Статус ответа' или 'Получить заголовок' после выполнения запроса."},
"'Current Url' will get actual url after all redirects.":{"ru":"'Текущий Url' получит последний url после всех перенаправлений."},
"'Content' will return page html.":{"ru":"'Содержание ответа' вернет код html последнего запроса."},
"'Status' returns HTTP status, for example, 200 - if request is performed correctly, 500 - in case of server error, etc.":{"ru":"'Статус ответа' возвращает HTTP статус, например, 200 - если запрос выполнен правильно, 500 - в случае ошибки сервера и т. д."},
"'Get Header' returns responce header, like 'Content-Type', 'Date', 'Set-Cookie'":{"ru":"'Получить заголовок' возвращает заголовки ответа, например 'Content-Type', 'Date', 'Set-Cookie'"},
"HTTP client handles cookies automatically, so normally you don't need to process 'Set-Cookie' header.":{"ru":"HTTP клиент обрабатывает cookies автоматически, поэтому вам не нужно обрабатывать заголовок 'Set-Cookie' самостоятельно."},
"The fastest way to extract data from page source is xpath. 'Http Client' has set of actions to perform xpath queries. It is not recomended to use 'Content' action and regular expressions unless it is absolutely necessary.":{"ru":"Самый быстрый способ извлечь данные из кода страницы - xpath. http клиент имеет множество действий для выполнения xpath запросов. Не рекомендуется использовать действие 'Содержание ответа' и регулярные выражения, если только это не абсолютно необходимо."},
"If server returns json data, use JSON.parse function to parse it.":{"ru":"Если сервер возвращает данные в формате json, используйте функцию JSON.parse для парсинга."},
"You can set max page loading time by clicking on hourglass icon near cancel button.":{"ru":"Вы можете установить максимальное время загрузки страницы, щелкнув на значок песочных часов возле кнопки 'Отмена'."},
"Post parameter name. After setting this value you need to add it to 'Post Data' parameter by hitting '+ Add' button.":{"ru":"Введите имя параметра. После установки этого значения вам нужно добавить его в поле 'Post Data', нажав кнопку '+ Добавить'."},
"Post parameter value. After setting this value you need to add it to 'Post Data' parameter by hitting '+ Add' button.":{"ru":"Введите значение параметра. После установки этого значения вам нужно добавить его в параметр 'Post Data', нажав кнопку '+ Добавить'."},
"To add values into post data list, fill 'Request Parameter Name' and 'Request Parameter Value' and hit '+ Add' button. This list of key value parameters will be sended to server in form, which is defined in 'Content Type' parameter.":{"ru":"Чтобы добавить значения в этот список, заполните 'Имя параметра запроса' и 'Значение параметра запроса' и нажмите кнопку '+ Добавить'. Этот список параметров будет отправлен на сервер в том формате, который определен в параметре 'Тип содержимого'."},
"Content type with 3 options available: urlencode, multipart, json":{"ru":"Тип содержимого может иметь 3 значения: urlencode, multipart, json"},
"Send data as key/value pairs.":{"ru":"Отправлять данные в виде пар ключ/значение."},
"Send data as key/value pairs. Values may have binary format, can be used to send files.":{"ru":"Отправлять данные в виде пар ключ/значение. Значения могут иметь двоичный формат, этот метод можно использовать для отправки файлов."},
"Send data in json format.":{"ru":"Отправлять данные в формате json."},
"'Contect-Type' header. This parameter indicates what type of content is located in 'Post Data' field.":{"ru":"Заголовок 'Content-Type'. Этот параметр указывает, какой тип содержимого находится в поле 'Post Data'."},
"Data contains key/value pairs separated by &(ampersand). For example, key1=value1&key2=value2&key3=value3":{"ru":"Данные содержат пары ключ/значение, разделенные символом & (амперсанд). Например, key1=value1&key2=value2&key3=value3"},
"Data contains key/value pairs, values may have binary format, can be used to send files. Boundary will be automatically detected from 'Post Data' field.":{"ru":"Данные содержат пары ключ/значение, значения могут иметь двоичный формат, могут использоваться для отправки файлов. Разделитель между парами ключ/значение будет получен из поля 'Post Data'."},
"Send data in json format. For example, {\"key1\":\"value1\",\"key2\":\"value2\",\"key3\":\"value3\"}":{"ru":"Отправлять данные в формате json. Например, {\"key1\": \"value1\", \"key2\": \"value2\", \"key3\": \"value3\"}"},
"Post data encoding. This parameter determines encoding name which will be used to process post data. This parameter doesn't change Content-Type header, you must do it yourself.":{"ru":"Кодировка поля 'Post Data'. Этот параметр задает название кодировки, которая будет использоваться при отправке данных запроса. Он не изменяет заголовок Content-Type, если это требуется, вы должны сделать это самостоятельно."},
"It is ok for most of cases.":{"ru":"Это значение подходит для большинства сайтов."},
"Used on some Russian sites.":{"ru":"Используется на некоторых российских сайтах."},
"Make http request using POST, PUT or PATCH method,  \ni.e. methods which send data.":{"ru":"Сделать http-запрос, используя метод POST, PUT или PATCH, то есть любые методы, которые отправляют данные."},
"Post data can be specified in 2 forms: raw(default) and with constructor. It is recommended to use raw form.":{"ru":"Данные запроса могут быть указаны в двух форматах: в неформатированном и созданных с конструктором. Рекомендуется использовать вариант именно с неформатированными данными."},
"With raw form you need to input post data as is. This means, that you can get post data from sniffer and put it inside 'Post data' field. Check help for this field, it contains a lot of examples. Another thing, which need to be done is setting up 'Content-Type' parameter, it can be obained as one of request headers. 'Content-Type' parameter indicates what type of content is located in 'Post Data' field, it could be json, form content, etc.":{"ru":"При использовании данных запроса в неформатированном виде, вы можете копировать их прямо из http сниффера и помещать в поле никак не изменяя. Проверьте справку для этого поля, она содержит много примеров. Также вам нужно правильно выбрать параметр 'Content-Type', он указывает, какой тип содержимого находится в поле 'Post Data', это может быть json, поля формы на сайте и т. д."},
"Variables and resources may be embedded into 'Post data' field. If you need to put binary data, read it into variable with base64 encoding(for example by reading file in base64) and instead of using [[VARIABLE]] notation, use it with 'base64:' prefix, like this base64:[[VARIABLE]]. 'Post data' help contains more examples.":{"ru":"В поле 'Post Data' могут быть использованы переменные и ресурсы. Если вам нужно отправить двоичные данные, поместите их в переменную с кодировкой base64 (например, прочитав файл в base64) и перед названием переменной поставьте префикс 'base64:'(например, base64:[[FILE_CONTENT]]). В справке к полю 'Post data' содержится больше примеров."},
"It is the easiest way to generate action with http requests.":{"ru":"Это самый простой способ сгенерировать действия с использованием http клиента."},
"'Post' action will not set any variable, to obtain responce you need to call 'Current Url', 'Content', 'Status' or 'Get Header' after request is performed.":{"ru":"Действие 'Post запрос' не возвращает результат через изменение переменных, чтобы получить ответ, вам нужно вызвать действие 'Текущий Url', 'Содержание ответа', 'Статус ответа' или 'Получить заголовок' после выполнения запроса."},
"A path to file which will be downloaded. If file exists, it will be overwritten. Putting here resource with type 'LinesFromFile' is almost always a bad idea, because resource will be converted to line from selected file, not to file name. If you want to get file name from resource, please use 'Resource Location' action and put result here.":{"ru":"Путь к файлу, который будет загружен. Если файл существует, он будет перезаписан. Использование  ресурса с типом 'LinesFromFile' в этом поле почти всегда приведет к неправильному результату, потому что ресурс будет преобразован в строку из выбранного файла, а не в имя файла. Если вы хотите получить имя файла из ресурса, используйте действие 'Расположение Ресурса' чтобы получить путь к файлу в виде переменной, а уже эту переменную поместите сюда."},
"Download selected url and save responce to file.":{"ru":"Загрузить выбранный url в файл."},
"If you don't want to save data on disk, you should use 'GET' or 'POST' action.":{"ru":"Если вы не хотите сохранять данные на диске, вы должны использовать действие 'GET' или 'POST'."},
"This action uses cookies and headers just like 'GET' and 'POST' actions.":{"ru":"Это действие использует cookies и заголовки, точно так же, как и действия 'GET' и 'POST'."},
"HTTP headers(like User-Agent) can be specified with 'HTTP-Client Set Header' action.":{"ru":"HTTP заголовки(например, User-Agent) могут быть заданы с помощью действия 'HTTP-Клиент Установить Заголовок'."},
"'Download' action will not set any variable, to obtain responce you need to call 'Current Url', 'Status' or 'Get Header' after request is performed. And, of course, specified file will contain responce text.":{"ru":"Действие 'Скачать' не возвращает результат через изменение переменных, чтобы получить результат, вам нужно вызвать действие 'Текущий Url', 'Статус ответа' или 'Получить заголовок' после выполнения запроса. И, конечно, указанный файл будет содержать текст ответа."},
"This variable will contain current url for http client after action will end.":{"ru":"Эта переменная будет содержать текущий url для http-клиента."},
"Get current url of http client.":{"ru":"Получить текущий url для клиента http."},
"Url may differ from last url used in 'GET' or 'POST' if there was redirects.":{"ru":"Url может отличаться от последнего url, используемого в действии 'GET' или 'POST', если были перенаправления."},
"This variable will contain responce text without headers after action will end.":{"ru":"Эта переменная будет содержать код страницы без заголовков."},
"Encoding of responce text. This value can be 'auto', 'base64' or exact text, which contains encoding name. In 'auto' mode utf-8 encoding is assumed by default. If server specifies encoding in Content-Type header encoding, it will be used instead of utf-8. If this value will be set to excat encoding name, value in Content-Type header will be ignored. Setting exact value may be useful if encoding differs from utf-8 and server doesn't set it. 'base64' mode will return data encoded with base64. It is used if data is in binary format, like pictures, videos, etc.":{"ru":"Кодировка ответа. Это значение может быть 'auto', 'base64' или имя кодировки. В режиме 'auto' по умолчанию используется кодировка utf-8. Если сервер указывает кодировку в заголовке Content-Type, она будет использоваться вместо utf-8. Если в этом поле будет задано имя кодировки, значение в заголовке Content-Type будет проигнорировано. Установка имени кодировки может быть полезна, если кодировка отличается от utf-8, и сервер не устанавливает ее самостоятельно. Режим 'base64' будет возвращать данные, закодированные с помощью base64. Он используется, если данные находятся в двоичном формате, например, изображения, видео и т. д."},
"Get page source of the last request of http client.":{"ru":"Получить код страницы для последнего запроса http клиента."},
"Page source is the same as one, which is displayed after you hit CTRL-U in a browser.":{"ru":"Код страницы, который возвращает это действие точно такой же, как и тот, который отображается в обычном браузере после нажатия CTRL-U."},
"The responce doesn't contain headers, to get headers you need to use 'Get Header' action.":{"ru":"Ответ не содержит заголовков, чтобы получить заголовки, необходимо использовать действие 'Получить заголовок'."},
"You need to set 'base64' encoding if you are getting binary data. Many actions accept data in base64 format.":{"ru":"Вам нужно установить кодировку base64, если вы получаете двоичные данные. Многие действия принимают данные в формате base64."},
"You can specify exact encoding name, see":{"ru":"Вы можете указать точное название кодировки, см."},
"list of suported encodings":{"ru":"список поддерживаемых кодировок"},
"Variable, which will contain http status as integer.":{"ru":"Переменная, которая будет содержать http статус как целое число."},
"The request has succeeded.":{"ru":"Запрос завершился успешно."},
"The target page resides under different url.":{"ru":"Целевая страница находится под другим адресом."},
"Page not found":{"ru":"Страница не найдена"},
"Get status of the last request of http client.":{"ru":"Получить статус последнего запроса http-клиента."},
"You can compare status with 'If' action like this [[SAVED_STATUS]] == 200. This expression checks if request was successful.":{"ru":"Вы можете сравнить статус действием 'If', например [[SAVED_STATUS]] == 200. Это выражение проверяет, был ли запрос успешным."},
"List of":{"ru":"Список"},
"http statuses":{"ru":"http-статусов"},
"Response header name. Header name must contain one or several words separated with dash. Character case is not important.":{"ru":"Имя заголовка ответа. Название заголовка должно содержать одно или несколько слов, разделенных дефисом. Реестр символов не важен."},
"Get 'Location' header.":{"ru":"Получить заголовок 'Location'."},
"Get 'Content-Type' header.":{"ru":"Получить заголовок 'Content-Type'."},
"Also gets 'Content-Type' header.":{"ru":"Также получает заголовок 'Content-Type'."},
"A variable name, which will hold header value.":{"ru":"Имя переменной, которая будет содержать значение заголовка."},
"Get response header of for last request.":{"ru":"Получить заголовок из последнего запроса http клиента."},
"If request was performed with redirects, only headers for last redirect will be obtained. If you want to get headers for request in a middle of redirect chain, you need to disable 'Follow redirects' option for 'GET' and 'POST' action and perform redirects by yourself. To get url of next redirect, use 'Get Header' action with 'Location' parameter.":{"ru":"Если запрос был выполнен с переадресацией, будут получены только заголовки для последнего перенаправления. Если вы хотите получить заголовки для запроса в середине цепочки, вам необходимо отключить опцию 'Следовать переадресациям' для действий 'GET' или 'POST' и выполнить перенаправления самостоятельно. Чтобы получить url следующего перенаправления, используйте действие 'Получить заголовок' с параметром 'Location'."},
"Headers can be shown in browser developer tools":{"ru":"Заголовки могут отображаться в инструментах разработчика браузера"},
"Request header name. Header name must contain one or several words separated with dash.":{"ru":"Название заголовка запроса. Оно должно содержать одно или несколько слов, разделенных дефисом."},
"Set 'User-Agent' header.":{"ru":"Установить заголовок 'User-Agent'."},
"Set 'Accept-Language' header.":{"ru":"Установить заголовок 'Accept-Language'."},
"Set referer.":{"ru":"Установить referer."},
"Request header value. This could be arbitrary string.":{"ru":"Значение заголовка запроса. Это может быть произвольная строка."},
"Set request header for subsequent requests with http client.":{"ru":"Установить заголовок запроса для всех последующих запросов с помощью http client."},
"You can set any valid header, like 'User-Agent', 'Referer', etc. However here is a list of headers that should not be set with this action: 'Connection', 'Host', 'Content-Type'. 'Content-Type' must be set in 'POST' action for a specific request. 'Accept-Encoding' can be set, but it is forbidden to put 'br' encoding in a list. 'br' encoding is not supported fro http client yet.":{"ru":"Вы можете установить любой допустимый заголовок, например 'User-Agent', 'Referer' и т. д. Однако, вот список заголовков, которые не следует задавать с помощью этого действия: 'Connection', 'Host', 'Content-Type'. 'Content-Type' должен быть установлен в действии 'POST' для каждого конкретного запроса. 'Accept-Encoding' может быть установлен, но запрещается помещать кодировку 'br' в список. Кодировка 'br' пока не поддерживается http клиентом."},
"To ensure, that headers are sent correctly use 'HTTP Sniffer' it is a window which automatically popups after any http request in record mode":{"ru":"Чтобы гарантировать, что заголовки отправлены правильно, используйте инструмент 'HTTP анализ трафика', это окно, которое автоматически всплывает после любого http запроса в режиме записи"},
" screen ":{"ru":" скрин "},
"Use 'Clear Headers' action if you want to disable all headers set with this action.":{"ru":"Используйте действие 'Очистить заголовки', если вы хотите отключить все заголовки, установленные этим действием."},
"Значение заголовка":{"ru":"Значение заголовка"},
"Clear all requests headers which was set with 'HTTP-Client Set Header' action.":{"ru":"Очистите все заголовки запросов, которые были установлены с помощью действия 'HTTP-Клиент Установить Заголовок'."},
"This action is deprecated it is recommended to use 'HTTP-Client Save Cookies' action instead.":{"ru":"Это действие устарело, рекомендуется вместо него использовать действие 'HTTP-Клиент Сохранить cookies'."},
"This variable will contain string with json. That json will hold list with all cookies for all domains. Json format is described below.":{"ru":"Эта переменная будет содержать строку в формате json со списоком всех cookies для всех доменов. Формат Json описан ниже."},
"Save all http client cookies into variable.":{"ru":"Сохраните все cookies для http-клиента в переменную."},
"Result variable will contain string with json. That json will hold list with all cookies for all domains.":{"ru":"В переменной будет содержаться строка в формате json со списоком всех cookies для всех доменов."},
"Most of sites uses cookies to store user data, like user authorisation. This means, that by storing cookies after authorisation on some site and restore them later you can implement autologin.":{"ru":"Большинство сайтов использует cookies для хранения пользовательских данных, таких как авторизация пользователя. Это означает, что, сохраняя cookies после авторизации на каком-либо сайте и восстанавливая их позже, вы можете реализовать автовход на этом сайте."},
"Cookie values is just a string, so you may save it to file, or database and use them later.":{"ru":"Cookies - это всего лишь строка, поэтому вы можете сохранить ее в файл или базу данных и использовать позже."},
"Cookies from http client may be sent to browser even without this action by using 'Load cookies from http client' action. 'Load cookies from browser' will send cookies in opposite direction.":{"ru":"Cookies из http-клиента могут быть отправлены в браузер даже без этого действия, используя 'Загрузить cookies из браузера'. Другое действие 'Загрузить cookies из http клиента' отправит cookies из http клиента в браузер."},
"Browser cookies and http client cookies shares same format.":{"ru":"Cookies браузера и cookies http клиента имеют одинаковый формат."},
"Cookies string may be converted to object with JSON.parse function, like this [[JSON]] = JSON.parse([[SAVED_COOKIES]]). Result is a map with a single 'cookies' key, which holds a list, for example {\"cookies\": [COOKIE1,COOKIE2,COOKIE3,...]}.":{"ru":"Строка cookies может быть преобразована в объект с помощью функции JSON.parse, например, [[JSON]] = JSON.parse ([[SAVED_COOKIES]]). Результат - это ассоциативный массив с одним ключом 'cookies', который содержит список, например {'cookies': [COOKIE1, COOKIE2, COOKIE3, ...]}."},
"If you want to change cookies or extract them, you need to use javascript. Javascript code can be used in any field if you set field type to expression, or with 'Execute code' action.":{"ru":"Если вы хотите изменить cookies или получить от туда какие-то значения, вам необходимо использовать javascript. Код Javascript может быть выполнен в любом поле, если вы задаете тип поля как 'expression' или с помощью действия 'Выполнить код'."},
"Each cookie is a map with following keys: value, name, domain, path, expires, httpOnly, secure.":{"ru":"Каждый cookie представляет собой ассоциативный массив со следующими ключами: value, name, domain, path, expires, httpOnly, secure."},
"secure and httpOnly are boolean values.":{"ru":"secure и httpOnly - булевые значения."},
"expires is datetime and serialized as the number of seconds since the UNIX epoch.":{"ru":"expires задает время жизни cookie, оно представлено как количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года."},
"Here are some javascript snipsets to work with cookies. All of them may be placed into 'Execute code' action. Before using it, you must parse cookies from string like this [[COOKIES]] = JSON.parse([[SAVED_COOKIES]])[\"cookies\"]":{"ru":"Вот некоторые примеры кода для работы с cookies. Все они могут быть помещены в действие 'Выполнить код'. Прежде чем использовать их, вы должны получить объект cookies из строки, например так, [[COOKIES]] = JSON.parse([[SAVED_COOKIES]])[\"cookies\"]"},
"Find cookie by name: [[COOKIE]] = [[COOKIES]].filter(function(el){return el[\"name\"] == \"REPLACE WITH COOKIE NAME\"})[0]":{"ru":"Найти значение cookie по названию: [[COOKIE]] = [[COOKIES]].filter(function(el){return el[\"name\"] == \"ЗАМЕНИТЬ НА НАЗВАНИЕ COOKIE\"})[0]"},
"Check if cookie exists: [[COOKIE_EXISTS]] = [[COOKIES]].filter(function(el){return el[\"name\"] == \"REPLACE WITH COOKIE NAME\"}).length &gt; 0":{"ru":"Проверить, существует ли cookie: [[COOKIE_EXISTS]] = [[COOKIES]].filter(function(el){return el[\"name\"] == \"ЗАМЕНИТЬ НА НАЗВАНИЕ COOKIE\"}).length &gt; 0"},
"Extract cookie value [[COOKIE_VALUE]] = [[COOKIE]][\"value\"]":{"ru":"Получить значение cookie [[COOKIE_VALUE]] = [[COOKIE]][\"value\"]"},
"You can also set cookie value [[COOKIE]][\"value\"] = \"My value\". But changing parsed object won't change cookie inside http client, to do that you need to convert cookie to string(with JSON.stringify([[COOKIES]])) and use it with 'HTTP-Client Restore Cookies' action.":{"ru":"Вы также можете изменить значение cookie [[COOKIE]][\"value\"] = \"My value\". Но изменение этого объекта не повлечет за собой изменение cookies внутри http-клиента, для этого вам нужно преобразовать cookies в строку(с помощью JSON.stringify([[COOKIES]])) и использовать его с действием 'HTTP-Клиент Загрузить cookies'."},
"[[COOKIES]] variable will hold a list of cookies, so it also may be processed with actions from 'List' module.":{"ru":"Переменная [[COOKIES]] будет содержать список cookies, и так как это список, то его также можно обработать с помощью действий из модуля 'Список'."},
"This field must contain string with cookies in json format. That json must hold list with all cookies for all domains. Json format is described below. Use empty string to clear cookies.":{"ru":"Это поле должно содержать строку в формате json со списком всех cookies для всех доменов. Формат json описан ниже. Используйте пустую строку для очистки cookies."},
"Clear cookies":{"ru":"Удалить cookies"},
"Set cookies for http client.":{"ru":"Установить cookies для http клиента."},
"'Cookies' parameter must contain string in json format with all cookies. This string can be obtained as 'HTTP-Client Save Cookies' action result and changed optionally.":{"ru":"Параметр 'Cookies' должен содержать строку в формате json со списком cookies. Эта строка может быть получена как результат действия 'HTTP-Клиент Сохранить cookies' и также может быть изменена после этого если есть такая надобность."},
"Cookies from http client may be sent to browser by using 'Load cookies from http client' action. 'Load cookies from browser' will send cookies in opposite direction.":{"ru":"Cookies из http клиента могут быть отправлены в браузер, используя действие 'Загрузить cookies из http клиента', а действие 'Загрузить cookies из браузера' наоборот отправит cookies из браузера в http клиент."},
"Cookies must be a map with a single 'cookies' key, which holds a list, for example {\"cookies\": [COOKIE1,COOKIE2,COOKIE3,...]}.":{"ru":"Cookies должны быть ассоциативным массивом с одним ключом 'cookies', который содержит список, например {'cookies': [COOKIE1, COOKIE2, COOKIE3, ...]}."},
"You can also set cookie value [[COOKIE]][\"value\"] = \"My value\".":{"ru":"Вы также можете изменить значение cookie [[COOKIE]][\"value\"] = \"My value\"."},
"After you finish manipulation with [[COOKIES]] array you need to convert it to string with JSON.stringify([[COOKIES]]) code":{"ru":"После того, как вы закончите редактирования списка [[COOKIES]], вам нужно преобразовать его в строку с помощью кода JSON.stringify([[COOKIES]])"},
"Load cookies from browser to http client.":{"ru":"Загрузить cookies из браузера в http клиент."},
"If login procedure is complicated, login may be performed with browser, and everything else with http client. To do that, after login with browser use this action and authorisation state will be transfered to http client.":{"ru":"Если процедура авторизации на сайте сложная, то она может быть выполнена с помощью браузера, а все остальное с помощью http клиента. Для этого после авторизации через браузер, cookies c помощью этого действия могут быть переданы в http клиент."},
"This action is deprecated it is recommended to use 'Ignore Errors' action instead.":{"ru":"Это действие устарело, рекомендуется вместо него использовать 'Игнорировать ошибки'."},
"Get page title":{"ru":"Получить заголовок страницы"},
"Get all links":{"ru":"Получить все ссылки"},
"Find image":{"ru":"Найти изображение"},
"Find image source":{"ru":"Найти ссылку на изображение"},
"Find element by id":{"ru":"Найти элемент по id"},
"Find element by class":{"ru":"Найти элемент по классу"},
"Find element by class and id":{"ru":"Найти элемент по классам и идентификатору"},
"Find element which contains parent":{"ru":"Найти элемент, по родительскому элементу"},
"Xpath query":{"ru":"Запрос Xpath"},
"Get page title.":{"ru":"Получить заголовок страницы."},
"Get all links.":{"ru":"Получить все ссылки."},
"Find image.":{"ru":"Найти изображение."},
"Find image source(image url).":{"ru":"Найти ссылку на изображение."},
"Find element by id.":{"ru":"Найти элемент по id."},
"Find element by class. Element can have several classes, so need to use contains function.":{"ru":"Найти элемент по классам. Элемент может иметь несколько классов, поэтому необходимо использовать функцию contains."},
"Find element by class and id.":{"ru":"Найти элемент по классам и id."},
"Find element which contains parent.":{"ru":"Найдите элемент, содержащий родительский элемент."},
"Varibale, which will contain first element xml, which matches xpath query.":{"ru":"Переменная, которая будет содержать xml первого элемента, который соответствует xpath запросу."},
"Execute xpath query and find xml of first matching element.":{"ru":"Выполнить xpath запрос и найти xml первого элемента, который соответствует запросу."},
"This action, unlike 'Xpath Get Text', searches for element xml(html code).":{"ru":"Это действие, в отличие от 'Xpath получить текст', ищет xml элемента(html-код)."},
"If element won't be found, then thread will stop with fail message. If you want to continue thread, use 'Ignore errors' action or uncheck 'Fail on error'.":{"ru":"Если элемент не будет найден, поток остановится с сообщением об ошибке. Если вы хотите продолжить работу после ошибки, используйте действие 'Игнорировать ошибки' или уберите флажок 'Завершать работу после ошибки'."},
"Html to apply query is obtained from last http responce.":{"ru":"Html для применения запроса берется из последнего запроса http клиента."},
"If you want to apply xpath query to custom string, you need to use 'Xpath' module.":{"ru":"Если вы хотите применить xpath запрос к произвольной строке, а не к результату запроса http клиента, то вам нужно использовать модуль 'Xpath'."},
"Varibale, which will contain list of all elements xml, which matches xpath query.":{"ru":"Переменная будет содержать список, который состоит из xml каждого найденного элемента."},
"Execute xpath query and find xml of all elements matching query.":{"ru":"Выполнить xpath запрос и найти xml каждого элемента, соответствующего запросу."},
"This action, unlike 'Xpath Get Text List', searches for elements xml(html code).":{"ru":"Это действие, в отличие от 'Xpath получить каждый текст', ищет именно xml элементов (html-код)."},
"Result of this action is list, you can process it with 'List' module.":{"ru":"Результатом этого действия является список, вы можете обработать его с помощью модуля 'Список'."},
"If element won't be found, then list will be empty.":{"ru":"Если ни один элемент не будет найден, то список будет пустым."},
"Varibale, which will contain first element text, which matches xpath query.":{"ru":"Переменная, которая будет содержать текст первого элемента, который соответствует xpath запросу."},
"Execute xpath query and find text of first matching element.":{"ru":"Выполнить xpath запрос и найти текст первого элемента, который соответствует запросу."},
"Result of this action is text. For example if element has &lt;div&gt;word&lt;/div&gt; markup, then its text is 'word'.":{"ru":"Результатом этого действия является текст. Например, если элемент имеет xml &lt;div&gt;word&lt;/div&gt;, то его текст - 'word'."},
"If you want to get element markup, use 'Xpath Get Xml'.":{"ru":"Если вы хотите получить xml элемента, используйте действие 'Xpath получить xml'."},
"Varibale, which will contain list of all elements text, which matches xpath query.":{"ru":"Переменная будет содержать список, который состоит из текста каждого найденного элемента."},
"Execute xpath query and find text of all elements matching query.":{"ru":"Выполнить xpath запрос и найти текст всех элементов, соответствующих запросу."},
"This action searches for texts. For example if element has &lt;div&gt;word&lt;/div&gt; markup, then its text is 'word'.":{"ru":"Результатом этого действия является список, каждый элемент которого текст. Например, если элемент имеет xml &lt;div&gt;word&lt;/div&gt;, то его текст - 'word'."},
"Result of this action is list, so you can process it with 'List' module.":{"ru":"Результатом этого действия является список, поэтому вы можете обработать его с помощью модуля 'Список'."},

"This variable will be set to number of elements matching query.":{"ru":"Эта переменная будет равна количеству элементов, соответствующих xpath запросу."},
"There are no elements which matches query.":{"ru":"Нет элементов, которые соответствуют запросу."},
"There are 3 elements which matches query.":{"ru":"Есть три элемента, которые соответствуют запросу."},
"Execute xpath query and get number of element which matches.":{"ru":"Выполнить xpath запрос и получить число элементов, которое ему соответствует."},
"This variable will be to true or false depending if there is element, which matches query.":{"ru":"Эта переменная будет равна true или false в зависимости от наличия элемента, который соответствует запросу."},
"There is at leaset one element which matches query.":{"ru":"Существует по крайней мере один элемент, который соответствует запросу."},
"Check if there is at least one element matching xpath query.":{"ru":"Проверить, существует ли хотя бы один элемент, соответствующий xpath запросу."},

"Create a browser if it has not already been created. This action is not mandatory for use to work with browser.":{"ru":"Создать браузер, если он не был создан ранее. Это действие не обязательно использовать для работы с браузером."},
"By default browser is created only after running first action that uses browser. After browser is created, it won't be deleted until thread end":{"ru":"По умолчанию браузер создается только после запуска первого действия, использующего браузер. После того, как браузер создан, он не будет остановлен до конца работы потока"},
"Running browser, especially in multithreaded mode, is task that consumes a lot of PC resources. So this approach may not be always effective. To avoid using browser, when you don't need it, you can explicitly specify browser lifetime with 'Open browser' and 'Close browser'":{"ru":"Запуск и работа браузера, особенно в многопоточном режиме, является задачей, которая потребляет много ресурсов ПК, поэтому стандартный подход может быть не всегда эффективным. Чтобы избежать использования браузера, когда он вам не нужен, вы можете явно указать время работы браузера с помощью действий 'Открыть браузер' и 'Закрыть браузер',"},


"In case if script has at least one 'Open browser' or 'Close browser' action, then browser manual control mode is on. This means, that you must explicitly set all places where browser must be created and places where browser must be closed. If you try to use browser when it is yet not created or already closed, thread will fail with error":{"ru":"Если скрипт содержит хотя бы одно действие 'Открыть браузер' или 'Закрыть браузер', тогда включается режим ручного управления браузером. Это означает, что вы должны явно указать все места, где должен быть создан браузер, и места, где браузер должен быть закрыт. Если вы попытаетесь использовать браузер тогда, когда браузер еще не создан или уже закрыт, поток завершится с ошибкой"},
"It is very important to understand, that by default browser is created automatically and you don't need to call 'Open Browser' action, unless to want to control browser lifetime.":{"ru":"Очень важно понять, что по умолчанию браузер создается автоматически, и вам не нужно вызывать действие 'Открыть браузер', если только не требуется контролировать время работы браузера вручную."},
"Close browser which was created with 'Open Browser' action. This action is not mandatory for use to work with browser.":{"ru":"Закрыть браузер, который был создан с помощью действия 'Открыть браузер'. Это действие не обязательно для работы с браузером."},


"This variable will contain url of the nearest link after execution": {"ru": "Эта переменная будет содержать адрес ближайшей ссылки после выполнения"},
"Get link URL and save it to variable.": {"ru": "Получить адрес ссылки и сохранить его в переменной."},
"If element which matches selector is not link, nearest link will be selected.": {"ru": "Если элемент, соответствующий селектору, не является ссылкой, будет получен адрес ближайшей ссылки."},
"You can always tweak selection by using up and down keys. This is useful if several elements holds same coordinates.": {"ru": "Вы всегда можете изменить выбранный элемент с помощью клавиш вверх и вниз. Это полезно, если несколько элементов перекрывают друг друга и имеют одинаковые координаты."},
"In case if link nearest to selected element can't be found, empty string will be returned.": {"ru": "В случае, если ссылка, ближайшая к выбранному элементу, не может быть найдена, будет возвращена пустая строка."},
"This action looks for \"href\" attribute on link element. Sometimes it may not be present, and sites processes link clicking by using javascript. In that case following action won't give any meaningful result.": {"ru": "Это действие получает атрибут \"href\" из ссылки. Иногда данный атрибут может отсутствовать, а сайты обрабатывают клики по ссылкам с помощью javascript. В этом случае данное действие не будет иметь пользы."},

"Line break, join into multiline text": {"ru": "Перенос строки, объединение в многострочный текст"},
"Carriage return and line break, join into multiline text": {"ru": "Возврат каретки и перенос строки, объединение в многострочный текст"},
	

	"Components": {"ru": "Компоненты"},
	"Enable Safe Browsing. It is technology embedded in Chrome, helps to protect users from malicious web sites. Its absence can be detected.": {"ru": "Включить Safe Browsing. Эта технология, встроенная в Chrome, помогает защитить пользователей от вредоносных сайтов. Ее отсутствие можно обнаружить."},
	"Enable Safe Browsing": {"ru": "Включить Safe Browsing"},
	"Disable Safe Browsing": {"ru": "Отключить Safe Browsing"},
	"Enable Chrome components. Increase profile size, but its absence can be detected.": {"ru": "Включить компоненты Chrome. Это увеличит размер профиля, но их отсутствие может быть обнаружено."},
	"Enable components": {"ru": "Включить компоненты"},
	"Disable components": {"ru": "Отключить компоненты"},
	
	/* Actions search */
	"No recent actions found": {"ru": "Недавние действия не найдены"},
	"Browser > Element": {"ru": "Браузер > Элемент"},
	"Recent actions": {"ru": "Последние действия"},
	"Nothing found": {"ru": "Ничего не найдено"},

	/* Other */
	"Advanced settings.": {"ru": "Дополнительные настройки."},

	/* Get list of available browser versions */
	"Format": {"ru": "Формат"},
	"Returns list of strings": {"ru": "Возвращает список строк"},
	"Returns list of objects": {"ru": "Возвращает список объектов"},
	"Format of returned result. Results are always sorted descending by version, i.e. the latest version will appear first in the list.": {"ru": "Формат возвращаемого результата. Результаты всегда сортируются по версии в порядке убывания, т. е. последняя версия будет первой в списке."},
	"returns list of strings, for example": {"ru": "возвращает список строк, например"},
	"returns list of object, each object has info about specific version, for example": {"ru": "возвращает список объектов, каждый объект имеет информацию о конкретной версии, например"},
	"More info about each property of these objects can be found below.": {"ru": "Более подробную информацию о каждом свойстве этих объектов можно найти ниже."},
	"Variable in which, after successful execution of the action, the list of all available Chrome versions will be stored. Results are always sorted descending by version, i.e. the latest version will appear first in the list.": {"ru": "Переменная, в которой после успешного выполнения действия будет храниться список всех доступных версий Chrome. Результаты всегда сортируются по версии в порядке убывания, т. е. последняя версия будет первой в списке."},
	"Get list of all available Chrome versions.": {"ru": "Получить список всех доступных версий Chrome."},
	"Each BAS version may be shipped with one or several browser versions. This action can obtain list of all available versions programmatically. You can get this list manually as well by visiting Menu -&gt; Help -&gt; About Engine.": {"ru": "Каждая версия BAS поставляется с одной или несколькими версиями браузера. Это действие позволяет программно получить список всех доступных версий. Вы также можете получить этот список вручную, открыв Меню -&gt; Помощь -&gt; О движке."},
	"In order to get Chrome version, which is used for current thread, use \"Get current browser version\" action.": {"ru": "Чтобы получить версию Chrome, которая используется для текущего потока, выполните действие \"Получить текущую версию браузера\"."},
	"If you want to switch browser version for current thread, use \"Browser Settings\" action with \"Browser Version\" parameter.": {"ru": "Если вы хотите переключить версию браузера для текущего потока, используйте действие \"Настройки Браузера\" с параметром \"Версия браузера\"."},
	"One of possible use case would be to get list of all versions with this action, select certain version with \"Browser Settings\" action and then use \"Get fingerprint\" action with \"Minimum browser version\" and \"Maximum browser version\" parameters which matches previously selected browser version. This way used actual browser version will always match browser version of fingerprint, and these versions won't be the same for each thread. With this example you are free to use any algorithm for browser version selection, it could be just random value, or selection based on probability, for example, latest version may be selected more often than outdated.": {"ru": "Одним из возможных вариантов использования может быть получение списка всех версий с помощью этого действия, выбор определенной версии с помощью действия \"Настройки Браузера\", а затем использование действия \"Получить отпечаток\" с параметрами \"Минимальная версия браузера\" и \"Максимальная версия браузера\", которые соответствуют ранее выбранной версии браузера. Таким образом, используемая фактическая версия браузера всегда будет соответствовать версии браузера из отпечатка, и эти версии не будут одинаковыми для каждого потока. В этом примере вы можете использовать любой алгоритм выбора версии браузера, это может быть просто случайное значение или выбор на основе вероятности, например, последняя версия может быть выбрана чаще, чем устаревшая."},
	"Depending on selected format this action will return either list of strings or list of objects.": {"ru": "В зависимости от выбранного формата это действие вернет либо список строк, либо список объектов."},
	"With \"default\" format output will contain list of strings with full browser versions, for example": {"ru": "В формате \"default\" результат будет содержать список строк с полными версиями браузера, например"},
	"With \"extended\" format output will contain list of object, each object has info about specific version, for example": {"ru": "В формате \"extended\" результат будет содержать список объектов, в котором каждый объект содержит информацию о конкретной версии, например"},
	"Here is a list of properties for these objects:": {"ru": "Вот список свойств таких объектов:"},
	"\"browser_version\" - full browser version, for example 111.0.5563.65. Can be used later to switch current thread to this version.": {"ru": "\"browser_version\" - полная версия браузера, например 111.0.5563.65. Может использоваться позже для переключения на эту версию в текущем потоке."},
	"\"id\" - internal identifier of Chrome build, for example, 1, 2, 3, ...": {"ru": "\"id\" - внутренний идентификатор сборки Chrome, например, 1, 2, 3, ..."},
	"\"bas_version\" - BAS version in which corresponding Chrome version was introduced, for example, 25.5.1.": {"ru": "\"bas_version\" - версия BAS, для которой была собрана соответствующая версия Chrome, например, 25.5.1."},
	"\"architecture\" - browser architecture, can be \"x64\" or \"x86\".": {"ru": "\"architecture\" - архитектура браузера, может быть \"x64\" или \"x86\"."},
	"Result obtained with \"extended\" format can be parsed with JSON module, while \"default\" format is easier to parse with List module.": {"ru": "Результат, полученный с \"extended\" форматом, можно парсить с помощью модуля JSON, в то время как из результата в формате \"default\" легче получать значения с помощью модуля List."},
	"Results are always sorted descending by version, i.e. the latest version will appear first in the list.": {"ru": "Результаты всегда сортируются по версии в порядке убывания, т. е. последняя версия будет первой в списке."},

	/* Documentation */
	"+ More": {"ru": "+ Больше"},
	"- Less": {"ru": "- Меньше"},
	
	/* Get current browser version */
	"Browser version string": {"ru": "Версия браузера"},
	"Variable in which, after successful execution of the action, Chrome version will be stored. Version string is obtained for current thread. Other threads can use different versions. It can be changed by using \"Browser settings\" action.": {"ru": "Переменная, в которой после успешного выполнения действия будет храниться версия Chrome. Получение версии происходит для текущего потока. Другие потоки могут использовать другие версии. Версию браузера можно изменить с помощью действия \"Настройки Браузера\"."},
	"current thread uses 111.0.5563.65 Chrome version.": {"ru": "текущий поток использует версию Chrome 111.0.5563.65."},
	"current thread uses 113.0.5563.65 Chrome version.": {"ru": "текущий поток использует версию Chrome 113.0.5563.65."},
	"Browser version id": {"ru": "Идентификатор версии браузера"},
	"Variable in which, after successful execution of the action, internal identifier of browser build will be stored. Version id is obtained for current thread. Other threads can use different versions. IDs are always integers starting from 1.": {"ru": "Переменная, в которой после успешного выполнения действия будет храниться внутренний идентификатор сборки браузера. Получение идентификатора происходит для текущего потока. Другие потоки могут использовать другие версии. Идентификаторы всегда являются целыми числами, начиная с 1."},
	"Variable in which, after successful execution of the action, browser architecture will be stored.": {"ru": "Переменная, в которой после успешного выполнения действия будет сохранена строка архитектуры браузера."},
	"Get info about current Chrome version.": {"ru": "Получить информацию о текущей версии Chrome."},
	"Each BAS distribution may be shipped with one or several browser versions. This action can obtain Chrome version used in current thread. Other threads can use different versions.": {"ru": "Каждый дистрибутив BAS поставляется с одной или несколькими версиями браузера. Это действие может получить версию Chrome, используемую в текущем потоке. Другие потоки могут использовать другие версии."},
	"By default BAS will choose latest browser version available.": {"ru": "По умолчанию BAS выберет самую последнюю доступную версию браузера и использует ее."},
	"In order to get all available versions for current BAS build, use \"Get list of available browser versions\" action.": {"ru": "Чтобы получить все доступные версии для текущей сборки BAS, используйте действие \"Получить список доступных версий браузера\"."},
	"Browser architecture": {"ru": "Архитектура браузера"},

	/* Browser Settings - Browser Version */
	"Browser version": {"ru": "Версия браузера"},
	"Use latest Chrome version": {"ru": "Использовать последнюю версию Chrome"},
	"Select random Chrome version of all available": {"ru": "Выбрать случайную версию Chrome из всех доступных"},
	"Select specific version based on full vesrion string": {"ru": "Выбрать по полной строке версии"},
	"Select specific version based on major version string": {"ru": "Выбрать по основной строке версии"},
	"Select specific version based on version id": {"ru": "Выбрать по id версии"},
	"Changes browser version for current thread. This setting will restart browser and therefore reset all settings, so it is better to use it when thread starts.": {"ru": "Изменить версию браузера для текущего потока. Этот параметр перезапустит браузер и, следовательно, сбросит все настройки, поэтому лучше использовать его в начале работы потока."},
	"Each BAS version may be shipped with one or several browser versions. This action can change browser version used in current thread. Use \"Browser version\" param to do that.": {"ru": "Каждая версия BAS может поставляться с одной или несколькими версиями браузера. Это действие может изменить версию браузера, используемую в текущем потоке. Для этого задайте параметр \"Версия браузера\"."},
	"One of use case for changing browser version would be to select random version with this action first. You can use \"random\" string as input parameter. Then get fingerprint which was obtained from browser with same version. Use \"Get fingerprint\" action with \"Minimum browser version\" and \"Maximum browser version\" parameters. This way used actual browser version will always match browser version of fingerprint, and these versions won't be the same for each thread.": {"ru": "Одним из вариантов использования для изменения версии браузера будет выбор случайной версии с помощью этого действия. Вы можете использовать строку \"random\" в качестве входного параметра. Затем запросить отпечаток, который получен из браузера выбранной версии. Для этого необходимо использовать действие \"Получить отпечаток\" с параметрами \"Минимальная версия браузера\" и \"Максимальная версия браузера\". Таким образом, используемая фактическая версия браузера всегда будет соответствовать версии браузера из отпечатка, и эти версии не будут одинаковыми для каждого потока."},

	/* Browser Settings - profile */

	"Profile": {"ru": "Профиль"},
	"String with profile folder. Slash type is not important. If folder doesn't exist, it will be created. If folder already exists, BAS will use it as profile and restore all data from it like cookies, localstorage, etc. By default BAS browser stores all profile data in temporary folder, you can use \"temporary\" keyword to switch to new temporary profile.": {"ru": "AAAAAAAAAAAAAAAAAAAAAA"},
	"String with profile folder. Slash type is not important. If folder doesn't exist, it will be created. If folder already exists, BAS will use it as profile and restore all data from it like cookies, localstorage, etc. By default browser stores all profile data in temporary folder, you can use \"temporary\" keyword to switch to new temporary profile.": {"ru": "Строка с путем к папке профиля. Тип разделителя не имеет значения. Если папка не существует, она будет создана. Если папка уже существует, BAS будет использовать ее в качестве профиля и восстановит все данные из нее, такие как cookie, localstorage и т. д. По умолчанию браузер сохраняет все данные профиля во временной папке. Вы можете использовать ключевое слово \"temporary\", чтобы переключиться на новый временный профиль."},
	"Switch to new temporary profile": {"ru": "Переключиться на новый временный профиль"},
	"Exact profile location": {"ru": "Точное расположение профиля"},
	"New temporary profile": {"ru": "Новый временный профиль"},
	

	"Main": {"ru": "Главная"},
	"Unable to save action": {"ru": "Не удалось сохранить действие"},
	"Examples: ": {"ru": "Примеры: "},
	"Activated": {"ru": "Активирован"},
	"Deactivated": {"ru": "Деактивирован"},
	"This setting allows you to decide whether to wait for the desired element if it is not found on the page": {"ru": "Эта настройка позволяет выбрать, необходимо ли ждать нужный элемент, если он не найден на странице"},
	"Wait a certain time for the element to appear. The exact amount of time by default is one minute, which can be changed by clicking on the hourglass icon below.": {"ru": "Ждать определенное время, пока элемент появится. По умолчанию время ожидания составляет одну минуту, его можно изменить щелкнув на кнопку с изображением песочных часов ниже."},
	"Action will finish instantly no matter if element is present on page or not.": {"ru": "Действие завершится мгновенно, независимо от того, присутствует элемент на странице или нет."},
	"If thread must be stopped with error when specified element is not present on page. You can process this error later by using 'Ignore errors' action.": {"ru": "Должен ли поток быть остановлен с ошибкой, когда указанный элемент отсутствует на странице. Вы можете обработать эту ошибку позже, используя действие 'Игнорировать ошибки'."},
	"If element is not found on page, thread will be stopped.": {"ru": "Если элемент не найден на странице, поток будет остановлен."},
	"If element is not found on page, this action will be skipped, thread execution will continue.": {"ru": "Если элемент не найден на странице, это действие будет пропущено, и выполнение потока будет продолжено."},
	"Click and input text using javascript. Not recommended to use.": {"ru": "Кликнуть и ввести текст с помощью javascript. Не рекомендуется использовать."},
	"Perform additional emulation during action execution.": {"ru": "Выполнять дополнительную эмуляцию во время выполнения действия."},
	"Search image settings": {"ru": "Настройки поиска изображения"},
	"If element missing": {"ru": "Если элемент отсутствует"},
	"Restore original": {"ru": "Восстановить оригинал"},
	"Element preview": {"ru": "Превью элемента"},
	"Update preview": {"ru": "Обновить превью"},
	"Delete preview": {"ru": "Удалить превью"},
	
	"Selector for these elements was generated by ai. Elements description": {"ru": "Селектор для этих элементов был создан с помощью ИИ. Описание элементов"},
	"Ai generated selectors are not always accurate, so you can tweak current selector manually by clicking on elements inside browser.": {"ru": "Селекторы, сгенерированные ИИ, не всегда работают правильно, поэтому вы можете настроить текущий селектор вручную, кликая на элементы внутри браузера."},
	"keep current selector": {"ru": "сохранить текущий селектор"},
	"Once you have verified that the selector is correct, click on following link": {"ru": "Убедившись, что селектор работает правильно, нажмите на ссылку"},
	"Selector for this element was generated by ai. Element description": {"ru": "Селектор для этого элемента был создан с помощью ИИ. Описание элемента"},
	"Ai generated selectors are not always accurate, so you can": {"ru": "Селекторы, сгенерированные ИИ, не всегда работают правильно, поэтому вы можете"},
	"generate new selector manually": {"ru": "создать новый селектор вручную"},
	"or": {"ru": "или"},
	"if it fits you": {"ru": "если он подходит"},
	"You can now select new element in browser window.": {"ru": "Теперь вы можете выбрать элемент в окне браузера."},

	
	"Generate code with AI": {"ru": "Генерировать код с помощью ИИ"},

	"IP detection": {"ru": "Определение IP"},
	"This service URL is used to detect the external IP address. The URL will be queried through the currently installed proxy, and the response must contain the external IP address.": {"ru": "Данный URL будет использоваться для определения внешнего ip. Запрос к URL будет отправлен через прокси, ответ должен содержать внешний ip."},
	"Default service http://ip.bablosoft.com/ will be used.": {"ru": "Будет использоваться стандартный сервис http://ip.bablosoft.com/."},
	"Custom URL to detect external ip.": {"ru": "URL для определения внешнего ip."},
	"Treat the entire response as an ip address": {"ru": "Рассматривать ответ целиком как ip адрес"},
	"Use regexp to extract ip from response": {"ru": "Использовать регулярное выражение для извлечения ip"},
	"Use JSONPath to extract ip from response": {"ru": "Использовать JSONPath для извлечения ip"},
	"Use XPath to extract ip from response": {"ru": "Использовать XPath для извлечения ip"},
	"After receiving a response from the service URL, the IP address will be extracted from the response. This parameter specifies the method for extracting the IP address. The 'Ip extraction param' must also be specified in combination with this parameter. Depending on the method used, the param will be treated differently. For example, if the 'regexp' method is used, the param must contain a regular expression, and so on.": {"ru": "После получения ответа от сервиса, ip должен быть извлечен из ответа. Этот параметр указывает метод извлечения ip. 'Параметр извлечения IP' также должен быть указан вместе с этим параметром. В зависимости от используемого метода параметр будет обрабатываться по-разному. Например, если используется метод 'regexp', параметр должен содержать регулярное выражение и так далее."},
	"The entire response will be treated as the IP address without any processing. Use this parameter if the service URL returns only the IP address without any additional information.": {"ru": "Весь ответ будет рассматриваться как ip адрес без какой-либо обработки. Используйте этот параметр, если URL сервиса возвращает только ip адрес без какой-либо дополнительной информации."},
	"Use regular expression to extract ip address from response.": {"ru": "Использовать регулярное выражение для извлечения ip адреса из ответа."},
	"Use JSONPath to extract ip address from response. Useful if response has JSON format.": {"ru": "Использовать JSONPath для извлечения ip адреса из ответа. Полезно, если ответ имеет формат JSON."},
	"Use Xpath to extract ip address from response. Useful if response has HTML or XML format.": {"ru": "Использовать XPath для извлечения ip адреса из ответа. Полезно, если ответ имеет формат HTML или XML."},
	"Ip extraction param": {"ru": "Параметр извлечения IP"},
	"Standard regexp to extract ip": {"ru": "Стандартное регулярное выражение для извлечения IP"},
	"After receiving a response from the service URL, the IP address will be extracted from the response. This parameter specifies the param for extracting the IP address. This param will be treated differently depending on 'Ip extraction method'. For example, if the 'regexp' method is used, this param must contain a regular expression, and so on.": {"ru": "После получения ответа от URL сервиса, ip адрес будет извлечен из ответа. В этом поле можно указать параметр для извлечения ip адреса. Значение данного поля будет обрабатываться по-разному в зависимости от другого параметра 'Метод извлечения IP'. Например, если используется метод 'regexp', данное поле должно содержать регулярное выражение и так далее."},
	"Use specified regular expression to extract ip from response. In order to work correctly, 'regexp' must be specified as 'Ip extraction method'.": {"ru": "Использовать указанное регулярное выражение для извлечения ip из ответа. Для правильной работы 'regexp' должен быть указан как 'Метод извлечения IP'."},
	"By default regexp will extract whole match. If you want to extract only certain part of the match, place it within in the group with name 'result'.": {"ru": "По умолчанию регулярное выражение извлечет все совпадение. Если вы хотите извлечь только определенную его часть, поместите ее в группу с именем 'result'."},
	"Use JSONPath to extract ip address from response. This JSONPath will extract data from JSON like this {\"result\": {\"ip\": \"111.111.111.111\"}}. In order to work correctly, 'jsonpath' must be specified as 'Ip extraction method'.": {"ru": "Использовать JSONPath для извлечения ip адреса из ответа. Этот JSONPath извлечет данные из JSON, например, такого {\"result\": {\"ip\": \"111.111.111.111\"}}. Для правильной работы 'jsonpath' должен быть указан как 'Метод извлечения IP'."},
	"Use Xpath to extract ip address from response. This Xpath will extract data from HTML like this &lt;result&gt;&lt;ip&gt;111.111.111.111&lt;/ip&gt;&lt;/result&gt;. In order to work correctly, 'xpath' must be specified as 'Ip extraction method'.": {"ru": "Использовать XPath для извлечения ip адреса из ответа. Этот XPath извлечет данные из HTML, например, такого &lt;result&gt;&lt;ip&gt;111.111.111.111&lt;/ip&gt;&lt;/result&gt;. Для правильной работы 'xpath' должен быть указан как 'Метод извлечения IP'."},
	"Ip extraction method": {"ru": "Метод извлечения IP"},
	"The options below allow you to set a custom URL for external IP detection. By default, the ip.bablosoft.com service is used, which is reliable for most cases.": {"ru": "Следующие параметры позволяют установить URL сервиса для определения внешнего IP. По умолчанию используется сервис ip.bablosoft.com, который будет работать в большинстве случаев."},
	
	"WebRTC settings": {"ru": "Настройки WebRTC"},
	"WebRTC mode": {"ru": "Режим WebRTC"},
	"Public IPv4": {"ru": "Публичный IPv4"},
	"Public IPv6": {"ru": "Публичный IPv6"},
	"Private IPv4": {"ru": "Приватный IPv4"},
	"Private IPv6": {"ru": "Приватный IPv6"},
	"The options below allow you to set a IPs exposed through WebRTC. Default settings will work fine.": {"ru": "Следующие параметры позволяют настроить IP, которые могут быть получены через WebRTC. Настройки по умолчанию обеспечат оптимальную работу."},
	"Disable WebRTC": {"ru": "Отключить WebRTC"},
	"Enable WebRTC, route all requests through proxy. Requires proxy to support UDP": {"ru": "Включить WebRTC, направлять все запросы через прокси. Прокси должен поддерживать UDP."},
	"Enable WebRTC, replace exposed IPs with specified values": {"ru": "Включить WebRTC, заменять получаемые IP на указанные значения."},
	"This option defines how WebRTC replacement will work. If you want to change it without setting proxy, please use 'Browser Settings' action.": {"ru": "Эта настройка определяет, как будет работать замена IP в WebRTC. Если вы хотите изменить её без установки прокси, используйте действие 'Настройки Браузера'."},
	"Enable WebRTC with all requests routed through the proxy. Ensure the proxy supports UDP for requests to complete successfully.": {"ru": "Включить WebRTC с направлением всех запросов через прокси. Для корректной работы убедитесь, что прокси поддерживает UDP."},
	"Enable WebRTC, replace exposed IPs with values specified below.": {"ru": "Включить WebRTC, заменять получаемые IP на указанные ниже значения."},
	"Detect external IPv4 automatically": {"ru": "Автоматически определять публичный IPv4"},
	"Specify the external IPv4 address which will be exposed through WebRTC. This option is applicable only when the 'WebRTC mode' is set to 'replace'. It is highly recommended to use the default value, 'auto', but you can also provide an exact IP address if needed. If you want to change it without setting proxy, please use 'Browser Settings' action.": {"ru": "Установить публичный IPv4 адрес, который может быть получен через WebRTC. Эта опция используется только если настройка 'Режим WebRTC' имеет значение 'replace'. Рекомендуется использовать именно значение 'auto', но вы также можете указать конкретный IP, если это необходимо. Чтобы изменить его без изменения прокси, используйте действие 'Настройки Браузера'."},
	"Detect external IPv4 automatically based on settings located in 'IP detection tab'": {"ru": "Автоматически определять публичный IPv4 на основе настроек во вкладке 'Определение IP'."},
	"Exact IPv4 address may be specified.": {"ru": "Указать конкретный IPv4 адрес."},
	"Detect external IPv6 automatically": {"ru": "Автоматически определять публичный IPv6"},
	"Specify the external IPv6 address which will be exposed through WebRTC. This option is applicable only when the 'WebRTC mode' is set to 'replace'. It is highly recommended to use the default value, 'auto', but you can also provide an exact IP address if needed. If you want to change it without setting proxy, please use 'Browser Settings' action.": {"ru": "Установить публичный IPv6 адрес, который может быть получен через WebRTC. Эта опция используется только если настройка 'Режим WebRTC' имеет значение 'replace'. Рекомендуется использовать именно значение 'auto', но вы также можете указать конкретный IP, если это необходимо. Чтобы изменить его без изменения прокси, используйте действие 'Настройки Браузера'."},
	"Detect external IPv6 automatically based on settings located in 'IP detection tab'. If proxy doesn't support IPv6, no address will be exposed.": {"ru": "Автоматически определять публичный IPv6 на основе настроек во вкладке 'Определение IP'. Если прокси не поддерживает IPv6, адрес не будет доступен через WebRTC."},
	"Exact IPv6 address may be specified.": {"ru": "Указать конкретный IPv6 адрес."},
	"Replace with local name, like 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local": {"ru": "Заменить на локальное имя, например, 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local."},
	"Specify the internal IPv4 address which will be exposed through WebRTC. This option is applicable only when the 'WebRTC mode' is set to 'replace'. If you want to change it without setting proxy, please use 'Browser Settings' action.": {"ru": "Установить приватный IPv4 адрес, который может быть получен через WebRTC. Эта опция используется только если настройка 'Режим WebRTC' имеет значение 'replace'. Чтобы изменить его без изменения прокси, используйте действие 'Настройки Браузера'."},
	"Replace an exposed internal IPv4 address revealed by WebRTC with a randomly generated local address, like this: 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local": {"ru": "Заменить приватный IPv4 адрес получаемый через WebRTC на случайно сгенерированный локальный адрес, например: 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local."},
	"Specify the internal IPv6 address which will be exposed through WebRTC. This option is applicable only when the 'WebRTC mode' is set to 'replace'. If you want to change it without setting proxy, please use 'Browser Settings' action.": {"ru": "Установить приватный IPv6 адрес, который может быть получен через WebRTC. Эта опция используется только если настройка 'Режим WebRTC' имеет значение 'replace'. Чтобы изменить его без изменения прокси, используйте действие 'Настройки Браузера'."},
	"Replace an exposed internal IPv6 address revealed by WebRTC with a randomly generated local address, like this: 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local": {"ru": "Заменить приватный IPv6 адрес получаемый через WebRTC на случайно сгенерированный локальный адрес, например: 3cd88d80-5c8a-40c4-85e8-30b4078e78ec.local."},
	"Disable WebRTC API completely": {"ru": "Полностью отключить WebRTC"},
	"The options below allow you to set a custom URL for external IP detection. By default, the ip4.bablosoft.com and ip6.bablosoft.com urls will be used, which is reliable for most cases.": {"ru": "Следующие параметры позволяют задать URL для определения публичного IP. По умолчанию используются ip4.bablosoft.com и ip6.bablosoft.com, которые будут работать в большинстве случаев."},
	"Detect external IPv4": {"ru": "Определять публичный IPv4"},
	"Detect proxy's IPv4 by querying external service. BAS will use an ip4.bablosoft.com url to detect external IPv4 and will set timezone, geolocation and IPv4 exposed by WebRTC according to correct IPv4 value.": {"ru": "Определить IPv4 прокси с помощью запроса к внешнему сервису. BAS использует ip4.bablosoft.com для определения публичного IPv4 и настроит часовой пояс, геолокацию и IPv4, раскрываемый через WebRTC, в соответствии с полученным значением IPv4."},
	"Use external IPv4 obtained by service.": {"ru": "Использовать IPv4, полученный через сервис."},
	"Don't use external service, disable possibility to obtain IPv6 through WebRTC.": {"ru": "Не использовать внешний сервис, блокировить получение IPv6 через WebRTC."},
	"This service URL is used to detect the external IPv4 address. The URL will be queried through the currently installed proxy, and the response must contain the external IPv4 address.": {"ru": "Этот URL используется для определения публичного IPv4 адреса. Запрос будет отправлен через текущий прокси, и ответ должен содержать публичный IPv4 адрес."},
	"Default service http://ip4.bablosoft.com/ will be used.": {"ru": "Будет использоваться стандартный сервис http://ip4.bablosoft.com/."},
	"Custom URL to detect external IPv4.": {"ru": "URL для определения внешнего IPv4."},
	"IPv4 extraction method": {"ru": "Метод извлечения IPv4"},
	"After receiving a response from the service URL, the IPv4 address will be extracted from the response. This parameter specifies the method for extracting the IPv4 address. The 'IPv4 extraction param' must also be specified in combination with this parameter. Depending on the method used, the param will be treated differently. For example, if the 'regexp' method is used, the param must contain a regular expression, and so on.": {"ru": "После получения ответа от URL сервиса, IPv4 адрес будет извлечен из ответа. В этом поле можно указать параметр для извлечения IPv4 адреса. Значение данного поля будет обрабатываться по-разному в зависимости от другого параметра 'Метод извлечения IPv4'. Например, если используется метод 'regexp', данное поле должно содержать регулярное выражение и так далее."},
	"The entire response will be treated as the IPv4 address without any processing. Use this parameter if the service URL returns only the IPv4 address without any additional information.": {"ru": "Весь ответ будет рассматриваться как IPv4 адрес без какой-либо обработки. Используйте этот параметр, если URL сервиса возвращает только IPv4 адрес без какой-либо дополнительной информации."},
	"Use regular expression to extract IPv4 address from response.": {"ru": "Использовать регулярное выражение для извлечения IPv4 адреса из ответа."},
	"Use JSONPath to extract IPv4 address from response. Useful if response has JSON format.": {"ru": "Использовать JSONPath для извлечения IPv4 адреса из ответа. Полезно, если ответ имеет формат JSON."},
	"Use Xpath to extract IPv4 address from response. Useful if response has HTML or XML format.": {"ru": "Использовать XPath для извлечения IPv4 адреса из ответа. Полезно, если ответ имеет формат HTML или XML."},
	"Treat the entire response as an IPv4 address": {"ru": "Рассматривать весь ответ как IPv4 адрес"},
	"Use regexp to extract IPv4 from response": {"ru": "Использовать регулярное выражение для извлечения IPv4"},
	"Use JSONPath to extract IPv4 from response": {"ru": "Использовать JSONPath для извлечения IPv4"},
	"Use XPath to extract IPv4 from response": {"ru": "Использовать XPath для извлечения IPv4"},
	"IPv4 extraction param": {"ru": "Параметр извлечения IPv4"},
	"Standard regexp to extract IPv4": {"ru": "Стандартное регулярное выражение для извлечения IPv4"},
	"After receiving a response from the service URL, the IPv4 address will be extracted from the response. This parameter specifies the param for extracting the IPv4 address. This param will be treated differently depending on 'IPv4 extraction method'. For example, if the 'regexp' method is used, this param must contain a regular expression, and so on.": {"ru": "После получения ответа от URL сервиса, IPv4 адрес будет извлечен из ответа. В этом поле можно указать параметр для извлечения IPv4 адреса. Значение данного поля будет обработано по-разному в зависимости от метода 'Метод извлечения IPv4'. Например, если используется метод 'regexp', это поле должно содержать регулярное выражение и так далее."},
	"Use specified regular expression to extract IPv4 from response. In order to work correctly, 'regexp' must be specified as 'IPv4 extraction method'.": {"ru": "Использовать указанное регулярное выражение для извлечения IPv4 из ответа. Для корректной работы необходимо указать 'regexp' как 'Метод извлечения IPv4'."},
	"Use JSONPath to extract IPv4 address from response. This JSONPath will extract data from JSON like this {\"result\": {\"ip\": \"111.111.111.111\"}}. In order to work correctly, 'jsonpath' must be specified as 'IPv4 extraction method'.": {"ru": "Использовать JSONPath для извлечения IPv4 из ответа. Этот JSONPath извлечет данные из JSON, например, такого {\"result\": {\"ip\": \"111.111.111.111\"}}. Для правильной работы 'jsonpath' должен быть указан как 'Метод извлечения IP'."},
	"Use Xpath to extract IPv4 address from response. This Xpath will extract data from HTML like this &lt;result&gt;&lt;ip&gt;111.111.111.111&lt;/ip&gt;&lt;/result&gt;. In order to work correctly, 'xpath' must be specified as 'IPv4 extraction method'.": {"ru": "Использовать XPath для извлечения IPv4 из ответа. Этот XPath извлечет данные из HTML, например, такого &lt;result&gt;&lt;ip&gt;111.111.111.111&lt;/ip&gt;&lt;/result&gt;. Для правильной работы 'xpath' должен быть указан как 'Метод извлечения IPv4'."},
	"Verify if the proxy supports an IPv6 interface and, if available, detect the external IPv6 address.": {"ru": "Проверить, поддерживает ли прокси интерфейс IPv6, и, если поддерживает, определить публичный IPv6 адрес."},
	"Detect proxy's IPv6 by querying external service. BAS will use an ip6.bablosoft.com url to detect external IPv6 and will set IPv6 exposed by WebRTC according to detected value.": {"ru": "Определить IPv6 прокси с помощью запроса к внешнему сервису. BAS использует ip6.bablosoft.com для определения внешнего IPv6 и изменит IPv6, получаемый через WebRTC, в соответствии с определенным значением."},
	"Detect external IPv6": {"ru": "Определять публичный IPv6"},
	"Use external IPv6 obtained by service.": {"ru": "Использовать IPv6, полученный через сервис."},
	"Don't use external service, don't expose IPv6 through WebRTC.": {"ru": "Не использовать внешний сервис, блокировить получение IPv6 через WebRTC."},
	"This service URL is used to detect the external IPv6 address. The URL will be queried through the currently installed proxy, and the response must contain the external IPv6 address.": {"ru": "Этот URL используется для определения публичного IPv6 адреса. Запрос будет отправлен через текущий прокси, и ответ должен содержать публичный IPv6 адрес."},
	"Default service http://ip6.bablosoft.com/ will be used.": {"ru": "Будет использоваться стандартный сервис http://ip6.bablosoft.com/."},
	"Custom URL to detect external IPv6.": {"ru": "URL для определения внешнего IPv6."},
	"IPv6 extraction param": {"ru": "Параметр извлечения IPv6"},
	"Standard regexp to extract IPv6": {"ru": "Стандартное регулярное выражение для извлечения IPv6"},
	"After receiving a response from the service URL, the IPv6 address will be extracted from the response. This parameter specifies the param for extracting the IPv6 address. This param will be treated differently depending on 'IPv6 extraction method'. For example, if the 'regexp' method is used, this param must contain a regular expression, and so on.": {"ru": "После получения ответа от URL сервиса, IPv6 адрес будет извлечен из ответа. В этом поле можно указать параметр для извлечения IPv6 адреса. Значение данного поля будет обработано по-разному в зависимости от метода 'Метод извлечения IPv6'. Например, если используется метод 'regexp', это поле должно содержать регулярное выражение и так далее."},
	"Use specified regular expression to extract IPv6 from response. In order to work correctly, 'regexp' must be specified as 'IPv6 extraction method'.": {"ru": "Использовать указанное регулярное выражение для извлечения IPv6 из ответа. Для корректной работы необходимо указать 'regexp' как 'Метод извлечения IPv6'."},
	"Use JSONPath to extract IPv6 address from response. This JSONPath will extract data from JSON like this {\"result\": {\"ip\": \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"}}. In order to work correctly, 'jsonpath' must be specified as 'IPv6 extraction method'.": {"ru": "Использовать JSONPath для извлечения IPv6 из ответа. Этот JSONPath извлечет данные из JSON, например, такого {\"result\": {\"ip\": \"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"}}. Для правильной работы 'jsonpath' должен быть указан как 'Метод извлечения IP6'."},
	"Use Xpath to extract IPv6 address from response. This Xpath will extract data from HTML like this &lt;result&gt;&lt;ip&gt;2001:0db8:85a3:0000:0000:8a2e:0370:7334&lt;/ip&gt;&lt;/result&gt;. In order to work correctly, 'xpath' must be specified as 'IPv6 extraction method'.": {"ru": "Использовать XPath для извлечения IPv6 из ответа. Этот XPath извлечет данные из HTML, например, такого &lt;result&gt;&lt;ip&gt;2001:0db8:85a3:0000:0000:8a2e:0370:7334&lt;/ip&gt;&lt;/result&gt;. Для правильной работы 'xpath' должен быть указан как 'Метод извлечения IP6'."},
	"IPv6 extraction method": {"ru": "Метод извлечения IPv6"},
	"After receiving a response from the service URL, the IPv6 address will be extracted from the response. This parameter specifies the method for extracting the IPv6 address. The 'IPv6 extraction param' must also be specified in combination with this parameter. Depending on the method used, the param will be treated differently. For example, if the 'regexp' method is used, the param must contain a regular expression, and so on.": {"ru": "После получения ответа от URL сервиса, IPv6 адрес будет извлечен из ответа. В этом поле можно указать параметр для извлечения IPv6 адреса. Значение данного поля будет обработано по-разному в зависимости от метода 'Метод извлечения IPv6'. Например, если используется метод 'regexp', это поле должно содержать регулярное выражение и так далее."},
	"The entire response will be treated as the IPv6 address without any processing. Use this parameter if the service URL returns only the IPv6 address without any additional information.": {"ru": "Весь ответ будет рассматриваться как IPv6 адрес без какой-либо обработки. Используйте этот параметр, если URL сервиса возвращает только IPv6 адрес без какой-либо дополнительной информации."},
	"Use regular expression to extract IPv6 address from response.": {"ru": "Использовать регулярное выражение для извлечения IPv6 адреса из ответа."},
	"Use JSONPath to extract IPv6 address from response. Useful if response has JSON format.": {"ru": "Использовать JSONPath для извлечения IPv6 адреса из ответа. Полезно, если ответ имеет формат JSON."},
	"Use Xpath to extract IPv6 address from response. Useful if response has HTML or XML format.": {"ru": "Использовать XPath для извлечения IPv6 адреса из ответа. Полезно, если ответ имеет формат HTML или XML."},
	"Treat the entire response as an IPv6 address": {"ru": "Рассматривать весь ответ как IPv6 адрес"},
	"Use regexp to extract IPv6 from response": {"ru": "Использовать регулярное выражение для извлечения IPv6"},
	"Use JSONPath to extract IPv6 from response": {"ru": "Использовать JSONPath для извлечения IPv6"},
	"Use XPath to extract IPv6 from response": {"ru": "Использовать XPath для извлечения IPv6"},
	"Don't expose public IPv4 through WebRTC.": {"ru": "Не раскрывать публичный IPv4 через WebRTC."},
	"Don't expose public IPv6 through WebRTC.": {"ru": "Не раскрывать публичный IPv6 через WebRTC."},
	"Don't expose private IPv4 through WebRTC.": {"ru": "Не раскрывать приватный IPv4 через WebRTC."},
	"Don't expose private IPv6 through WebRTC.": {"ru": "Не раскрывать приватный IPv6 через WebRTC."},

	"Custom DNS": {"ru": "Custom DNS"},
	"Below are the available options for Chromium's built-in custom DNS implementation. In real browser, this feature is enabled by default, and it is recommended to keep it enabled to improve privacy and authenticity.": {"ru": "Ниже перечислены доступные режимы встроенной в Chromium функции Custom DNS. В реальном браузере эта функция включена по умолчанию, и рекомендуется оставлять её включённой для повышения конфиденциальности и аутентичности."},
	"DNS mode": {"ru": "Режим DNS"},
	"Recomended if you want to use custom DNS": {"ru": "Рекомендуется, если вы хотите использовать Custom DNS"},
	"Proxy must support UDP": {"ru": "Прокси должен поддерживать UDP"},
	"Safe option": {"ru": "Безопасный вариант"},
	"By default, the browser uses a custom DNS implementation that supports additional DNS features. If these features are missing, websites may detect the absence. Rather than relying on native OS DNS functions (like getaddrinfo), the custom DNS sends requests directly via UDP or TCP. BAS provides an option to enable this custom DNS feature, allowing you to route DNS traffic through a proxy or send UDP packets directly. Enabling custom DNS also requires specifying a DNS server IP. Although custom DNS is generally more difficult for websites to detect, they may still recognize that you are using a DNS server different from your ISP's default.": {"ru": "По умолчанию браузер использует реализацию Custom DNS, поддерживающую дополнительные возможности DNS. Если эти возможности отсутствуют, сайты могут это обнаружить. Вместо того чтобы полагаться на функции DNS в операционной системе (например, getaddrinfo), Custom DNS отправляет запросы напрямую через UDP или TCP. BAS предоставляет возможность включить Custom DNS, что позволит направлять DNS трафик через прокси или отправлять UDP пакеты напрямую. Включение Custom DNS также требует указания IP адреса DNS сервера. Хотя режим Custom DNS в целом сложнее обнаружить, сайты всё же могут отследить, что вы используете DNS сервер, отличный от того, который по умолчанию предоставляет провайдер прокси."},
	"This is recomended option if you want to use custom DNS. Use Chrome's built-in custom DNS implementation to make DNS requests locally (via UDP or TCP), while routing all other traffic through the proxy.": {"ru": "Это рекомендуемый режим, если вы хотите использовать Custom DNS. Использовать встроенную в Chrome реализацию Custom DNS для локальной отправки DNS-запросов (через UDP или TCP), при этом весь остальной трафик будет по прежнему направляться через прокси."},
	"Use Chrome's built-in custom DNS implementation to make DNS requests through proxy. Proxy must support UDP.": {"ru": "Использовать встроенную в Chrome реализацию Custom DNS для отправки DNS запросов через прокси. Прокси должен поддерживать UDP."},
	"Use the system DNS implementation. All DNS queries will be handled by the proxy server, which uses its own DNS. The hostname is sent to the proxy as part of this process.": {"ru": "Использовать системную реализацию DNS. Все DNS-запросы будет обрабатывать прокси, который использует собственный DNS. В рамках этого процесса имя сайта передаётся прокси."},
	"DNS IP(only for custom DNS)": {"ru": "IP адрес DNS (только для Custom DNS)"},
	"Using the custom Chrome DNS implementation requires specifying a DNS IP address. Unlike the default method - where the hostname is sent to the proxy and the proxy performs the DNS lookup - this approach resolves IP addresses locally, making it necessary to configure a DNS server IP for the browser. A valid DNS IP address is required when using the 'Custom DNS' mode for proper DNS resolution. If 'System DNS' mode is selected, this setting will have no effect.": {"ru": "Использование Custom DNS в Chrome требует указания IP адреса DNS. В отличие от стандартного метода, при котором имя сайта передаётся прокси и прокси выполняет DNS-запрос, этот подход позволяет разрешать IP адреса локально, поэтому необходимо указать IP адрес DNS сервера. Для корректного разрешения DNS в режиме 'Custom DNS' требуется действительный IP адрес DNS сервера. Если выбран режим 'System DNS', этот параметр не используется."},
	"Cloudflare DNS.": {"ru": "DNS от Cloudflare."},

	"Enable tunneling": {"ru": "Включить туннелирование"},
	"This setting allows to completely turn off the built-in tunneling system. When tunneling is disabled, any applied proxy won't work. Useful if you are using a VPN or want a direct connection. Tunneling is enabled by default. Changing this option immediately restarts the browser. Disable tunneling only when you're certain no proxy will be needed and want to use native network stack.": {"ru": "Этот параметр позволяет полностью отключить встроенную систему туннелирования. При выключенном туннелировании любые применённые прокси не будут работать. Полезно, если вы используете VPN или предпочитаете прямое соединение. По умолчанию туннелирование включено. Изменение этой опции немедленно перезапустит браузер. Отключайте туннелирование только в том случае, если уверены, что прокси не понадобится и хотите использовать стандартный сетевой стек."},
    "Enable tunneling. Default option.": {"ru": "Включить туннелирование. Опция по умолчанию."},
	"Disable tunneling, native network stack will be used, applying proxy won't take any effect.": {"ru": "Отключить туннелирование, будет использоваться стандартный сетевой стек, применение прокси не будет иметь никакого эффекта."},
	
}

/*window.un = {}

function show()
{
	console.log(JSON.stringify(window.un).replace(/\"\}\,\"/g,"\"\}\,\n\""))
}*/


function tr(key)
{
	if(typeof(key) == "undefined")
	{

		var all = $(".tr")
		
		for(var i = 0;i< all.length;i++)
		{
			var el = $(all[i])
			if(typeof(el.attr("tr")) == "undefined" || el.attr("tr") != "true" )
			{
				el.html(tr(el.html()))
				el.attr("tr","true")
			}
		}

		all = $(".trtitle")
		
		for(var i = 0;i< all.length;i++)
		{
			var el = $(all[i])
			if(typeof(el.attr("trtitle")) == "undefined" || el.attr("tr") != "true" )
			{
				el.attr("title",tr(el.attr("title")))
				el.attr("trtitle","true")
			}
		}

		var all = $("*[placeholder]")
		
		for(var i = 0;i< all.length;i++)
		{
			var el = $(all[i])
			if(typeof(el.attr("tr")) == "undefined" || el.attr("tr") != "true" )
			{
				el.attr("placeholder",tr(el.attr("placeholder")))
				el.attr("tr","true")
			}
		}

		if(typeof(_K) != "undefined" && (_K == "ru" || _K == "en"))
		{
			$(".tr-en").hide()
			$(".tr-ru").hide()
			$(".tr-" + _K).show()
		}

		return;
	}

	if(typeof(_K) == "undefined" || _K == "en")
		return key;
	if(key in _L)
	{

		if(_K in _L[key])
		{
			return _L[key][_K]
		}
	}/*else
	{
		if(!window.un[key])
		{
			window.un[key] = {"ru": "aaaaaaaaaaaa"}
		}
	}*/
	return key;
}