{
  "_comment": "------ Содержимое книги «О динамике интеграции» ------",
  "itemGroup.integratedscripting": "Integrated Scripting",
  "general.integratedscripting.description": "Создавайте скрипты для обработки сложных операций в Integrated Dynamics.",
  "advancement.integratedscripting.mendesite": "Мендезитовое изобилие",
  "advancement.integratedscripting.mendesite.desc": "Создайте блок мендезита — базовый ресурс для Integrated Scripting.",
  "advancement.integratedscripting.scripting_disk": "Не дискета!",
  "advancement.integratedscripting.scripting_disk.desc": "Создайте скриптовый диск, который используется для хранения данных скриптов.",
  "advancement.integratedscripting.scripting_drive": "Они видят мой дисковод",
  "advancement.integratedscripting.scripting_drive.desc": "Создайте скриптовый дисковод, чтобы вы могли загружать скрипты в свою сеть.",
  "advancement.integratedscripting.terminal_open": "Открытие скриптов",
  "advancement.integratedscripting.terminal_open.desc": "Откройте интерфейс скриптового терминала.",
  "advancement.integratedscripting.terminal_bind": "Восхождение скриптов",
  "advancement.integratedscripting.terminal_bind.desc": "Создайте скрипт и привяжите его к карте переменных.",
  "advancement.integratedscripting.terminal_display": "Скрипты на свободе",
  "advancement.integratedscripting.terminal_display.desc": "Отобразите значение из скрипта на панели монитора.",
  "advancement.integratedscripting.filter_chest": "Сверхмощная фильтрация списка предметов",
  "advancement.integratedscripting.filter_chest.desc": "Отфильтруйте список предметов из сундука с помощью функции скрипта.",
  "block.integratedscripting.mendesite": "Мендезит",
  "gui.integratedscripting.disk": "Диск",
  "gui.integratedscripting.script": "Скрипт",
  "gui.integratedscripting.create_file": "Создать файл",
  "gui.integratedscripting.removal_dialog.title": "Подтверждение удаления скрипта",
  "gui.integratedscripting.removal_dialog.message": "Вы действительно хотите удалить \"%s\"?",
  "gui.integratedscripting.removal_dialog.delete": "Удалить",
  "gui.integratedscripting.removal_dialog.keep": "Оставить",
  "gui.integratedscripting.error.invalid_member": "Выберите корректное имя функции или переменной в редакторе скриптов для привязки.",
  "gui.integratedscripting.error.invalid_member.current": "Текущее выделение: \"%s\"",
  "valuetype.integratedscripting.error.translation.unknown_to_graal": "Не удалось найти переводчик значений %s в Graal.",
  "valuetype.integratedscripting.error.translation.unknown_to_graal_nbt": "Не удалось найти переводчик значений %s в Graal во время трансляции NBT.",
  "valuetype.integratedscripting.error.translation.unknown_from_graal": "Не удалось найти переводчик из значений Graal %s.",
  "valuetype.integratedscripting.error.translation.list_infinite": "Невозможно преобразовать бесконечный список в скриптовый язык.",
  "valuetype.integratedscripting.error.translation.nbt_unknown": "Невозможно преобразовать элементы NBT типа %s.",
  "valuetype.integratedscripting.error.translation.nbt_unmatched": "Не удалось интерпретировать поле %s как NBT.",
  "valuetype.integratedscripting.error.translation.unsupported_translateToNbt": "Недопустимое преобразование %s \"%s\" в NBT.",
  "valuetype.integratedscripting.error.translation.proxyobject_putMember": "Недопустимое добавление ключа \"%s\" в доступный только для чтения %s",
  "operator.integratedscripting.integratedscript.basename": "Скрипт Integrated Script %s",
  "operator.integratedscripting.integratedscript.graal": "Функция Graal",
  "operator.integratedscripting.error.no_graal_serialization": "Скрипты Integrated Script не могут быть сериализованы",
  "script.integratedscripting.tooltip.disk": "§e§oID диска: §r§o%s",
  "script.integratedscripting.tooltip.path": "§e§oПуть к скрипту: §r§o%s",
  "script.integratedscripting.tooltip.member": "§e§oЭлемент: §r§o%s",
  "script.integratedscripting.error.invalid_network": "Не удалось найти подходящую скриптовую сеть.",
  "script.integratedscripting.error.disk_not_in_network": "Диск с ID %s не найден в текущей сети.",
  "script.integratedscripting.error.path_not_in_network": "Диск с ID %s не содержит скрипт \"%s\".",
  "script.integratedscripting.error.member_not_in_network": "Диск с ID %s не содержит элемент \"%s\" в скрипте \"%s\".",
  "script.integratedscripting.error.unsupported_language": "Язык скрипта \"%s\" не поддерживается.",
  "script.integratedscripting.error.script_read": "Произошла ошибка при чтении скрипта \"%s\" на диске %s: %s",
  "script.integratedscripting.error.script_exec": "Произошла ошибка при выполнении элемента \"%s\" в скрипте \"%s\" на диске %s: %s",
  "script.integratedscripting.error.invalid_type": "Ожидалось, что элемент \"%s\" в скрипте \"%s\" на диске %s вернёт переменную типа %s, но обнаружен тип %s.",
  "item.integratedscripting.scripting_disk": "Скриптовый диск",
  "item.integratedscripting.scripting_disk.info": "Хранит скрипты.",
  "item.integratedscripting.scripting_disk.id": "ID: %s",
  "item.integratedscripting.scripting_disk.bytes": "Байт: %s",
  "block.integratedscripting.scripting_drive": "Скриптовый дисковод",
  "block.integratedscripting.scripting_drive.info": "Предоставляет доступ к скриптовым дискам в сети.",
  "parttype.integratedscripting.terminal_scripting": "Скриптовый терминал",
  "parttype.integratedscripting.terminal_scripting.info": "Управление скриптами со скриптовых дисководов в сети.",
  "info_book.integratedscripting.section.main": "Скрипты",
  "info_book.integratedscripting.introduction": "Введение",
  "info_book.integratedscripting.introduction.text1": "&lIntegrated Scripting&r — это дополнение к &lIntegrated Dynamics&r, позволяющее создавать скрипты для выполнения сложных операций в сетях &lIntegrated Dynamics&r. По умолчанию этот мод поставляется с поддержкой скриптового языка JavaScript.",
  "info_book.integratedscripting.introduction.text2": "Оно позволяет описывать логические операции &lIntegrated Dynamics&r с помощью удобного синтаксиса скриптов вместо стандартного визуального метода на основе карт переменных, который может стать громоздким при создании сложных цепочек операций.",
  "info_book.integratedscripting.introduction.text3": "Например, с его помощью можно легко задавать сложные фильтры списков предметов, такие как &o«предметы, которые могут получать урон, принадлежат моду X и соответствуют блокам, которые можно добыть только алмазной киркой»&r, или &o«получить предмет из этого списка со вторым по величине размером стопки»&r.",
  "info_book.integratedscripting.introduction.text4": "При использовании этого мода рекомендуются базовые знания программирования, но их можно освоить с помощью руководств далее в этой книге.",
  "info_book.integratedscripting.materials": "Материалы",
  "info_book.integratedscripting.materials.text1": "Прежде чем приступить к написанию скриптов, вам понадобятся блоки &lмендезита&r. Эти блоки очень пластичны и служат отличной основой для хранения и обработки скриптов. &lМендезит&r создаётся путём объединения &lменриловой смолы&r и &lандезита&r в &lсушильном бассейне&r.",
  "info_book.integratedscripting.concepts": "Концепции",
  "info_book.integratedscripting.concepts.text1": "Для редактирования, хранения и предоставления скриптов сети требуются 3 элемента: &lскриптовый терминал&r, &lскриптовый диск&r и &lскриптовый дисковод&r.",
  "info_book.integratedscripting.concepts.text2": "&lСкриптовый диск&r используется для хранения исходного содержимого скриптов, но сам по себе ничего делать не может.",
  "info_book.integratedscripting.concepts.text3": "&lСкриптовый дисковод&r позволяет вставить один &lскриптовый диск&r, предоставляя его содержимое сети.",
  "info_book.integratedscripting.concepts.text4": "&lСкриптовый терминал&r позволяет просматривать, управлять и редактировать все скрипты в текущей сети, доступные через &lскриптовые дисководы&r.",
  "info_book.integratedscripting.concepts.text5": "Каждый из этих элементов будет более подробно описан далее.",
  "info_book.integratedscripting.disk": "Скриптовый диск",
  "info_book.integratedscripting.disk.text1": "&lСкриптовые диски&r отвечают за хранение скриптов и вставляются в &lскриптовые дисководы&r. Их можно создать, объединив несколько &lкарт переменных&r с &lмендезитом&r.",
  "info_book.integratedscripting.disk.text2": "После того как &lскриптовый диск&r вставлен в &lскриптовый дисковод&r, он получает уникальный числовой идентификатор. Этот идентификатор будет использоваться для изменения скриптов на этом диске в &lскриптовом терминале&r. Он также служит для связи элементов скрипта с &lкартами переменных&r.",
  "info_book.integratedscripting.disk.text3": "Скриптовый диск можно безопасно перенести в другой скриптовый дисковод без потери данных скрипта, даже если он находится в другой сети. Однако &lкарты переменных&r, ссылающиеся на идентификатор этого скрипта, начнут выдавать ошибки, если они больше не находятся в той же сети.",
  "info_book.integratedscripting.disk.text4": "&lСкриптовый диск&r не имеет ограничений по объёму памяти, но из соображений удобства управления рекомендуется разделять скрипты по нескольким дискам.",
  "info_book.integratedscripting.drive": "Скриптовый дисковод",
  "info_book.integratedscripting.drive.text1": "Каждый &lскриптовый дисковод&r — это блок, подключённый к вашей сети &lIntegrated Dynamics&r, который принимает один &lскриптовый диск&r, что позволяет предоставлять содержимое скриптов диска сети.",
  "info_book.integratedscripting.drive.text2": "Он создаётся путём объединения &lустройства хранения переменных&r и &lпроигрывателя&r с несколькими &lскриптовыми дисками&r.",
  "info_book.integratedscripting.terminal": "Скриптовый терминал",
  "info_book.integratedscripting.terminal.text1": "&lСкриптовый терминал&r — это компонент, который должен быть подключён к вашей сети &lIntegrated Dynamics&r для управления скриптами, хранящимися на &lскриптовых дисках&r этой сети.",
  "info_book.integratedscripting.terminal.text2": "При нажатии правой кнопкой мыши по установленному терминалу откроется упрощённая &oинтегрированная среда разработки&r (IDE), с помощью которой вы можете редактировать скрипты.",
  "info_book.integratedscripting.terminal.text3": "В верхнем левом углу экрана вы можете выбрать идентификатор &lскриптового диска&r, подключённого к сети, после чего в списке файлов скриптов ниже отобразятся все файлы скриптов, хранящиеся на этом диске.",
  "info_book.integratedscripting.terminal.text4": "Если на диске ещё нет файлов скриптов, вы можете создать их, нажав на кнопку «+» в левом нижнем углу экрана.",
  "info_book.integratedscripting.terminal.text5": "Список файлов скриптов в левой части экрана служит для выбора скрипта для редактирования. При нажатии на скрипт его редактируемое содержимое отобразится в правой части экрана.",
  "info_book.integratedscripting.terminal.text6": "Текстовое поле в правой части экрана позволяет редактировать содержимое файлов скриптов, которое автоматически сохраняется после каждого изменения.",
  "info_book.integratedscripting.terminal.text7": "Хотя редактор выполняет базовую подсветку синтаксиса, в данный момент он не умеет обнаруживать синтаксические ошибки. Ошибки синтаксиса будут отображаться при выполнении скриптов через &lкарты переменных&r.",
  "info_book.integratedscripting.terminal.text8": "Чтобы использовать элемент скрипта в качестве логики &lIntegrated Dynamics&r, его можно привязать к &lкарте переменных&r.",
  "info_book.integratedscripting.terminal.text9": "Для этого сначала выберите элемент скрипта в текстовом редакторе курсором (например, имя переменной или имя функции).",
  "info_book.integratedscripting.terminal.text10": "После этого вы можете вставить &lкарту переменных&r в слот в правой части экрана, чтобы привязать её к этому элементу скрипта.",
  "info_book.integratedscripting.terminal.text11": "Эту &lкарту переменных&r теперь можно использовать в других частях сети, например, для вывода переменной на &lпанель монитора&r или для использования функции в качестве оператора в фильтре списка предметов.",
  "info_book.integratedscripting.terminal.text12": "В следующей главе приведено более подробное описание написания скриптов.",
  "info_book.integratedscripting.writing": "Написание скриптов",
  "info_book.integratedscripting.writing.js": "JavaScript",
  "info_book.integratedscripting.writing.js.text1": "Этот мод позволяет писать скрипты на синтаксисе JavaScript. Доступны все возможности, предусмотренные стандартом ECMAScript (ECMA-262).",
  "info_book.integratedscripting.writing.js.text2": "Обратите внимание, что специфичные для Node.js функции вроде &orequire&r и &ofs&r недоступны. Если вы привыкли разрабатывать приложения на Node.js, вы можете сделать их совместимыми с помощью внешних инструментов, таких как Webpack.",
  "info_book.integratedscripting.writing.variables": "Константы и переменные",
  "info_book.integratedscripting.writing.variables.text1": "Все привычные вам типы значений Integrated Dynamics (такие как &6целые числа&0, &9логические значения&0, &8предметы&0 и т. д.) доступны в JavaScript, и наоборот.",
  "info_book.integratedscripting.writing.variables.text2": "Самый простой способ создать значение в JavaScript и сделать его доступным в виде статического значения &lкарты переменных&r — это объявить переменную в JavaScript с помощью &olet&r или &oconst&r.",
  "info_book.integratedscripting.writing.variables.text3": "&olet&r определяет переменные, которые можно повторно переназначить позже в скрипте (например, счётчики). &oconst&r определяет переменные, которые не могут быть переназначены.",
  "info_book.integratedscripting.writing.variables.text4": "Чтобы использовать это значение в &lкарте переменных&r, вам нужно выбрать имя переменной в текстовом редакторе скриптового терминала, а затем вставить пустую &lкарту переменных&r в правый слот. Теперь вы можете использовать эту &lкарту переменных&r как обычно, например, отображая её значение на &lпанели монитора&r.",
  "info_book.integratedscripting.writing.variables.text5": "Создание переменных через JavaScript в основном полезно, если вам нужно создать сложные значения, которые непросто получить с помощью &lлогического программатора&r, например длинные &4строки&0 с определённым значением. Ниже приведены несколько примеров создания таких значений.",
  "info_book.integratedscripting.writing.functions": "Функции",
  "info_book.integratedscripting.writing.functions.text1": "Поскольку &2операторы&0 являются объектами первого класса в логике Integrated Dynamics, их также можно создавать в виде функций JavaScript.",
  "info_book.integratedscripting.writing.functions.text2": "Для создания &2операторов&0 подходит любой способ создания функций JavaScript, например через ключевое слово &ofunction&r или создание пользовательских лямбда-выражений.",
  "info_book.integratedscripting.writing.functions.text3": "Функции принимают определённое количество аргументов, которые при выполнении через логику Integrated Dynamics будут получать обычные значения Integrated Dynamics, преобразованные в значения JavaScript.",
  "info_book.integratedscripting.writing.functions.text4": "Привязка функций JavaScript к &lкарте переменных&r в качестве &2оператора&0 выполняется так же, как и для констант и переменных: выделите имя функции в текстовом редакторе скриптового терминала и привяжите её к &lкарте переменных&r. Теперь это значение можно использовать везде, где принимается &2оператор&0.",
  "info_book.integratedscripting.writing.functions.text5": "Например, вы можете создать функцию с одним аргументом типа &8предмет&0, которая возвращает &9логическое значение&0, чтобы использовать её в качестве фильтрующего &2оператора&0 для фильтрации списка предметов, считанного из сундука.",
  "info_book.integratedscripting.writing.functions.text6": "Ниже приведены примеры различных типов функций, которые можно создать.",
  "info_book.integratedscripting.writing.globals": "Глобальные функции",
  "info_book.integratedscripting.writing.globals.text1": "При написании кода JavaScript вы можете использовать глобальную переменную &oidContext&r для доступа ко всем операторам Integrated Dynamics как к функциям через поле &oops&r. Это позволяет использовать встроенные операторы при создании новых.",
  "info_book.integratedscripting.writing.globals.text2": "Например, вы можете написать фильтр &8предметов&0, который проверяет, является ли предмет складываемым и имеет ли он размер стопки не менее 16, как показано ниже.",
  "info_book.integratedscripting.writing.globals.text3": "Чтобы узнать имя оператора, который вы хотите выполнить, вы можете посмотреть его глобальное имя во всплывающих подсказках к операторам внутри &lлогического программатора&r или в списке операторов в разделе «Логическое программирование» этой книги.",
  "info_book.integratedscripting.writing.globals.text4": "Поскольку вызов операторов через &oidContext&r может быть довольно громоздким, вы можете сохранить операторы в пользовательскую константу, как показано во втором примере. Кроме того, можно использовать &oметоды объектов&r, которые обсуждаются в следующем разделе.",
  "info_book.integratedscripting.writing.methods": "Методы объектов",
  "info_book.integratedscripting.writing.methods.text1": "Чтобы уменьшить громоздкость глобальных функций, вы можете писать код более компактно, используя &lметоды объектов&r.",
  "info_book.integratedscripting.writing.methods.text2": "Объектные типы значений, такие как &8блоки&0, &8предметы&0, &8жидкости&0 и т. д., при использовании в JavaScript будут иметь связанные с ними &lметоды&r.",
  "info_book.integratedscripting.writing.methods.text3": "Методы объектов — это обычные функции, но их первый аргумент привязан к значению самого объекта.",
  "info_book.integratedscripting.writing.methods.text4": "Например, глобальная функция &oitemstackStackable&r принимает один аргумент типа &8предмет&0 и выводит &9логическое значение&0. Эта функция доступна в качестве метода для значений &8предметов&0 под именем &ostackable&r, который не принимает аргументов.",
  "info_book.integratedscripting.writing.methods.text5": "Глобальные функции, принимающие два или более аргументов, будут доступны в качестве метода для значений объектов, при этом все аргументы сдвигаются на один. Например, глобальная функция &oitemstackStrength&r принимает аргументы типа &8предмет&0 и &8блок&0, но также доступна в качестве метода для &8предметов&0 с одним аргументом типа &8блок&0.",
  "info_book.integratedscripting.advanced": "Дополнительно",
  "info_book.integratedscripting.advanced.transient_storage": "Временное хранилище",
  "info_book.integratedscripting.advanced.transient_storage.text1": "Поскольку Integrated Dynamics основан на принципах функционального программирования, отслеживание состояний в нём практически отсутствует, за исключением внешних подходов, таких как &lзадерживатель&r.",
  "info_book.integratedscripting.advanced.transient_storage.text2": "Поскольку язык JavaScript предлагает сочетание как функционального, так и императивного программирования, отслеживание состояний становится частично возможным.",
  "info_book.integratedscripting.advanced.transient_storage.text3": "Конкретно, если вы объявите изменяемую переменную вне функций (например, используя &olet&r), вы сможете изменять её значения посредством вызовов функций.",
  "info_book.integratedscripting.advanced.transient_storage.text4": "Таким образом, можно отслеживать состояния, например подсчитывать количество вызовов функций или вычислять скользящее среднее определённых значений.",
  "info_book.integratedscripting.advanced.transient_storage.text5": "Важной особенностью этих переменных является то, что их состояние является временным. Практически это означает, что их значения могут сброситься в любой момент при повторной вставке карты переменных в сети или при перезапуске сервера.",
  "info_book.integratedscripting.advanced.transient_storage.text6": "Поэтому нельзя предполагать, что эти значения будут сохраняться всегда. Если вам нужно постоянное хранение данных, лучше использовать &lзадерживатель&r.",
  "info_book.integratedscripting.advanced.external_editing": "Внешнее редактирование",
  "info_book.integratedscripting.advanced.external_editing.text1": "Если у вас есть доступ к файловой системе, на которой запущена ваша одиночная или сетевая игра, вы можете получить доступ к файлам скриптов через любой внешний редактор. Это позволяет создавать скрипты с помощью вашей любимой IDE (например, Vi, но уж точно не Emacs).",
  "info_book.integratedscripting.advanced.external_editing.text2": "Файлы скриптов доступны в каталоге &oworld/integratedscripting/&r (см. &osaves/&r для одиночных миров). Здесь вы найдёте каталоги для всех &lскриптовых дисков&r по их ID. Внутри каждого каталога &lскриптового диска&r находятся все файлы скриптов, хранящиеся на этом диске.",
  "info_book.integratedscripting.advanced.external_editing.text3": "Вы можете безопасно изменять эти файлы скриптов во внешнем редакторе, даже когда игра запущена. После сохранения файла они автоматически обновятся в игре, а также обновятся зависимые переменные.",
  "info_book.integratedscripting.advanced.external_editing.text4": "Если ваш внешний редактор поддерживает это (а современные IDE поддерживают), изменение файла скрипта через &lскриптовый терминал&r также приведёт к обновлению файлов в вашем внешнем редакторе.",
  "info_book.integratedscripting.advanced.logging": "Логирование",
  "info_book.integratedscripting.advanced.logging.text1": "При работе со сложными скриптами может возникнуть необходимость в их отладке путём временной записи во внешние файлы логов.",
  "info_book.integratedscripting.advanced.logging.text2": "JavaScript позволяет вызывать такие функции, как &oconsole.log()&r и &oconsole.error()&r, для записи сообщений в потоки вывода &oStandard Out&r и &oStandard Error&r соответственно.",
  "info_book.integratedscripting.advanced.logging.text3": "При вызове любой из этих функций сообщения логов будут записываться в файлы &o.stdout&r и &o.stderr&r, привязанные к соответствующему скрипту.",
  "info_book.integratedscripting.advanced.logging.text4": "Например, если ваш скрипт находится в файле &omyfile.js&r, сообщения лога будут записываться в &omyfile.js.stdout&r.",
  "info_book.integratedscripting.advanced.logging.text5": "Эти файлы &o.stdout&r и &o.stderr&r доступны через ваш &lскриптовый терминал&r или путём внешнего редактирования.",
  "info_book.integratedscripting.advanced.logging.text6": "Чтобы файлы логов не разрастались слишком сильно, их размер ограничен. По умолчанию лимит составляет 2096 строк. Обратитесь к администратору сервера, если вам требуется больше строк.",
  "info_book.integratedscripting.advanced.typescript": "TypeScript",
  "info_book.integratedscripting.advanced.typescript.text1": "Язык TypeScript — известное надмножество языка JavaScript, добавляющее поддержку типизации. Это позволяет разработчикам писать типобезопасный JavaScript, определяя типы переменных и функций.",
  "info_book.integratedscripting.advanced.typescript.text2": "Хотя Integrated Scripting поддерживает только чистый JavaScript, для всех доступных глобальных функций, типов значений и их методов доступен файл описания типов TypeScript (&otypings file&r).",
  "info_book.integratedscripting.advanced.typescript.text3": "При редактировании скриптов во внешней IDE этот файл описания типов можно загрузить для создания типобезопасных скриптов. Это рекомендуется только в том случае, если вы знакомы с TypeScript и умеете его использовать.",
  "info_book.integratedscripting.advanced.typescript.text4": "Файл описания типов доступен по пути &oworld/integratedscripting/integratedscripting.d.ts&r (см. &osaves/&r для одиночных миров). Этот файл автоматически перегенерируется при каждом перезапуске мира, поэтому вам не следует изменять его вручную.",
  "info_book.integratedscripting.section.tutorials": "Обучающие руководства",
  "info_book.integratedscripting.tutorials.introduction": "Введение",
  "info_book.integratedscripting.tutorials.introduction.text1": "Этот раздел содержит несколько обучающих руководств, которые помогут вам освоить &lIntegrated Scripting&r — дополнение к &lIntegrated Dynamics&r для создания скриптов для выполнения сложных операций.",
  "info_book.integratedscripting.tutorials.basics": "Основы написания скриптов",
  "info_book.integratedscripting.tutorials.basics.text1": "Блоки &lмендезита&r являются базовыми материалами для создания связанных со скриптами предметов. Давайте создадим немного в &lсушильном бассейне&r!",
  "info_book.integratedscripting.tutorials.basics.text2": "Затем мы создадим несколько &lскриптовых дисков&r и &lскриптовых дисководов&r, используя эти блоки &lмендезита&r. &lСкриптовые диски&r смогут хранить данные скриптов, а &lскриптовые дисководы&r позволят вам вставить эти диски в вашу сеть.",
  "info_book.integratedscripting.tutorials.basics.text3": "Наконец, давайте установим &lскриптовый дисковод&r и вставим в него &lскриптовый диск&r. Это позволит нам сохранять скрипты в следующем руководстве.",
  "info_book.integratedscripting.tutorials.terminal": "Использование скриптового терминала",
  "info_book.integratedscripting.tutorials.terminal.text1": "На предыдущем шаге мы создали и установили &lскриптовый диск&r и &lскриптовый дисковод&r. В этом руководстве мы рассмотрим, как на самом деле &oписать&r скрипты и привязывать их к &lкартам переменных&r.",
  "info_book.integratedscripting.tutorials.terminal.text2": "Сначала создайте &lскриптовый терминал&r, разместите его на кабеле, подключённом к &lскриптовому дисководу&r, и нажмите правой кнопкой мыши по &lскриптовому терминалу&r, чтобы открыть его.",
  "info_book.integratedscripting.tutorials.terminal.text3": "Вы увидите редактор, в котором можно получить доступ ко всем файлам скриптов, хранящимся на разных доступных сети &lскриптовых дисках&r. Вы можете переключаться между разными &lскриптовыми дисками&r, нажимая на стрелки в левом верхнем углу экрана.",
  "info_book.integratedscripting.tutorials.terminal.text4": "На данном этапе в вашей сети ещё не будет файлов скриптов, поэтому давайте создадим новый файл, нажав на кнопку «+» в левом нижнем углу экрана. Теперь нажмите на новый файл, чтобы открыть его, и кликните по текстовому полю в правой части экрана, чтобы изменить файл и написать код на &oJavaScript&r.",
  "info_book.integratedscripting.tutorials.terminal.text5": "Для простоты мы создадим константное значение. Давайте напишем что-то вроде &oconst myVar = 123;&r.",
  "info_book.integratedscripting.tutorials.terminal.text6": "В качестве последнего шага давайте привяжем эту константу к &lкарте переменных&r, вставив пустую &lкарту переменных&r в слот в правой части экрана, и выберите переменную, дважды кликнув по ней курсором. Ваша &lкарта переменных&r теперь будет привязана к константному значению. Теперь вы можете использовать эту &lкарту переменных&r в любом месте вашей сети. Давайте попробуем отобразить её на &lпанели монитора&r!",
  "info_book.integratedscripting.tutorials.functions": "Скриптовые функции",
  "info_book.integratedscripting.tutorials.functions.text1": "Хотя создание константных значений с помощью JavaScript может быть забавным, истинная сила этих скриптов раскрывается при создании &oфункций&r.",
  "info_book.integratedscripting.tutorials.functions.text2": "Функции, созданные с помощью JavaScript, могут быть привязаны к &lкартам переменных&r как &2операторы&0, которые затем можно использовать в логике Integrated Dynamics как обычно. Например, вы можете использовать их для определения фильтров экспорта Integrated Tunnels или для вычисления сложных значений, таких как медианный размер стопки предметов в списке.",
  "info_book.integratedscripting.tutorials.functions.text3": "В этом руководстве мы создадим функцию, которая принимает один аргумент типа &8предмет&0 и возвращает &9логическое значение&0 в качестве результата. Эта функция будет выступать в роли оператора фильтрации, который мы можем использовать, например, при фильтрации списка предметов.",
  "info_book.integratedscripting.tutorials.functions.text4": "В частности, мы считаем список предметов с помощью &lсчитывателя инвентаря&r и &lотфильтруем&r его, используя нашу недавно созданную функцию. Вы можете привязать функцию к &lкарте переменных&r, выделив её в редакторе и вставив пустую &lкарту переменных&r, что сохранит её в качестве &2оператора&0.",
  "info_book.integratedscripting.tutorials.functions.text5": "Вы можете использовать любую реализацию функции фильтра для этого руководства. Ниже вы найдёте рабочий пример скрипта, который вы можете скопировать.",
  "info_book.integratedscripting.tutorials.functions.text6": "Чтобы завершить руководство, выведите результат отфильтрованного списка на &lпанель монитора&r.",
  "info_book.integratedscripting.tutorials.functions.text7": "В этом примере скрипта вы увидите, что можете вызывать встроенные методы для предметов, такие как &oisStackable()&r и &ostacksize()&r. Более подробную информацию о доступных методах можно найти далее в полной инструкции."
}