{
    "me": {
        "id": "Ru",
        "native": "Русский",
        "eng": "Russian"
    },
    "regionalLinks": {
        "discord": "https://comigo.games/rudiscord",
        "telegram": "https://t.me/ctjsru"
    },
    "common": {
        "add": "Добавить",
        "apply": "Применить",
        "cancel": "Отмена",
        "cannotBeEmpty": "Не может быть пустым",
        "clear": "Очистить",
        "confirmDelete": "Вы уверены, что хотите удалить {0}? Отменить удаление будет невозможно!",
        "contribute": "Внести вклад в разработку",
        "copy": "Копировать",
        "copyName": "Скопировать название",
        "couldNotLoadFromClipboard": "Не получилось загрузить данные из буфера обмена",
        "cut": "Вырезать",
        "delete": "Удалить",
        "donate": "Помочь денюжкой",
        "done": "Готово!",
        "duplicate": "Клонировать",
        "exit": "Выход",
        "loading": "Загрузка…",
        "name": "Название:",
        "no": "Нет",
        "none": "Ничего",
        "ok": "Ок",
        "open": "Открыть",
        "paste": "Вставить",
        "pastedFromClipboard": "Добавлено из буфера обмена",
        "rename": "Переименовать",
        "save": "Сохранить",
        "select": "Выбрать…",
        "sort": "Сортировать:",
        "wrongFormat": "Неверный формат файла",
        "yes": "Да",
        "zoom": "Масштаб",
        "zoomIn": "Приблизить",
        "zoomOut": "Уменьшить",
        "filter": "Отфильтровать:",
        "selectDialogue": "Выбрать…",
        "search": "Поиск:",
        "close": "Закрыть",
        "edit": "Изменить",
        "nothingToShowFiller": "Нечего показывать!",
        "required": "Требуется",
        "settings": "Настройки",
        "fieldTypes": {
            "checkbox": "Чекбокс",
            "code": "Поле с кодом",
            "color": "Цвет",
            "group": "Группа полей",
            "h1": "Заголовок 1-го уровня",
            "h2": "Заголовок 2-го уровня",
            "h3": "Заголовок 3-го уровня",
            "h4": "Заголовок 4-го уровня",
            "number": "Число",
            "point2D": "2D точка",
            "radio": "Список с выбором",
            "slider": "Слайдер",
            "sliderAndNumber": "Слайдер с численным полем",
            "table": "Таблица",
            "text": "Короткий текст",
            "textfield": "Текст"
        },
        "newName": "Новое имя:",
        "saveProject": "Сохранить проект",
        "openProject": "Открыть проект…",
        "savedMessage": "Ваш проект был успешно сохранён.",
        "reallyExitConfirm": "Вы уверены, что хотите выйти? Все несохранённые данные будут потеряны!",
        "notFoundOrUnknown": "Ошибка чтения файла. Убедитесь, что он на самом деле существует",
        "nameTaken": "Это имя уже занято",
        "addToNotes": "Добавить в заметки",
        "noRooms": "Как бы это ни было печально, вам необходима как минимум одна комната для экспорта :)",
        "tileLayer": "слой тайлов",
        "ctSite": "Домашняя страница ct.js",
        "docsShort": "Доки",
        "docsLong": "Документация",
        "openAssetGallery": "Галерея",
        "assetTypes": {
            "texture": [
                "текстура",
                "текстуры",
                "текстур"
            ],
            "template": [
                "шаблон",
                "шаблона",
                "шаблонов"
            ],
            "tandem": [
                "тандем частиц",
                "тандема частиц",
                "тандемов частиц"
            ],
            "room": [
                "комната",
                "комнаты",
                "комнат"
            ],
            "typeface": [
                "семейство шрифтов",
                "семейства шрифтов",
                "семейств шрифтов"
            ],
            "style": [
                "стиль",
                "стиля",
                "стилей"
            ],
            "sound": [
                "звук",
                "звука",
                "звуков"
            ],
            "skeleton": [
                "скелетный спрайт",
                "скелетных спрайта",
                "скелетных спрайтов"
            ],
            "behavior": [
                "поведение",
                "поведения",
                "поведений"
            ],
            "script": [
                "скрипт",
                "скрипта",
                "скриптов"
            ],
            "enum": [
                "перечисление",
                "перечисления",
                "перечислений"
            ]
        },
        "next": "Далее",
        "previous": "Назад",
        "undo": "Отменить",
        "redo": "Вернуть",
        "addBehavior": "Добавить поведение",
        "copyNamesList": "Скопировать имена списком",
        "copyNamesArray": "Скопировать имена как элементы массива",
        "create": "Создать",
        "discard": "Отменить изменения",
        "goBack": "Назад",
        "sortByDate": "Сортировать по дате",
        "sortByName": "Сортировать по названию",
        "sortByType": "Сортировать по типу",
        "reimportSourceMissing": "Не удалось импортировать: исходный файл перемещён или удалён.",
        "dropToImport": "Брось сюда, чтобы импортировать",
        "reimport": "Обновить",
        "alignModes": {
            "left": "Слева",
            "right": "Справа",
            "top": "Сверху",
            "bottom": "Снизу",
            "center": "По центру",
            "topLeft": "Слева сверху",
            "topCenter": "По центру сверху",
            "topRight": "Справа сверху",
            "bottomLeft": "Слева снизу",
            "bottomCenter": "По центру снизу",
            "bottomRight": "Справа снизу",
            "fill": "Заполнить",
            "Scale": "Менять размер"
        },
        "experimentalFeature": "Это экспериментальная функция.",
        "download": "Скачать",
        "createStyleFromIt": "Создать стиль с этим ассетом"
    },
    "catnip": {
        "trashZoneHint": "Перетащи сюда блоки, чтобы быстро удалить их",
        "properties": "Свойства",
        "propertiesHint": "Свойства хранятся в копии или комнате и могут быть прочитаны позже, в том числе и из других копий.",
        "variables": "Переменные",
        "variablesHint": "Переменные — временные ячейки данных, существующие только пока работает событие. Они хорошо подходят для хранения быстрых вычислений.",
        "createNewProperty": "Новое свойство",
        "createNewVariable": "Новая переменная",
        "newPropertyPrompt": "Введи название для нового свойства:",
        "newVariablePrompt": "Введи название для новой переменной:",
        "errorBlock": "Блок отсутствует в библиотеке",
        "errorBlockDeleteHint": "Нажми правой кнопкой мыши, чтобы удалить его.",
        "placeholders": {
            "putBlocksHere": "Положи блоки сюда",
            "doNothing": "Ничего не делать"
        },
        "coreLibs": {
            "templates": "Шаблоны",
            "logic": "Логика",
            "misc": "Разное",
            "math": "Математика",
            "sounds": "Звуки",
            "movement": "Движение",
            "appearance": "Внешний вид",
            "rooms": "Комнаты",
            "behaviors": "Поведения",
            "backgrounds": "Фоны",
            "emitter tandems": "Эмиттеры",
            "utilities": "Утилиты",
            "settings": "Настройки",
            "arrays": "Массивы",
            "camera": "Камера",
            "console": "Консоль",
            "objects": "Объекты",
            "strings": "Строки",
            "actions": "Действия",
            "timers": "Таймеры"
        },
        "blockNames": {
            "kill copy": "Удалить эту копию",
            "set speed": "Назначить скорость",
            "set gravity": "Назначить силу гравитации",
            "set gravityDir": "Назначить направление гравитации",
            "set hspeed": "Назначить горизонтальную скорость",
            "set vspeed": "Назначить вертикальную скорость",
            "set direction": "Назначить направление движения",
            "get speed": "скорость",
            "get gravity": "сила гравитации",
            "get gravityDir": "направление гравитации",
            "get hspeed": "горизонтальная скорость",
            "get vspeed": "вертикальная скорость",
            "get direction": "направление движения",
            "increment": "Увеличить на 1",
            "decrement": "Уменьшить на 1",
            "this write": "Записать себе",
            "current room write": "Записать в текущую комнату",
            "write property to object": "Записать в объект",
            "this read": "своё свойство",
            "room read": "свойство текущей комнаты",
            "object read": "свойство объекта",
            "convert to string": "в строку",
            "convert to number": "в число",
            "convert to boolean": "в булево",
            "note": "Заметка",
            "plainJs": "Выполнить JavaScript",
            "variable": "Переменная",
            "property": "Свойство",
            "behavior property": "Свойство поведения",
            "if else branch": "Если … то",
            "while loop cycle": "Цикл \"Пока\"",
            "repeat": "Повторить N раз",
            "for each": "Цикл для каждого элемента массива",
            "break loop": "Остановить цикл",
            "NOT logic operator": "Логическое НЕ",
            "AND logic operator": "Логическое И",
            "OR logic operator": "Логическое ИЛИ",
            "is": "Является (равен)",
            "is not": "Не является (не равен)",
            "set texture": "Сменить текстуру на",
            "set scale": "Установить размер",
            "set scale xy": "Установить размер",
            "set angle": "Повернуть текстуру",
            "set alpha": "Установить прозрачность",
            "set visible": "Установить видимость",
            "scale x": "размер по x",
            "scale y": "размер по y",
            "get angle": "поворот текстуры",
            "get alpha": "прозрачность",
            "move copy": "Передвинуть эту копию",
            "y of copy": "y копии",
            "x of copy": "x копии",
            "set property variable": "Задать значение свойства/переменной",
            "increase": "Увеличить",
            "decrease": "Уменьшить",
            "object delete": "Удалить свойство в объекте",
            "new array": "новый массив",
            "new object": "Создать новый объект",
            "new empty object": "новый пустой объект",
            "color": "цвет",
            "AND AND logic operator": "двойное логическое И",
            "OR OR logic operator": "двойное логическое ИЛИ",
            "set skew": "Задать наклон",
            "skew x": "наклон по x",
            "skew y": "наклон по y",
            "set tint": "Задать оттенок",
            "get tint": "оттенок",
            "play animation": "Воспроизвести анимацию",
            "stop animation": "Остановить анимацию",
            "goto frame play": "Перейти к кадру и воспроизвести",
            "goto frame stop": "Перейти к кадру и остановить",
            "goto frame": "Перейти к кадру",
            "get animation speed": "скорость анимации",
            "set animation speed": "Задать скорость анимации",
            "this": "я",
            "concatenate strings": "Соединить строки",
            "action value": "значение действия",
            "is action pressed": "действие было нажато",
            "is action down": "действие активно",
            "is action released": "действие отпущено",
            "templates Templates copy into room": "Скопировать шаблон в комнату",
            "templates Templates copy": "Скопировать шаблон",
            "templates Templates each": "Для каждой копии",
            "templates Templates with copy": "С копией",
            "templates Templates with template": "Со всеми копиями шаблона",
            "templates templates exists": "копии шаблона существуют",
            "rooms Rooms add bg": "Добавить фон",
            "rooms Rooms clear": "Очистить текущую комнату",
            "rooms Rooms remove": "Удалить комнату",
            "rooms Rooms switch": "Переключиться на",
            "rooms Rooms restart": "Перезапустить текущую комнату",
            "rooms Rooms append": "Добавить комнату поверх",
            "rooms Rooms prepend": "Добавить комнату сзади",
            "rooms Rooms merge": "Внедрить комнату",
            "rooms rooms current": "текущая комната",
            "rooms rooms list": "список комнат",
            "rooms rooms starting": "стартовая комната",
            "behaviors Behaviors add": "Добавить поведение",
            "behaviors Behaviors remove": "Удалить поведение у",
            "behaviors behaviors has": "есть поведение у",
            "sounds Sounds play": "Играть звук",
            "sounds Sounds play at": "Играть 3D звук",
            "sounds Sounds stop": "Остановить звук",
            "sounds Sounds pause": "Приостановить звук",
            "sounds Sounds resume": "Возобновить звук",
            "sounds Sounds global volume": "Задать громкость игры",
            "sounds Sounds fade": "Сделать затухание",
            "sounds Sounds add filter": "Добавить звуку фильтр",
            "sounds Sounds add distortion": "Добавить фильтр искажения",
            "sounds Sounds add equalizer": "Добавить фильтр-эквалайзер",
            "sounds Sounds add mono filter": "Добавить моно-фильтр",
            "sounds Sounds add reverb": "Добавить фильтр ревербации",
            "sounds Sounds add stereo filter": "Добавить стерео-фильтр",
            "sounds Sounds add panner filter": "Добавить фильтр 3D-звука",
            "sounds Sounds add telephone": "Добавить фильтр \"телефон\"",
            "sounds Sounds remove filter": "Удалить фильтр у звука",
            "sounds Sounds speed all": "Задать скорость всех звуков",
            "sounds sounds load": "Загрузить звук",
            "sounds sounds exists": "звук существует",
            "sounds sounds playing": "звук играет",
            "sounds sounds toggle mute all": "все звуки заглушены",
            "sounds sounds toggle pause all": "все звуки приостановлены",
            "styles styles get": "получить стиль",
            "backgrounds Backgrounds add": "Добавить фон",
            "backgrounds backgrounds list": "список фонов",
            "emitter tandems Emitters fire": "Запустить эффект в позиции",
            "emitter tandems Emitters append": "Прикрепить эффект",
            "emitter tandems Emitters follow": "Создать эффект и следовать",
            "utilities U reshape nine patch": "Обновить форму столкновений у панели",
            "utilities u time": "время",
            "utilities u time ui": "время интерфейса",
            "utilities u get environment": "окружение",
            "utilities u get os": "текущая ос",
            "utilities u ldx": "длина вектора по x",
            "utilities u ldy": "длина вектора по y",
            "utilities u pdn": "направление меж точек",
            "utilities u pdc": "расстояние меж точек",
            "utilities u deg to rad": "градусы в радианы",
            "utilities u rad to deg": "радианы в градусы",
            "utilities u rotate": "повернуть вектор",
            "utilities u rotate rad": "повернуть вектор в радианах",
            "utilities u delta dir": "разница меж углами",
            "utilities u clamp": "ограничить",
            "utilities u lerp": "интерполировать",
            "utilities u unlerp": "разынтерполировать",
            "utilities u map": "привести к диапазону",
            "utilities u get rect shape": "прямоугольная форма столкновений",
            "utilities u prect": "точка в прямоугольнике?",
            "utilities u pcircle": "точка в круге?",
            "utilities u ui to css coord": "координаты интерфейса в css",
            "utilities u game to css coord": "координаты игры в css",
            "utilities u ui to css scalar": "скаляр интерфейса в css",
            "utilities u game to css scalar": "скаляр игры в css",
            "utilities u game to ui coord": "координаты игры в интерфейсные",
            "utilities u ui to game coord": "координаты интерфейса в игровые",
            "utilities U wait": "Задержка, в мс",
            "utilities U wait ui": "Задержка в интерфейсном времени, в мс",
            "utilities u numbered string": "строка с числом",
            "utilities u get string number": "число строки",
            "settings settings high density": "высокое разрешение",
            "settings settings target fps": "целевой fps",
            "settings settings view mode": "режим отображения",
            "settings settings fullscreen": "полноэкранный",
            "settings settings pixelart": "пиксельарт",
            "settings settings prevent default": "запретить события браузера",
            "set x": "Задать x",
            "set y": "Задать y",
            "get x": "x",
            "get y": "y",
            "follow this": "Следовать за этой копией",
            "follow": "Следовать",
            "set zoom": "Задать зум камеры",
            "get zoom": "зум",
            "set targetX": "Задать целевое x",
            "set targetY": "Задать целевое y",
            "set shiftX": "Задать сдвиг по горизонтали",
            "set shiftY": "Задать сдвиг по вертикали",
            "set drift": "Задать силу дрифта",
            "set rotation": "Задать поворот",
            "set followX": "Включить следование по x",
            "set followY": "Включить следование по y",
            "set borderX": "Задать горизонтальные рамки для следования",
            "set borderY": "Задать вертикальные рамки для следования",
            "set shake": "Задать силу тряски экрана",
            "set shakeDecay": "Задать скорость затухания тряски экрана",
            "set shakeFrequency": "Задать частоту тряски экрана",
            "set shakeX": "Задать силу горизонтальной тряски",
            "set shakeY": "Задать силу вертикальной тряски",
            "set shakeMax": "Задать максимально возможную силу тряски",
            "set minX": "Задать левую границу камеры",
            "set maxX": "Задать правую границу камеры",
            "set minY": "Задать верхнюю границу камеры",
            "set maxY": "Задать правую границу камеры",
            "get targetX": "целевой x",
            "get targetY": "целевой y",
            "get computedX": "текущий x",
            "get computedY": "текущий y",
            "get shiftX": "горизонтальный сдвиг",
            "get shiftY": "вертикальный сдвиг",
            "get drift": "сила дрифта",
            "get left": "левая сторона",
            "get right": "правая сторона",
            "get top": "верхняя сторона",
            "get bottom": "нижняя сторона",
            "get rotation": "поворот",
            "get followX": "следовать по горизонтали",
            "get followY": "следовать по вертикали",
            "get borderX": "горизонтальные рамки",
            "get borderY": "вертикальные рамки",
            "get shake": "сила тряски",
            "get shakeDecay": "скорость угасания тряски",
            "get shakeFrequency": "частота тряски",
            "get shakeX": "сила тряски по горизонтали",
            "get shakeY": "сила тряски по вертикали",
            "get shakeMax": "макс. сила тряски",
            "get minX": "левая граница",
            "get maxX": "правая граница",
            "get minY": "верхняя граница",
            "get maxY": "нижняя граница",
            "console log": "Записать в консоль",
            "console warn": "Отправить предупреждение в консоль",
            "console error": "Отправить ошибку в консоль",
            "set depth": "Задать глубину",
            "get depth": "глубина",
            "script options": "Настройки скрипта",
            "run script": "Запустить скрипт",
            "hasSubstring": "содержит строку",
            "substringPosition": "расположение строки",
            "stringLength": "длина строки",
            "replace substring": "заменить строку",
            "replace all substrings": "заменить все строки",
            "trim whitespace": "обрезать пробелы",
            "regex passes": "regex проходит",
            "replace by regex": "заменить по regex",
            "replace all by regex": "заменить всё по regex",
            "split by a substring": "разделить по строке",
            "split": "разделить в массив",
            "slice a string": "обрезать строку",
            "to uppercase": "большими буквами",
            "to lowercase": "малыми буквами",
            "array unshift": "Добавить элемент в начало",
            "array push": "Добавить элемент в конец",
            "add element at position": "Вставить элемент в позиции",
            "array pop": "Удалить последний элемент массива",
            "array shift": "Удалить первый элемент массива",
            "remove element from array": "Удалить элемент из массива",
            "remove at position": "Удалить элемент в определённой позиции",
            "filter array": "Отфильтровать массив",
            "map array": "Преобразовать элементы массива",
            "set text": "Задать текст",
            "set disabled": "Задать выключенное состояние",
            "get text": "получить текст",
            "get disabled": "выключен ли",
            "set timer 1": "Завести 1-й таймер",
            "set timer 2": "Завести 2-й таймер",
            "set timer 3": "Завести 3-й таймер",
            "set timer 4": "Завести 4-й таймер",
            "set timer 5": "Завести 5-й таймер",
            "set timer 6": "Завести 6-й таймер",
            "get timer 1": "Получить значение 1-го таймера",
            "get timer 2": "Получить значение 2-го таймера",
            "get timer 3": "Получить значение 3-го таймера",
            "get timer 4": "Получить значение 4-го таймера",
            "get timer 5": "Получить значение 5-го таймера",
            "get timer 6": "Получить значение 6-го таймера",
            "get width": "ширина",
            "get height": "высота",
            "set width": "Поменять ширину на",
            "set height": "Поменять высоту на",
            "const string": "Строка (константа)",
            "if branch": "Условие Если",
            "concatenate strings triple": "Объединить три строки",
            "emitter tandems Emitters stop": "Остановить и удалить эмиттер",
            "emitter tandems Emitters pause": "Приостановить эмиттер",
            "emitter tandems Emitters resume": "Возобновить эмиттер",
            "emitter tandems Emitters clear": "Очистить все частицы эмиттера",
            "define function": "Объявить функцию",
            "return": "Вернуть результат",
            "execute function": "Выполнить функцию",
            "get function option": "считать опцию",
            "set game speed": "Поменять скорость игры",
            "get game speed": "Считать скорость игры",
            "deserialize object": "Десериализировать объект",
            "serialize object": "сериализировать объект",
            "save to storage": "Сохранить под ключом",
            "delete from storage": "Удалить ключ",
            "load from storage": "загрузить из ключа",
            "is key in storage": "ключ в хранилище?",
            "owning room": "комната-родитель копии",
            "math abs": "положительное",
            "math sign": "знак",
            "math floor": "окр. до нижнего",
            "math ceil": "окр. до верхнего",
            "math round": "округлить",
            "math sqrt": "квадратный корень",
            "math sin": "sin",
            "math cos": "cos",
            "math tan": "tan",
            "math asin": "asin",
            "math acos": "acos",
            "math atan": "atan",
            "math atan2": "atan2",
            "math pow": "степень",
            "math log": "log",
            "math min": "минимум из",
            "math max": "максимум из",
            "x prev": "предыдущий x",
            "y prev": "предыдущий y",
            "content type entries": "записи контента"
        },
        "blockDisplayNames": {
            "if else branch": "Если",
            "while loop cycle": "Пока",
            "repeat": "Повторить",
            "for each": "Для каждого",
            "NOT logic operator": "не",
            "write": "Записать",
            "set": "Задать",
            "x of": "x",
            "y of": "y",
            "options": "настройки",
            "lengthOf": "длина",
            "split": "разделить",
            "join": "объединить",
            "add element": "Добавить элемент",
            "remove element": "Удалить элемент",
            "set timer 1 to": "Завести 1-й таймер на",
            "set timer 2 to": "Завести 2-й таймер на",
            "set timer 3 to": "Завести 3-й таймер на",
            "set timer 4 to": "Завести 4-й таймер на",
            "set timer 5 to": "Завести 5-й таймер на",
            "set timer 6 to": "Завести 6-й таймер на",
            "timer": "таймер",
            "read": "считать",
            "set game speed to": "Поменять скорость игры на",
            "game speed": "скорость игры"
        },
        "blockLabels": {
            "value": "значение",
            "property": "свойство",
            "changeBy": "на",
            "is not": "не равен",
            "is": "равен",
            "else": "Иначе",
            "timesCount": "раз",
            "store index in": "хранить индекс в",
            "store in": "сохранить в",
            "of array": "массива",
            "AND": "и",
            "OR": "или",
            "toWrite": "в",
            "fromRead": "у",
            "atPosition": "у",
            "forDuring": "в течение",
            "toDestination": "к",
            "of current room": "текущей комнаты",
            "to current room": "текущей комнате",
            "then": "Затем",
            "catch": "При ошибке",
            "and play animation": "и играть анимацию",
            "and stop animation": "и остановить анимацию",
            "scale": "размер",
            "position": "положение",
            "inInside": "в",
            "contains": "содержит",
            "replace": "заменить",
            "replaceAll": "заменить всё",
            "replaceByRegex": "заменить по regex",
            "replaceAllByRegex": "заменить всё по regex",
            "fromDestination": "от",
            "fromSource": "из",
            "and": "и",
            "at position": "в позиции",
            "with results in": "и сохранить результат в",
            "store new array in": "сохранить новый массив в",
            "and elements": "и элементы",
            "secondsUnits": "сек.",
            "store result in": "сохранить результат в"
        },
        "asyncHint": "Этот блок выполняется асинхронно, т.е. он выполнится позднее и не будет блокировать выполнение скрипта. Используй зоны для блоков ниже чтобы выполнить команды при завершении работы этого блока, но обрати внимание, что к этому времени обстоятельства могут поменяться: например, копия, которая выполнила этот блок, может быть уже удалена к завершению (в зависимости от твоей игровой логики).",
        "optionsAdvanced": "Расширенные настройки",
        "addCustomOption": "Добавить свойство",
        "changeBlockTo": "Поменять на \"$1\"",
        "blockOptions": {
            "soundVolume": "Громкость",
            "loop": "Играть циклично",
            "isRoomUi": "Это комната для интерфейса?",
            "speed": "Скорость",
            "start at": "Начать с",
            "soundSingleInstance": "Остановить другие звуки этого ассета"
        },
        "goToActions": "Перейти в настройки Действий",
        "copyDocHtml": "Скопировать HTML для документации",
        "copySelection": "Скопировать выбранные блоки",
        "duplicateBlock": "Дублировать этот блок",
        "requiredField": "Это поле обязательно для заполнения.",
        "unnamedGroup": "Безымянная группа",
        "blockDocumentation": {
            "serialize object": "Этот блок сериализирует объект в строку, которую позднее можно безопасно сохранить или передать. Этот метод не поддерживает объект Date, функции, и структуры с  цикличными ссылками. Объекты, сериализированные этим блоком, должны десериализироваться блоком \"Десериализировать объекта\"",
            "constant string": "Этот блок можно использовать, чтобы явно создать строку: например, когда нужно написать числа в строке или конвертировать \\n в перенос строки при записи переменной в слот-джокер."
        },
        "globalVariables": "Глобальные переменные",
        "globalVariablesHint": "Эти переменные доступны из любой точки твоего проекта. Они не сохраняются после завершения игры — для этого используй блоки \"Сохранить под ключом\" и \"Загрузить из ключа\".",
        "createNewGlobalVariable": "Новая глобальная переменная",
        "newGlobalVariablePrompt": "Введи название новой глобальной переменной. В имени переменной не должно быть пробелов или спецсимволов, должно быть написано латиницей и может содержать цифры после первого символа.",
        "invalidVarNameError": "Неверное имя переменной. В имени переменной не должно быть пробелов или спецсимволов, и оно должно начинаться с буквы.",
        "renamePropertyPrompt": "Введи новое имя этого свойства:",
        "renameVariablePrompt": "Введи новое имя этой переменной:",
        "renamingAcrossProject": "Заменяю имя переменной в других ассетах…"
    },
    "colorPicker": {
        "old": "Старый",
        "current": "Новый",
        "globalPalette": "Глобальная палитра",
        "altClick": "Кликни с зажатым Alt, чтобы удалить цвет",
        "projectPalette": "Палитра проекта"
    },
    "docsShortcut": {
        "openDocs": "Открыть документацию"
    },
    "exportPanel": {
        "hide": "В фоне",
        "working": "Работаем…",
        "debug": "Версия для отладки",
        "export": "Экспортировать",
        "exportPanel": "Экспорт проекта",
        "log": "Логи",
        "windowsCrossBuildWarning": "Чтобы паковать игры для Windows с Линукса или MacOS, нужно установить Wine. Инструкции по установке Wine разные от системы к системе, так что лучше погуглите сами :)",
        "cannotBuildForMacOnWin": "К сожалению, Windows может делать для маков только сломанные пакеты. Попробуйте сделать билд на линуксе — например, в виртуалке. Это бесплатно!",
        "firstRunNotice": "При первом экспорте ct.js скачает дополнительные файлы для каждой платформы. Это займёт время, но после этот процесс будет практически мгновенным.",
        "projectTitleRequired": "Необходимо добавить название проекта во вкладке Проект  → Авторство → Название проекта.",
        "appIdRequired": "Для распространения необходимо указать уникальный appID во вкладке Проект  → Авторство → ID приложения.",
        "noAndroidSdkFound": "Не удалось найти Android SDK  (переменная окружения ANDROID_SDK_ROOT не назначена). Вы можете получить Android SDK путём установки Android Studio:",
        "envVarNotice": "Возможно, тебе потребуется вручную задать переменные окружения и перезапустить компьютер.",
        "downloadAndroidStudio": "Скачать  Android Studio",
        "requiresInternetNotice": "Эта операция требует соединение с интернетом для первоначальной настройки каждого проекта.",
        "noJdkFound": "Не найден JDK 17. Переменная окружения JAVA_HOME не назначена или не указывает на JDK 17. Вы можете скачать JDK 17 здесь:",
        "downloadJDK": "Скачать JDK 17",
        "goodToGo": "Всё готово! 👍",
        "nodeJsNotFound": "В твоей системе не был найден Node.js.",
        "nodeJsDownloadPage": "Скачать Node.js",
        "nodeJsIcons": "Node.js устанавливать необязательно, но он нужен для изменения исполняемых файлов для Windows, чтобы добавить метаданные и иконку. Если не поставить Node.js, у твоей игры не будет нормальной иконки на Windows."
    },
    "exporterError": {
        "exporterErrorHeader": "Во время экспорта произошла ошибка",
        "errorSource": "Источник — $1 с названием $2",
        "clueSolutions": {
            "syntax": "Это ошибка синтаксиса твоего кода. Зайди в этот ассет и исправь её — редактор кода выделит проблемные места.",
            "eventConfiguration": "Одно из событий было неправильно сконфигурировано и у него есть пустые поля. Зайди в ассет и отредактируй параметры события.",
            "emptySound": "В одном из звуковых ассетов не было прикреплено никаких звуковых файлов. Зайди в него и добавь звук, или удали ассет.",
            "emptyEmitter": "В одной из систем частиц есть эмиттер без текстуры. Тебе нужно либо поставить текстуру, либо удалить этот эмиттер.",
            "windowsFileLock": "Это проблема Windows с блокировкой файлов. Закрой все внешние браузеры, что запускали эту игру, и попробуй ещё. Если это не поможет, перезапусти ct.js.",
            "noTemplateTexture": "В одном из твоих шаблонов не указана текстура. Тебе нужно указать текстуру для него.",
            "blockArgumentMissing": "В скрипте на Котомяте не был указан аргумент, либо он ссылается на удалённый ассет. Перейди в ассет и укажи новое значение в блоке, упомянутом выше.",
            "blockDeclarationMissing": "В твоём коде на Котомяте есть блок, для которого отсутствует котомод. Если недавно были отключены котомоды, попробуй включить их обратно, или же удали проблемные блоки.",
            "eventMissing": "Одно из событий твоего ассета использует отсутсвующий котомод. Проверь, установлены ли все требуемые котомоды и, если недавно какие-то из них были отключены тобой, попробуй включить их обратно."
        },
        "stacktrace": "Стек вызова",
        "jumpToProblem": "Перейти к проблеме",
        "saveAndQuit": "Сохранить и выйти"
    },
    "intro": {
        "loading": "Подождите, коты набирают скорость света…",
        "loadingProject": "Загрузка проекта…",
        "newProject": {
            "input": "Латиница, нижний пробел и цифры…",
            "selectProjectFolder": "Выберите папку, в которой сохранить проект",
            "nameError": "Ошибка в имени проекта",
            "header": "Создать новый",
            "projectName": "Имя:",
            "language": "Язык программирования:",
            "saveFolder": "Папка проекта:",
            "languageError": "Нужно выбрать язык программирования"
        },
        "recovery": {
            "message": "<h2 class=\"nmt\">Восстановление</h2><p>ct.js нашёл файл восстановления. Вероятно, ваш проект не был корректно сохранён, или же ct.js аварийно закрылся. Вот когда эти два файла были последний раз изменены:</p><p>Выбранный файл: {0} {1}<br/>Файл восстановления: {2} {3}</p><p>Какой файл следует открыть?</p>",
            "loadTarget": "Выбранный файл",
            "loadRecovery": "Файл восстановления",
            "newer": "<b>(новее)</b>",
            "older": "(старее)"
        },
        "homepage": "Официальный сайт",
        "latestVersion": "Доступна версия $1",
        "forgetProject": "Забыть этот проект",
        "browse": "Обзор…",
        "latest": "Последние проекты",
        "twitter": "Канал в Twitter",
        "discord": "Сообщество в Discord",
        "loadingProjectError": "Не удаётся открыть проект из-за следующей ошибки:",
        "unableToWriteToFolders": "Ct.js не удалось найти подходящее место для проектов! Убедитесь, что папка ct.js находится в каталоге, доступном для чтения.",
        "examples": "Примеры",
        "createOrBrowseJunction": "или",
        "cloneProject": "Склонировать проект в новое место",
        "github": "Котэ на Гитхабе",
        "itch": "Страница ct.js на itch.io",
        "vkontakte": "Паблик Вконтакте",
        "telegram": "Чат в телеге",
        "patreon": "Поддержи кота на Патреоне!",
        "sponsoredBy": "Спонсируется $1!",
        "supportedBy": "Спасибо за поддержку $1!",
        "templates": "Шаблоны",
        "templatesInfo": "Начни разработку игры с одним из этих шаблонов. В них графика-заглушка, но прекрасно работающие механики. При выборе шаблона откроется выбор папки для твоего нового проекта.",
        "boosty": "Поддержи ct.js на Boosty!",
        "nothingToShowFiller": "Тут пока нечего показывать! Попробуй Примеры или создай свой собственный проект.",
        "newUserHeader": "Добро пожаловать в ct.js!",
        "welcomeHeaders": [
            "С возвращением, Tumblr sexyman!",
            "С возвращением, Нео!",
            "Это же наш крутой программист! С возвращением!",
            "Рад тебя видеть снова!",
            "С возвращением, Суперстар!",
            "Ты наконец проснулся. С возвращением!",
            "Генерал Кеноби!",
            "🖖",
            "Здравствуй, путник!",
            "Охаё, семпай uwu",
            "Халло :D Халло :D Халло :D",
            "Рада тебя видеть, увалень.",
            "✉️ Рейд: Хакермен пираты",
            "Добро пожаловать в Ущелье Призывателей!",
            "Добро пожаловать в 20-ю тестовую камеру."
        ],
        "ctDistributions": {
            "released": "Релизная версия",
            "nightly": "Ночная сборка 🌚",
            "dev": "Запускаемся с сорсов 🤓"
        },
        "gamesFromCommunity": "Игры от сообщества",
        "submitYourOwn": "Отправить своё",
        "learningResources": "Обучающие материалы",
        "authorBy": "от $1"
    },
    "onboarding": {
        "hoorayHeader": "Ух-ты! Мы сделали новый проект!",
        "nowWhatParagraph": "Но что же дальше?",
        "openSpaceShooterTutorial": "Научиться делать космическую стрелялку",
        "openPlatformerTutorial": "Научиться делать платформеры",
        "openJettyCatTutorial": "Научиться делать Флэппи Кот",
        "doNothing": "Пропустить этот экран",
        "showOnboardingCheckbox": "Показывать этот экран при создании новых проектов"
    },
    "settings": {
        "actions": {
            "heading": "Действия и методы ввода",
            "actions": "Действия",
            "addAction": "Добавить действие",
            "addMethod": "Добавить метод ввода",
            "deleteAction": "Удалить это действие",
            "deleteMethod": "Удалить этот метод",
            "inputActionNamePlaceholder": "Название действия",
            "methodModuleMissing": "Модуль для этого метода ввода отсутствует",
            "methods": "Методы ввода",
            "multiplier": "Множитель",
            "noActionsYet": "Действия позволяют разработчику реагировать на события различных методов ввода одновременно, а также динамически менять настройки управления — всё через единый API. Узнайте о них больше, нажав иконку документации выше.",
            "makeFromScratch": "Создать с нуля",
            "presets": "Шаблоны",
            "presetXYMovement": "Движение по XY",
            "presetTouchAndMouse": "Мышь и сенсор",
            "presetCustom": "Вставить свой",
            "exportActionPreset": "Экспортировать как шаблон",
            "importErrorMissingModules": "Не удаётся импортировать шаблон, т.к. в твоей версии ct.js отсутствуют следующие котомоды: $1.",
            "importErrorNotCtJsPreset": "Кажется, это не файл-шаблон действий для ct.js."
        },
        "authoring": {
            "heading": "Авторство",
            "author": "Разработчик:",
            "site": "Сайт автора:",
            "title": "Название:",
            "version": "Версия:",
            "versionPostfix": "Постфикс:",
            "appId": "ID приложения",
            "appIdExplanation": "В основном используется для билдов для мобильных устройств. Это уникальная строка, обозначающая твою игру. Обычно пишется в формате домензона.разработчик.имяпроекта — например,  rocks.ctjs.catsteroids"
        },
        "branding": {
            "heading": "Брендинг",
            "accent": "Акцентный цвет:",
            "accentNotice": "Определяет цвет экрана загрузки, а также некоторых мест на мобильных устройствах.",
            "icon": "Иконка игры:",
            "iconNotice": "Это должна быть квадратная текстура с одним кадром и размером минимум 256x256 пикселей.",
            "invertPreloaderScheme": "Инвертировать цветовую схему экрана загрузки",
            "hideLoadingLogo": "Спрятать лого \"Сделано с ct.js\" на экране загрузки игры",
            "splashScreen": "Обложка:",
            "splashScreenNotice": "Изображение будет использоваться для билдов под мобильные устройства. Размер изображения — минимум 1920x1920 пикселей. Оно будет менять размер и обрезаться под портретную или ландшафтную ориентацию, поэтому проверь, что самое важное расположено по центру.",
            "forceSmoothIcons": "Использовать гладкие иконки вопреки настройкам рендера",
            "forceSmoothSplashScreen": "Использовать гладкую обложку вопреки настройкам рендера",
            "alternativeCtjsLogo": "Использовать альтернативный логотип ct.js",
            "alternativeCtjsNotice": "Заменяет экран \"Сделано с ct.js\" обычным логотипом ct.js. Полезно, если ваш дистрибьютор — заноза в заднице.",
            "customLoadingText": "Текст загрузки",
            "customLoadingTextHint": "Сюда можно поставить пробел (но не оставить строку вообще пустой), если вы хотите спрятать текст загрузки."
        },
        "rendering": {
            "heading": "Настройки графики",
            "framerate": "Кадров в секунду:",
            "highDensity": "Поддерживать высокую плотность пикселей (напр. на ретина-экранах)",
            "maxFPS": "Максмальная частота кадров:",
            "hideCursor": "Спрятать системный курсор",
            "desktopBuilds": "Сборки для ПК",
            "launchMode": "Запустить в режиме:",
            "launchModes": {
                "maximized": "Развёрнутый на весь экран",
                "fullscreen": "Полноэкранный",
                "windowed": "Оконный"
            },
            "pixelatedRender": "Здесь и в проекте отключать сглаживание (сохранять пиксели)",
            "usePixiLegacy": "Добавить старый рендерер, основанный на канвасе, чтобы поддерживать старые браузеры и графические карты (добавляет примерно 20кбайт к игре)",
            "useTransparent": "Использовать прозрачный фон",
            "mobileBuilds": "Билды для мобильных устройств",
            "screenOrientation": "Положение экрана:",
            "screenOrientations": {
                "unspecified": "Любое",
                "landscape": "Ландшафтное",
                "portrait": "Портретное"
            },
            "viewportMode": "Режим вида",
            "viewportModes": {
                "asIs": "Не управляется ct.js",
                "fastScale": "Быстрое изменение размера",
                "fastScaleInteger": "Быстрое целочисленное изменение размера",
                "expand": "Расширение",
                "scaleFit": "Качественное изменение размера с пустыми полосами вокруг",
                "scaleFill": "Качественное изменение размера без пустых полос"
            },
            "viewportModesDescriptions": {
                "asIs": "отключает любое управление видом; отрисованный холст будет расположен в левом-верхнем углу страницы.",
                "fastScale": "вид игры пропорционально заполнит всё доступное пространство.",
                "fastScaleInteger": "вид будет расположен посередине экрана и будет увеличен на целое число (х2, х3, х4 и так далее)",
                "expand": "вид игры заполнит весь экран. Камера расширится, чтобы соответствовать новому виду.",
                "scaleFit": "вид пропорционально заполнит весь экран, оставив чёрные полосы вокруг основного вида. Разрешение будет изменено, чтобы подходить экрану.",
                "scaleFill": "вид заполнит весь экран, расширив камеру, чтобы избежать пустых полос. Разрешение будет совпадать с разрешением экрана."
            }
        },
        "scripts": {
            "heading": "Пользовательские скрипты",
            "addNew": "Добавить новый скрипт",
            "deleteScript": "Удалить этот скрипт",
            "moveDown": "Поставить ниже",
            "moveUp": "Поставить выше",
            "newScriptComment": "Используйте скрипты для создания функций и импорта небольших библиотек",
            "scriptsHint": "Созданные здесь скрипты будут вставлены в корень игры и потому всегда сработают при старте игры. Поддерживаются только JavaScript и TypeScript. Указанные здесь типы и переменные будут доступны везде в твоём проекте."
        },
        "modules": {
            "heading": "Котомоды"
        },
        "catmodsSettings": "Настройки котомодов",
        "export": {
            "heading": "Настройки экспорта",
            "functionWrap": "Обернуть весь код в функцию. Делает отладку сложнее, но изолирует код игры от остального окружения. Не рекомендуется включать во время разработки.",
            "codeModifier": "Трансформирование кода",
            "obfuscateWarning": "Код будет работать на 15-80% медленнее, но его будет очень сложно вернуть к исходному виду.",
            "codeModifierAndWrapNote": "Обратите внимание, что эти настройки работают только для экспортированных проектов (\"Экспорт для веб\" и \"Экспорт для ПК\"), т.к. иначе они замедляют экспорт и осложняют отладку. Вы можете заставить применять эти функции для отладки в Главном меню → Настройки →  Включить релизные функции для дебаг-экспортов",
            "codeModifiers": {
                "none": "Никакие",
                "minify": "Сжать",
                "obfuscate": "Обфусфировать"
            },
            "assetTree": "Дерево ассетов",
            "assetTreeNote": "Ты можешь экспортировать организацию ассетов в игру как поле res.tree, но это делает структуру исходного проекта видимой и добавляет чуть-чуть веса экспортируемым проектам.",
            "exportAssetTree": "Экспортировать дерево ассетов",
            "exportAssetTypes": "Экспортировать только эти ассеты:",
            "autocloseDesktop": "Выйти из приложения при нажатии кнопки \"Закрыть\".",
            "errorReporting": "Отчёты об ошибках",
            "showErrors": "Показывать ошибки в окне игры (рекомендуется)",
            "showErrorsHint": "Ct.js отобразит неотловленные исключения в своём окне, из которого игроки смогут скопировать текст ошибки и перейти по ссылке, которую ты можешь указать в следующем поле. Это поможет игрокам докладывать об ошибках без использования инструментов разработчика.",
            "errorsLink": "Ссылка для отправки ошибок: (Github, контактная форма, форум и т.п.)"
        },
        "content": {
            "heading": "Редактор типов контента",
            "addContentType": "Добавить тип",
            "missingTypeName": "Неназванный тип контента",
            "unnamedContentTypeHint": "Этот тип контента не назван. Его нельзя будет использовать игре, пока ты не укажешь ему имя.",
            "typeName": "Имя типа контента",
            "typeNameHint": "Имя типа, как оно будет использоваться в коде. Примеры: GearItems, EnemySkills, Cities.",
            "typeReadableName": "Удобочитаемое имя",
            "typeReadableNameHint": "Имя для показа в редакторе ct.js",
            "icon": "Значок",
            "typeSpecification": "Схема данных",
            "fieldName": "Имя",
            "fieldNameHint": "Имя поля, как оно будет использоваться в коде. Например: power, hp, spawnType.",
            "fieldReadableName": "Удобочитаемое имя",
            "fieldReadableNameHint": "Будет использоваться в редакторе записей внутри редактора.",
            "fieldType": "Тип",
            "deleteContentType": "Удалить этот тип контента",
            "confirmDeletionMessage": "Ты точно хочешь удалить этот тип контента? Это необратимо, и также удалит все записи этого типа контента.",
            "gotoEntries": "Перейти к записям",
            "entries": "Записи",
            "structureTypes": {
                "array": "Массив",
                "atomic": "Одно значение",
                "map": "Словарь"
            },
            "fixedLength": "Фиксированный размер",
            "fieldStructure": "Структура",
            "key": "Ключ",
            "value": "Значение",
            "mappedType": "Тип для значений"
        },
        "contentTypes": "Типы контента",
        "main": {
            "heading": "Основные настройки",
            "miscHeading": "Другие настройки",
            "backups": "Хранить следующее количество бэкап-файлов:"
        }
    },
    "modules": {
        "author": "Автор котомода",
        "help": "Документация",
        "methods": "Методы",
        "parameters": "Параметры",
        "info": "Инфо",
        "license": "Лицензия",
        "logs": "Лог изменений",
        "logs2": "Лог изменений",
        "settings": "Настройки",
        "importModules": "Импортировать модули",
        "dependencies": "Зависимости:",
        "optionalDependencies": "Опциональные зависимости:",
        "enabledModules": "Включенные модули",
        "availableModules": "Доступные модули",
        "filter": "Фильтр",
        "categories": {
            "customization": "Кастомизация",
            "utilities": "Утилиты",
            "media": "Медиа",
            "misc": "Разное",
            "desktop": "Десктоп-сборки",
            "motionPlanning": "Планирование передвижения",
            "inputs": "Методы ввода",
            "fx": "Эффекты",
            "mobile": "Мобильные устройства",
            "integrations": "Интеграции",
            "tweaks": "Настройки",
            "networking": "Сеть"
        },
        "preview": "(ранний дрступ)",
        "previewTooltip": "Этот модуль ещё не был выпущен и предоставлен для раннего доступа.",
        "deprecatedTooltip": "Этот модуль не поддерживается и будет удалён в будущих версиях."
    },
    "texture": {
        "create": "Создать",
        "import": "Импорт",
        "skeletons": "Скелетная анимация",
        "createTemplate": "Создать шаблон с этой текстурой",
        "importFromClipboard": "Импортировать из буфера обмена",
        "generatePlaceholder": "Создать заглушку",
        "textures": "Текстуры"
    },
    "sounds": {
        "record": "Записать"
    },
    "styles": {
        "create": "Создать",
        "styles": "Стили надписей"
    },
    "fonts": {
        "fonts": "Шрифты",
        "import": "Импорт TTF",
        "italic": "Наклонный"
    },
    "particleEmitters": {
        "emittersHeading": "Системы частиц",
        "emitterHeading": "Эмиттер",
        "from": "От:",
        "to": "До:",
        "textureHeading": "Текстура",
        "selectTexture": "Выбрать…",
        "importBuiltin": "Импорт встроенной…",
        "colorAndOpacityHeading": "Цвет и прозрачность",
        "stepped": "Резкий переход",
        "steppedColor": "Резкий переход цвета",
        "steppedAlpha": "Резкий переход прозрачности",
        "blendMode": "Режим смешивания:",
        "regular": "Обычный",
        "darken": "Затемнение",
        "lighten": "Осветление",
        "burn": "Горение",
        "scalingHeading": "Размер",
        "scale": "Размер:",
        "minimumSize": "Минимальный размер:",
        "velocityHeading": "Скорость",
        "velocity": "Скорость:",
        "minimumSpeed": "Минимальная скорость:",
        "maxSpeed": "Максимальная скорость:",
        "gravityHeading": "Гравитация",
        "gravityNotice": "Если гравитация отличается от (0;0), то интерполяция скорости будет отключена, т.е. работать будет только первый узел в графике скорости.",
        "directionHeading": "Направление",
        "startingDirection": "Начальное направление",
        "rotationHeading": "Поворот",
        "rotationSpeed": "Скорость поворота speed",
        "rotationAcceleration": "Ускорение поворота:",
        "spawningHeading": "Создание частиц",
        "timeBetweenBursts": "Время между двумя выбросами:",
        "spawnAtOnce": "Частиц в выбросе:",
        "chanceToSpawn": "Шанс создания частицы:",
        "maxParticles": "Макс. количество частиц:",
        "lifetime": "Время жизни частицы, в сек.",
        "emitterLifetime": "Время жизни эмиттера, в сек.:",
        "prewarmDelay": "Разогрев / пауза, в сек.:",
        "prewarmDelayNotice": "Отрицательные значения подготовят эффект перед его показом, что полезно для долгих эффектов вроде частиц пыли или тумана, которые должны быть на экране уже при старте комнаты; положительные значения откладывают эффект.",
        "shapeAndPositioningHeading": "Форма и расположение",
        "spawnType": "Форма эмиттера:",
        "spawnShapes": {
            "rectangle": "Прямоугольник",
            "star": "Звезда",
            "torus": "Круг"
        },
        "width": "Ширина:",
        "height": "Высота:",
        "radius": "Радиус:",
        "starPoints": "Концов:",
        "startAngle": "Поворот, в град.:",
        "relativeEmitterPosition": "Расположение относительно других эмиттеров",
        "addEmitter": "Добавить ещё эмиттер",
        "reset": "Сбросить превью",
        "changeBg": "Сменить фон",
        "inspectorComplete": "Готово!",
        "alreadyHasAnImportingTexture": "В проекте уже есть текстура $1. Либо переменуйте её, либо удалите, но, скорее всего, вы пытаетесь заново импортировать ту же самую текстуру :)",
        "minimumSizeHint": "При малых значениях случайным образом меняет размер частицы. Чем меньше значение, тем сильнее эффект.",
        "minimumSpeedHint": "При малых значениях случайным образом снижает скорость частицы; чем меньше значение, тем медленнее частица.",
        "showShapeVisualizer": "Показать форму эмиттера",
        "changeGrid": "Размер сетки",
        "newGridSize": "Новый размер сетки:",
        "setPreviewTexture": "Подложить текстуру",
        "textureMethod": "Использовать несколько кадров как:",
        "textureMethods": {
            "random": "Случайно",
            "animated": "Анимация"
        },
        "animatedFramerate": "Частота кадров:",
        "easingHeader": "Переход",
        "easing": {
            "none": "Резкое",
            "linear": "Линейное",
            "smooth": "Гладкое"
        },
        "movementType": "Тип движения:",
        "movementTypes": {
            "linear": "Линейное",
            "accelerated": "Под гравитацией"
        },
        "rotateTexture": "Повернуть текстуру вдоль направления движения",
        "rotationMethod": "Поворот текстуры:",
        "rotationMethods": {
            "static": "Фиксированный",
            "dynamic": "Динамичный"
        },
        "burstSpacing": "Угол между лучами, в градусах:",
        "burstStart": "Стартовое направление, в градусах:"
    },
    "rooms": {
        "create": "Добавить",
        "makeStarting": "Сделать стартовой комнатой"
    },
    "notepad": {
        "local": "Блокнот проекта",
        "global": "Общий блокнот",
        "backToHome": "Назад на главную документации",
        "modulesPages": "Документация к модулям",
        "helpPages": "Справка",
        "docsAndNotes": "Доки и заметки"
    },
    "patreon": {
        "patronsHeader": "Наши покровители",
        "thankAllPatrons": "Спасибо всем покровителям ComigoGames — нынешним и предыдущим —, ваша поддержка помогает Комиго двигаться вперёд, разрабатывая всё более крутые проги! :)",
        "becomeAPatron": "Стать покровителем",
        "aboutFillers": [
            "круты со всех сторон 😎",
            "— приятный собеседник 🤗",
            "ещё предстоит стать звездой 💫",
            "— просто чудо! ⭐",
            "— хороший друг! 🤝",
            "— на них можно положиться! 🙏",
            "с золотым сердцем 🧡",
            "— волшебник 🔮",
            "готовы помочь! 💪",
            "— супергерой! 🦸",
            "ещё есть, что показать 🦹",
            "— неразгаданная тайна 🔍",
            "— просто космос! ✨",
            ", возможно, на самом деле робот 🤖",
            "подобны бушующему пламени! 🔥",
            "привносит надежду и свет 🌞",
            "элегантны и красивы 🎩"
        ],
        "aboutPatrons": "Здесь список людей, помогающих ComigoGames на Патреоне с помощью периодических пожертвований. Не все здесь пришли от ct.js; некоторые пожертвовали на другое ПО от Комиго. Секретик: если вы тоже создаёте на Патреоне и сделаете пожертвование, здесь появится ссылка на вашу страницу — маленькая помощь вам и вашим творениям :)",
        "sponsors": "Спонсоры",
        "noSponsorsYet": "Пока что спонсоров нет. Вы можете стать первым!",
        "sponsorsDescription": "Спонсоры показываются на сайте ct.js и других страницах — например, в гейм-джемах.",
        "businessCats": "Бизнес-кот",
        "businessCatsDescription": "Бизнес-коты получают доступ к особому каналу поддержки в Discord-сервере и получают приоритетную поддержку по ct.js и геймдеву в целом.",
        "cats": "Котэ",
        "catsDescription": "Коты — это те, кто хочет дать ct.js больше, чем просто \"спасибо\". Они отображаются в ct.js (здесь!) и везде, где CoMiGo вспомнит их добавить."
    },
    "curveEditor": {
        "curveLineHint": "Нажмите, чтобы добавить узел",
        "dragPointHint": "Перемещайте узел перетаскиванием, или нажмите правой кнопкой мыши, чтобы удалить его",
        "pointTime": "Время:",
        "pointValue": "Значение:"
    },
    "debuggerToolbar": {
        "pause": "Пауза",
        "resume": "Продолжить",
        "restartGame": "Перезапустить игру",
        "restartRoom": "Перезапустить комнату",
        "switchRoom": "Перейти в комнату…",
        "toggleDevTools": "Переключить консоль",
        "screenshot": "Сделать скриншот",
        "enterFullscreen": "Полноэкранный режим",
        "exitFullscreen": "Выйти из полноэкранного режима",
        "links": "Ссылки и QR-коды",
        "openExternal": "Открыть в браузере",
        "close": "Закрыть"
    },
    "docsPanel": {
        "documentation": "Документация",
        "reference": "Список методов"
    },
    "extensionsEditor": {
        "noEntries": "Ещё нет записей.",
        "addRow": "Добавить строку",
        "actions": "Действия",
        "values": "Значения",
        "moveDown": "Вниз",
        "moveUp": "Вверх",
        "deleteRow": "Удалить строку"
    },
    "textureGenerator": {
        "name": "Имя текстуры:",
        "width": "Ширина:",
        "height": "Высота:",
        "color": "Цвет фона:",
        "label": "Надпись:",
        "optional": "(опционально)",
        "createAndClose": "Создать и закрыть",
        "createAndContinue": "Создать и добавить ещё",
        "scalingAtX4": "Масштабирование х4 для маленькой текстуры",
        "generationSuccessMessage": "Успешно добавили текстуру $1 в проект.",
        "filler": "Филлер:",
        "fillerNone": "Ничего",
        "fillerCross": "Перекрестие",
        "fillerLabel": "Текст",
        "form": "Форма",
        "formRectangular": "Прямоугольная",
        "formRound": "Круглая",
        "formDiamond": "Ромб",
        "fillerArrow": "Стрелка"
    },
    "textureInput": {
        "jumpToTexture": "Перейти к текстуре",
        "changeTexture": "Сменить текстуру"
    },
    "writableFolderPrompt": {
        "headerSelectFolderForData": "Выберите папку для данных ct.js",
        "paragraphCouldNotPickDirectory": "О нет! Ct.js не смог подобрать папку для ваших проектов, билдов, и для отладки. Обычно ct.js сам находит такую папку, но на этот раз все кандидаты оказались заблокированы для записи.",
        "paragraphDirectoryDirections": "Это можно исправить. Нажмите на кнопку ниже и выберите папку, в которых ct.js будет хранить такие данные. Если не уверены, создайте папку ct.js в папке Документы.",
        "selectFolder": "Выбрать папку…"
    },
    "writableFolderSelector": {
        "folderDoesNotExist": "Кажется, такой папки не существует… Как вам это удалось?",
        "notADirectory": "Кажется, это не папка, а файл. Как вам это удалось?",
        "folderNotWritable": "У вас нет прав на запись в этой папке. Выберите другую.",
        "complete": "Настройки приняты, всё хорошо ✅"
    },
    "mainMenu": {
        "troubleshooting": {
            "toggleDevTools": "Открыть девтулзы",
            "copySystemInfo": "Скопировать данные о системе",
            "systemInfoWait": "Сейчас, собираю данные…",
            "systemInfoDone": "Готово!",
            "disableAcceleration": "Отключить графическое ускорение (требует перезапуск)",
            "disableBuiltInDebugger": "Выключить встроенный отладчик игр",
            "postAnIssue": "Зайти на GitHub",
            "heading": "В случае неполадок",
            "disableVulkan": "Выключить поддержку Vulkan",
            "disableVulkanSDHint": "Исправляет ошибку \"no WebGL support\" на SteamDeck и некоторых других системах Linux. После изменения нужно будет перезапустить ct.js.",
            "restartMessage": "Перезапусти ct.js, чтобы применить изменения."
        },
        "deploy": {
            "exportDesktop": "Экспортировать для ПК",
            "successZipExport": "Успешно экспортировано в {0}.",
            "zipExport": "Экспорт для веб",
            "heading": "Экспорт",
            "exportAndroid": "Экспорт на Android…"
        },
        "latestProjects": {
            "recentProjects": "Последние проекты"
        },
        "settings": {
            "theme": "Тема",
            "themes": {
                "Day": "Дневная",
                "Night": "Ночная",
                "SpringStream": "Весенний ручей",
                "LucasDracula": "Люкас Дракула",
                "Horizon": "Горизонт",
                "HCBlack": "Высококонтрастная чёрная",
                "RosePine": "Rosé Pine",
                "RosePineMoon": "Rosé Pine Лунная",
                "RosePineDawn": "Rosé Pine Рассветная",
                "GoldenEye": "Золотой Глаз",
                "AlmaSakura": "Альма Сакура",
                "Synthwave": "Синтвейв '84",
                "OneDarkPro": "One Dark Pro"
            },
            "prideMode": "Цветная навигация",
            "codeFontDefault": "По умолчанию (Iosevka Light)",
            "codeFontOldSchool": "Старый-добрый",
            "codeFontSystem": "Системный",
            "codeFontCustom": "Пользовательский…",
            "newFont": "Новый шрифт:",
            "codeFont": "Шрифт для кода",
            "codeLigatures": "Лигатуры",
            "codeDense": "Меньшая высота линии",
            "specialFont": "Особый шрифт для интерфейса",
            "specialFontDefault": "Стандартный",
            "heading": "Настройки",
            "language": "Язык",
            "translateToYourLanguage": "Переведите ct.js на свой язык!",
            "disableSounds": "Отключить звуки интерфейса",
            "changeDataFolder": "Изменить папку данных ct.js",
            "forceProductionForDebug": "  Включить релизные функции для дебаг-экспортов",
            "altTemplateLayout": "Альт. вёрстка редактора шаблонов",
            "changeDebuggerLayout": "Поменять вёрстку дебаггера",
            "debuggerLayout": "Вёрстка дебаггера",
            "debuggerLayouts": {
                "split": "разделённая",
                "multiwindow": "несколько окон",
                "automatic": "автоматическая"
            },
            "scrollableCatnipLibrary": "Прокручиваемая библиотека блоков Котомяты",
            "autoapplyOnLaunch": "Применять все изменения перед запуском"
        },
        "project": {
            "save": "Сохранить проект",
            "openIncludeFolder": "Открыть папку include",
            "openProject": "Открыть проект…",
            "openExample": "Открыть пример…",
            "startScreen": "К стартовому экрану",
            "startNewWindow": "Открыть новое окно",
            "successZipProject": "Проект успешно упакован в {0}.",
            "zipProject": "Упаковать проект в .zip",
            "heading": "Проект",
            "convertToJs": "Конвертировать проект в JavaScript",
            "confirmationConvertToJs": "Эта операция автоматом сконвертирует все твои события в JavaScript. Эта операция необратима (но если она найдёт ошибки в твоих скриптах, изменения будут отменены). Ты точно хочешь сконвертировать этот CoffeeScript проект в JavaScript?"
        },
        "meta": {
            "license": "Лицензия",
            "visitDiscordForGamedevSupport": "Discord-сервер",
            "openIconList": "Открыть список значков",
            "heading": "Мета",
            "twitter": "Канал  в Twitter",
            "vkontakte": "Паблик Вконтакте",
            "ctjsForum": "Присоединиться к форуму ct.js",
            "openStylebook": "Открыть стайл-бук CSS"
        }
    },
    "appView": {
        "ctIDE": "ct.IDE",
        "launch": "Пуск",
        "launchHotkeys": "(F5, или Alt+F5, чтобы запустить в браузере по-умолчанию)",
        "min": "Переключить полноэкранный режим",
        "patrons": "Патроны-покровители",
        "project": "Проект",
        "restart": "Перезапустить",
        "tour": {
            "header": "Обзор ct.js",
            "aboutTour": "Добро пожаловать в ct.js! Этот небольшой тур покажет основные элементы редактора, благодаря чему ты узнаешь, как его настроить и как создавать новые ассеты.",
            "helpPanel": "Для начала давай обратим внимание на эту кнопку. Она очень важна в изучении ct.js!",
            "helpPanelTabs": "В этой панели хранится вся официальная документация и уроки по ct.js и его модулям.<p>Также тут есть два блокнота — глобальный, что показывает одно и то же содержимое во всех проектах, и блокнот проекта, который хранится внутри файла твоего проекта.",
            "projectResources": "Любой проект содержит ассеты разных видов. Каждый вид ассетов хранится в своей вкладке. Давай посмотрим самые важные типы ассетов.",
            "tabTextures": "Текстуры — это изображения, которые ты можешь использовать в своих интерактивных объектах (которые называются Копиями), а также для фонов и спецэффектов. Текстуры сами по себе ничего не делают, но всё равно важны.",
            "tabTexturesImport": "Текстуры можно создать из файлов на компьютере…",
            "tabTexturesGallery": "…или импортировать из встроенной галереи ассетов.",
            "tabTexturesClipboard": "Этой кнопкой можно создать текстуру из буфера обмена. Она особенно полезна в связке с графическими редакторами!",
            "tabTexturesPlaceholders": "Также ты можешь создать простые картинки-заглушки этим инструментом.",
            "tabTemplates": "Шаблоны используются для создания копий — интерактивных объектов, что помещаются на уровнях. Любой интерактивный объект в ct.js делается на основе одного из таких шаблонов. Шаблоны используют текстуры, и игровую логику ты задаёшь с помощью событий в этих шаблонах. После создания шаблона можно подробнее ознакомиться с процессом создания шаблонов кнопкой документации в редакторе.",
            "tabRooms": "Другая важная вкладка — комнаты. Их также называют уровнями или сценами, и в них ты располагаешь свои Копии. Комнаты тоже могут иметь события, а также фоны.",
            "tabSounds": "Звуки, наверное, — самая банальная вкладка.",
            "tabSoundsImport": "Новые звуки можно создать этой кнопкой…",
            "tabSoundsGallery": "…импортировать их из встроенной галереи…",
            "tabSoundsRecord": "…или даже записать с микрофона!",
            "tabInterlude": "Есть также ряд продвинутых ассетов.",
            "tabUI": "Вкладка \"Интерфейс\" содержит шрифты и стили текста. Добавление шрифтов важно для одинакового отображения текстов на разных устройствах. А в редакторе стилей можно сделать заготовки для отображения текста. В редакторе также можно скопировать код для добавления надписей через код.",
            "tabFX": "Во вкладке эффектов — редактор систем частиц. Это специальные графические эффекты для взрывов, магии, дыма, дождя и всего такого.",
            "tabProject": "С ассетами закончили! Но помимо ассетов, в проекте есть ещё настройки рендера, упаковки, внешнего вида и т.д.",
            "tabProjectModules": "Ct.js модульный, и добавить дополнительные модули можно здесь.",
            "tabProjectModuleDocs": "Вся документация для включенных модулей складывается сюда.",
            "tabMainMenu": "В самом ct.js полно настроек, которые хранятся в этом главном меню.",
            "tabMainMenuSettings": "Тут можно сменить язык и как ct.js выглядит.",
            "tabMainMenuMeta": "Если тебе понадобится помощь, ты сможешь найти официальные сообщества в этой панели.",
            "helpPanelReminder": "Также не забывай про встроенную документацию! Мы настоятельно рекомендуем пройти официальные туториалы перед созданием собственного проекта.",
            "buttonStartTutorial": "Открыть уроки"
        },
        "assets": "Ассеты",
        "applyAssetsQuestion": "Применить ассеты перед запуском?",
        "applyAssetsExplanation": "Некоторые ассеты не были применены, и их изменения не будут отражены в экспортированном проекте. Хочешь применить их сейчас?",
        "unsavedAssets": "Несохранённые ассеты:",
        "runWithoutApplying": "Запустить как есть",
        "applyAndRun": "Применить и запустить",
        "cantAddEditor": "Нельзя добавить новый редактор. Закрой несколько вкладок с комнатами, стилями, или редакторами тандемов.",
        "loadingPreviouslyOpened": "Открываю ранее открытые ассеты…"
    },
    "assetViewer": {
        "root": "Корень",
        "toggleFolderTree": "Переключить дерево папок",
        "addNewFolder": "Новая папка",
        "newFolderName": "Новая папка",
        "unwrapFolder": "Вывернуть папку",
        "confirmDeleteFolder": "Ты точно хочешь удалить эту папку? Её содержимое будет тоже удалено.",
        "confirmUnwrapFolder": "Ты точно хочешь вывернуть эту папку? Всё её содержимое будет расположено в текущей папке.",
        "exportBehavior": "Экспортировать поведение",
        "exportTandem": "Экспортировать этот тандем"
    },
    "soundRecorder": {
        "recorderHeading": "Диктофон",
        "record": "Начать запись",
        "stopRecording": "Остановить запись",
        "discardRecording": "Удалить запись",
        "finishRecording": "Принять",
        "cannotRecordSound": "Не получается запустить звукозапись: проверьте настройки аудио в системе и само записывающее устройство.",
        "troubleshootingWindows": "В Windows также проверьте раздел Параметры Windows -> Конфиденциальность -> Микрофон. \"Разрешить приложениям доступ к микрофону\" должно быть включено."
    },
    "roomBackgrounds": {
        "add": "Добавить фон",
        "depth": "Глубина:",
        "movement": "Скорость перемещения (по X, Y):",
        "parallax": "Параллакс (по X, Y):",
        "repeat": "Повторять:",
        "scale": "Размер (по X, Y):",
        "shift": "Сдвиг (по X, Y):",
        "notBackgroundTextureWarning": "Эта текстура не отмечена как фон. В игре у неё будут повторяющиеся разрывы.",
        "fixBackground": "Исправить.",
        "dismissWarning": "Скрыть предупреждение."
    },
    "roomTiles": {
        "moveTileLayer": "Переместить на другую глубину",
        "show": "Показать слой",
        "hide": "Спрятать слой",
        "findTileset": "Найти тайлсет",
        "addTileLayer": "Добавить слой тайлов",
        "addTileLayerFirst": "Сначала добавь слой тайлов в левой панели!",
        "cacheLayer": "Кэшировать этот слой",
        "cacheLayerWarning": "Кеширование серьёзно ускоряет отрисовку слоёв тайлов. Эту опцию следует отключать только в том случае, если ты собираешься менять этот слой тайлов программно в ходе игры."
    },
    "roomView": {
        "name": "Имя:",
        "viewportHeading": "Камера",
        "width": "Ширина вида:",
        "height": "Высота вида:",
        "followTemplate": "Следовать за шаблоном:",
        "followCodeHint": "Узнай, как ещё настроить эту функцию через код",
        "events": "События",
        "copies": "Копии",
        "backgrounds": "Фоны",
        "backgroundColor": "Цвет фона",
        "tiles": "Плитки",
        "add": "Добавить",
        "none": "Ничего",
        "done": "Сохранить",
        "grid": "Сетка",
        "hotkeysNotice": "Ctrl = Удалить, Alt = Без сетки, Shift = Много",
        "hotkeysNoticeMovement": "Ctrl = Удалить, Shift = Выделить",
        "shift": "Сместить вид",
        "step": "Кадр",
        "create": "Код создания",
        "leave": "Код выхода",
        "draw": "Прорисовка",
        "deleteCopies": "Удалить копии",
        "shiftCopies": "Сместить копии",
        "selectAndMove": "Выбрать и переместить",
        "findTileset": "Найти тайлсет",
        "properties": "Свойства",
        "isUi": "Слой для графического интерфейса",
        "sortHorizontally": "Отсортировать по горизонтали",
        "sortVertically": "Отсортировать по вертикали",
        "copyProperties": {
            "position": "Позиция",
            "rotation": "Поворот",
            "scale": "Размер",
            "multipleValues": "(Разные)",
            "opacity": "Непрозрачность",
            "tint": "Оттенок"
        },
        "copyCustomProperties": {
            "addProperty": "Добавить поле",
            "property": "Имя поля",
            "value": "Значение",
            "nameOccupied": "Это свойство уже используется ct.js! Тебе нужно выбрать другое имя."
        },
        "customProperties": "Пользовательские поля",
        "restrictCamera": "Ограничить камеру в прямоугольник",
        "minimumX": "Мин. Х",
        "minimumY": "Мин. Y",
        "maximumX": "Макс. X",
        "maximumY": "Макс. Y",
        "gridOff": "Выключить сетку",
        "gridSize": "Размер сетки:",
        "toCenter": "В центр",
        "shiftLabel": "Сдвинуть на:",
        "newDepth": "Новая глубина:",
        "deleteCopy": "Удалить копию {0}",
        "changeCopyScale": "Изменить размер",
        "shiftCopy": "Указать координаты",
        "deleteTile": "Удалить плитку",
        "deleteTiles": "Удалить плитки",
        "moveTilesToLayer": "Переместить в другой слой",
        "shiftTiles": "Сместить плитки",
        "changeCopyRotation": "Повернуть",
        "simulate": "Симуляция",
        "toggleDiagonalGrid": "Диагональная сетка",
        "changeGridSize": "Сменить размер сетки",
        "xrayMode": "Режим рентгена",
        "colorizeTileLayers": "Покрасить слои тайлов",
        "tools": {
            "select": "Выделение",
            "addCopies": "Добавить копии",
            "addTiles": "Добавить тайлы",
            "manageBackgrounds": "Управление фонами",
            "roomProperties": "Свойства комнаты",
            "uiTools": "Инструменты для интерфейса"
        },
        "resetView": "Сбросить вид",
        "emptyTextFiller": "<Пусто>",
        "uiTools": {
            "noSelectionNotice": "Выбери копию чтобы выровнять её или поменять надпись.",
            "textSettings": "Настройки текста",
            "customText": "Текст",
            "customTextSize": "Размер шрифта",
            "wordWrapWidth": "Максимальный размер по ширине",
            "textAlignment": "Выравнивание",
            "alignmentSettings": "Авто-выравнивание",
            "enableAutoAlignment": "Включить авто-выравнивание",
            "autoAlignHint": "Если включено, то элемент автоматически будет себя выравнивать относительно краёв указанной части комнаты, обозначенной как \"Рамка\". Полезно при режимах отображения Расширить и Качественное изменение размера без пустых полос, т.к. камера в этих режимах меняет свои пропорции.",
            "frame": "Расположение рамки,  в %:",
            "framePadding": "Отступы рамки, в пикселах:",
            "innerFrameMarker": "Внутренняя рамка",
            "outerFrameMarker": "Внешняя рамка",
            "constrains": "Ограничения:",
            "constrainsTooltips": {
                "left": "Закрепить расстояние до левой части рамки",
                "right": "Закрепить расстояние до правой части рамки",
                "top": "Закрепить расстояние до верхней части рамки",
                "bottom": "Закрепить расстояние до нижней части рамки",
                "centerVertical": "Разместить по вертикали относительно центра рамки",
                "centerHorizontal": "Разместить по горизонтали относительно центра рамки"
            },
            "bindings": "Привязки",
            "bindingsHelp": "Тут можно написать JavaScript-выражения, и они будут выполняться каждый кадр и обновлять соответствующие свойства копии",
            "bindingNames": {
                "text": "Текст:",
                "disabled": "Отключить:",
                "visible": "Видимость:",
                "tex": "Текстура:",
                "tint": "Цвет:",
                "count": "Количество спрайтов:"
            },
            "bindingTypes": {
                "string": "Строковое значение",
                "boolean": "Булево значение (true или false)",
                "number": "Число"
            }
        },
        "sendToBack": "На задний план",
        "sendToFront": "На передний план"
    },
    "styleView": {
        "active": "Активно?",
        "alignment": "Выравнивание:",
        "apply": "Применить",
        "fill": "Заливка",
        "font": "Шрифт",
        "italic": "Наклонный",
        "lineHeight": "Высота линии:",
        "shadow": "Тень",
        "stroke": "Обводка",
        "textWrap": "Перенос текста",
        "textWrapWidth": "Позиция для переноса:",
        "useCustomFont": "Выбрать шрифт из проекта…",
        "code": "Код",
        "copyCode": "Скопировать",
        "fillColor": "Цвет:",
        "fillColor1": "Цвет 1:",
        "fillColor2": "Цвет 2:",
        "fillGrad": "Градиент",
        "fillGradType": "Вид градиента:",
        "fillHorizontal": "Горизонтальный",
        "fillSolid": "Сплошная",
        "fillType": "Тип заливки:",
        "fillVertical": "Вертикальный",
        "fontWeight": "Толщина:",
        "shadowBlur": "Размытие:",
        "shadowColor": "Цвет тени:",
        "shadowShift": "Сдвиг тени:",
        "strokeColor": "Цвет обводки",
        "strokeWeight": "Толщина обводки:",
        "testText": "Тест Test 0123 +",
        "fallbackFontFamily": "Резервное семейство шрифтов:",
        "fontSize": "Размер шрифта:",
        "notSupportedForBitmap": "Эти настройки не поддерживаются битмап-шрифтами"
    },
    "textureView": {
        "center": "Ось вращения",
        "cols": "Колонок:",
        "done": "Готово",
        "fill": "Заполнить",
        "form": "Маска столкновений:",
        "frames": "Кадров:",
        "isometrify": "Изометрировать: переместить ось вращения вниз по центру, заполнить маской весь спрайт",
        "name": "Имя:",
        "radius": "Радиус:",
        "rectangle": "Прямоугольник",
        "round": "Круг",
        "rows": "Строк:",
        "speed": "Скорость превью:",
        "tiled": "Использовать как фон?",
        "updateFromClipboard": "Обновить из буфера обмена",
        "corrupted": "Файл изображения повреждён или отсутствует! Невозможно открыть спрайт.",
        "showFrameIndices": "Показать индексы кадров",
        "blankTexture": "Экспорт пустой текстурой",
        "width": "Ширина:",
        "height": "Высота:",
        "strip": "Ломаная / многоугольник",
        "removePoint": "Удалить точку",
        "closeShape": "Закрыть фигуру",
        "addPoint": "Добавить точку",
        "moveCenter": "Переместить ось вращения",
        "movePoint": "Переместить точку",
        "symmetryTool": "Симметрия",
        "padding": "Отбивка:",
        "paddingNotice": "Влияет на то, как текстура экспортируется: дублирует пиксели по краям, чтобы избежать артефактов грязных краёв на повторяющихся и уменьшенных изображениях. Обычно значения по-умолчанию достаточно, но если сильно уменьшить текстуру в игре, эффект может вернуться. Увеличьте значение этого поля, если замечаете грязные края у этой текстуры в игре.",
        "previewAnimationNotice": "Это предпросмотр. Чтобы изменить скорость анимации у настоящих копий, используйте this.animationSpeed.",
        "pasteCollisionMask": "Вставить форму столкновений",
        "copyCollisionMask": "Скопировать форму столкновений",
        "bgColor": "Сменить цвет фона",
        "setCenter": "По центру",
        "replaceTexture": "Заменить…",
        "showMask": "Показать маску",
        "marginX": "Отступ X:",
        "marginY": "Отступ Y:",
        "offX": "Сдвиг X:",
        "offY": "Сдвиг Y:",
        "blankTextureNotice": "Экспортирует текстуру прозрачным прямоугольником, делая её невидимой в игре. Полезно для создания заглушек для редактора, не занимая дополнительного места при экспорте.",
        "slicing": "Раскадровка",
        "viewSettings": "Настройки просмотра",
        "exportSettings": "Настройки экспорта",
        "axisExplanation": "Указывает, какая точка считается как точка (0;0) копии и влияет на то, относительно чего копия вращается и располагается на сетке."
    },
    "fontView": {
        "italic": "Наклонный стиль?",
        "generateBitmapFont": "Т.ж. сгенерировать bitmap-шрифт",
        "bitmapFont": "Bitmap-шрифт",
        "bitmapFontSize": "Размер шрифта:",
        "bitmapFontLineHeight": "Высота линии:",
        "resultingBitmapFontName": "Название ресурса",
        "charset": "Кодировки:",
        "charsets": {
            "punctuation": "Цифры и пунктуация (обычно вам это нужно)",
            "basicLatin": "Латиница",
            "latinExtended": "Расширенная латиница",
            "cyrillic": "Кириллица",
            "greekCoptic": "Греческий и Коптский",
            "custom": "Свой набор",
            "allInFont": "Всё, что поддерживает шрифт"
        },
        "customCharsetHint": "Впишите все буквы, которые нужно добавить в шрифт — как в верхнем, так и в нижнем регистре.",
        "fontWeight": "Жирность:",
        "typefaceName": "Название семейства:",
        "addFont": "Добавить шрифт…",
        "pixelPerfect": "Пиксельарт-точность",
        "pixelPerfectTooltip": "Должно быть включено для пиксельных шрифтов. Включение этой опции улучшит отрисовку линий толщиной в один пиксель, но уменьшит максимальный размер холста шрифта до 4k на 4k (но для пиксельных шрифтов этого предостаточно). Помимо этого, помни, что в редакторах комнат и стилей все надписи рисуются другим методом, и пиксельные шрифты в них будут мыльными — это норма."
    },
    "licensePanel": {
        "ctjsLicense": "Лицензия Ct.js (MIT)",
        "faq": "Часто задаваемые вопросы (неюридический текст)",
        "whoOwnsGamesQ": "Кто владеет играми, созданными на ct.js?",
        "whoOwnsGamesA": "Только ты. Ct.js не резервирует прав на то, что ты создаёшь.",
        "sellingGamesQ": "Могу ли я продавать игры, сделанные на ct.js?",
        "sellingGamesA": "Да, игры и другие проекты можно продавать, собирать с них донаты и использовать в других коммерческих целях.",
        "possibleFeesQ": "Нужно ли мне платить за ct.js? Станет ли он платным?",
        "possibleFeesA": "Нет. Ct.js бесплатен и всё время таким будет. В нём нет скрытых налогов/роялти как в Unity или Unreal Engine, в которых нужно платить после накопления определённой суммы. У ct.js открытый исходный код, и даже если вдруг и появятся его платные варианты, то, чем ты сейчас пользуешься, будет всегда доступно бесплатно. Но ты всё равно можешь отправить денюжку, если хочешь! Это поможет уплатить нологи и сделать ct.js лучше!",
        "useInStudioQ": "Могу ли я использовать ct.js в студии или школах?",
        "useInStudioA": "Почему бы и нет? Ct.js можно использовать в личных, коммерческих, образовательных и других целях. Но только в законных целях, окей?",
        "attributionQ": "Нужно ли мне указывать авторство ct.js или его разработчиков? Могу ли я отключить логотип кота на экране загрузки?",
        "attributionA": "Логотип можно отключить — вся необходимая атрибуция уже содержится в коде игры.",
        "attributionAAssets": "Некоторые демки и примеры, правда, могут использовать материалы от третьих лиц, которые требуют указания автора, но в \nэтих проектах уже прописаны эти ссылки.",
        "theLicense": "Лицензия (официальный документ)"
    },
    "templates": {
        "create": "Создать"
    },
    "templateView": {
        "change": "Сменить спрайт",
        "depth": "Глубина:",
        "learnAboutTypes": "Кодинг шаблонов",
        "name": "Имя:",
        "visible": "Отображать",
        "appearance": "Внешний вид",
        "opacity": "Непрозрачность:",
        "blendMode": "Смешивание:",
        "playAnimationOnStart": "Играть анимацию при старте",
        "blendModes": {
            "normal": "Обычное",
            "add": "Добавить (выгорание)",
            "multiply": "Умножить (затемнение)",
            "screen": "Экран (осветление)"
        },
        "loopAnimation": "Цикличная анимация",
        "animationFPS": "Частота кадров в секунду:",
        "hoverTexture": "Текстура при наведении",
        "pressedTexture": "Текстура при нажатии",
        "disabledTexture": "Текстура в выключенном состоянии",
        "defaultText": "Текст по умолчанию:",
        "textStyle": "Стиль текста",
        "baseClass": {
            "AnimatedSprite": "Анимированный спрайт",
            "Text": "Текст",
            "NineSlicePlane": "Панель",
            "Container": "Контейнер",
            "Button": "Кнопка",
            "RepeatingTexture": "Повторяющаяся текстура",
            "SpritedCounter": "Спрайтовый счётчик",
            "TextBox": "Поле ввода",
            "BitmapText": "Битмап-текст",
            "ScrollBox": "Контейнер с прокруткой",
            "Select": "Меню выбора",
            "ItemList": "Список"
        },
        "nineSliceTop": "Верхний срез, в пикселях",
        "nineSliceRight": "Правый срез, в пикселях",
        "nineSliceBottom": "Нижний срез, в пикселях",
        "nineSliceLeft": "Правый срез, в пикселях",
        "autoUpdateNineSlice": "Автоматически обновлять маску коллизии",
        "autoUpdateNineSliceHint": "Если панель поменяет свой размер, эта настройка автоматом обновит её маску коллизии. Обычно это не нужно на чисто декоративных элементах, или на тех, что никогда не поменяют свой размер после создания. Ты всё равно можешь обновить маску столкновений в любой момент с помощью команды u.reshapeNinePatch(this).",
        "panelHeading": "Настройки раскройки текстуры",
        "fieldType": "Тип поля:",
        "fieldTypes": {
            "text": "Текст",
            "number": "Число",
            "email": "Адрес эл. почты",
            "password": "Пароль"
        },
        "useCustomSelectionColor": "Использовать другой цвет для выделенного текста",
        "maxLength": "Максимальная длина:",
        "scrollSpeedX": "Скорость прокрутки по X:",
        "scrollSpeedY": "Скорость прокрутки по Y:",
        "isUi": "Использовать UI время",
        "defaultCount": "Кол-во спрайтов по умолчанию:",
        "useBitmapText": "Использовать битмап-шрифты",
        "errorBitmapNotConfigured": "Выбранный стиль не привязан к семейству шрифтов с битмап-шрифтом. Открой этот стиль, привяжи его к семейству шрифтов, и убедись, что выбранное семейство шрифтов настроено для экспорта битмап-шрифтов. После этого примени изменения.",
        "layoutItemsHeading": "Вёрстка элементов",
        "horizontalPadding": "Горизонтальная отбивка, в пикс.",
        "verticalPadding": "Вертикальная отбивка, в пикс.",
        "horizontalSpacing": "Отступ элементов по горизонтали, в пикс.",
        "verticalSpacing": "Отступ элементов по вертикали, в пикс.",
        "alignItems": "Выравнивать элементы:",
        "pixelPerfectScroll": "Попиксельный скролл"
    },
    "assetInput": {
        "changeAsset": "Нажмите, чтобы заменить ассет",
        "jumpToAsset": "Перейти к ассету",
        "selectAssetHeader": "Выбрать ассет"
    },
    "builtinAssetGallery": {
        "galleryTip": "Это встроенная галерея всяких разных бесплатных текстур и звуков. Они все под лицензией CCO, WTFPL, или на спец. правах для движка ct.js, и ты можешь использовать их как угодно, в коммерческих проектах и не только.",
        "assetGalleryHeader": "Ассеты",
        "importIntoProject": "Вставить в проект",
        "importAll": "Импортировать всё",
        "byAuthorPrefix": "от",
        "cannotImportExplanation": "Имя ассета уже занято. Возможно, тебе надо переименовать твои существующие ассеты. Или же в твоём проекте уже есть точно такой же ассет?",
        "nameOccupied": "Имя занято",
        "cannotImportNameOccupied": "Не получилось импортировать $1, т.к. имя уже занято.",
        "visitSource": "Открыть страницу магазина этого набора ассетов",
        "visitAuthorsItch": "Посетить itch.io автора",
        "visitAuthorsTwitter": "Посетить Twitter автора",
        "tipAuthor": "Подарите денюжку автору за их труд :D"
    },
    "scriptables": {
        "addEvent": "Добавить событие",
        "removeEvent": "Удалить событие",
        "removeEventConfirm": "Ты точно хочешь удалить это событие? Это нельзя будет отменить!",
        "changeArguments": "Изменить аргументы",
        "eventAlreadyExists": "Уже есть точно такое же событие!",
        "localEventVars": "Локальные переменные",
        "createEventHint": "Создай первое событие в колонке слева, а затем напиши здесь код",
        "coreEventsCategories": {
            "lifecycle": "Жизненный цикл",
            "actions": "Действия",
            "pointer": "События указателя",
            "misc": "Разное",
            "animation": "Анимация",
            "timers": "Таймеры",
            "app": "Приложение",
            "input": " Ввод"
        },
        "coreEvents": {
            "OnCreate": "Создание",
            "OnRoomStart": "Старт комнаты",
            "OnStep": "Начало кадра",
            "OnDraw": "Конец кадра",
            "OnDestroy": "Уничтожение",
            "OnRoomEnd": "Конец комнаты",
            "OnPointerClick": "Клик",
            "OnPointerSecondaryClick": "Альт. клик",
            "OnPointerEnter": "Наведение указателем",
            "OnPointerLeave": "Выход указателя",
            "OnPointerDown": "Нажатие указателем",
            "OnPointerUp": "Конец нажатия указателем",
            "OnPointerUpOutside": "Конец нажатия снаружи",
            "OnPointerWheel": "Колёсико",
            "OnActionPress": "Нажатие действия",
            "OnActionRelease": "Конец нажатия действия",
            "OnActionDown": "Действие нажато",
            "OnFrameChange": "Смена кадра",
            "OnAnimationLoop": "Перезапуск анимации",
            "OnAnimationComplete": "Конец анимации",
            "Timer": "Таймер $1",
            "OnAppFocus": "Приложение активно",
            "OnAppBlur": "Приложение в фоне",
            "OnTextChange": "Когда сменился текст",
            "OnTextInput": "Когда вводят текст",
            "OnBehaviorAdded": "Поведение добавлено",
            "OnBehaviorRemoved": "Поведение удалено"
        },
        "coreParameterizedNames": {
            "OnActionPress": "При нажатии %%action%%",
            "OnActionRelease": "Конец нажатия %%action%%",
            "OnActionDown": "%%action%% зажато",
            "Timer1": "1 • %%name%% (Таймер)",
            "Timer2": "2 • %%name%% (Таймер)",
            "Timer3": "3 • %%name%% (Таймер)",
            "Timer4": "4 • %%name%% (Таймер)",
            "Timer5": "5 • %%name%% (Таймер)",
            "Timer6": "6 • %%name%% (Таймер)"
        },
        "coreEventsArguments": {
            "action": "Действие",
            "name": "Имя",
            "isUi": "Событие интерфейса"
        },
        "coreEventsLocals": {
            "OnActionDown_value": "Текущее значение действия",
            "OnActionPress_value": "Текущее значение Действия",
            "OnTextChange_value": "Новый текст",
            "OnTextInput_value": "Новый текст"
        },
        "coreEventsDescriptions": {
            "OnCreate": "Срабатывает при создании копии.",
            "OnRoomStart": "Срабатывает при создании комнаты — во время перехода или при её добавления как слоя.",
            "OnStep": "Срабатывает вначале каждого кадра.",
            "OnDraw": "Срабатывает в конце каждого кадра. Хорошее место для апдейта анимации.",
            "OnDestroy": "Срабатывает в середине кадра при удалении копии.",
            "OnRoomEnd": "Срабатывает перед переходом в другую комнату, или когда эта комната была удалена как слой.",
            "OnActionPress": "Срабатывает, когда действие становится активно — нажатиями, кликом, движением джойстиков и т.п.",
            "OnActionRelease": "Срабатывает, когда действие перестаёт быть активно — когда отпускают клавиши, джойстики и т.п.",
            "OnActionDown": "Срабатывает каждый кадр, пока методы ввода этого действия активны.",
            "OnAnimationLoop": "Срабатывает каждый раз, когда цикличная анимация подходит к концу.",
            "OnAnimationComplete": "Срабатывает один раз, когда нецикличная анимация заканчивается.",
            "Timer": "Взведи таймер командой this.timer$1 = 3; (напр. 3 — это три секунды)",
            "OnAppFocus": "Срабатывает, когда пользователь возвращается к твоему приложению.",
            "OnAppBlur": "Срабатывает, когда пользователь переключается с твоей игры на что-то другое — переходя по вкладкам, переключаясь между окнами, или сворачивая игру.",
            "OnTextChange": "Срабатывает, когда пользователь заканчивает редактирование нажатием вне поля или кнопкой Enter.",
            "OnTextInput": "Срабатывает каждый раз, когда пользователь меняет текст в этом поле.",
            "OnBehaviorAdded": "Вызывается каждый раз, когда поведение динамически добавляется копии. Это событие не работает для статичных поведений; для них используй событие Создания.",
            "OnBehaviorRemoved": "Вызывается каждый раз, когда поведение динамически удаляется из копии. Это событие не работает для статичных поведений; для них используй событие Уничтожения."
        },
        "jumpToProblem": "Перейти к проблеме",
        "staticEventWarning": "Это событие делает это поведение статичным. Ты не сможешь добавлять его в игре динамически через API поведений, но в остальном оно прекрасно работает.",
        "restrictedEventWarning": "Это событие будет работать только с шаблонами следующих базовых классов: $1. Оно не будет работать, если будет применено к другим базовым классам.",
        "baseClassWarning": "Это событие не работает с текущим базовым классом.",
        "typedefs": "Дополнительные типы свойств:",
        "typedefsHint": "Здесь можно описать типы свойств этого ассета, чтобы они были однозначно типизированы в коде. Например:\n\n\n\nname: string;\nhp: number;\nmana: number;\ninventory: any[];\n Это необязательная настройка."
    },
    "languageSelector": {
        "chooseLanguageHeader": "Выбери язык программирования",
        "chooseLanguageExplanation": "На этом языке ты будешь писать всю логику игры. Раньше все проекты в ct.js использовали JavaScript+TypeScript, а теперь появился выбор. Обрати внимание, что сейчас можно сконвертировать CoffeeScript  проект в JavaScript, но не наоборот, поэтому выбирай с умом!",
        "coffeeScriptDescription": "Хороший язык для начинающих с простым синтаксисом. Его стоит выбрать, если у тебя нет опыта текстового программирования, ну или если тебе нравится  Python.",
        "pickCoffeeScript": "CoffeeScript, я выбираю тебя!",
        "jsAndTs": "JavaScript (и TypeScript)",
        "jsTsDescription": "Язык интернета. Синтаксис более сложный, но редактор кода будет подсвечивать ошибки и подсказывать названия функций. Выбери его, если у тебя есть навыки работы с JS, C# или Java.",
        "pickJsTs": "JavaScript, я выбираю тебя!",
        "acceptAndSpecifyDirectory": "Принять и выбрать папку проекта",
        "catnip": "Котомята (Catnip)",
        "catnipDescription": "Язык визуального программирования, созданный специально для ct.js. Блоки размещаются мышью и с клавиатуры. Хороший выбор для новичков.",
        "pickCatnip": "Котомята, я выбираю тебя!"
    },
    "assetConfirm": {
        "confirmHeading": "Выберите действие",
        "confirmParagraph": "У ассета $1 есть неприменённые изменения. Что ты хочешь сделать с ними?"
    },
    "behaviorEditor": {
        "customFields": "Пользовательские поля",
        "customFieldsDescription": "Эти поля можно использовать для создания дополнительных полей настроек в редакторе асетов. Поля будут доступны в панели настроек ассетов, а также как свойства в объекте \"this\". Например, если создать поле \"sausage\", его можно будет прочесть в событиях как \"this.sausage\"."
    },
    "createAsset": {
        "newAsset": "Новый ассет",
        "placeholderTexture": "Текстура-заглушка",
        "behaviorTemplate": "Поведение для шаблонов",
        "behaviorRoom": "Поведение для комнат",
        "importFromFile": "Импортировать из файла",
        "behaviorMissingCatmods": "В твоём проекте нет следующих котомодов: $1. Сначала включи их.",
        "formatError": "Файл неправильного формата или, быть может, был сделан для несовместимой версии ct.js.",
        "assetGallery": "Встроенная галерея ассетов"
    },
    "folderEditor": {
        "title": "Настройки папки",
        "icon": "Значок:",
        "color": "Цвет:"
    },
    "newAssetPrompt": {
        "heading": "Создать новый ассет",
        "selectNewName": "Имя нового ассета:"
    },
    "soundView": {
        "variants": "Варианты",
        "addVariant": "Добавить файл…",
        "preload": "Загружать при старте игры",
        "volume": "Громкость",
        "pitch": "Скорость",
        "distortion": "Искажение",
        "effects": "Эффекты",
        "reverb": "Эхо",
        "reverbDuration": "Длительность",
        "reverbDecay": "Спад",
        "reverseReverb": "Обратить",
        "equalizer": "Эквалайзер",
        "hertz": "Гц",
        "positionalAudio": "3D звук",
        "falloff": "Спад:",
        "refDistance": "Начало спада:",
        "positionalAudioHint": "Влияет только на метод sounds.playAt. Спад указывает, как быстро звук затухает с расстоянием, и 0 означает полное отсутствие спада, а большие значения означают практически мгновенное затухание до полной тишины. Начало спада указывает расстояние, после которого звук начинает затухать, и здесь единица равна половине экрана."
    },
    "scriptView": {
        "runAutomatically": "Запустить при старте игры",
        "language": "Язык:",
        "convertToJavaScript": "Конвертировать в JavaScript",
        "confirmSwitchToCatnip": "Переключение на Котомяту удалит весь код в этом скрипте. Ты точно хочешь продолжить?",
        "confirmSwitchFromCatnip": "Переключение с котомяты удалит весь код в этом скрипте. Если ты хочешь сохранить код, сконвертируй его в JavaScript. Ты точно хочешь продолжить и очистить код?"
    },
    "enumEditor": {
        "addVariant": "Добавить вариант",
        "enumUseCases": "Это перечисление будет доступно во всём коде твоего проекта и будет выступать как тип данных в типах контента и пользовательских полях поведений."
    },
    "globalSearch": {
        "buttonTitle": "Поиск по ассетам",
        "nothingFound": "Ничего не найдено.",
        "searchHint": "Поиск по всем ассетам по имени. Недавние ассеты тоже будут тут показаны.",
        "recent": "недавно открыто"
    }
}
