{
  "ai": {
    "api_key": "API-ключ",
    "api_url": "URL API",
    "automaticPlasmidTags": "Автоматическая генерация тегов плазмид",
    "automaticPlasmidTagsDescription": "Если включено, при каждом открытии плазмиды теги в базе данных будут обновляться в фоновом режиме с использованием текущей конфигурации ИИ.",
    "clearAll": "Очистить все диалоги",
    "configNamePlaceholder": "Например: DeepSeek-v4-flash",
    "confirmClearAll": "Вы уверены, что хотите очистить все диалоги? Это действие необратимо.",
    "copied": "Скопировано",
    "copy": "Копировать",
    "createConfig": "Создать конфигурацию",
    "delete": "Удалить запись",
    "emptyConfigBanner": "Конфигурации ИИ ещё не сохранены. Сначала создайте и сохраните конфигурацию (укажите API-ключ), чтобы использовать ИИ-ассистента и генерацию тегов плазмид.",
    "emptyHint": "Напишите, что вы хотите сделать! ИИ-ассистент поможет найти плазмиды в вашей базе данных, просмотреть последовательности, добавить аннотации, подобрать праймеры и т. д.",
    "errorTag": "(ошибка)",
    "exportDebug": "Экспорт отладочной информации",
    "exportDebugTooltip": "Экспортирует в JSON полный запрос, отправленный ИИ при ошибке (messages/tools/поля размышлений), для упрощения диагностики",
    "getKey": "Получить",
    "getKeyFailed": "Не удалось открыть страницу, скопируйте ссылку вручную",
    "getKeyTooltip": "Открыть страницу поставщика для получения API-ключа",
    "inputPlaceholder": "Введите сообщение, Enter — отправить, Shift+Enter — новая строка",
    "mcpBootFailed": "Ошибка запуска MCP",
    "mcpConnected": "MCP подключён",
    "mcpDisconnected": "MCP не подключён",
    "model": "Модель",
    "name": "Название конфигурации",
    "new": "Создать",
    "newChat": "Новый диалог",
    "newSession": "Новая сессия",
    "noSessions": "Нет сессий",
    "openAsWindow": "Открыть в новом окне",
    "parameters": "Параметры",
    "provider": "Провайдер",
    "reasoning": "Модель рассуждений",
    "result": "Результат",
    "save": "Сохранить",
    "saveCurrent": "Сохранить текущую конфигурацию",
    "savedConfigs": "Сохранённые конфигурации",
    "selectOrCreate": "Выберите или создайте сессию, чтобы начать",
    "send": "Отправить",
    "sessions": "Сессии",
    "setAsCurrent": "Сделать текущей",
    "settings": "Настройки",
    "settingsTitle": "Настройки ИИ",
    "stopGenerate": "Остановить генерацию",
    "tagPrompt": "Промпт для тегов плазмид",
    "tagPromptDefault": "Классифицируйте плазмиды с помощью кратких биологических тегов. Если существующий тег выражает то же значение, используйте его точное написание; создавайте новый тег только для действительно независимого понятия — **никогда не давайте два семантически почти дублирующих тега** (например, выберите одно из пары «shRNA» и «RNAi», «lentiviral» и «lenti», «fluorescent» и «fluorescence», не сохраняйте оба).\nПути к файлам и имена файлов часто содержат биологически значимую информацию — их следует рассматривать как основной сигнал наравне с features. Типичные извлекаемые сигналы включают: семейство/тип вектора (например, lenti/retro/AAV/adenoviral/pLVX/pCDH), остов, ген или вставку, устойчивость, промотор, аффинную метку, флуоресцентный репортёр, систему экспрессии, организм-хозяин, название проекта и поставщика. Если сигнал совпадает с существующим тегом, используйте его точное написание; добавляйте новый тег только если сигнал действительно информативен и не покрыт существующими тегами. Не превращайте механически каждый фрагмент каталога или имени файла в тег (пропускайте общие слова вроде plasmid, vector, final, v2, а также чистый шум дат/версий).\nТщательно отбирайте — качество важнее количества (лучше меньше, но лучше). Оставляйте только самые важные теги, **не более 20**. **Каждый тег должен быть кратким — обычно одно-два слова** (например, «lentiviral», «GFP», «shRNA», «kanamycin»); избегайте фраз, полных предложений или длинных описательных выражений. Сортируйте по важности: **ген/вставка и назначение плазмиды (например, лентивирусная экспрессия, Gateway, нокдаун shRNA) в приоритете**; затем добавляйте устойчивость, репортёр, вид или семейство вектора только если это действительно помогает поиску. **Считайте промоторы, NLS и другие малые/универсальные элементы низкоприоритетными сигналами** — отмечайте промотор только если он является характерным элементом данной плазмиды (при наличии нескольких промоторов отмечайте максимум тот, что запускает целевой ген/вставку). **Не отмечайте универсальные/распространённые элементы, присутствующие почти в каждой плазмиде** — например, точку начала репликации (ori), сигнал ядерной локализации (NLS), малые эпитопные/аффинные метки (FLAG, HA, Myc, His), универсальные/секвенирующие сайты связывания праймеров (например, праймеры M13, T7, T3, SP6), linker или MCS, терминатор промотора T7, polyA и т. п. — они лишь добавляют шум и не помогают поиску. Отбрасывайте любые избыточные теги, подразумеваемые другими тегами или слабоинформативные; если два кандидата означают практически одно и то же, оставьте только более конкретный. Если сомневаетесь, стоит ли сохранять тег, — не сохраняйте.",
    "tagPromptDescription": "Промпт, используемый при генерации тегов плазмид (только инструкционная часть). Конкретные данные каждой плазмиды (название, путь, признаки, существующие теги) добавляются автоматически в конце, указывать их здесь не нужно. Оставьте без изменений, чтобы использовать встроенный промпт по умолчанию.",
    "tagPromptReset": "Восстановить по умолчанию",
    "tagPromptSummary": "Настройте, как ИИ размечает плазмиды",
    "tagThinking": "Включить размышления при генерации тегов",
    "tagThinkingDescription": "Если включено, ИИ при генерации тегов плазмид сначала размышляет, затем выдаёт результат (точнее, но медленнее; по умолчанию выключено).",
    "test": "Проверить подключение",
    "testOk": "Подключение успешно",
    "thinking": "Размышления",
    "thinkingContent": "Содержание размышлений",
    "thinkingInProgress": "Размышление...",
    "thinkingTooltip": "Если включено, модель сначала размышляет, затем отвечает (по умолчанию включено)",
    "toggleSidebar": "Свернуть/развернуть список сессий",
    "toolCalls": "Вызовы инструментов ({{count}})",
    "toolCallsWithErrors": "Вызовы инструментов ({{count}}, ошибок: {{errors}})",
    "usageAvgSpeed": "Средняя скорость",
    "usageCacheHit": "Попадания в кэш",
    "usageCached": "из них попадания в кэш {{n}} токенов (со скидкой)",
    "usageCompletion": "Вывод {{n}} токенов",
    "usageDaily": "Недавнее использование",
    "usageInput": "Ввод (вкл. попадания в кэш)",
    "usageLoading": "Загрузка статистики...",
    "usageNoDaily": "Нет недавних записей",
    "usageOutput": "Вывод",
    "usagePrompt": "Ввод {{n}} токенов (вкл. попадания в кэш)",
    "usageRequests": "Число запросов",
    "usageSession": "Текущая сессия",
    "usageSpeed": "Скорость генерации: {{n}} токенов/с",
    "usageStats": "Статистика использования",
    "usageToday": "Сегодня",
    "usageTotal": "Сумма за последние 7 дней",
    "usedTool": "Использован инструмент",
    "vision": "Визуальная модель"
  },
  "alignment": {
    "addFiles": "Добавить файлы",
    "algorithm": "Алгоритм",
    "calculating": "Вычисление...",
    "chromatogramHeight": "Высота хроматограммы {{multiplier}}×, двойной щелчок для сброса",
    "chromatogramHeightLabel": "Высота хроматограммы",
    "collapseDetails": "Свернуть подробности",
    "ctxCopied": "Скопировано {{count}} п.н. последовательности",
    "ctxCopyFailed": "Ошибка копирования",
    "ctxCopySequence": "Копировать полную последовательность ({{count}} п.н.)",
    "ctxExportAb1": "Экспорт AB1 (с хроматограммой)",
    "ctxExportFailed": "Ошибка экспорта",
    "ctxExportFasta": "Экспорт FASTA",
    "dropToAdd": "Отпустите файлы, чтобы добавить последовательности",
    "emptyState": "Добавьте последовательности для выравнивания с референсом",
    "expandDetails": "Развернуть подробности",
    "files": "Файлы",
    "fromClipboard": "Из буфера обмена",
    "fromOpenWindows": "Из открытых окон",
    "hide": "Скрыть",
    "hideChromatograms": "Скрыть хроматограммы",
    "namePlaceholder": "Название (необязательно)",
    "originalSequence": "Исходная последовательность",
    "paste": "Вставить",
    "remove": "Удалить",
    "seqsCount": "Последовательностей: {{count}}",
    "sequencePlaceholder": "Вставьте или введите последовательность...",
    "show": "Показать",
    "showChromatograms": "Показать хроматограммы",
    "title": "Выравнивание последовательностей",
    "typeSequence": "Ввести последовательность",
    "wheelHorizontal": "Направление колеса мыши: горизонтальная прокрутка (щёлкните для вертикальной)",
    "wheelVertical": "Направление колеса мыши: вертикальная прокрутка (щёлкните для горизонтальной)"
  },
  "app": {
    "circularPlasmid": "Кольцевая плазмида",
    "createNewSequence": "Создать новую последовательность",
    "createSequence": "Создать последовательность",
    "dnaSequence": "Последовательность ДНК",
    "dnaSequencePlaceholder": "Введите последовательность ДНК (A, T, C, G)...",
    "dragDropHint": "Можно также перетащить один или несколько файлов последовательностей прямо в это окно",
    "dragDropRelease": "Отпустите, чтобы открыть файлы",
    "emptyView": "Выберите карту или последовательность для отображения",
    "fileError": "Ошибка файла",
    "multiRecordMessage": "«{{name}}» содержит последовательностей: {{count}}. Как открыть?",
    "multiRecordOpenAll": "Открыть по отдельности ({{count}} документов)",
    "multiRecordOpenFirst": "Открыть только первую последовательность",
    "multiRecordTitle": "Обнаружено несколько последовательностей",
    "newSequence": "Новая последовательность",
    "newSequenceDefaultName": "Безымянная последовательность",
    "newSequenceDesc": "Создать с нуля",
    "newSequenceHandoffFailed": "Ошибка открытия: данные последовательности слишком велики для передачи в новое окно",
    "newTab": "Новая вкладка",
    "newWindowFailed": "Не удалось открыть новое окно редактирования.",
    "openFile": "Открыть файл последовательности",
    "openFileDesc": "Файлы .gen, .dna, .prot, .rna, .gb, .gbk, .gjson, .fasta, .ab1",
    "parseWarning": "Часть содержимого не удалось разобрать",
    "parseWarningDesc": "Последовательность загружена успешно, но часть содержимого пропущена из-за ошибок. Скопируйте подробности ниже и сообщите разработчикам.",
    "sequenceName": "Название последовательности",
    "sequenceNamePlaceholder": "Введите название последовательности...",
    "settings": "Настройки",
    "settingsTooltip": "Настроить параметры приложения",
    "subtitle": "Мощный инструмент для просмотра и редактирования последовательностей ДНК",
    "title": "GenePad"
  },
  "cdsExtension": {
    "cancel": "Отмена",
    "confirm": "Расширить",
    "message": "Расширить аннотированный диапазон CDS до полной рамки считывания (до стоп-кодона)?",
    "title": "Расширить CDS до полной рамки считывания"
  },
  "cloning": {
    "addFragment": "Добавить фрагмент",
    "addFragmentBlockedCircular": "Фрагмент уже замкнут в кольцо и не может быть собран с другими фрагментами",
    "addStep": "Добавить этап обработки",
    "addStepDisabledHint": "Сначала завершите предыдущий этап обработки",
    "autoAssemblyHint": "После готовности продуктов всех фрагментов выполняется автоматическая сборка с определением линейной или кольцевой топологии",
    "bluntEnd": "Тупой конец",
    "circularInAssemblyError": "Есть фрагмент, замкнутый в кольцо, его нельзя собрать с другими фрагментами; удалите этап самолигирования или уменьшите число фрагментов.",
    "circularTopology": "Кольцевая плазмида",
    "clickMapToFill": "Щёлкните номер, чтобы выбрать поле ввода, затем щёлкните точку разрезания на карте",
    "clickSequenceToFillPrimer": "Щёлкните праймер на карте или выделите основания в представлении «Последовательность», чтобы заполнить следующую пустую ячейку праймера (сначала прямой, затем обратный); удерживая Ctrl, последовательно щёлкните два праймера, чтобы заполнить обе ячейки по порядку.",
    "currentVector": "Убрать вектор",
    "cutEnzymes": "Рестриктазы",
    "defaultProductName": "Продукт клонирования",
    "digest": "Рестрикционное расщепление",
    "digestAllOccurrencesHint": "При выборе рестриктазы расщепление выполняется автоматически: по всем сайтам узнавания каждой выбранной рестриктазы в текущей последовательности, области продуктов сразу подсвечиваются на исходной последовательности; удерживая Ctrl, последовательно щёлкните несколько точек разрезания на карте, чтобы добавить несколько ферментов за раз, после выбора расщепление выполняется автоматически.",
    "directProduct": "Взять продукт последнего этапа напрямую",
    "emptyTemplate": "Сначала загрузите матрицу ДНК",
    "enzymeSearchSummary": "Показано {{shown}} / {{total}} рестриктаз, ввод сужает диапазон.",
    "finalFragmentProduct": "Конечный продукт фрагмента",
    "finalProduct": "Конечный продукт",
    "fivePrimeOverhang": "5′-липкий конец",
    "forwardPrimer": "Последовательность прямого праймера",
    "forwardPrimerNoAnneal": "На 3′-конце прямого праймера не найдено непрерывного совпадения не менее 6 п.н. с текущей матрицей.",
    "fragment": "Фрагмент ДНК {{number}}",
    "fragmentNotReadySteps": "Есть незавершённые этапы обработки",
    "fusion": "Сборка слиянием",
    "fusionHint": "Собирает все обработанные фрагменты по порядку.",
    "fusionMethod": "Способ слияния",
    "importFromWindow": "Импорт из окна",
    "importFromWindowEmpty": "Нет окон с открытыми документами.",
    "leftEnd": "Левый разрез",
    "ligation": "Лигирование после расщепления",
    "linearTopology": "Линейная ДНК",
    "loadTemplateHint": "Откройте файл последовательности или вставьте ДНК",
    "loading": "Загрузка…",
    "minimumOverlap": "Минимальная длина перекрытия (п.н.)",
    "newForwardPrimer": "Прямой праймер ПЦР",
    "newReversePrimer": "Обратный праймер ПЦР",
    "noEnzymes": "Рестриктазы не выбраны",
    "noExistingPrimers": "В текущей матрице нет собственных праймеров.",
    "noMatchingSites": "Нет подходящих сайтов расщепления",
    "noStepsHint": "Этапов обработки пока нет, добавьте один, чтобы начать обработку фрагмента.",
    "notReady": "Ещё не готово",
    "openAsNewFile": "Открыть как новый файл",
    "openAsNewFileHint": "Продукт будет открыт как новый документ (с аннотациями), сохранение и выбор формата выполняются в открытом документе.",
    "openFile": "Открыть",
    "openedAsNewFile": "Продукт открыт как новый файл.",
    "originalSequence": "Исходная последовательность",
    "overhangSequence": "Последовательность выступающего конца",
    "overlapFound": "Перекрытие {{count}} п.н.",
    "overlapPcr": "ПЦР с перекрытием",
    "paste": "Вставить ДНК",
    "pastePlaceholder": "Вставьте последовательность ДНК; пробелы, переводы строк и номера позиций игнорируются.",
    "pastedFragment": "Вставленный фрагмент {{number}}",
    "pcr": "ПЦР",
    "prepareBoth": "Сначала завершите обработку каждого фрагмента.",
    "previewMap": "Карта",
    "previewSequence": "Последовательность",
    "primersRequired": "Сначала введите последовательности прямого и обратного праймеров.",
    "process": "Обработка",
    "processSuccess": "Продукт этого этапа получен",
    "processingSteps": "Этапы обработки",
    "product": "Продукт",
    "productName": "Название продукта",
    "productOption": "Продукт {{number}} · {{length}} п.н.",
    "readyToClone": "Готово к клонированию · продукт {{length}} п.н.",
    "removeFragment": "Удалить фрагмент {{number}}",
    "removeStep": "Удалить этап {{number}} и последующие этапы",
    "reverseComplement": "Обратная комплементарность",
    "reversePrimer": "Последовательность обратного праймера",
    "reversePrimerNoAnneal": "На 3′-конце обратного праймера не найдено непрерывного совпадения не менее 6 п.н. с текущей матрицей.",
    "rightEnd": "Правый разрез",
    "rotateFragmentDirection": "Инвертировать направление последовательности",
    "schemeDiagram": "Схема молекулярного клонирования",
    "seamless": "Бесшовное клонирование",
    "searchEnzymeSite": "Поиск рестриктазы или позиции…",
    "selectExistingPrimer": "Существующие праймеры",
    "selfLigate": "Самолигирование вектора",
    "selfLigateCircularError": "Фрагмент уже кольцевой, самолигирование не требуется.",
    "selfLigateHint": "Соединяет концы линейного фрагмента в кольцо. Концы должны быть совместимы: липкие концы, полученные одной рестриктазой (или изошизомерами), либо тупые концы.",
    "selfLigateIncompatible": "Концы несовместимы, самолигирование невозможно (требуются липкие концы от одного фермента или тупые концы).",
    "sequenceFiles": "Файлы последовательностей ДНК",
    "setAsVector": "Отобразить как вектор",
    "singleFragmentHint": "При наличии только одного фрагмента продукт представляет собой результат последней стадии обработки этого фрагмента и может быть линейной или кольцевой плазмидой.",
    "siteOccurrences": "{{number}} сайтов рестрикции",
    "sitesNotFound": "Выбранные рестриктазы не имеют сайтов узнавания в данной последовательности.",
    "sitesRequired": "Сначала выберите хотя бы одну рестриктазу.",
    "step": "Шаг {{number}}",
    "threePrimeOverhang": "3′-липкий конец",
    "topologyPending": "Кольцевая или линейная форма определяется автоматически после обработки",
    "twoOverlapsFound": "Стык фрагментов {{first}} п.н. · замыкающий стык {{closing}} п.н.",
    "unsupportedFile": "Этот тип файла нельзя использовать в качестве матрицы для клонирования.",
    "useSequence": "Использовать эту последовательность",
    "variantCount": "{{count}} возможных продуктов",
    "variantCurrent": "Текущая ориентация",
    "variantHint": "Если липкие концы или участки гомологии на обоих концах фрагмента одинаковы, возможно соединение как в прямом, так и в обратном направлении. Для данной сборки существует несколько возможных продуктов. Выберите ориентацию для просмотра и экспорта:",
    "variantReversed": "Обратная",
    "vector": "Вектор",
    "vectorRoleHint": "«Отобразить как вектор» изменяет только стиль схемы (разомкнутое кольцо). Можно отметить не более одного фрагмента; на результат сборки это не влияет.",
    "waitingForFragments": "Ожидание готовности всех фрагментов"
  },
  "codonOptimization": {
    "algorithm": "Алгоритм оптимизации",
    "algorithms": {
      "unified": "Унифицированный взвешенный алгоритм (рекомендуется)"
    },
    "cancel": "Отмена",
    "changedCodons": "Заменено кодонов: {{count}}",
    "confirmAndReplace": "Оптимизировать и заменить",
    "copied": "Скопировано",
    "copy": "Копировать последовательность",
    "dialogDescription": "Оптимизировать выбранные коды ({{count}}) и заменить исходную кодирующую последовательность.",
    "dialogTitle": "Оптимизация кодонов",
    "errors": {
      "emptyInput": "Сначала введите последовательность.",
      "hostLoadFailed": "Не удалось загрузить предустановки видов из бэкенда Rust.",
      "incompleteCodon": "Длина последовательности ДНК должна быть кратна 3.",
      "invalidDna": "Ввод ДНК может содержать только A, C, G, T или U.",
      "invalidInput": "Невозможно оптимизировать данную входную последовательность.",
      "invalidProtein": "Ввод аминокислот допускает только 20 стандартных однобуквенных кодов; для стоп-кодона используйте *.",
      "tissueLoadFailed": "Не удалось загрузить предпочтения тканей из бэкенда Rust.",
      "unknownHost": "Выбранная предустановка вида недоступна.",
      "unknownPreferenceType": "Выбранный источник предпочтений недоступен.",
      "unknownTissue": "Выбранное предпочтение ткани недоступно."
    },
    "gcChange": "GC {{before}}% → {{after}}%",
    "hosts": {
      "bacillus": "Bacillus subtilis 168",
      "cho": "Клетки CHO",
      "ecoli": "Escherichia coli K-12",
      "human": "Человек",
      "mouse": "Мышь",
      "yeast": "Saccharomyces cerevisiae"
    },
    "inputHint": "Пробелы и позиционные номера игнорируются автоматически; в последовательности ДНК можно использовать T или U.",
    "inputTitle": "Входная последовательность",
    "loadingHosts": "Загрузка предустановок видов из бэкенда Rust…",
    "methodNote": "Унифицированный взвешенный алгоритм Rust одновременно учитывает предпочтения целевых кодонов (38%), разнообразие часто используемых кодонов (18%), близость к целевому GC (20%), избегание редких кодонов (12%) и штраф за повторы/гомополимеры (12%), добавляя случайное возмущение не более 8%. Предпочтения тканей используют частотные данные GenePad Codon Atlas; отображаемая в интерфейсе оценка предпочтения ткани равна весу CAI из атласа, умноженному на 100. При последовательной оптимизации по возможности избегаются исходный ввод и предыдущий результат при сохранении неизменной трансляции белка; если последовательность содержит только остатки без синонимичных кодонов, такие как Met и Trp, принудительное изменение невозможно. В настоящее время не учитываются структура РНК, сайты рестрикции, пары кодонов и CpG/UpA.",
    "notesTitle": "Описание алгоритма и данных",
    "optimize": "Оптимизировать последовательность",
    "optimizing": "Оптимизация…",
    "outputPlaceholder": "Оптимизированная последовательность отобразится здесь.",
    "outputTitle": "Оптимизированная последовательность ДНК",
    "placeholders": {
      "dna": "Вставьте кодирующую последовательность ДНК, например: ATGGCTCTGTGG...",
      "protein": "Вставьте однобуквенную последовательность аминокислот, например: MALW..."
    },
    "preferenceType": "Источник предпочтений",
    "protein": "Аминокислота",
    "resultSummary": "Кодонов: {{codons}} · GC {{gc}}%",
    "selectedSpecies": "Конфигурация вида: {{species}}",
    "selectedTissue": "Конфигурация ткани человека: {{tissue}}",
    "speciesPreference": "Предпочтения вида",
    "speciesSource": "Ранжирование видов основано на сводках использования кодонов по всему геному (Kazusa Codon Usage Database; Codon Statistics Database, 2022).",
    "targetHost": "Целевой вид для экспрессии",
    "targetTissue": "Целевая ткань человека",
    "tissuePreference": "Предпочтения ткани",
    "tissueSource": "Источник данных по тканям: GenePad Codon Atlas, независимо рассчитанный на основе сводных данных о медианных TPM генов GTEx v8 без ограничений и репрезентативных кодирующих транскриптов GENCODE release 50 (дата обращения 2026-07-14). Таблицы TissueCoCoPUTs не являются числовым вводом; их общедоступный метод взвешивания по тканям используется только как научно-методический ориентир. Эта версия данных GTEx может быть не самой последней и не подразумевает одобрения соответствующими организациями. Источник:",
    "tissues": {
      "adipose-subcutaneous": "Подкожная жировая ткань",
      "adipose-visceral-omentum": "Висцеральная жировая ткань (сальник)",
      "adrenal-gland": "Надпочечник",
      "artery-aorta": "Аорта",
      "artery-coronary": "Коронарная артерия",
      "artery-tibial": "Большеберцовая артерия",
      "bladder": "Мочевой пузырь",
      "brain-amygdala": "Головной мозг — миндалевидное тело",
      "brain-anterior-cingulate-cortex-ba24": "Головной мозг — передняя поясная кора (BA24)",
      "brain-caudate-basal-ganglia": "Головной мозг — хвостатое ядро (базальные ганглии)",
      "brain-cerebellar-hemisphere": "Головной мозг — полушарие мозжечка",
      "brain-cerebellum": "Головной мозг — мозжечок",
      "brain-cortex": "Головной мозг — кора больших полушарий",
      "brain-frontal-cortex-ba9": "Головной мозг — лобная кора (BA9)",
      "brain-hippocampus": "Головной мозг — гиппокамп",
      "brain-hypothalamus": "Головной мозг — гипоталамус",
      "brain-nucleus-accumbens-basal-ganglia": "Головной мозг — прилежащее ядро (базальные ганглии)",
      "brain-putamen-basal-ganglia": "Головной мозг — скорлупа (базальные ганглии)",
      "brain-spinal-cord-cervical-c-1": "Головной мозг — шейный отдел спинного мозга (C1)",
      "brain-substantia-nigra": "Головной мозг — чёрное вещество",
      "breast-mammary-tissue": "Ткань молочной железы",
      "cells-cultured-fibroblasts": "Культивируемые фибробласты",
      "cells-ebv-transformed-lymphocytes": "EBV-трансформированные лимфоциты",
      "cervix-ectocervix": "Шейка матки — эктоцервикс",
      "cervix-endocervix": "Шейка матки — эндоцервикс",
      "colon-sigmoid": "Ободочная кишка — сигмовидная",
      "colon-transverse": "Ободочная кишка — поперечная",
      "esophagus-gastroesophageal-junction": "Пищевод — пищеводно-желудочное соединение",
      "esophagus-mucosa": "Пищевод — слизистая оболочка",
      "esophagus-muscularis": "Пищевод — мышечный слой",
      "fallopian-tube": "Маточная труба",
      "heart-atrial-appendage": "Сердце — ушко предсердия",
      "heart-left-ventricle": "Сердце — левый желудочек",
      "kidney-cortex": "Почка — корковое вещество",
      "kidney-medulla": "Почка — мозговое вещество",
      "liver": "Печень",
      "lung": "Лёгкое",
      "minor-salivary-gland": "Малая слюнная железа",
      "muscle-skeletal": "Скелетная мышца",
      "nerve-tibial": "Большеберцовый нерв",
      "ovary": "Яичник",
      "pancreas": "Поджелудочная железа",
      "pituitary": "Гипофиз",
      "prostate": "Предстательная железа",
      "skin-not-sun-exposed-suprapubic": "Кожа — закрытый от солнца участок (надлобковая область)",
      "skin-sun-exposed-lower-leg": "Кожа — открытый для солнца участок (голень)",
      "small-intestine-terminal-ileum": "Тонкая кишка — терминальный отдел подвздошной кишки",
      "spleen": "Селезёнка",
      "stomach": "Желудок",
      "testis": "Яичко",
      "thyroid": "Щитовидная железа",
      "uterus": "Матка",
      "vagina": "Влагалище",
      "whole-blood": "Цельная кровь"
    }
  },
  "codonTable": {
    "codes": {
      "invertebrateMitochondrial": "Митохондриальный код беспозвоночных",
      "standard": "Стандартный код",
      "vertebrateMitochondrial": "Митохондриальный код позвоночных"
    },
    "detailHint": "Нажмите или наведите курсор на кодон, чтобы увидеть информацию об аминокислоте",
    "expressionScore": "Оценка экспрессии",
    "firstBase": "Первый",
    "fullName": "Полное название",
    "oneLetter": "Однобуквенный",
    "scoreLoadFailed": "Оценка недоступна",
    "scoreLoading": "Загрузка…",
    "scoreTooltip": "Оценка предпочтения {{score}} · синонимичный кодон № {{rank}} из {{count}}",
    "scoreType": "Источник оценки экспрессии",
    "scoreValue": "Оценка {{score}}",
    "secondBase": "Второй {{base}}",
    "skeletalFormula": "Скелетная формула",
    "speciesPreferenceScore": "Оценка предпочтения вида",
    "start": "Старт",
    "startCodon": "Старт-кодон",
    "stop": "Стоп",
    "stopCodon": "Стоп-кодон",
    "targetSpecies": "Целевой вид",
    "targetTissue": "Целевая ткань",
    "threeLetter": "Трёхбуквенный",
    "tissuePreferenceScore": "Оценка предпочтения ткани",
    "tissueScoreNote": "Оценка ткани использует веса CAI из GenePad Codon Atlas × 100 (GTEx v8 + GENCODE release 50)."
  },
  "common": {
    "add": "Добавить",
    "cancel": "Отмена",
    "close": "Закрыть",
    "current": "Текущий",
    "delete": "Удалить",
    "edit": "Редактировать",
    "export": "Экспорт",
    "hide": "Скрыть",
    "import": "Импорт",
    "listSeparator": ", ",
    "loading": "Загрузка...",
    "maximize": "Развернуть",
    "minimize": "Свернуть",
    "no": "Нет",
    "none": "Нет",
    "ok": "ОК",
    "or": "или",
    "refresh": "Обновить",
    "restore": "Восстановить",
    "save": "Сохранить",
    "search": "Поиск...",
    "show": "Показать",
    "yes": "Да"
  },
  "commonFeatures": {
    "addAnnotations": "Добавить аннотации ({{count}})",
    "annotatedAs": "Аннотировано как {{name}}",
    "annotatedAsHint": "В этой позиции уже есть аннотация с другим именем ({{name}}); если это действительно один и тот же элемент, можно пропустить эту запись",
    "cancelled": "Поиск отменён.",
    "circular": "Кольцевая последовательность",
    "colCoverage": "Покрытие",
    "colIdentity": "Сходство",
    "colLocation": "Позиция",
    "colMethod": "Источник",
    "colName": "Название",
    "colStrand": "Цепь",
    "colType": "Тип",
    "description": "Поиск распространённых элементов плазмидов в текущей последовательности ({{length}} п.н.) с допуском несовпадений и белковым сопоставлением.",
    "descriptionSelection": "Поиск только в выделенном участке {{range}} ({{length}} п.н.) с допуском несовпадений и белковым сопоставлением.",
    "detect": "Начать поиск",
    "elapsedTime": "Общее время поиска: {{seconds}} с.",
    "existing": "Уже есть",
    "existingHint": "В этой позиции уже есть аннотация с таким же или похожим названием",
    "largeSequenceHint": "Область поиска {{length}} п.н.; поиск по последовательностям длиннее 30 т.п.н. может занять длительное время, пожалуйста, подождите (можно остановить в любой момент).",
    "methodDna": "Нуклеиновая",
    "methodPeptide": "Пептид",
    "methodProtein": "Белок",
    "noResults": "Совпадающие распространённые элементы не найдены; попробуйте ослабить строгость.",
    "progressPercent": "Поиск… {{percent}}%",
    "proteinHint": "Трансляция CDS-элементов в белки для сопоставления, точное пептидное совпадение коротких меток (FLAG/NLS/His и т. п.) позволяет распознавать последовательности с оптимизированными кодонами.",
    "proteinOff": "Выкл.",
    "proteinOn": "Вкл.",
    "proteinSearch": "Белковый поиск",
    "redetect": "Повторить поиск",
    "results": "Найдено совпадений: {{count}}",
    "selectAll": "Выбрать все",
    "selectedCount": "Выбрано: {{count}}",
    "stop": "Остановить",
    "strandForward": "Прямая",
    "strandReverse": "Обратная",
    "title": "Обнаружение распространённых элементов",
    "tolerance": "Строгость совпадения",
    "toleranceHint": "Сходство нуклеиновых кислот ≥ {{identity}}, сходство белков ≥ {{protein}}, покрытие ≥ {{coverage}}",
    "toleranceLoose": "Мягкая",
    "toleranceStandard": "Стандартная",
    "toleranceStrict": "Строгая"
  },
  "contextMenu": {
    "addEnzymeSite": "Добавить",
    "addEnzymeSiteRevComp": "Добавить обратную комплементарную последовательность",
    "aminoAcidProperties": "Свойства аминокислот",
    "aminoKeptHint": "Сохраняются только 20 стандартных однобуквенных кодов аминокислот и * (стоп)",
    "blast": "BLAST",
    "blastCncb": "CNCB BLAST",
    "blastCncbCopied": "Последовательность скопирована, вставьте её в поле запроса на странице CNCB (Ctrl+V)",
    "blastNcbi": "NCBI BLAST",
    "blastOpenFailed": "Не удалось открыть веб-страницу BLAST",
    "bothStrands": "Обе цепи",
    "bottomStrand": "Нижняя цепь",
    "clearBaseColor": "Убрать цвет",
    "codonOptimization": "Оптимизация кодонов",
    "colorBases": "Раскрасить ДНК",
    "copyAminoAcidSequence": "Копировать аминокислотную последовательность",
    "copyPrimerNameAndSeq": "Копировать название и последовательность праймера",
    "copyPrimerSeq": "Копировать последовательность праймера",
    "copyProteinSequence": "Копировать белковую последовательность",
    "copyReversedPrimerSeq": "Копировать обратную последовательность праймера",
    "deleteDNAAndFeature": "Удалить ДНК и аннотацию",
    "deleteFeature": "Удалить аннотацию",
    "deletePrimer": "Удалить праймер",
    "deletePrimers": "Удалить праймеры ({{count}})",
    "dnaKeptHint": "Сохраняются только символы оснований (A, T, C, G и вырожденные коды IUPAC)",
    "editFeature": "Редактировать аннотацию",
    "editPrimer": "Редактировать праймер",
    "electrophoresis": "Моделирование электрофореза",
    "enzymeSearchPlaceholder": "Поиск рестриктаз (название или сайт узнавания)...",
    "exportPrimerData": "Экспорт данных праймеров",
    "exportPrimerNameSeq": "Экспорт названий и последовательностей праймеров",
    "filtered": "После фильтрации: {{count}} п.н.",
    "filteredAmino": "После фильтрации: {{count}} а.к.",
    "insert": "Вставить",
    "insertAtInfo": "Позиция вставки {{pos}}",
    "insertTitle": "Вставить последовательность",
    "optimizeAndInsert": "Оптимизировать и вставить",
    "optimizeAndReplace": "Оптимизировать и заменить",
    "pasteInputMode": "Тип ввода",
    "pastePlaceholder": "Вставьте последовательность ДНК...",
    "pastePlaceholderAmino": "Вставьте аминокислотную последовательность...",
    "proteinProperties": "Свойства белка",
    "replace": "Заменить",
    "replaceRangeInfo": "Заменить {{start}}..{{end}}",
    "replaceTitle": "Заменить выделенное",
    "selectAll": "Выделить всё",
    "topStrand": "Верхняя цепь",
    "transferredHintBoth": "При вставке будут перенесены {{features}} аннотаций элементов и {{primers}} праймеров",
    "transferredHintFeatures": "При вставке будут перенесены {{features}} аннотаций элементов",
    "transferredHintPrimers": "При вставке будут перенесены {{primers}} праймеров"
  },
  "crispr": {
    "addToMap": "Добавить на карту",
    "annotateOne": "Аннотировать эту мишень",
    "bindingNum": "Число сайтов связывания",
    "calculate": "Рассчитать",
    "calculating": "Расчёт кандидатов sgRNA",
    "clickSequenceHint": "Нажмите на последовательность, чтобы перейти к соответствующему месту на исходной карте.",
    "crisprType": "Тип CRISPR",
    "custom": "Пользовательский",
    "description": "Дизайн кандидатов sgRNA по выбранной последовательности длиной {{count}} п.н.",
    "designFailed": "Ошибка дизайна CRISPR: {{error}}",
    "designSgrna": "Дизайн CRISPR sgRNA",
    "direction": "Направление",
    "exportCsv": "Экспортировать все последовательности",
    "exportCsvDone": "Экспорт CSV выполнен",
    "exportCsvFailed": "Не удалось экспортировать CSV",
    "filtering": "Фильтрация",
    "forward": "Прямое",
    "maxBindingNum": "Макс. число сайтов связывания",
    "maxBindingUnlimited": "Без ограничений",
    "minBindingNum": "Мин. число сайтов связывания",
    "mismatchOutsideSeed": "Разрешить несовпадения вне seed",
    "name": "Название",
    "noContext": "Контекст дизайна sgRNA не получен.",
    "noSgrnaPassed": "Ни одна sgRNA не прошла фильтрацию. Число кандидатов: {{count}}",
    "nuclease": "Нуклеаза",
    "pam": "PAM",
    "recalculate": "Пересчитать",
    "recognitionLayout": "Схема распознавания",
    "resultSummary": "Из {{total}} кандидатов отобрано {{accepted}}",
    "results": "Результаты",
    "reverse": "Обратное",
    "seedLength": "Длина seed-последовательности",
    "selectAll": "Выбрать все",
    "selectedCount": "Выбрано: {{count}}",
    "sequence": "Последовательность",
    "sgLength": "Длина sgRNA",
    "targetNotFound": "Мишень не найдена в файле {{fileName}}",
    "targetSequence": "Последовательность мишени",
    "title": "CRISPR sgRNA",
    "unselectAll": "Снять выделение",
    "validationBindingRange": "Минимальное число сайтов связывания не может превышать максимальное.",
    "validationCutSite": "Сайт разрезания должен быть целым числом.",
    "validationMaxBinding": "Максимальное число сайтов связывания должно быть не менее 1.",
    "validationMinBinding": "Минимальное число сайтов связывания должно быть не менее 1.",
    "validationPamRequired": "Последовательность PAM не может быть пустой.",
    "validationPamUnsupported": "Последовательность PAM содержит неподдерживаемые основания.",
    "validationSeedLength": "Длина seed-последовательности должна быть от 1 до длины sgRNA.",
    "validationSgLength": "Длина sgRNA должна быть не менее 1."
  },
  "cutConfirm": {
    "copy": "Копировать",
    "dontShowAgain": "Больше не показывать в этом сеансе",
    "message": "Вы уверены, что хотите вырезать?",
    "ok": "ОК",
    "title": "Подтверждение вырезания"
  },
  "deleteConfirm": {
    "dontShowAgain": "Больше не показывать в этом сеансе",
    "message": "Удалить выбранную последовательность ({{count}} п.н.)? Выбранная область будет удалена из последовательности.",
    "ok": "Удалить",
    "title": "Подтверждение удаления"
  },
  "electrophoresis": {
    "add": "Добавить дорожку",
    "addPrepared": "Добавить подготовленный фрагмент",
    "addSample": "Подготовить образец",
    "agarose": "Концентрация агарозы (%)",
    "bands": "Полосы",
    "catalogNumber": "Каталожный номер",
    "chooseCutSite": "Выбрать сайт рестрикции",
    "chooseLadder": "Выбрать маркер",
    "clear": "Очистить",
    "clearCutSite": "Убрать выбранный сайт рестрикции",
    "custom": "Пользовательский",
    "customBandsHint": "По одной полосе в строке: сначала размер в {{unit}}, после запятой можно указать относительную яркость (0–3).",
    "customBandsPlaceholder": "8000, 1\n5000, 1\n1000, 2",
    "customDeleted": "Пользовательский маркер удалён.",
    "customLadder": "Пользовательский маркер",
    "customLadderName": "Название маркера",
    "customLadderSource": "URL источника (необязательно)",
    "customNameRequired": "Введите название пользовательского маркера.",
    "customSaved": "Пользовательский маркер сохранён на этом устройстве.",
    "cutSites": "Сайты рестрикции",
    "deleteCustom": "Удалить выбранный пользовательский маркер",
    "digest": "Рестрикция",
    "dna": "Электрофорез ДНК",
    "dnaInputHint": "Откройте файл последовательности, выберите область, рестрикцию, ПЦР или вставьте ДНК напрямую.",
    "emptyLanes": "Добавьте образец, чтобы создать дорожку",
    "end": "Конец",
    "forwardPrimer": "Прямой праймер (5′→3′)",
    "full": "Полная последовательность",
    "fullSequence": "Полная последовательность",
    "ladder": "Маркер",
    "ladderSource": "Посмотреть источник спецификации маркера",
    "ladderType": "Тип",
    "lanes": "Дорожки геля",
    "noMatchingCutSites": "Нет подходящих сайтов рестрикции",
    "noMatchingLadders": "Нет подходящих маркеров",
    "noTemplate": "Матрица ДНК ещё не загружена",
    "openFile": "Открыть",
    "pasted": "Вставить последовательность",
    "pcr": "ПЦР",
    "polyacrylamide": "Концентрация геля (%)",
    "protein": "Электрофорез белков",
    "proteinInputHint": "Вставьте аминокислотную последовательность или добавьте её через контекстное меню CDS/области трансляции.",
    "range": "Выбрать область",
    "reversePrimer": "Обратный праймер (5′→3′)",
    "sample": "Образец",
    "sampleName": "Название образца",
    "saveCustom": "Сохранить пользовательский маркер",
    "searchCutSite": "Поиск фермента, сайта узнавания или позиции…",
    "searchLadder": "Поиск производителя, названия маркера или размера полосы…",
    "searchSummary": "Показаны все {{matches}} совпадений (всего {{total}}).",
    "selectedRange": "Выбранная область",
    "sequenceFiles": "Файлы последовательностей ДНК",
    "simulationNotice": "Схема миграции через {{minutes}} мин электрофореза; среднее положение ползунка (30 мин) откалибровано по референсному профилю Trans2K® Plus II.",
    "start": "Начало",
    "subtitle": "Сравнивайте фрагменты ДНК в агарозном геле или белки методом SDS-PAGE.",
    "title": "Моделирование электрофореза",
    "unsupportedFile": "Этот тип файла нельзя использовать для моделирования электрофореза.",
    "voltage": "Напряжение (В)"
  },
  "enzyme": {
    "cutCount": "Число сайтов рестрикции",
    "enzyme": "Фермент",
    "noRestrictionSites": "Сайты рестрикции не найдены",
    "position": "Позиция",
    "recognitionSequence": "Сайт узнавания",
    "search": "Поиск фермента...",
    "showingCount": "Показано ферментов: {{count}} (всего сайтов: {{total}})",
    "sites": "Число сайтов",
    "sitesTotal": "сайтов"
  },
  "enzymeFilters": {
    "__custom__": "Пользовательские",
    "all": "Все ферменты",
    "allCommercial": "Все коммерческие ферменты",
    "allEnzymes": "Все ферменты",
    "bluntEnd": "Ферменты с тупыми концами",
    "double": "Ферменты с двумя сайтами",
    "fivePrime": "Ферменты с 5'-выступающим концом",
    "goldenGate": "Ферменты Golden Gate",
    "lowPrice": "Цена за реакцию ≤ ¥20",
    "neb": "Ферменты NEB",
    "nebThermo": "NEB и Thermo",
    "stickyEnd": "Ферменты с липкими концами",
    "thermoFisher": "Ферменты Thermo",
    "threePrime": "Ферменты с 3'-выступающим концом",
    "typeIIS": "Ферменты IIS",
    "unique": "Ферменты с одним сайтом",
    "uniqueOrDouble": "Ферменты с одним/двумя сайтами"
  },
  "enzymeInfo": {
    "bluntEnd": "Тупые концы",
    "bufferActivity": "Активность в каждом буфере",
    "catalogNumber": "Артикул",
    "catalogPrice": "Каталожная цена",
    "commerciallyAvailable": "Коммерчески доступен",
    "compatibleEnds": "Совместимые концы",
    "compatibleEndsTip": "Ферменты, узнающие разные последовательности, но образующие одинаковые липкие концы после расщепления.",
    "currentRange": "Текущий диапазон",
    "cutFrequency": "Частота расщепления",
    "cutSiteNotConfigured": "Сайт расщепления не настроен",
    "databaseIds": "Идентификаторы базы данных",
    "endType": "Тип концов",
    "equischizomers": "Эквишизомеры",
    "equischizomersTip": "Ферменты, которые среди изошизомеров имеют также одинаковое положение расщепления.",
    "fivePrimeOverhang": "5'-выступающий конец",
    "heatInactivation": "Температура термоинактивации",
    "inactTemp": "Температура инактивации",
    "isoschizomers": "Изошизомеры",
    "isoschizomersTip": "Рестрикционные ферменты, узнающие одинаковую последовательность ДНК. Изошизомеры — более широкое понятие, включающее эквишизомеры и неошизомеры.",
    "methylable": "Метилируемый",
    "methylationInfo": "Информация о метилировании",
    "neoschizomers": "Неошизомеры",
    "neoschizomersTip": "Ферменты, которые среди изошизомеров узнают одинаковую последовательность, но расщепляют в разных местах.",
    "noVendorInfo": "Для этого фермента пока нет данных о продуктах поставщиков",
    "notConfigured": "Не настроено",
    "optTemp": "Оптимальная температура",
    "packagePrices": "Фасовка и цены",
    "pricePerReaction": "Цена за реакцию",
    "properties": "Энзимологические свойства",
    "reactionTemperature": "Температура реакции",
    "reactionTime": "Время реакции",
    "recognitionAndCutSite": "Сайт узнавания / расщепления",
    "relationships": "Классификационные связи",
    "selectEnzyme": "Выберите рестрикционный фермент",
    "spec": "Фасовка",
    "suppliers": "Поставщики ({{count}})",
    "threePrimeOverhang": "3'-выступающий конец",
    "title": "Информация о рестрикционном ферменте",
    "type": "Тип",
    "unknown": "Неизвестно",
    "vendorEnzymology": "Энзимологические свойства поставщика",
    "vendorLink": "Страница поставщика",
    "vendorOther": "Другое"
  },
  "enzymeLibrary": {
    "enzymeCount": "{{count}} ферментов",
    "searchHintAa": "Поиск по аминокислотам: собранная последовательность транслируется по 6 рамкам считывания (включая обратно-комплементарные), поиск ведётся по ним; отображаются только строки рамок с совпадениями, соответствующие основания подсвечиваются с учётом направления рамки.",
    "searchHintDna": "Поиск по ДНК: фрагмент оснований ищется одновременно в собранной последовательности текущей ячейки и в трёх строках R1/R2 (запрос и его обратно-комплементарная последовательность также ищутся).",
    "searchPlaceholder": "Поиск по названию фермента или последовательности узнавания...",
    "searchPlaceholderAa": "Аминокислоты (например, MGH…) или с *"
  },
  "enzymePanel": {
    "activeEnzymes": "Используемые ферменты ({{count}})",
    "activeNonCutters": "Ферменты без сайтов узнавания ({{count}})",
    "addSearchPlaceholder": "Добавить фермент в список (поиск по названию)...",
    "addSelectedToPool": "Добавить выбранные в пул ферментов",
    "count": "{{count}} шт.",
    "currentPool": "Текущий пул ферментов",
    "customPool": "Пользовательский пул ферментов ({{count}} шт.)",
    "cutSites": "{{count}} сайтов узнавания",
    "deselectAll": "Снять выделение",
    "editPool": "Редактировать пул ферментов",
    "enzymeInfo": "Информация о ферменте",
    "filterScheme": "Схема фильтрации",
    "locate": "Локализовать",
    "matches": "→ {{count}} совпадений",
    "migratedSelection": "Перенесённый выбор ферментов",
    "noEnzymesAdded": "Ферменты ещё не добавлены",
    "noMatchingEnzymes": "Нет подходящих ферментов",
    "price": "Цена",
    "pricePerReaction": "Цена за реакцию",
    "properties": "Ферментативные свойства",
    "removeAll": "Удалить все",
    "removeFromList": "Удалить из текущего списка",
    "removeSelected": "Удалить выбранные",
    "restoreDefault": "Восстановить по умолчанию",
    "saveAsPreset": "Сохранить как часто используемую схему...",
    "schemeNamePrompt": "Название схемы:",
    "selectAll": "Выбрать все",
    "selectedInPool": "Выбрано в пуле ферментов ({{count}})",
    "suppliers": "Поставщики",
    "toggleCutSitesView": "Переключить отображение ферментов с сайтами узнавания / без них",
    "userCustom": "Пользовательский",
    "withCutSites": "С сайтами узнавания",
    "withoutCutSites": "Без сайтов узнавания"
  },
  "errorBoundary": {
    "details": "Технические подробности",
    "fallbackMessage": "Произошла непредвиденная ошибка",
    "reload": "Перезагрузить",
    "title": "Возникла проблема"
  },
  "fastq": {
    "addAnnot": "Добавить временную аннотацию",
    "analyzeAnchorsHint": "С якорями = окно обрезки как есть; без якорей = сначала удаляются якорные последовательности по краям окна, затем подсчёт.",
    "analyzeAnchorsLabel": "Учёт якорей",
    "analyzeAnchorsWith": "С якорями обрезки (сохранить якоря по краям окна)",
    "analyzeAnchorsWithout": "Без якорей обрезки (удалить якоря по краям окна)",
    "analyzeBack": "Повторить анализ",
    "analyzeButton": "Анализ последовательностей",
    "analyzeCancel": "Отменить анализ",
    "analyzeCancelled": "Анализ отменён",
    "analyzeCancelling": "Отмена…",
    "analyzeConfirm": "Начать анализ",
    "analyzeCsvCount": "Частота",
    "analyzeCsvFrame": "Аминокислоты в рамке +1",
    "analyzeCsvFrequency": "Доля (%)",
    "analyzeCsvLength": "Длина (п.н.)",
    "analyzeCsvRank": "Ранг",
    "analyzeCsvSequence": "Последовательность",
    "analyzeDesc": "Повторное сканирование выбранного диапазона: подсчёт качества секвенирования (исходные риды в диапазоне) и сводка последовательностей, прошедших обрезку/фильтрацию — подсчёт дедуплицированных последовательностей по окну обрезки (с якорями или без), статистика количества, доли и аминокислот в рамке +1.",
    "analyzeDescNoTrim": "Якоря обрезки не заданы: подсчитывается только качество секвенирования и формируется HTML-отчёт, сводка дедуплицированных последовательностей не выполняется.",
    "analyzeExportCsvHtml": "Экспорт CSV-таблицы и HTML-отчёта",
    "analyzeExportFailed": "Не удалось экспортировать отчёт анализа",
    "analyzeExportHtml": "Экспорт HTML-отчёта",
    "analyzeFailed": "Не удалось выполнить анализ последовательностей",
    "analyzeHint": "Анализ последовательностей: подсчёт качества секвенирования в выбранном диапазоне и сводка дедуплицированных последовательностей, прошедших обрезку/фильтрацию (количество/доля/аминокислоты в рамке +1), экспорт CSV-таблицы и HTML-отчёта о качестве (без обрезки формируется только отчёт о качестве)",
    "analyzeHtmlAnchorEmpty": "Не задано",
    "analyzeHtmlAnchorLeft": "Левый якорь (5′)",
    "analyzeHtmlAnchorMarkNote": "Цветные участки — якоря обрезки: оранжевый = левый якорь, голубой = правый якорь; в аминокислотах рамки +1 аминокислоты, чьи кодоны содержат основания якоря, также отмечены.",
    "analyzeHtmlAnchorRight": "Правый якорь (3′)",
    "analyzeHtmlAnchorsLabel": "Якоря обрезки",
    "analyzeHtmlAnchorsNone": "Без обрезки",
    "analyzeHtmlAppName": "GenePad",
    "analyzeHtmlBases": "Всего оснований",
    "analyzeHtmlCount": "Частота",
    "analyzeHtmlCsvLink": "Полная сводка — в CSV-таблице",
    "analyzeHtmlCsvLinkNote": "(в том же каталоге, что и этот отчёт; открывается в Excel)",
    "analyzeHtmlFailAnchor": "Якорь не найден",
    "analyzeHtmlFailComplexity": "Низкая сложность",
    "analyzeHtmlFailLong": "Слишком длинная",
    "analyzeHtmlFailNBase": "Слишком много оснований N",
    "analyzeHtmlFailNoOverlap": "Нет перекрытия (не собрано)",
    "analyzeHtmlFailOverlapMismatch": "Слишком много несовпадений в области перекрытия",
    "analyzeHtmlFailQuality": "Качество ниже порога",
    "analyzeHtmlFailShort": "Слишком короткая",
    "analyzeHtmlFailed": "Не прошло фильтрацию",
    "analyzeHtmlFilesTitle": "Файлы секвенирования",
    "analyzeHtmlFiltersLabel": "Фильтры ридов",
    "analyzeHtmlFiltersNone": "Не задано",
    "analyzeHtmlFrame1": "Аминокислоты в рамке +1",
    "analyzeHtmlFrequency": "Доля",
    "analyzeHtmlGc": "Содержание GC",
    "analyzeHtmlGenerated": "Время создания",
    "analyzeHtmlGeneratedBy": "Этот отчёт создан {{app}}",
    "analyzeHtmlGroupR1": "R1",
    "analyzeHtmlGroupR2": "R2",
    "analyzeHtmlGroupTotal": "Всего",
    "analyzeHtmlLength": "Длина (п.н.)",
    "analyzeHtmlLoadedOf": "Загружено частично: загружено {{loaded}} записей, полный файл должен содержать {{total}} записей",
    "analyzeHtmlLowQ": "Q<20",
    "analyzeHtmlMeanLength": "Средняя длина рида",
    "analyzeHtmlMeanQ": "Среднее качество",
    "analyzeHtmlN": "Содержание N",
    "analyzeHtmlPassed": "Прошли фильтрацию",
    "analyzeHtmlPathLabel": "Исходный путь",
    "analyzeHtmlProcessed": "Просканировано ридов",
    "analyzeHtmlQ20to29": "Q20–29",
    "analyzeHtmlQ30": "Q≥30",
    "analyzeHtmlQualityDist": "Распределение качества (гистограмма Q)",
    "analyzeHtmlQualityTitle": "Статистика качества секвенирования (исходные риды в диапазоне)",
    "analyzeHtmlRank": "Ранг",
    "analyzeHtmlReadLength": "Длина рида",
    "analyzeHtmlReads": "Число ридов",
    "analyzeHtmlResultTitle": "Результаты анализа",
    "analyzeHtmlScopeFile": "Весь файл",
    "analyzeHtmlScopeLabel": "Диапазон анализа",
    "analyzeHtmlScopeLoaded": "Только загруженное",
    "analyzeHtmlSequence": "Последовательность",
    "analyzeHtmlSkipped": "Некорректные записи",
    "analyzeHtmlTitle": "Отчёт об анализе последовательностей",
    "analyzeHtmlTopChartTitle": "Гистограмма Top 20 частых последовательностей (по частоте)",
    "analyzeHtmlTopHint": "Прошедшие фильтрацию риды объединены в уникальные последовательности по полному совпадению, всего {{total}} ({{sci}}), отсортированы по убыванию частоты; в таблице первые {{top}}; доля = частота / общее число прошедших фильтрацию ридов.",
    "analyzeHtmlTopTitle": "Топ {{top}} частых последовательностей",
    "analyzeHtmlTotalUnknown": "Загружено частично: загружено {{loaded}} (общее число в файле неизвестно)",
    "analyzeHtmlUnique": "Уникальные последовательности (unique sequences)",
    "analyzeHtmlVersionLabel": "Версия",
    "analyzeOpenFolder": "Открыть папку",
    "analyzeOpenFolderAskDesc": "Отчёт анализа сохранён в:",
    "analyzeOpenFolderAskTitle": "Открыть папку экспорта?",
    "analyzeProgressScan": "Просканировано {{done}} / {{total}}",
    "analyzeProgressScanNoTotal": "Просканировано {{done}}",
    "analyzeResultCounted": "Прошли фильтр",
    "analyzeResultCountedHint": "Число ридов, прошедших нормализацию направления, окно обрезки и все фильтры ридов и учтённых в статистике уникальных последовательностей",
    "analyzeResultFailedPrefix": "Не прошли:",
    "analyzeResultProcessed": "Просканированные риды",
    "analyzeResultProcessedHint": "Число ридов, фактически просканированных в области анализа (парный файл считается как 1 пара)",
    "analyzeResultProcessedPaired": "Просканированные пары ридов",
    "analyzeResultUnique": "Уникальные последовательности (unique sequences)",
    "analyzeResultUniqueHint": "Синоним unique sequences в NGS-анализе: прошедшие фильтр риды объединяются по полному совпадению последовательностей; одинаковыми по длине и каждому основанию считаются одной уникальной последовательностью; это число — общее количество уникальных последовательностей, а частота каждой — в таблице отчёта",
    "analyzeScopeFile": "Весь файл (все риды)",
    "analyzeScopeLabel": "Область анализа",
    "analyzeScopeLoaded": "Только загруженные ({{count}})",
    "analyzeTitle": "Анализ последовательностей",
    "anchorLeftFeature": "Левый якорь",
    "anchorRightFeature": "Правый якорь",
    "annotAaTip": "{{aa}} · {{codon}} · столбцы {{start}}–{{end}}",
    "annotCdsAa": "{{count}} а.к.",
    "annotCdsExt": "Область продолжения рамки считывания (нажмите для выбора)",
    "annotCdsNoStop": "Стоп-кодон не найден, пунктир продолжается до конца",
    "annotCdsStop": "Стоп-кодон {{codon}} @ столбец {{col}}",
    "annotHint": "Добавить временную аннотацию Feature к собранной последовательности выбранной ячейки (отображается только в этой ячейке, в файл не записывается). Выберите последовательность и щёлкните правой кнопкой «Добавить временную локальную аннотацию» или нажмите эту кнопку.",
    "annotRange": "Столбцы {{start}}–{{end}}",
    "askModeDesc": "С каким типом данных секвенирования открыть {{name}}?",
    "askModeTitle": "Тип секвенирования",
    "consensus": "Сборка",
    "countMismatch": "Число R1/R2 не совпадает, пары по меньшему концу",
    "countingTotal": "Подсчёт общего числа…",
    "crossCursor": "Сквозной курсор",
    "crossCursorHint": "При включении курсор при выборе последовательности охватывает всё окно по высоте: одна и та же область столбцов подсвечивается одновременно в нескольких ячейках (удобно для сравнения нескольких последовательностей), при вертикальной прокрутке курсор остаётся сквозным. Щёлкните по пустому месту для снятия выделения; правая кнопка сворачивает обратно в одну ячейку (контекстное меню только для одной ячейки).",
    "ctxAddAnnot": "Добавить временную локальную аннотацию…",
    "ctxCopyConsensus": "Копировать собранную последовательность",
    "ctxCopyR1": "Копировать последовательность R1",
    "ctxCopyR2": "Копировать последовательность R2",
    "ctxCopyRaw": "Копировать исходный FASTQ",
    "ctxCopySelection": "Копировать выбранную последовательность ({{count}} п.н.)",
    "ctxDeleteAnnot": "Удалить аннотацию",
    "ctxEditAnnot": "Редактировать аннотацию…",
    "detectedMate": "Обнаружен парный файл: {{name}} (предварительно выбран в диалоге выбора файла)",
    "expandFull": "Показать полностью 100%",
    "expandMore10": "Показать ещё 10%",
    "exportCancel": "Отменить экспорт",
    "exportCancelled": "Экспорт отменён",
    "exportConfirm": "Экспорт",
    "exportContentLabel": "Содержимое экспорта",
    "exportContentMerged": "Собранные последовательности (один файл для single-end)",
    "exportContentMergedHint": "Каждая пара ридов объединяется по перекрытию в одну последовательность и экспортируется (в том же формате, что и строка сборки в представлении, в области перекрытия берётся R1); выходной файл — {имя_файла}_merged.fastq.gz. Пары без перекрытия соединяются R1 и обратно-комплементарным R2 встык.",
    "exportContentPaired": "Парные (два файла R1 / R2)",
    "exportDesc": "Будут экспортированы текущие загруженные {{count}} ридов (при заданных фильтрах — только прошедшие фильтр записи) в сжатый gzip FASTQ ({{files}}). Введите имя файла, затем выберите папку сохранения.",
    "exportDescFile": "Файл будет просканирован заново, ко всем ридам будут применены текущие условия обрезки/фильтрации (если не заданы — экспортируются все риды) и результат экспортируется в сжатый gzip FASTQ ({{files}}). Введите имя файла, затем выберите папку сохранения.",
    "exportDone": "Экспортировано {{count}} ридов ({{files}}) в {{dir}}",
    "exportFailed": "Не удалось экспортировать обрезанные данные",
    "exportFilesMerged": "Собранные single-end",
    "exportHint": "Экспорт ридов в сжатые gzip FASTQ-файлы (для парных — два .fastq.gz R1 и R2, для single-end — только R1; для парных также можно экспортировать собранные single-end последовательности). При заданных обрезке/фильтрации экспортируются только прошедшие риды, иначе — все. По умолчанию экспортируется весь файл, можно также только текущие загруженные риды.",
    "exportPh": "Имя файла (без расширения)",
    "exportProgressCompress": "Сжатие…",
    "exportProgressScan": "Обработано {{done}} / {{total}}",
    "exportProgressScanNoTotal": "Обработано {{done}}",
    "exportScopeFile": "Весь файл (все риды)",
    "exportScopeFileReady": "Доступно сейчас",
    "exportScopeLabel": "Область экспорта",
    "exportScopeLoaded": "Только загруженные ({{count}})",
    "exportScopeLoadedWaiting": "Идёт фильтрация, будет доступно по завершении",
    "exportTitle": "Экспорт данных",
    "exportTrim": "Экспортировать обработанные последовательности",
    "filterApply": "Применить фильтр",
    "filterAvgQual": "Среднее качество (0=выкл.)",
    "filterComplexity": "Фильтр сложности",
    "filterComplexityShort": "Сложность≥{{th}}",
    "filterComplexityTh": "Порог (0–1)",
    "filterHint": "Фильтр ридов в стиле fastp, оценивает обрезанные риды и одновременно влияет на фильтрацию в представлении и экспорт: для парных должны пройти оба конца. Фильтр качества: рид отбрасывается, если доля некачественных оснований (ниже порога) превышает предел, среднее качество недостаточно или слишком много оснований N; фильтр длины: отбрасываются слишком короткие/длинные после обрезки; фильтр сложности: отбрасываются риды с долей различий между соседними основаниями ниже порога (низкая сложность).",
    "filterLabel": "Фильтр",
    "filterLength": "Фильтр длины",
    "filterLengthMinShort": "Длина≥{{min}}",
    "filterLengthShort": "Длина {{min}}–{{max}}",
    "filterMaxLen": "Макс. длина (0=выкл.)",
    "filterMinLen": "Мин. длина (bp)",
    "filterNBaseLimit": "Лимит оснований N",
    "filterNote": "Сначала обрезка, затем фильтрация; для парных чтений должны пройти оба",
    "filterOverlap": "Фильтр перекрытия (парные)",
    "filterOverlapMismatch": "Макс. доля несовпадений в перекрытии",
    "filterOverlapMismatchHint": "Пары, у которых доля несовпадений в оптимально выровненном перекрытии превышает это значение, отбрасываются целиком (требуется высокая идентичность перекрытия); по умолчанию 25% = верхний предел поиска перекрытия, т.е. без дополнительной фильтрации",
    "filterOverlapMismatchShort": "Несовпадения в перекрытии ≤{{pct}}%",
    "filterPolyG": "Обрезка polyG на конце",
    "filterPolyGShort": "polyG≥{{n}}",
    "filterPolyMinLen": "Мин. длина",
    "filterPolyX": "Обрезка polyX на конце",
    "filterPolyXShort": "polyX≥{{n}}",
    "filterQCutShort": "Скользящее окно ≥Q{{q}}{{mode}}",
    "filterQualifiedQual": "Порог качества (Q)",
    "filterQuality": "Фильтр по качеству",
    "filterQualityCut": "Обрезка по качеству скользящего окна",
    "filterQualityCutFront": "5′-конец",
    "filterQualityCutMeanQ": "Среднее Q ≥",
    "filterQualityCutRight": "Агрессивный режим",
    "filterQualityCutRightHint": "Остановка при первом окне низкого качества с сохранением качественных оснований внутри окна; при включении заменяет обрезку с 3′-конца (fastp -2/--cut_right)",
    "filterQualityCutTail": "3′-конец",
    "filterQualityCutWindow": "Окно (bp)",
    "filterQualityShort": "Качество≥{{q}}",
    "filterRequireOverlap": "Оставлять только успешно объединённые пары",
    "filterRequireOverlapHint": "Пары, у которых перекрытие не найдено и выполнено прямое соединение конец-в-конец, отбрасываются целиком (соответствует поведению fastp --merge, выводящему только успешно объединённые чтения)",
    "filterRequireOverlapShort": "Только объединённые пары",
    "filterReset": "Сбросить",
    "filterTitle": "Фильтр чтений",
    "filterTrim": "Обрезка фиксированной длины",
    "filterTrimFront1": "Начало R1",
    "filterTrimFront2": "Начало R2",
    "filterTrimFrontAbbr": "Нач.",
    "filterTrimMaxLen": "Длина усечения (0=выкл.)",
    "filterTrimMaxLen1": "Усечение R1 (0=выкл.)",
    "filterTrimMaxLen2": "Усечение R2 (0=выкл.)",
    "filterTrimMaxLenHint": "После остальных обрезок чтения усекаются до этой длины (fastp --max_len; 0=без усечения)",
    "filterTrimShort": "{{v}}",
    "filterTrimTail1": "Конец R1",
    "filterTrimTail2": "Конец R2",
    "filterTrimTailAbbr": "Кон.",
    "filterUnqualifiedPct": "Лимит некачественных (%)",
    "footerLoadedOf": "Загружено {{loaded}} / {{total}}",
    "footerReads": "{{count}} шт.",
    "globalSearchCapped": "Достигнут предел отображения совпадений, показаны только первые {{count}}",
    "globalSearchHint": "Глобальный поиск (по загруженным чтениям): ДНК — поиск строки и её обратного комплемента в объединённой последовательности и строках R1/R2 каждого чтения; АК — поиск по объединённой последовательности с трансляцией в 6 рамках. Нажмите Enter для поиска, ←/→ или кнопки для перехода между совпадениями; текущее совпадение выделяется и доступно для копирования через контекстное меню или установки как якорь обрезки.",
    "globalSearchPlaceholderAa": "Поиск по 6 рамкам в загруженных чтениях (Enter)…",
    "globalSearchPlaceholderDna": "Поиск в загруженных чтениях (Enter)…",
    "globalSearchSearching": "Поиск…",
    "hideQual": "Скрыть качество секвенирования",
    "lastMate": "Последний парный файл: {{name}}",
    "loadAll": "Загрузить все",
    "loadMore10": "Загрузить ещё 10%",
    "loadMoreHint": "Каждый раз добавляется 10% от общего числа записей в файле (не менее 1), можно нажимать повторно до полной загрузки. Для анализа последовательностей полная загрузка не требуется — «Анализ последовательностей» по умолчанию сканирует весь файл.",
    "loading": "Разбор · загружено {{count}}",
    "mateEmptyError": "Проверка пары не пройдена: из файла не удалось извлечь корректные чтения ({{reason}}), выберите заново.",
    "mateMismatchError": "Проверка пары не пройдена: ID первых чтений в файлах не совпадают ({{r1}} vs {{r2}}), это не парные чтения одного образца, выберите другой файл.",
    "modePaired": "Парное секвенирование (выбрать второй файл вручную)",
    "modePairedPickHint": "Выбрать R2 вручную",
    "modePairedReuseHint": "Использовать последнюю пару",
    "modePairedManual": "Парное секвенирование (указать файл вручную)",
    "modePairedUseLast": "Парное секвенирование (использовать последнюю пару)",
    "modeSingle": "Одиночное секвенирование",
    "multiAutoPair": "Автоподбор в один клик",
    "multiAutoPairDone": "Автоматически сопоставлено {{count}} пар по ID первого чтения, остальные оставлены одиночными",
    "multiAutoPairFailed": "Автосопоставление не удалось, сопоставьте вручную",
    "multiAutoPairNone": "Не найдено комбинаций для автосопоставления, сопоставьте вручную",
    "multiAutoPairing": "Сопоставление…",
    "multiPairCount": "Пара {{index}}",
    "multiPairDesc": "Следующие файлы NGS по умолчанию открываются как одиночные чтения; перетащите два файла, которые нужно объединить в пару, поочерёдно вправо (первый становится R1). При отмене эти файлы не будут открыты.",
    "multiPairDropR1": "Перетащите файл R1…",
    "multiPairEmptyHint": "Перетащите файлы сюда, два файла образуют пару",
    "multiPairIncomplete": "Есть незавершённые пары: перетащите второй файл или верните уже перетащенный файл влево",
    "multiPairNew": "Новая пара: перетащите файл как R1",
    "multiPairTitle": "Сопоставление файлов NGS",
    "multiPairWaiting": "Перетащите второй файл…",
    "multiPairedTitle": "Парное сопоставление",
    "multiPrefillAndAutoNote": "Предзаполнено {{prefill}} пар по последнему использованному сопоставлению, автоматически сопоставлено ещё {{count}} пар",
    "multiPrefillNote": "Предзаполнено {{count}} пар по последнему использованному сопоставлению",
    "multiSingleEmptyHint": "Все файлы сопоставлены",
    "multiSingleTitle": "Открыть как одиночные",
    "multiValidating": "Проверка пар…",
    "noOverlap": "Перекрытие не найдено, концы стыкуются вплотную",
    "overlap": "Перекрытие {{len}} п.н. · совпадение {{pct}}%",
    "paired": "Парное секвенирование",
    "plainFileHint": "Этот файл FASTQ — распакованный текст. GenePad может открывать сжатые файлы .fastq.gz/.fq.gz напрямую, в следующий раз распаковывать вручную не нужно.",
    "plainFileHintTitle": "Без распаковки",
    "qualDesc": "Цветовая шкала качества секвенирования FASTQ (по значению Q: ≥30 зелёный / 20–29 янтарный / <20 красный); после скрытия строка качества сворачивается в каждой ячейке",
    "rawToggle": "Исходные данные",
    "readLength": "Длина прочтения",
    "reads": "Число прочтений",
    "reverseReads": "Обратить последовательность",
    "reverseReadsHint": "Отобразить видимую однострочную последовательность (одночтение или текущую строку при скрытом парном конце) целиком в обратной комплементарной ориентации: основания в обратном порядке и комплементарны, качество в обратном порядке. При включённом определении ориентации обрезки уже нормализованные прочтения будут обращены повторно относительно текущего состояния; выделение/временные аннотации/поиск пересчитываются по новой ориентации (временные аннотации и поиск очищаются); экспорт/сводка не затрагиваются.",
    "rfAaTip": "{{aa}} · {{codon}} · столбец {{col}} · рамка {{frame}}",
    "rfHideButton": "Скрыть рамки считывания",
    "rfHint": "Для собранной последовательности каждой ячейки (консенсус парных / одиночное R1) показать трансляцию во всех шести рамках согласно выбранной рамке считывания: прямые рамки транслируются напрямую, обратные — через обратную комплементарную цепь; буквы аминокислот выравниваются по среднему основанию кодона, старт-кодоны зелёные, стоп-кодоны красные (в том же формате, что и отображение рамок считывания в представлении Sequence плазмиды).",
    "rfShowButton": "Показать рамки считывания",
    "rfStartSuffix": "старт-кодон",
    "rfStopSuffix": "стоп-кодон",
    "sameFileError": "Выбранный файл второго конца совпадает с основным файлом, выберите заново.",
    "searchClose": "Закрыть поиск",
    "searchCount": "{{idx}} / {{count}}",
    "searchHintAa": "Поиск по аминокислотам: собранная последовательность транслируется во всех 6 рамках считывания (включая обратные комплементарные рамки), затем выполняется поиск; отображаются только строки рамок с совпадениями, соответствующие основания подсвечиваются по направлению рамки.",
    "searchHintDna": "Поиск по ДНК: фрагмент оснований ищется одновременно в собранной последовательности текущей ячейки и в трёх строках R1/R2 (искомый запрос и его обратный комплемент).",
    "searchNext": "Следующее совпадение",
    "searchNoMatch": "Совпадений нет",
    "searchPlaceholder": "Последовательность оснований…",
    "searchPlaceholderAa": "Аминокислоты (например, MGH…) или с *",
    "searchPrev": "Предыдущее совпадение",
    "setAsTrim": "Задать как якорь обрезки…",
    "showMate": "Показать парный конец (R2)",
    "showQual": "Показать качество секвенирования",
    "single": "Одиночное секвенирование",
    "skipped": "Пропущено {{count}} неполных записей",
    "swapReads": "Поменять R1/R2",
    "swapReadsHint": "Поменять отображение парных концов: пересобрать перекрытие относительно R2 как референсной цепи, собранная последовательность станет в ориентации антисмысловой цепи; в верхней строке отображается исходная последовательность R2 (5′→3′), в нижней — R1 в обратном порядке, метки меняются местами. При включённом определении ориентации обрезки нормализованные ориентации отдельных прочтений могут различаться (смешанные R1/R2 и R2/R1), этот переключатель меняет местами каждую ячейку относительно её текущего состояния; выделение/временные аннотации/поиск пересчитываются по новой ориентации (временные аннотации и поиск очищаются); экспорт/сводка не затрагиваются.",
    "trimApply": "Обрезать",
    "trimClear": "Очистить этот якорь",
    "trimDone": "Прошло {{pass}} / {{total}}",
    "trimHint": "Задать левый/правый якоря обрезки на собранной последовательности; сохраняется последовательность от начала левого якоря до конца правого якоря (включая якоря). Автоматически определяется ориентация последовательности: прочтения, противоположные якорю, для парных концов меняют R1/R2 местами, для одиночных — обратно комплементируются, затем обрезаются (ориентация последовательности в библиотеках с лигазными адаптерами не определена; для одиночного якоря ориентация определяется по «совпадению якоря как есть»), на обоих концах окна добавляются метки «левый/правый якорь». Если у якоря несколько позиций, левый берётся наиболее близко к 5′-концу, правый — наиболее близко к 3′-концу; прочтения, в которых любой заданный якорь не найден, отфильтровываются целиком, в окне свойств отображается число прошедших.",
    "trimLabel": "Якорь обрезки",
    "trimLeftPh": "Левый конец (5′)",
    "trimMirrored": "Зеркальное отображение",
    "trimMirroredHint": "Переключатель «Поменять R1/R2» или «Обратить последовательность» включён, текущее отображение — зеркальное относительно нормализованной ориентации; повторное применение/очистка обрезки или фильтрации сбрасывает этот переключатель.",
    "trimProgress": "Фильтрация · прошло {{pass}} / оценено {{done}}",
    "trimRightPh": "Правый конец (3′)",
    "trimSideDesc": "К какому концу отнести выбранный фрагмент {{count}} п.н. в качестве якоря обрезки?",
    "trimSideLeft": "Левый конец (5′)",
    "trimSideReverse": "Обратный комплемент",
    "trimSideReverseHint": "Сначала обратить и комплементировать фрагмент на месте, затем задать как якорь (ориентация якоря определяется по входному направлению; для фрагментов антисмысловой цепи сначала выполните обращение)",
    "trimSideRight": "Правый конец (3′)",
    "trimSideTitle": "Положение якоря обрезки",
    "truncated": "Файл большой, загружены только первые {{count}} прочтений",
    "truncatedAnalyzeNote": "Для анализа последовательностей не требуется загружать весь файл; «Анализ последовательностей» по умолчанию анализирует весь файл",
    "truncatedTotal": "Файл большой, загружены первые {{count}} из {{total}} прочтений",
    "vizToggle": "Графическое представление"
  },
  "fastqProperties": {
    "bases": "Всего оснований",
    "computing": "Вычисление статистики…",
    "encoding": "Кодировка качества",
    "fileR1": "Файл (R1)",
    "fileR2": "Парный файл (R2)",
    "filterFail_anchor": "Якорь не найден {{count}}",
    "filterFail_complexity": "Слишком низкая сложность {{count}}",
    "filterFail_lengthLong": "Слишком большая длина {{count}}",
    "filterFail_lengthShort": "Слишком малая длина {{count}}",
    "filterFail_nBase": "Слишком много оснований N {{count}}",
    "filterFail_noOverlap": "Нет перекрытия {{count}}",
    "filterFail_overlapMismatch": "Слишком много несовпадений в перекрытии {{count}}",
    "filterFail_quality": "Неудовлетворительное качество {{count}}",
    "gcContent": "Содержание GC",
    "group": "Группа статистики",
    "groupTotal": "Всего",
    "meanQuality": "Среднее качество",
    "meanQualityTip": "Оценка качества Phred (декодирование Phred+33): чем выше Q, тем надёжнее основание, вероятность ошибки = 10^(-Q/10) — Q20=1 %, Q30=0,1 %, Q40=0,01 %. В данных Illumina среднее значение обычно Q30–37, а качество естественно снижается к концу прочтения; среднее Q≥30 считается высококачественным результатом секвенирования, отдельные основания с низким Q или снижение к концу — нормальное явление и не означают неудачу секвенирования.",
    "meanReadLength": "Средняя длина прочтения",
    "mode": "Тип секвенирования",
    "nContent": "Содержание N",
    "qualityDist": "Распределение качества",
    "readLength": "Длина прочтения",
    "title": "Свойства FASTQ",
    "trimFilter": "Обрезка и фильтрация",
    "trimFilterDone": "Прошло {{pass}} / {{total}}",
    "trimFilterEval": "Прошло {{pass}} (оценено {{done}}/{{total}})"
  },
  "feature": {
    "actions": "Действия",
    "add": "Добавить",
    "addFeature": "Добавить аннотацию",
    "addSegment": "+ Добавить сегмент",
    "cancel": "Отмена",
    "color": "Цвет",
    "colorPlaceholder": "#RRGGBB",
    "customKeyPlaceholder": "Имя квалификатора",
    "customQualifier": "Другой…",
    "derivedRange": "Вычисляется автоматически по сегментам",
    "direction": "Направление",
    "editFeature": "Редактировать аннотацию",
    "end": "Конец",
    "featureName": "Название аннотации",
    "forward": "→ Прямая",
    "hide": "Скрыть",
    "hideInMap": "Скрыть на карте и в последовательности",
    "hideQualifiers": "Свернуть квалификаторы",
    "length": "Длина",
    "name": "Название",
    "noFeatures": "Аннотации не найдены",
    "noQualifiers": "Нет квалификаторов",
    "none": "— Нет",
    "note": "Примечание",
    "notePlaceholder": "Дополнительное примечание…",
    "position": "Позиция",
    "qualifierCount": "Квалификаторы ({{count}})",
    "qualifierHint": "Выбрать, изменить, сохранить",
    "qualifierValuePlaceholder": "Значение {{key}}",
    "qualifiers": "Квалификаторы",
    "range": "Диапазон",
    "removeSegment": "Удалить сегмент",
    "reverse": "← Обратная",
    "save": "Сохранить",
    "search": "Поиск аннотаций…",
    "segmentColor": "Цвет",
    "segmentName": "Название",
    "segmentNavNext": "Перейти к следующему сегменту",
    "segmentNavPrev": "Перейти к предыдущему сегменту",
    "segments": "Сегменты",
    "selectQualifierFirst": "Сначала выберите квалификатор",
    "show": "Показать",
    "showAminoAcids": "Показывать аминокислоты",
    "showInMap": "Показывать на карте и в последовательности",
    "showInSequence": "Показать аннотацию в представлении последовательности",
    "showQualifiers": "Развернуть квалификаторы",
    "showingCount": "Показано {{count}} / {{total}} аннотаций",
    "start": "Начало",
    "strand": "Цепь",
    "type": "Тип"
  },
  "featureDeleteChoice": {
    "message": "Выделенный диапазон ({{count}} п.н.) полностью совпадает с аннотацией «{{name}}». Удалить только запись аннотации или удалить этот участок последовательности вместе с аннотацией?",
    "messageMultiple": "Выделенный диапазон ({{count}} п.н.) полностью совпадает с {{featureCount}} аннотациями ({{names}}). Удалить только записи аннотаций или удалить этот участок последовательности вместе с этими аннотациями?",
    "selectedFeatureOnly": "Удалить только «{{name}}»",
    "selectedHint": "Вы выбрали «{{name}}».",
    "sequenceAndFeature": "Удалить последовательность и аннотацию",
    "title": "Удаление аннотации"
  },
  "footer": {
    "bp": "п.н.",
    "circular": "Кольцевая",
    "gc": "GC:",
    "linear": "Линейная",
    "plasmidTagsFailed": "Не удалось обновить метки",
    "plasmidTagsSkipped": "Автоматические метки отключены",
    "plasmidTagsUpdated": "Метки плазмиды обновлены",
    "selected": "Выбрано:",
    "updatingPlasmidInfo": "Обновление информации о плазмиде"
  },
  "historyPanel": {
    "autoCollapsed": "Глубокая история автоматически свёрнута",
    "cancel": "Отмена",
    "circular": "Кольцевая",
    "classicLayout": "Классический макет",
    "classicTopLeft": "Классический макет (сейчас сверху слева)",
    "clear": "Очистить историю",
    "clearConfirm": "Очистить всю историю?",
    "close": "Закрыть панель истории",
    "collapseBranchHint": "Щёлкните, чтобы свернуть",
    "confirm": "Подтвердить",
    "current": "Текущее состояние",
    "empty": "История пуста",
    "emptyDesc": "Изменения последовательности автоматически записываются сюда; после сохранения в файл .gen или .dna здесь можно просмотреть историю сохранённых версий.",
    "expandBranchHint": "Щёлкните, чтобы развернуть ещё {{count}} записей истории",
    "expandHint": "Щёлкните по узлу, чтобы развернуть дальнейшую историю",
    "exportFailed": "Не удалось экспортировать изображение истории",
    "exportImage": "Экспортировать изображение истории",
    "linear": "Линейная",
    "loadFailed": "Не удалось загрузить историю изменений; выполнен переход на правки текущей сессии.",
    "loading": "Загрузка истории изменений…",
    "newestAtBottom": "Новые снизу",
    "nodeCount": "{{count}} узлов",
    "op": {
      "amplifyFragment": "ПЦР-амплификация",
      "changeMethylation": "Изменение метилирования",
      "changePhosphorylation": "Изменение фосфорилирования",
      "changeStrandedness": "Изменение числа цепей",
      "changeTopology": "Изменение топологии",
      "digest": "Рестрикция",
      "flip": "Обратное комплементирование",
      "gatewayBPCloning": "Gateway BP",
      "gatewayLRCloning": "Gateway LR",
      "gibsonAssembly": "Сборка Гибсона",
      "goldenGateAssembly": "Сборка Golden Gate",
      "inFusionCloning": "Клонирование In-Fusion",
      "insert": "Вставка",
      "insertFragment": "Вставка фрагмента",
      "insertFragments": "Вставка нескольких фрагментов",
      "invalid": "Исходный файл",
      "ligateFragments": "Лигирование фрагментов",
      "makeDna": "Создать ДНК",
      "makeProtein": "Создать белок",
      "makeRna": "Создать РНК",
      "newFileFromSelection": "Сохранить выделенное как новый файл",
      "primerDirectedMutagenesis": "Сайт-направленный мутагенез",
      "remove": "Удаление",
      "replace": "Замена",
      "restrictionCloning": "Рестрикционное клонирование",
      "taCloning": "TA-клонирование",
      "topoCloning": "TOPO-клонирование",
      "unknown": "Операция"
    },
    "openSnapshot": "Открыть этот снимок в новой вкладке/окне",
    "openSnapshotShort": "Открыть снимок",
    "primers": "Праймеры",
    "prune": "Обрезать эту ветвь",
    "pruneAdvice": "История превысила 50 записей; рекомендуется выполнить обрезку",
    "pruneConfirm": "Обрезать историю «{{name}}» и всех входов того же уровня?",
    "snapshotCount": "{{count}} снимков",
    "snapshotHint": "Нажмите на снимок, чтобы открыть его в отдельном документе",
    "snapshotRestoreFailed": "Не удалось записать снимок во временный файл, документ не открыт.",
    "title": "История"
  },
  "map": {
    "allFeatures": "Все",
    "circularMap": "Переключить на кольцевое отображение",
    "cuts": "Сайты рестрикции",
    "cutsDisabled": "Слишком много сайтов рестрикции ({{count}}), отображение отключено во избежание зависания карты. Уменьшите набор ферментов или отфильтруйте схему",
    "editDisplayName": "Изменить отображаемое имя",
    "ellipseWidthAxis": "Перетащите боковые маркеры, чтобы изменить ширину кольца меток; можно превысить ограничение по умолчанию",
    "enzymes": "Рестриктазы",
    "features": "Таблица аннотаций",
    "gene": "Карта",
    "hideCuts": "Скрыть сайты рестрикции ({{count}})",
    "hideEnzymeFilterRow": "Свернуть строку фильтра набора ферментов/схемы",
    "hideLabels": "Скрыть названия аннотаций ({{count}})",
    "hidePrimers": "Скрыть праймеры ({{count}})",
    "labels": "Названия аннотаций",
    "linearMap": "Переключить на линейное отображение",
    "orfHide": "Скрыть",
    "orfPredict": "Предсказать",
    "primers": "Таблица праймеров",
    "resetView": "Сбросить вид",
    "rfHide": "Скрыть рамки считывания",
    "rfShow": "Показать рамки считывания",
    "showAllFeatures": "Показать все аннотации",
    "showCuts": "Показать сайты рестрикции ({{count}})",
    "showEnzymeFilterRow": "Развернуть строку фильтра набора ферментов/схемы",
    "showLabels": "Показать названия аннотаций ({{count}})",
    "showPrimers": "Показать праймеры ({{count}})",
    "showTwoRings": "Показать только две кольцевые аннотации"
  },
  "orf": {
    "add": "Добавить",
    "cancel": "Отмена",
    "customCodon": "Пользовательский кодон",
    "description": "Настройка параметров предсказания открытых рамок считывания.",
    "forward": "Прямая (+)",
    "hideReadingFrames": "Скрыть рамки считывания",
    "minORFLength": "Минимальная длина ORF (аминокислоты)",
    "noCodon": "Выберите хотя бы один стартовый кодон",
    "reverse": "Обратная (-)",
    "show": "Показать",
    "showReadingFrames": "Показать рамки считывания",
    "startCodonMode": "Стартовый кодон",
    "startCodons": "Стартовые кодоны",
    "strandDirection": "Направление цепи",
    "title": "Предсказание ORF"
  },
  "plasmidLibrary": {
    "about": "Библиотека плазмид автоматически записывает файлы плазмид, которые вы открывали в этой программе. Вы также можете добавить файлы вручную с помощью кнопки «Добавить файл». Записи в библиотеке содержат только индексную информацию и не копируют и не изменяют ваши исходные файлы.",
    "addFile": "Добавить файл",
    "addTagPlaceholder": "Введите тег и нажмите Enter",
    "addToProject": "Добавить в проект",
    "addToProjectEmpty": "Нет проектов. Сначала создайте проект в разделе «Управление файлами» слева.",
    "aiSetupConfigure": "Настроить ИИ",
    "aiSetupDismiss": "Больше не напоминать",
    "aiSetupHint": "ИИ ещё не настроен. После настройки вы сможете использовать ИИ-ассистента и автоматически создавать теги файлов при сканировании.",
    "batchCopy": "Копировать в папку",
    "batchDelete": "Удалить записи",
    "batchDeleteConfirm": "Удалить выбранные записи ({{count}} шт.) из библиотеки? (Исходные файлы не будут удалены)",
    "batchRefresh": "Массовое обновление ИИ",
    "batchRefreshAll": "Пересоздать все",
    "batchRefreshMissing": "Обновить только без тегов",
    "batchRefreshSubmitted": "Отправлено на генерацию плазмид: {{count}}. По завершении список обновится автоматически.",
    "batchRefreshing": "Массовая генерация...",
    "belongingProjects": "Проекты",
    "cleanupMissing": "Очистить отсутствующие",
    "cleanupMissingConfirm": "Удалить из библиотеки записи о {{count}} отсутствующих файлах? (Исходные файлы не будут удалены)",
    "clearTags": "Сбросить фильтры ({{count}})",
    "columns": {
      "lastOpened": "Последнее открытие",
      "name": "Имя файла",
      "path": "Путь",
      "tags": "Теги"
    },
    "contextOpen": "Открыть",
    "contextOpenFolder": "Открыть содержащую папку",
    "contextOpenWith": "Открыть с помощью другой программы",
    "contextOpenWithNone": "Доступные приложения не найдены",
    "contextRemove": "Убрать из библиотеки",
    "copyPath": "Копировать путь",
    "createTag": "Создать тег «{{tag}}»",
    "deselectAll": "Снять выделение",
    "detailMissing": "Файл, на который указывает эта запись, отсутствует на диске. Возможно, путь был перемещён или файл удалён; запись сохранена в библиотеке.",
    "empty": "Нет подходящих плазмид",
    "emptyHint": "Библиотека пуста. Нажмите «Сканировать папку», выберите каталог — программа рекурсивно просканирует его на наличие файлов плазмид и добавит их в библиотеку.",
    "fileManager": {
      "addedToProject": "Добавлено файлов в «{{name}}»: {{count}}",
      "collapse": "Свернуть управление файлами",
      "createConfirm": "Создать",
      "createdProject": "Создан проект «{{name}}»",
      "deleteConfirm": "Удалить «{{name}}» вместе со всеми вложенными папками и записями файлов? Записи в библиотеке и исходные файлы затронуты не будут.",
      "deleteFolder": "Удалить папку проекта",
      "deletedProject": "Удалён проект «{{name}}»",
      "dragHint": "Нажмите на папку проекта, чтобы отфильтровать список; перетащите файлы справа (можно выбрать несколько) в папку проекта для категоризации или выберите несколько и нажмите «Добавить в проект».",
      "emptyPaths": "В библиотеке нет файлов. После сканирования папки или открытия файлов они отобразятся здесь по исходным путям.",
      "emptyProjects": "Проектов пока нет. Нажмите «Новый проект» выше, чтобы создать.",
      "expand": "Развернуть управление файлами",
      "fileCount": "{{count}} файлов",
      "nameHint": "Папки проектов используются для категоризации файлов по проектам; один файл может принадлежать нескольким проектам.",
      "namePlaceholder": "Введите имя папки…",
      "nameRequired": "Имя не может быть пустым",
      "newProject": "Новый проект",
      "newSubfolder": "Новый подпроект",
      "parentHint": "Подпроект будет создан в «{{path}}».",
      "removedFromProject": "Удалено файлов из «{{name}}»: {{count}}",
      "renameConfirm": "Переименовать",
      "renameFolder": "Переименовать",
      "renamedProject": "Переименовано в «{{name}}»",
      "rootAll": "Все файлы",
      "rootProjects": "Все проекты",
      "tabPaths": "Исходные пути",
      "tabProjects": "По проектам",
      "teamShared": "Общий доступ команды",
      "teamSharedHint": "Общий доступ команды: файлы в общей папке сервера команды. Нажмите, чтобы просмотреть и скачать в библиотеку.",
      "title": "Управление файлами",
      "unassigned": "Без категории",
      "unassignedHint": "Без категории: сюда автоматически попадают файлы, не относящиеся ни к одному проекту."
    },
    "fileMissing": "Файл отсутствует",
    "fileMissingDisabled": "Файл не существует, невозможно открыть",
    "fileName": "Имя файла",
    "filePath": "Путь",
    "folderFilterDir": "Папка: {{name}}",
    "folderFilterProject": "Проект: {{name}}",
    "infoPanel": {
      "collapse": "Свернуть панель сведений",
      "expand": "Развернуть панель сведений",
      "title": "Сведения и теги"
    },
    "matchAll": "Совпадение по всем",
    "missingCount": "Отсутствует файлов: {{count}}",
    "noSelection": "Выберите плазмиду слева, чтобы просмотреть сведения",
    "notInAnyProject": "Не входит ни в один проект",
    "openInFolder": "Показать в папке",
    "openInProgram": "Открыть в этой программе",
    "plasmidCount": "{{count}} из {{total}}",
    "regenerateTags": "Сгенерировать теги с помощью ИИ",
    "removeRecord": "Удалить запись (исходный файл не будет удалён)",
    "removeTag": "Удалить тег",
    "scanDirectory": "Сканировать папку",
    "scanResult": "Просканировано файлов: {{scanned}}, добавлено: {{added}}, пропущено без изменений: {{unchanged}}, {{pending}} будут обработаны в фоне с генерацией тегов.",
    "scanning": "Сканирование...",
    "searchPlaceholder": "Поиск по имени файла или тегу...",
    "selectAll": "Выбрать все",
    "selectItem": "Выбрать {{name}}",
    "selectedCount": "Выбрано: {{count}}",
    "tagCloud": "Все теги",
    "tagCloudEmpty": "Тегов пока нет. Они появятся здесь после сканирования папки или генерации с помощью ИИ.",
    "tagCloudHint": "{{tag}}: встречается в {{count}} плазмидах (нажмите для фильтрации)",
    "teamBackToMembers": "Вернуться к списку участников",
    "teamBrowseFile": "Обзор файлов",
    "teamCancelRequest": "Отозвать",
    "teamCenterButton": "Команда",
    "teamCenterDescription": "Обработка полученных запросов на файлы, отслеживание отправленных запросов, скачивание файлов, переданных вам участниками.",
    "teamCenterTitle": "Центр запросов команды",
    "teamConflictCount": "{{count}} файлов конфликтуют с версиями на сервере. Выберите, какую версию сохранить для каждого.",
    "teamConflictKeepBoth": "Сохранить обе",
    "teamConflictKeepBothHint": "Сохранить серверную версию как локальную копию «xxx (server)», затем перезаписать серверную версию локальной",
    "teamConflictKeepMine": "Перезаписать моей",
    "teamConflictKeepMineHint": "Перезаписать серверную версию локальной",
    "teamConflictResolved": "Конфликт урегулирован: {{name}}",
    "teamConflictTakeServer": "Взять серверную версию",
    "teamConflictTakeServerHint": "Перезаписать локальный файл серверной версией",
    "teamDecline": "Отклонить",
    "teamDownload": "Скачать",
    "teamDownloadAgain": "Скачать снова",
    "teamDownloadFailed": "Не удалось скачать {{name}}: {{error}}",
    "teamDownloadTitle": "Скачать на компьютер и добавить в библиотеку генов",
    "teamDownloaded": "{{name}} скачан в {{path}}",
    "teamDownloads": "Скачиваний: {{count}}",
    "teamEmpty": "В папке команды пока нет файлов или нет совпадений.",
    "teamFileCount": "{{count}} / {{total}} файлов",
    "teamFrom": "От",
    "teamFulfill": "Передать {{count}} файлов",
    "teamFulfillDirectHint": "Локальные файлы автоматически сопоставлены по записям библиотеки. Нажмите, чтобы передать напрямую.",
    "teamFulfillDone": "Передано файлов: {{count}}",
    "teamFulfillMissing": "{{count}} файлов не найдены на диске. Выберите их вручную.",
    "teamFulfillNoFiles": "Сначала выберите локальный путь хотя бы для одного файла",
    "teamFulfillReselect": "Выбрать файлы заново",
    "teamFulfillStart": "Передача файлов…",
    "teamHiddenList": "Этот участник скрыл список библиотеки",
    "teamInboxEmpty": "Входящие пусты.",
    "teamLibraryCount": "{{count}} файлов",
    "teamMe": "Я",
    "teamMemberCount": "{{count}} участников · {{online}} онлайн",
    "teamMembersEmpty": "Других участников пока нет.",
    "teamMembersHint": "Библиотеки участников: просматривайте списки файлов, которыми поделились участники команды, и отправляйте запросы в один клик.",
    "teamNoConflicts": "Нет нерешённых конфликтов.",
    "teamNoOutgoing": "Нет отправленных запросов.",
    "teamNoRequests": "Запросы не получены.",
    "teamNotifyAnnounce": "Получено объявление команды",
    "teamNotifyApprovalPending": "Есть запрос, ожидающий вашего утверждения (можно обработать в веб-интерфейсе в разделе «Утверждение группы»)",
    "teamNotifyApproved": "Ваш запрос утверждён, ожидается передача файлов",
    "teamNotifyCancelled": "{{who}} отозвал(а) запрос",
    "teamNotifyDeclined": "{{who}} отклонил(а) ваш запрос",
    "teamNotifyFulfilled": "{{who}} передал(а) вам файлы",
    "teamNotifyOpen": "Просмотреть",
    "teamNotifyRejected": "Ваш запрос отклонён",
    "teamNotifyRequestNew": "{{who}} запрашивает у вас файлы",
    "teamNotifyTransferNew": "{{who}} передал(а) вам файлы",
    "teamOwner": "От",
    "teamPickFilePlaceholder": "Выберите локальный путь к файлу…",
    "teamPublicHint": "Общая библиотека: файлы, опубликованные участниками команды в папке команды. Можно скачать и добавить в библиотеку.",
    "teamRequestAll": "Запросить все {{count}}",
    "teamRequestFailed": "Не удалось отправить запрос: {{error}}",
    "teamRequestOne": "Запросить",
    "teamRequestSent": "Отправлено {{count}} запросов участнику {{name}}",
    "teamRequestSentApproval": "Запрос отправлен, ожидает утверждения перед доставкой получателю",
    "teamSearchAcrossPlaceholder": "Поиск по общей библиотеке и спискам участников (имя/тег/категория)",
    "teamSearchNoHit": "В общей библиотеке нет совпадений.",
    "teamSearchNoHitMembers": "В списках участников нет совпадений.",
    "teamSearchPlaceholder": "Поиск по общим файлам команды (имя/тег)",
    "teamSearchResultCount": "Совпадений в общей библиотеке: {{pub}} · у {{members}} участников",
    "teamSearchResultsMembers": "Список участников",
    "teamSearchResultsPublic": "Публичная библиотека",
    "teamShareCopyErrors": "Копировать сообщения об ошибках",
    "teamShareDone": "Отправлено {{count}} файлов в публичную библиотеку",
    "teamShareErrorsCopied": "Сообщения об ошибках скопированы",
    "teamShareErrorsCopyFailed": "Не удалось скопировать. Выделите текст и скопируйте вручную",
    "teamShareFailedDescription": "Следующие {{count}} файлов не удалось отправить в публичную библиотеку:",
    "teamShareFailedTitle": "Часть файлов не отправлена",
    "teamShareProgress": "Отправка {{done}}/{{total}} {{name}}",
    "teamSharedHint": "Файлы в общей папке команды публикуются участниками команды; после загрузки они автоматически добавляются в локальную библиотеку генов.",
    "teamStatusCancelled": "Отозвано",
    "teamStatusDeclined": "Отклонено",
    "teamStatusFulfilled": "Отправлено",
    "teamStatusPending": "В ожидании",
    "teamStatusPendingApproval": "Ожидает утверждения",
    "teamStatusRejected": "Отклонено",
    "teamSyncButton": "Синхронизировать с личным пространством команды",
    "teamSyncPrivateNote": "Личное пространство команды доступно только вашей текущей учётной записи.",
    "teamSyncResultTitle": "Результат синхронизации личного пространства",
    "teamSyncing": "Синхронизация…",
    "teamTabInbox": "Входящие",
    "teamTabIncoming": "Полученные запросы",
    "teamTabMembers": "Библиотека участников",
    "teamTabOutgoing": "Отправленные запросы",
    "teamTabPublic": "Публичная библиотека",
    "teamTransferDownloaded": "Загружено",
    "teamViewLibrary": "Просмотреть список",
    "title": "Библиотека генов",
    "updatingTags": "Создание...",
    "watchFolders": "Отслеживаемые папки",
    "watchFoldersAdd": "Добавить папку",
    "watchFoldersEmpty": "Папки пока не отслеживаются. Добавьте папку для автоматической синхронизации при запуске.",
    "watchFoldersHint": "Отслеживаемые папки автоматически сканируются при каждом открытии библиотеки генов, поддерживая соответствие записей и файлов (новые добавляются, исчезнувшие удаляются).",
    "watchFoldersLastScanned": "Последнее сканирование: {{time}}",
    "watchFoldersNeverScanned": "Не сканировалось",
    "watchFoldersRefresh": "Обновить все",
    "watchFoldersRefreshSummary": "Просканировано {{scanned}} файлов в {{folders}} папках — добавлено {{added}}, удалено {{removed}}, без изменений {{unchanged}}.",
    "watchFoldersRefreshing": "Обновление...",
    "watchFoldersRemove": "Убрать из отслеживания",
    "watchFoldersTitle": "Отслеживаемые папки",
    "watchTypesAdd": "Добавить тип",
    "watchTypesEmpty": "Нет настроенных типов",
    "watchTypesHint": "Отмеченные расширения сканируются вместе с отслеживаемыми папками. По умолчанию отслеживаются поддерживаемые программой форматы последовательностей; файлы секвенирования FASTQ по умолчанию не отмечены. После включения автоматически выполняется обновление; можно добавить другие типы.",
    "watchTypesInvalid": "Расширение может содержать только буквы, цифры, точки и дефисы (например, .abc или .tar.gz)",
    "watchTypesPlaceholder": "Введите расширение, например abc или fastq.gz",
    "watchTypesRemove": "Удалить этот тип",
    "watchTypesTitle": "Отслеживаемые типы файлов"
  },
  "primer": {
    "addPrimer": "Добавить праймер",
    "alignmentLegend": "| = совпадение   x = несовпадение   - = пропуск/выступ",
    "alignmentPrimerForward": "Праймер 5→3",
    "alignmentPrimerReverse": "Праймер 3←5",
    "anchorSection": "3′-якорь",
    "anchorSectionHint": "Число оснований на 3′-конце праймера, которые должны точно совпадать с матрицей; одновременно это минимальная длина каждого блока спаривания (более короткие непрерывные участки спаривания не образуют блок связывания).",
    "antisenseStrand": "Антисмысловая цепь",
    "bases": "оснований",
    "bindingSites": "Сайты связывания",
    "bindingSitesFiltered": "Найдено {{count}} кандидатных сайтов связывания, но все они отфильтрованы текущими условиями совпадения (например, совпадение 3′-конца, минимальная длина отжига или качество выравнивания).",
    "bindingSitesTmTooLow": "Найдено {{count}} кандидатных сайтов связывания, но максимальная Tm составляет {{tm}}°C, что ниже минимального порога {{minimum}}°C, поэтому они не отображаются как действительные сайты связывания.",
    "cancel": "Отмена",
    "degenerateGapExtend": "Штраф за продление выпетливания при вырожденном спаривании",
    "degenerateMatchScore": "Балл вырожденного спаривания",
    "del": "Делеция:",
    "deletionScore": "Штраф за делецию в матрице",
    "descPlaceholder": "Необязательное описание...",
    "description": "Описание",
    "editPrimer": "Редактировать праймер",
    "filterSection": "Фильтрация сайтов",
    "forward": "Прямой (смысловой)",
    "gapOpen": "Штраф за открытие выпетливания",
    "gapPower": "Показатель степени выпетливания",
    "gc": "GC = {{percent}}%",
    "identity": "Идентичность:",
    "ins": "Вставка:",
    "match": "Совпадение",
    "matchScore": "Балл совпадения",
    "maxSites": "Макс. число сайтов на цепь",
    "minIdentity": "Мин. идентичность (%)",
    "minMatches": "Мин. число совпадений",
    "mismatchScore": "Штраф за несовпадение",
    "mismatches": "Несовпадения:",
    "name": "Название",
    "namePlaceholder": "Название праймера",
    "noBindingSites": "На данной матрице не найдено кандидатных сайтов связывания для этого праймера.",
    "paramsButton": "Параметры связывания",
    "paramsSummary": "Параметры связывания",
    "resetDefaults": "Сбросить по умолчанию",
    "revComp": "Обратный комплемент",
    "revCompTooltip": "Обратный комплемент",
    "reverse": "Обратный (антисмысловой)",
    "save": "Добавить праймер",
    "score": "Балл:",
    "scoringSection": "Оценка выравнивания",
    "scoringSectionHint": "Оценка определяет, где непрерывные участки спаривания разрываются на несовпадения/выпетливания (связывающие участки против несвязывающих).",
    "seedLength": "Длина 3′-затравки",
    "sequence": "Последовательность",
    "sequencePlaceholder": "Введите последовательность праймера (A, T, C, G...)",
    "site": "Сайт {{index}}",
    "targetContext": "Контекст мишени:",
    "template": "Матрица",
    "tm": "Tm = {{temp}}°C",
    "tooShort": "Для поиска сайтов связывания праймер должен содержать не менее 9 п.н.",
    "unpaired": "Неспаренный",
    "unpairedBases": "Неспаренные основания",
    "unpairedBoundary": "Граница неспаренного участка",
    "visibleInSequence": "Видно в представлении последовательности"
  },
  "primerList": {
    "bindingSites": "Сайты связывания",
    "description": "Описание",
    "direction": "Направление",
    "export": "Экспорт",
    "name": "Название",
    "noPrimers": "Праймеры не найдены",
    "search": "Поиск праймеров...",
    "sequence": "Последовательность",
    "showingCount": "Показано {{count}} / {{total}} праймеров",
    "tm": "Tm (°C)"
  },
  "protein": {
    "abs01": "0,1% абсорбция (1 мг/мл)",
    "algoDesc": {
      "Bjellqvist": "Bjellqvist и др. (1993, 1994). Учитывает влияние соседних остатков на pKa концов. Используется в ExPASy Compute pI/Mw.",
      "DTASelect": "Tabb и др. Стандартные значения DTASelect.",
      "Dawson": "Dawson и др. Данные биохимических исследований. Значения NH2/COOH взяты у Sillero.",
      "EMBOSS": "Стандартные значения EMBOSS iep / ExPASy Compute pI/Mw.",
      "Grimsley": "Grimsley и др. (Pace & Grimsley, 2009). Экспериментально измеренные значения pKa.",
      "IPC2_peptide": "Kozlowski (2021). Оптимизировано на 119 092 пептидах методом дифференциальной эволюции с ML. Наивысшая точность для пептидов.",
      "IPC2_protein": "Kozlowski (2021). Оптимизировано на 2 324 белках методом дифференциальной эволюции с ML. Наивысшая точность для белков, рекомендуется по умолчанию.",
      "IPC_peptide": "Kozlowski (2016). Оптимизировано на наборе данных пептидов методом basin hopping. Шкала IPC 1.0 для пептидов.",
      "IPC_protein": "Kozlowski (2016). Оптимизировано на наборе данных белков методом basin hopping. Шкала IPC 1.0 для белков.",
      "Lehninger": "Значения из учебника «Основы биохимии» Ленинджера.",
      "Nozaki": "Nozaki & Tanford (1971). Классические справочные значения.",
      "Patrickios": "Patrickios и др. Упрощённая модель: вклад в заряд дают только K/R/D/E (исключены C, Y, H).",
      "ProMoST": "ProMoST. Позиционно-зависимая модель pKa: заряженные остатки в N-концевом, среднем и C-концевом положениях используют разные значения pKa.",
      "Rodwell": "Rodwell (1982). Внимание: K и R имеют одинаковое значение pKa (11,5).",
      "Sillero": "Sillero и др. (1990). Классический биохимический справочник.",
      "Solomon": "Solomon и др. Значения из учебника органической химии.",
      "Thurlkill": "Thurlkill и др. (2006). Экспериментально измеренные значения pKa.",
      "Toseland": "Toseland и др. (2010). Оптимизировано для внутриклеточного pH и физиологической ионной силы.",
      "Wikipedia": "Стандартные значения pKa аминокислот из Википедии."
    },
    "algorithm": "Алгоритм",
    "aliphaticIndex": "Алифатический индекс",
    "aminoAcidComposition": "Аминокислотный состав",
    "aromatic": "Ароматические (F+W+Y)",
    "atomicComposition": "Атомный состав",
    "avgResidueWeight": "Средняя масса остатка",
    "basicProperties": "Основные свойства",
    "carbon": "Углерод (C)",
    "extCoeff": "Коэффициент экстинкции (М⁻¹см⁻¹)",
    "extinctionCoefficient": "Коэффициент экстинкции и абсорбция (280 нм)",
    "formula": "Молекулярная формула",
    "fullyOxidized": "Полностью окисленная",
    "fullyReduced": "Полностью восстановленная",
    "gravy": "GRAVY",
    "hideAlgorithms": "Скрыть все алгоритмы",
    "hydrogen": "Водород (H)",
    "hydrophobic": "Гидрофобные (A+V+I+L+M+F+W+P)",
    "instabilityIndex": "Индекс нестабильности",
    "molecularWeight": "Молекулярная масса",
    "negCharged": "Отрицательно заряженные остатки (D+E)",
    "netCharge": "Суммарный заряд при различных pH ({{algo}})",
    "nitrogen": "Азот (N)",
    "oxygen": "Кислород (O)",
    "polarUncharged": "Полярные незаряженные (S+T+N+Q)",
    "posCharged": "Положительно заряженные остатки (K+R+H)",
    "proteinLength": "Длина белка",
    "residueSummary": "Сводка по остаткам",
    "showAlgorithms": "Показать все алгоритмы",
    "sulfur": "Сера (S)",
    "sulfurContaining": "Серосодержащие остатки (C+M)",
    "theoreticalPI": "Теоретическая изоэлектрическая точка (pI)",
    "title": "Свойства белка — {{name}}",
    "totalAtoms": "Общее число атомов"
  },
  "readingFrame": {
    "description": "Выберите рамку считывания и стартовый кодон для трансляции в 6 рамках.",
    "frames": "Рамки считывания",
    "inReadingFrameOf": "Область продолжения рамки считывания {{name}}",
    "startCodonMode": "Подсветка стартового кодона",
    "title": "Отображение рамок считывания"
  },
  "recovery": {
    "unsavedSession": "Обнаружена несохранённая сессия после последнего аварийного завершения ({{file}}). Восстановить?"
  },
  "remoteControl": {
    "aiAssistantNotReady": "ИИ-ассистент (требуется сначала включить MCP)",
    "aiAssistantReady": "MCP запущен, нажмите кнопку выше, чтобы открыть ИИ-ассистента",
    "aiAssistantWillStart": "Нажатие кнопки выше автоматически запустит MCP и откроет ИИ-ассистента",
    "aiPrompt": "Подсказка для подключения AI",
    "aiPromptHint": "Вставьте следующее содержимое в конфигурацию MCP Cursor / Claude Desktop:",
    "apply": "Применить",
    "cancel": "Отмена",
    "endpoint": "Конечная точка",
    "openAiAssistant": "Открыть ИИ-ассистента",
    "password": "Пароль удалённого управления",
    "port": "Порт",
    "runningHint": "Работает: ИИ-клиенты могут подключиться к конечной точке ниже",
    "statusError": "Ошибка",
    "statusRunning": "Запущено",
    "statusStopped": "Остановлено",
    "title": "Удалённое управление",
    "toggle": "Удалённое управление"
  },
  "saveNotification": {
    "cancel": "Отмена",
    "closeUnsavedMessage": "В текущей последовательности есть несохранённые изменения. Сохранить перед закрытием?",
    "closeUnsavedTitle": "Несохранённые изменения",
    "closeWithoutSaving": "Закрыть без сохранения",
    "copied": "Скопировано",
    "copy": "Копировать",
    "copyFailed": "Не удалось скопировать",
    "fileLockedHint": "Файл используется другой программой и не может быть записан:\n{{path}}\nЗакройте блокирующую программу и повторите попытку или сохраните файл под другим именем.",
    "fileLockedTitle": "Файл заблокирован",
    "notification": "Уведомление",
    "ok": "ОК",
    "openFile": "Открыть новый файл",
    "openWithConfirmMessage": "Открытие в другой программе закроет текущий файл. Продолжить?",
    "openWithConfirmTitle": "Текущий файл будет закрыт",
    "openWithDirtyMessage": "В текущем файле есть несохранённые изменения. Сохраните его перед открытием в другой программе.",
    "openWithDirtyTitle": "Файл изменён",
    "openWithResultCloseWindow": "Закрыть это окно",
    "openWithResultFail": "Ошибка при открытии файла с помощью {{app}}.",
    "openWithResultFailTitle": "Не удалось открыть",
    "openWithResultSuccess": "Файл успешно открыт с помощью {{app}}.",
    "openWithResultSuccessTitle": "Открыто в другой программе",
    "ownerSelf": "Другое окно GenePad",
    "ownerUnknown": "Не удалось определить программу, занявшую файл (возможно, файл уже освобождён)",
    "retry": "Повторить",
    "saveAs": "Сохранить как…",
    "saveFailed": "Не удалось сохранить",
    "saveSuccess": "Сохранено",
    "savedTo": "Файл сохранён в:",
    "savingTitle": "Сохранение…"
  },
  "search": {
    "dna": "ДНК",
    "matchReverse": "Учитывать обратную цепь",
    "matchWrap": "Учитывать переход через начало",
    "prot": "Белок",
    "rna": "РНК",
    "searchDna": "Поиск последовательности ДНК...",
    "searchProtein": "Поиск последовательности белка...",
    "searchRna": "Поиск последовательности РНК..."
  },
  "sequenceProperties": {
    "accession": "Номер доступа",
    "addReference": "+ Добавить литературу",
    "cancel": "Отмена",
    "circular": "Кольцевая",
    "comments": "Примечания",
    "commentsPlaceholder": "Дополнительные примечания...",
    "confirm": "Подтвердить",
    "createTag": "Добавить «{{tag}}»",
    "date": "Дата",
    "description": "Описание",
    "division": "Раздел",
    "doubleStranded": "Двухцепочечная",
    "keywords": "Ключевые слова",
    "length": "Длина",
    "linear": "Линейная",
    "moleculeType": "Тип молекулы",
    "name": "Название",
    "noReferences": "Нет литературы",
    "organism": "Организм",
    "plasmidTags": "Теги плазмид",
    "refAuthors": "Авторы",
    "refJournal": "Журнал",
    "refPubmed": "PubMed ID",
    "refTitle": "Название",
    "references": "Литература",
    "removeTag": "Удалить тег",
    "singleStranded": "Одноцепочечная",
    "source": "Источник",
    "strandType": "Тип цепи",
    "tabBasic": "Основная информация",
    "tabComment": "Примечания",
    "tabSource": "Источник и ссылки",
    "tagsPlaceholder": "Введите тег и нажмите Enter или выберите существующий тег из списка",
    "tagsRequireFile": "Сначала откройте или сохраните файл, чтобы использовать теги плазмид",
    "title": "Свойства последовательности",
    "topology": "Топология",
    "updateTagsWithAi": "Обновить с помощью ИИ",
    "updatingTags": "Обновление...",
    "version": "Версия"
  },
  "sequenceTooltip": {
    "range": "Диапазон",
    "segment": "Сегмент",
    "segmentAt": "Позиция",
    "segmentN": "Сегмент {{n}}",
    "segments": "Сегменты",
    "strand": "Направление",
    "strandForward": "Прямая",
    "strandNone": "Нет",
    "strandReverse": "Обратная",
    "type": "Тип"
  },
  "settings": {
    "about": "О программе",
    "aboutIntro": "GenePad — это инструмент для просмотра и редактирования последовательностей ДНК, предназначенный для исследований в области молекулярной биологии.",
    "aboutPrivacy": "Политика конфиденциальности",
    "aboutPrivacyBody": "По умолчанию это программное обеспечение собирает анонимную статистику использования: случайно сгенерированный при первом запуске идентификатор установки (не связанный с оборудованием, учётной записью или личной информацией), суммарное время использования, версию программы и тип платформы/операционной системы.\n\nСтатистика отправляется раз в 7 дней по протоколу HTTPS на официальный сервер GenePad (genepad.pages.dev) и используется исключительно для подсчёта числа пользователей и времени использования с целью улучшения продукта.\n\nМы не собираем, не храним и не передаём ваши данные последовательностей, содержимое файлов или любую информацию, позволяющую идентифицировать личность; статистические данные не могут быть использованы для идентификации или сопоставления с конкретным пользователем.\n\nВы можете в любой момент отключить анонимную статистику с помощью переключателя в самом низу этой страницы; после отключения накопление и отправка данных немедленно прекращаются.",
    "aboutStats": "Статистика",
    "aboutTerms": "Условия использования",
    "aboutTermsBody": "Данное программное обеспечение (GenePad) предоставляется «как есть» и предназначено только для исследований в области молекулярной биологии и в качестве вспомогательного средства при обучении; оно не является медицинской, клинической диагностической или терапевтической рекомендацией. Все результаты анализа, полученные с помощью данного программного обеспечения (включая, помимо прочего, разбор последовательностей, анализ рестрикционных ферментов, дизайн праймеров и CRISPR, обработку FASTQ и т. д.), необходимо независимо проверять перед проведением экспериментов.\n\nДанное программное обеспечение распространяется на условиях «Некоммерческой лицензии GenePad» (прилагается к программному обеспечению): бесплатное использование разрешено для личного обучения и исследований, преподавания и в научно-исследовательских учреждениях в некоммерческих целях; для коммерческого использования необходимо предварительно получить отдельную коммерческую лицензию. При распространении необходимо сохранять исходное указание авторства, отмечать внесённые изменения и прилагать копию лицензии.\n\nВ максимально допустимой применимым законодательством степени данное программное обеспечение предоставляется без каких-либо явных или подразумеваемых гарантий, включая, помимо прочего, гарантии товарной пригодности, пригодности для конкретной цели, точности и отсутствия нарушений прав; авторы и участники не несут ответственности за любые прямые, косвенные, случайные или последующие убытки, вызванные использованием или невозможностью использования данного программного обеспечения.\n\nВы должны использовать данное программное обеспечение в соответствии с законодательством вашей страны/региона и правилами вашего учреждения (включая требования биобезопасности); за содержание обрабатываемых вами данных и их законность отвечаете вы сами, а права на сторонние материалы, такие как данные последовательностей и данные рестрикционных ферментов, принадлежат их соответствующим владельцам.",
    "aiApi": "Настройки ИИ",
    "aiTranslate": "Перевод ИИ",
    "aiTranslateCancel": "Отмена",
    "aiTranslateChunkRetry": "Перевод фрагмента {{index}} не прошёл проверку, автоматическая повторная попытка (попытка {{attempt}}): {{reason}}",
    "aiTranslateChunkSeparator": "Фрагмент {{index}}/{{total}}",
    "aiTranslateCodeConflict": "Этот код языка уже существует или конфликтует со встроенными языками (en/zh).",
    "aiTranslateConfirm": "Начать перевод",
    "aiTranslateDescription": "Используя настроенный ИИ, перевести встроенный файл китайского языка на целевой язык; после завершения перевода он автоматически импортируется и применяется. Длинные тексты автоматически разбиваются на фрагменты, неудачные фрагменты автоматически повторяются — начинать всё заново не нужно.",
    "aiTranslateGarbledDetected": "В некоторых фрагментах после автоматических повторных попыток остались повреждённые символы; применён текущий результат. Рекомендуется экспортировать языковой файл и исправить его вручную.",
    "aiTranslateInvalidJson": "ИИ не вернул корректный JSON. Повторите попытку или смените модель.",
    "aiTranslateLangCode": "Код языка",
    "aiTranslateLangCodeHint": "Используется как идентификатор файла (например, ja, ko, fr), не должен совпадать с существующими en/zh.",
    "aiTranslateLangCodePlaceholder": "например: ja",
    "aiTranslateLangName": "Название языка",
    "aiTranslateLangNamePlaceholder": "например: японский / Japanese",
    "aiTranslateMissingFields": "Пожалуйста, заполните как название языка, так и код языка.",
    "aiTranslateNotConfigured": "Модель ИИ не настроена. Сначала настройте её на вкладке «Настройки ИИ».",
    "aiTranslateOutputLabel": "Вывод",
    "aiTranslatePartialKept": "Результаты завершённых фрагментов сохранены; нажмите «Перевести заново», чтобы продолжить с места сбоя.",
    "aiTranslateProgressLabel": "Завершено {{done}}/{{total}} фрагментов",
    "aiTranslateRetry": "Перевести заново",
    "aiTranslateStop": "Остановить перевод",
    "aiTranslateStopped": "Перевод остановлен. Нажмите «Перевести заново», чтобы повторить попытку.",
    "aiTranslateThinking": "Включить размышление (медленнее, возможно повышение качества)",
    "aiTranslateThinkingLabel": "Процесс размышления",
    "aiTranslateTitle": "Перевод языкового файла с помощью ИИ",
    "aiTranslateTranslating": "Идёт перевод, подождите...",
    "allAssociated": "Все типы файлов настроены для открытия по умолчанию. Двойной щелчок откроет их в GenePad.",
    "appearance": "Внешний вид",
    "checkingStatus": "Проверка состояния ассоциаций...",
    "colorScheme": "Цветовая схема",
    "colorSchemeBeige": "Коричневая",
    "colorSchemeBlue": "Синяя",
    "colorSchemeDescription": "Выберите предпочитаемую цветовую схему",
    "colorSchemePink": "Розовая",
    "colorSchemeSlate": "Тёмно-серая",
    "currentMode": "Текущий режим",
    "default": "По умолчанию",
    "description": "Настройка параметров приложения",
    "exportLanguage": "Экспортировать языковой файл",
    "fileAssociations": "Ассоциации файлов",
    "fileType": "Тип файла",
    "fileTypeAutoRegistered": "Автоматически зарегистрировано: для поддерживаемых типов файлов в контекстном меню доступен пункт «Открыть в GenePad». Чтобы назначить GenePad программой по умолчанию для двойного щелчка, измените это в системных настройках.",
    "fileTypeDescription": "Выберите, для каких типов файлов GenePad будет программой по умолчанию (пункт контекстного меню «Открыть в GenePad» регистрируется автоматически при каждом запуске)",
    "fileTypeRegistration": "Регистрация типов файлов",
    "importBuiltInConflict": "«en» и «zh» — встроенные языки, их нельзя перезаписать. Переименуйте файл (например, в «zh-CN.json») и импортируйте снова.",
    "importError": "Неверный формат языкового файла",
    "importLanguage": "Импортировать языковой файл",
    "language": "Язык",
    "languageAuto": "Автоматически (по системе)",
    "languageDescription": "Выберите язык приложения. Вы также можете импортировать собственные языковые пакеты.",
    "languageExportHint": "Экспортировав текущую языковую конфигурацию, вы можете самостоятельно изменить файл перевода с помощью ИИ для поддержки дополнительных языков.",
    "multiWindow": "Многооконный режим",
    "nextLaunchMode": "Режим при следующем запуске",
    "nextLaunchTab": "Следующий запуск: режим вкладок",
    "nextLaunchWindow": "Следующий запуск: многооконный режим",
    "noCustomLanguages": "Пользовательские языки не импортированы",
    "noneAssociated": "Ни один тип файлов не связан. Выберите и зарегистрируйте ниже.",
    "notAvailable": "Эта функция доступна только в настольном приложении",
    "of": "/",
    "onboardingTourComplete": "Все показаны",
    "onboardingTourDescription": "Обучающие подсказки, отображаемые один раз при первом открытии файла последовательности, дополняются по разделам представления. После сброса они снова появятся при следующем открытии файла последовательности.",
    "onboardingTourPartAlignmentSplit": "Кнопка прокрутки в области выравнивания",
    "onboardingTourPartAlways": "Общий интерфейс",
    "onboardingTourPartCds": "Полоса аннотаций CDS",
    "onboardingTourPartLibrary": "Библиотека генов",
    "onboardingTourPartLibraryRow": "Контекстное меню файла библиотеки",
    "onboardingTourPartMap": "Карта",
    "onboardingTourPartProperties": "Панель свойств",
    "onboardingTourPartSequence": "Представление последовательности",
    "onboardingTourPending": "Ожидают показа",
    "onboardingTourProgress": "Показано {{shown}}/{{total}} разделов",
    "onboardingTourReset": "Сбросить обучение",
    "onboardingTourResetDone": "Сброшено",
    "onboardingTourTitle": "Обучение для новичков",
    "quickTools": "Быстрые инструменты",
    "quickToolsAdd": "Добавить на верхнюю панель",
    "quickToolsApply": "Применить",
    "quickToolsDescription": "Настройте инструменты для открытия одним щелчком на верхней панели. Панель инструментов отображается всегда и не требует настройки здесь.",
    "quickToolsEmpty": "Нет отображаемых инструментов",
    "quickToolsHidden": "Скрыто",
    "quickToolsHiddenHint": "Доступно только на панели инструментов.",
    "quickToolsMoveDown": "Вниз",
    "quickToolsMoveUp": "Вверх",
    "quickToolsRemove": "Убрать с верхней панели",
    "quickToolsReset": "Сбросить",
    "quickToolsShown": "Отображается",
    "quickToolsShownHint": "Отображается на верхней панели, нажмите для открытия.",
    "register": "Зарегистрировать",
    "registering": "Регистрация...",
    "removeLanguage": "Удалить",
    "reregister": "Перерегистрировать",
    "selectLanguage": "Выбрать язык",
    "selected": "Выбрано",
    "shortcutActionAddFeature": "Добавить аннотацию",
    "shortcutActionAddPrimer": "Добавить праймер",
    "shortcutActionCopy": "Копировать",
    "shortcutActionCut": "Вырезать",
    "shortcutActionDeleteSelection": "Удалить выделенную последовательность",
    "shortcutActionFind": "Найти",
    "shortcutActionPaste": "Вставить",
    "shortcutActionSelectAll": "Выделить всё",
    "shortcutConflict": "{{combo}} уже используется «{{action}}»",
    "shortcutRecording": "Нажмите новую комбинацию клавиш…",
    "shortcutResetAction": "Восстановить по умолчанию",
    "shortcuts": "Горячие клавиши",
    "shortcutsDescription": "Настройте горячие клавиши для просмотра последовательностей. Нажмите на комбинацию и введите новую, чтобы изменить; нажмите Esc для отмены записи. Горячие клавиши действуют после выделения участка последовательности.",
    "shortcutsResetAll": "Восстановить все по умолчанию",
    "tabMode": "Вкладки",
    "teamCertMismatchDescription": "Соединение прервано: сертификат, предъявленный сервером, не совпадает с отпечатком, записанным при первом подключении. Это может быть связано с переустановкой или сменой сертификата на сервере, а также с атакой «человек посередине» в сети.",
    "teamCertMismatchHint": "Если вы можете лично (или по доверенному каналу) подтвердить, что сервер действительно был переустановлен или сертификат заменён, и оба отпечатка ниже совпадают с отображаемыми на стороне администратора сервера, можно доверять новому отпечатку; в противном случае не доверяйте и свяжитесь с администратором сервера.",
    "teamCertMismatchTitle": "Отпечаток сертификата сервера изменился",
    "teamCertObserved": "Текущий отпечаток",
    "teamCertRecorded": "Записанный отпечаток",
    "teamCertTrust": "Доверять новому отпечатку и переподключиться",
    "teamCertTrusted": "Новый отпечаток сертификата принят, переподключение выполнено",
    "teamServer": "Командный сервер",
    "teamServerAccount": "Учётная запись",
    "teamServerAccountHint": "Учётная запись создаётся администратором команды на сервере; одна учётная запись может быть активна на нескольких устройствах одновременно.",
    "teamServerAuthExpired": "Сеанс команды истёк, войдите снова.",
    "teamServerAutoSync": "Автосинхронизация с личным пространством",
    "teamServerAutoSyncDescription": "При включении автоматически синхронизирует личную библиотеку генетических файлов с командным сервером в фоновом режиме (примерно раз в 5 минут); при ошибках или конфликтах появится окно «Сообщения команды», ручная синхронизация не требуется.",
    "teamServerAutoSyncNoticeOff": "Автосинхронизация отключена. Синхронизацию можно выполнить вручную в инструменте управления генетическими файлами.",
    "teamServerAutoSyncNoticeOn": "Автосинхронизация включена: личное пространство будет синхронизироваться в фоновом режиме (примерно раз в 5 минут), при ошибках или конфликтах появится окно «Сообщения команды».",
    "teamServerCurrentTeam": "Текущая",
    "teamServerDownloadDirChange": "Изменить",
    "teamServerDownloadDirDescription": "Файлы, скачанные/синхронизированные из команды (отсутствующие локально), сохраняются здесь.",
    "teamServerDownloadDirReset": "Восстановить по умолчанию",
    "teamServerDownloadDirTitle": "Место сохранения командных файлов",
    "teamServerEnable": "Включить командные функции",
    "teamServerEnableDescription": "По умолчанию не запускается. При включении можно присоединиться к командному серверу в локальной сети, использовать общие папки команды, запрашивать файлы у участников и синхронизировать личное пространство.",
    "teamServerJoin": "Присоединиться",
    "teamServerJoinTitle": "Обнаружить и присоединиться к команде",
    "teamServerLoginAction": "Войти",
    "teamServerLoginConfirm": "Войти",
    "teamServerLoginFirst": "Эта команда ещё не входила на этом устройстве",
    "teamServerLoginTo": "Войти в {{name}} ({{addr}})",
    "teamServerLogout": "Выйти",
    "teamServerManualPlaceholder": "Введите адрес вручную (например, 192.168.1.5 или http://lab.local:4514)",
    "teamServerNeedRelogin": "Для переключения на эту команду требуется повторный вход",
    "teamServerNoCredentials": "Требуется вход",
    "teamServerOffline": "Не в сети",
    "teamServerOnline": "В сети",
    "teamServerOpenWeb": "Открыть веб-интерфейс",
    "teamServerOpenWebDescription": "Открыть веб-интерфейс сервера в системном браузере (личное содержимое, утверждение групп и управление)",
    "teamServerPassword": "Пароль",
    "teamServerSavedTeams": "Сохранённые команды (нажмите для переключения)",
    "teamServerScan": "Обнаружить командные серверы",
    "teamServerScanEmpty": "Командные серверы не найдены. Введите адрес вручную и повторите попытку или попросите администратора убедиться, что сервер запущен.",
    "teamServerShareLibrary": "Поделиться списком моих генетических файлов с командой",
    "teamServerShareLibraryDescription": "По умолчанию не предоставляется. При включении участники команды смогут просматривать список ваших файлов и меток; содержимое файлов не скачивается, при необходимости запрашивается у вас через процедуру запроса.",
    "teamServerSharingNotice": "Общий доступ включён. Список файлов будет постепенно загружаться на командный сервер в фоновом режиме.",
    "teamServerSourceDiscovered": "Автообнаружение",
    "teamServerSourceProbed": "Проверка адреса",
    "teamServerSwitch": "Переключить команду",
    "teamServerSwitchAction": "Переключить",
    "teamServerSwitchHint": "Переключиться напрямую с сохранённой учётной записью",
    "teamServerSwitched": "Переключено на {{name}}",
    "teamServerSyncConflictHint": "Есть конфликты для обработки. Выберите их по одному в диалоге результатов синхронизации библиотеки генов.",
    "teamServerSyncNow": "Синхронизировать сейчас",
    "teamServerSyncPrivate": "Личное пространство доступно только вашей текущей учётной записи, другим участникам оно не видно.",
    "teamServerSyncSummary": "Создано {{created}} · Обновлено {{updated}} · Загружено {{downloaded}} · Конфликтов {{conflicts}}",
    "teamServerSyncTitle": "Синхронизация личного пространства команды",
    "teamServerSyncing": "Синхронизация…",
    "teamServerUnsharedNotice": "Общий доступ остановлен, список файлов на сервере будет удалён в фоновом режиме.",
    "teamServerUsername": "Имя пользователя",
    "telemetryDescription": "Каждые 7 дней отправляет на сервер GenePad случайный идентификатор установки, суммарное время использования, версию и сведения о платформе — только для подсчёта числа пользователей и времени использования. Не содержит последовательностей, файлов или личных данных. Можно отключить в любой момент.",
    "telemetryTitle": "Анонимная статистика использования",
    "theme": "Тема",
    "themeDescription": "Выберите светлую, тёмную тему или следование системной",
    "title": "Настройки",
    "unregister": "Отменить регистрацию",
    "unregistering": "Отмена...",
    "updateCheckFrequency": "Частота проверки",
    "updateCheckFrequencyDescription": "Управляет интервалом автоматической проверки обновлений в фоновом режиме.",
    "updateDescription": "Проверить наличие новой версии GenePad.",
    "updateFrequencyDay": "Ежедневно",
    "updateFrequencyHalfYear": "Раз в полгода",
    "updateFrequencyMonth": "Ежемесячно",
    "updateFrequencyWeek": "Еженедельно",
    "updateFrequencyYear": "Ежегодно",
    "updates": "Обновления",
    "windowMode": "Режим окна",
    "windowModeDescription": "Выберите многооконный режим или режим вкладок; применится после перезапуска"
  },
  "sidebar": {
    "addEnzymeToList": "Добавить фермент в список",
    "alignmentDesc": "Выровнять последовательность относительно референсной",
    "enzymeSettings": "Настройки сайтов рестрикции",
    "enzymesDesc": "Набор ферментов/схемы отбора, добавление ферментов в список и на карту, переключатель отображения сайтов рестрикции на последовательности",
    "hideAlignment": "Скрыть выравнивание",
    "hideAllEnzymes": "Скрыть все",
    "hideHistory": "Скрыть историю",
    "hideMap": "Скрыть карту",
    "hideProperties": "Скрыть свойства",
    "hideSequence": "Скрыть последовательность",
    "historyDesc": "Просмотр ранее сохранённых версий сборки",
    "mapDesc": "Переключить или скрыть кольцевую карту плазмиды",
    "mapEnzymeSites": "Сайты рестрикции на карте",
    "mapEnzymesStateHidden": "Область карты: сейчас не отображается",
    "mapEnzymesStateShown": "Область карты: сейчас отображается",
    "mapSeqExclusive": "Карта и последовательность взаимоисключающие",
    "mapSeqExclusiveDesc": "Одновременно отображается только одно представление; нажмите, чтобы переключиться на совместный режим и автоматически открыть другое представление",
    "mapSeqLinked": "Карта и последовательность на одном экране",
    "mapSeqLinkedDesc": "Оба представления отображаются одновременно; нажмите, чтобы переключиться на взаимоисключающий режим (карта сохраняется, последовательность закрывается)",
    "orfDesc": "Предсказать открытые рамки считывания в последовательности",
    "orfPrediction": "Предсказание ORF",
    "propertiesDesc": "Просмотр и редактирование метаданных последовательности",
    "readingFrame": "Рамка считывания",
    "readingFrameDesc": "Показать трансляцию последовательности в 6 рамках",
    "sequenceAlignment": "Выравнивание последовательностей",
    "sequenceDesc": "Переключить или скрыть просмотрщик линейной последовательности",
    "sequenceEnzymeSites": "Сайты рестрикции на последовательности",
    "sequenceEnzymesStateHidden": "Область последовательности: сейчас не отображается",
    "sequenceEnzymesStateShown": "Область последовательности: сейчас отображается",
    "settingsDesc": "Настройка параметров приложения",
    "showAllEnzymes": "Показать все",
    "showHistory": "Показать историю",
    "showMap": "Показать карту",
    "showProperties": "Показать свойства",
    "showSequence": "Показать последовательность"
  },
  "strandDialog": {
    "bottomStrand": "Использовать нижнюю цепь (5'→3')",
    "cancel": "Отмена",
    "description": "Какую цепь использовать в качестве последовательности праймера?",
    "title": "Выбор цепи",
    "topStrand": "Использовать верхнюю цепь (5'→3')"
  },
  "teamDeliver": {
    "confirm": "Доставить {{count}} файл(ов)",
    "done": "Доставлено {{name}}",
    "hint": "Выберите участника, чтобы доставить сохранённые файлы ({{count}}) в его/её почтовый ящик.",
    "noMembers": "Нет участников для доставки",
    "searchPlaceholder": "Поиск участников",
    "title": "Доставить указанному участнику"
  },
  "teamInbox": {
    "authExpiredDescription": "Сервер установил срок действия входа, текущий токен истёк. Войдите снова ниже, чтобы восстановить функции команды.",
    "authExpiredTitle": "Токен входа недействителен",
    "clearAll": "Очистить",
    "downloadedHint": "Файл скачан и добавлен в «Без категории» библиотеки генов, откройте инструмент управления генными файлами для проверки.",
    "downloadedTitle": "Скачано · ожидает проверки",
    "loginDescription": "Введите логин и пароль для входа на сервер команды (учётная запись создаётся администратором на сервере).",
    "loginTitle": "Вход в команду",
    "markAllRead": "Прочитать все",
    "noNotifications": "Уведомлений нет.",
    "notConnected": "Нет подключения к серверу команды",
    "notificationsTitle": "Уведомления",
    "notifyAnnounce": "Объявление команды",
    "notifyCancelled": "Запрос отозван",
    "notifyDeclined": "Запрос отклонён",
    "notifyFulfilled": "Получена доставка файла",
    "notifyRequestNew": "Получен запрос файла",
    "notifyTransferNew": "Получена доставка от участника",
    "pendingRequests": "Полученные запросы",
    "relogin": "Войти снова",
    "reloginDone": "Вы снова вошли в команду",
    "requireLogin": "Доступно после подключения к команде.",
    "revealInDir": "Папка расположения",
    "syncIssueTitle": "Проблема автосинхронизации",
    "title": "Сообщения команды"
  },
  "teamSync": {
    "keepBoth": "Сохранить обе",
    "keepMine": "Использовать мою версию",
    "takeServer": "Использовать версию сервера"
  },
  "themetoggle": {
    "dark": "Тёмная тема",
    "light": "Светлая тема",
    "system": "Как в системе"
  },
  "toolbar": {
    "addFeature": "Добавить аннотацию",
    "addFeatureAutoSelection": "Автоматически аннотировать выбранную последовательность",
    "addFeatureAutoWhole": "Автоматически аннотировать всю последовательность",
    "addFeatureManual": "Добавить аннотацию",
    "addPrimer": "Добавить праймер",
    "antisense35": "Антисмысловая цепь 3'→5'",
    "antisense53": "Антисмысловая цепь 5'→3'",
    "checkUpdate": "Проверить обновления",
    "copy": "Копировать",
    "copyAntisense": "Копировать антисмысловую цепь",
    "copySense": "Копировать смысловую цепь",
    "copySequence": "Копировать последовательность",
    "cut": "Вырезать",
    "delete": "Удалить",
    "deliverToMember": "Отправить указанному участнику",
    "deliverToPublic": "Отправить в общую библиотеку",
    "fileAssociation": "Связь файлов",
    "groupOther": "Другое",
    "groupRecommended": "Рекомендуемые",
    "new": "Создать",
    "noRecentFiles": "Нет недавних файлов",
    "open": "Открыть",
    "openOtherFile": "Открыть другой файл...",
    "openWith": "Открыть с помощью",
    "openWithBrowse": "Выбрать другое приложение…",
    "openWithDefault": "Открыть в папке",
    "openWithLoading": "Загрузка…",
    "openWithNoFile": "Сначала сохраните файл, затем откройте",
    "openWithOther": "Другие способы открытия",
    "paste": "Вставить",
    "properties": "Свойства",
    "recentlyOpened": "Недавно открытые",
    "redo": "Повторить",
    "save": "Сохранить",
    "saveAs": "Сохранить как",
    "saveAsDnaConvert": "SnapGene DNA (.dna, преобразование U→T)",
    "saveAsFasta": "Файл FASTA (.fasta)",
    "saveAsGen": "Файл GenePad (.gen)",
    "saveAsGenbank": "Файл GenBank (.gb)",
    "saveAsGjson": "Файл GJSON (.gjson)",
    "saveAsRnaConvert": "SnapGene RNA (.rna, преобразование T→U)",
    "saveAsSnapgene": "Файл SnapGene (.dna)",
    "saveAsSnapgeneProt": "Файл белка SnapGene (.prot)",
    "saveAsSnapgeneRna": "Файл SnapGene RNA (.rna)",
    "sectionAnnotate": "Аннотация",
    "sectionEdit": "Правка",
    "sectionFile": "Файл",
    "selectAll": "Выделить всё",
    "sense35": "Смысловая цепь 3'→5'",
    "sense53": "Смысловая цепь 5'→3'",
    "shareDirtyMessage": "При отправке будет использована сохранённая на диске версия (без несохранённых изменений). Чтобы отправить актуальное содержимое, отмените действие, сохраните файл и повторите отправку.",
    "shareDirtyTitle": "В файле есть несохранённые изменения",
    "shareFailed": "Не удалось отправить: {{message}}",
    "shareSavedVersion": "Отправить сохранённую версию",
    "shareToApps": "Отправить через другие программы",
    "shareUnsavedMessage": "Файл ещё не сохранён на диске. Сначала сохраните файл, затем отправьте его.",
    "shareUnsavedTitle": "Файл не сохранён",
    "teamDeliverFailed": "Не удалось отправить файлов: {{count}}",
    "teamDeliverPublicDone": "Отправлено файлов в общую библиотеку: {{count}}",
    "teamMenuHint": "Отправить на сервер команды",
    "tooltipAddFeature": "Добавить аннотацию к выделенной области",
    "tooltipAddPrimer": "Добавить праймер",
    "tooltipCut": "Вырезать",
    "tooltipDelete": "Удалить",
    "tooltipFileAssoc": "Связь форматов файлов",
    "tooltipOpenWith": "Выбрать способ открытия",
    "tooltipPaste": "Вставить",
    "tooltipProperties": "Просмотр и редактирование свойств последовательности",
    "tooltipSelectAll": "Выделить всё (Ctrl+A)",
    "tooltipShare": "Поделиться файлом",
    "tooltipTutorial": "Открыть руководство по NGS в браузере (genepad.cn/ngs)",
    "tutorial": "Руководство",
    "undo": "Отменить",
    "updateAvailable": "Доступна новая версия"
  },
  "tools": {
    "aiAssistant": "ИИ-ассистент",
    "aminoAcidTable": "Таблица аминокислот",
    "categories": {
      "experiment": "Эксперименты и анализ",
      "sequence": "Последовательности и трансляция",
      "smart": "Умные инструменты"
    },
    "codonOptimization": "Оптимизация кодонов",
    "codonTable": "Таблица кодонов",
    "electrophoresis": "Моделирование электрофореза",
    "enzymeLibrary": "Библиотека рестриктаз",
    "molecularCloning": "Моделирование молекулярного клонирования",
    "plasmidLibrary": "Библиотека генов",
    "toolbox": "Панель инструментов"
  },
  "tour": {
    "addFeatureBody": "Здесь можно добавить аннотации к последовательности: сначала выделите участок оснований в представлении последовательности, затем выберите «Добавить аннотацию»; или воспользуйтесь «Автоопределением общих элементов» — программа автоматически распознает каркас вектора, промоторы, гены устойчивости и другие распространённые элементы.",
    "addFeatureTitle": "Добавить аннотацию",
    "aiAssistantBody": "ИИ-ассистент поможет вам искать в базах данных плазмид, просматривать и редактировать последовательности, добавлять аннотации, подбирать праймеры и многое другое; сначала укажите API-ключ и выберите модель в разделе Настройки → ИИ-ассистент.",
    "aiAssistantTitle": "ИИ-ассистент",
    "alignmentBody": "Нажмите здесь, чтобы открыть справа панель выравнивания последовательностей: вы сможете выровнять другие последовательности относительно текущей, сравнить различия и совпадающие участки; повторное нажатие сворачивает панель.",
    "alignmentTitle": "Выравнивание последовательностей",
    "cdsBody": "Это аннотация кодирующей области CDS. Щёлкните правой кнопкой мыши по дорожке аннотаций в представлении последовательности, чтобы редактировать, удалить, просмотреть свойства белка, выполнить оптимизацию кодонов и другое; двойной щелчок сразу открывает окно редактирования.",
    "cdsTitle": "Контекстное меню аннотации",
    "dividerBody": "Перетаскивайте этот разделитель между картой и представлением последовательности, чтобы свободно менять их пропорции; если перетащить разделитель до края, соответствующее представление свернётся, а при необходимости его можно снова открыть на левой панели инструментов.",
    "dividerTitle": "Настройка пропорций представлений",
    "done": "Начать работу",
    "enzymeSettingsBody": "Здесь собраны все настройки сайтов рестрикции: два раскрывающихся списка «Текущий набор ферментов/Схема отбора» определяют набор ферментов для отображения (синхронизированы с панелью инструментов под картой), кнопки ниже включают и выключают сайты рестрикции на карте и в представлении последовательности, а отсюда же можно открыть библиотеку ферментов.",
    "enzymeSettingsTitle": "Настройки сайтов рестрикции",
    "enzymesBody": "Нажмите кнопку с ножницами, чтобы отобразить сайты рестрикции на карте. Раскрывающиеся списки «Текущий набор ферментов/Схема отбора» позволяют фильтровать используемый набор ферментов по функциональным группам; список рестриктаз можно сортировать по цене за одну реакцию, чтобы выбрать выгодный фермент.",
    "enzymesTitle": "Рестриктазы и наборы ферментов",
    "later": "Изучить позже",
    "libAiRefreshBody": "Эта кнопка рядом с заголовком списка «Теги» позволяет массово генерировать теги для файлов библиотеки с помощью ИИ: можно выбрать «Обновить только без тегов» или «Перегенерировать все»; задача выполняется в фоновом режиме, по завершении список обновляется автоматически. Перед использованием настройте модель в разделе «Настройки ИИ».",
    "libAiRefreshTitle": "Массовое обновление тегов с помощью ИИ",
    "libInfoBody": "Панель справа показывает имя, путь, теги и проект выбранного файла: теги можно добавлять и удалять напрямую, а также нажать «Сгенерировать теги с помощью ИИ», чтобы перезаписать теги текущего файла.",
    "libInfoTitle": "Сведения о файле",
    "libListBody": "В центральном списке собраны все открытые вами генетические файлы, а также автоматически добавляются файлы, обнаруженные в отслеживаемых папках. Двойной щелчок по строке открывает файл, а флажок в начале строки позволяет выполнять массовые операции.",
    "libListTitle": "Список генетических файлов",
    "libPathsBody": "Переключитесь на вкладку «Исходные пути» — файлы будут упорядочены по реальным папкам на диске: щёлкните по папке, и центральный список покажет только файлы из неё; нажмите на корневой узел «Все файлы», чтобы снова отобразить всё.",
    "libPathsTitle": "Группировка по исходным путям",
    "libProjectsBody": "Раздел «Управление файлами» слева по умолчанию группирует файлы по проектам: нажмите «Новый проект», чтобы создать свой проект, и перетащите файлы из центрального списка в папку проекта для классификации; «Без категории» содержит файлы, ещё не отнесённые ни к одному проекту. Щёлкните по проекту, и центральный список покажет только его файлы.",
    "libProjectsTitle": "Группировка по проектам",
    "libRowBody": "Для вас уже выбран первый файл в списке. Щёлкните правой кнопкой мыши по строке файла, чтобы открыть его, открыть в другой программе, открыть содержащую папку, поделиться через другую программу, после подключения к команде отправить в общую библиотеку или конкретному участнику, убрать из библиотеки; двойной щелчок по строке сразу открывает файл.",
    "libRowTitle": "Контекстное меню файла",
    "libScanBody": "Нажмите «Сканировать папку» и выберите папку — все генетические файлы в ней (включая подпапки) будут добавлены в библиотеку за один раз; это самый удобный способ при первом импорте уже имеющихся на диске файлов.",
    "libScanTitle": "Сканировать папку",
    "libSearchBody": "Введите в поле поиска ключевые слова из имени, пути или тегов (несколько слов можно разделять пробелами) — список фильтруется мгновенно; очистите поле, чтобы снова показать всё, а облако тегов справа поможет дополнительно сузить область поиска.",
    "libSearchTitle": "Поиск",
    "libTagsBody": "Облако тегов собирает все теги в текущей области, размер шрифта растёт с частотой использования; щёлкните по тегу, чтобы отфильтровать файлы, повторный щелчок отменяет фильтр. При выборе нескольких тегов можно установить флажок «Все одновременно», чтобы требовать наличия всех тегов.",
    "libTagsTitle": "Облако тегов",
    "libTeamBody": "После подключения к серверу команды нажмите здесь, чтобы открыть центр команды: обрабатывайте полученные запросы, просматривайте отправки и объявления; соседняя кнопка «Синхронизировать в личное пространство команды» создаёт резервную копию файлов библиотеки в вашем пространстве команды, а в разделе «Управление файлами» слева появится категория «Общий доступ команды».",
    "libTeamTitle": "Команда",
    "libWatchBody": "Добавьте часто используемые папки в отслеживание — при каждом открытии библиотеки файлов будет выполняться автоматическая синхронизация: новые файлы добавляются, исчезнувшие удаляются; список отслеживаемых расширений можно настраивать.",
    "libWatchTitle": "Отслеживаемые папки",
    "libraryBody": "Откройте библиотеку генетических файлов для централизованного управления файлами на диске: автоматическое сканирование отслеживаемых папок, поиск плазмид по тегам; файлы из библиотеки можно открыть, поделиться или отправить участникам команды в один клик.",
    "libraryTitle": "Библиотека генетических файлов",
    "mapLabelsBody": "По умолчанию на карте отображаются только цветные блоки элементов. Нажмите эту кнопку с меткой, чтобы показать названия аннотаций на карте, повторное нажатие скрывает их.",
    "mapLabelsTitle": "Названия аннотаций на карте",
    "mapSeqLinkBody": "Переключите отображение карты и последовательности в режим «или одно, или другое» либо вернитесь из этого режима к произвольному отображению обоих.",
    "mapSeqLinkTitle": "Одновременное отображение карты и последовательности",
    "next": "Далее",
    "openWithBody": "Хотите просмотреть текущий файл в другой программе, например SnapGene? Нажмите здесь, чтобы выбрать способ открытия; при наличии несохранённых изменений сначала будет предложено их обработать.",
    "openWithTitle": "Открыть в другом приложении",
    "prev": "Назад",
    "pro": "Пропустить все подсказки обучения",
    "proConfirmBody": "Оставшиеся шаги руководства больше не будут показываться. Чтобы увидеть их снова, сбросьте обучение в разделе Настройки → Внешний вид → Обучение для новичков — при следующем открытии они появятся заново.",
    "proConfirmLeave": "Пропустить обучение",
    "proConfirmStay": "Продолжить обучение",
    "proConfirmTitle": "Пропустить обучение для новичков?",
    "propertiesOpenBody": "Название, длина, топология, аннотации и праймеры последовательности собраны на панели свойств (по умолчанию скрыта). Нажмите эту кнопку «Свойства» на боковой панели, чтобы открыть её; после этого обучение расскажет о самой панели.",
    "propertiesOpenTitle": "Открыть панель свойств",
    "railBody": "Столбец кнопок слева служит для показа и скрытия различных представлений: карта, последовательность, сайты рестрикции, выравнивание и панель свойств переключаются здесь.",
    "railTitle": "Боковая панель инструментов",
    "selectionBody": "Для вас уже выделены первые 20 оснований последовательности. Щёлкните правой кнопкой мыши по выделенной последовательности, чтобы выполнить множество действий: копировать, заменить, удалить, добавить аннотацию или праймер, подобрать sgRNA, запустить BLAST, смоделировать электрофорез и другое.",
    "selectionTitle": "Контекстное меню последовательности",
    "sequenceToggleBody": "Эта кнопка слева служит для сворачивания и восстановления представления последовательности: когда последовательность показана, кнопка называется «Скрыть последовательность» — нажатие сворачивает её, освобождая всё место для карты; после сворачивания она меняется на «Показать последовательность», и повторное нажатие восстанавливает её. Кнопка карты выше работает так же, при этом хотя бы одно из двух представлений должно оставаться видимым.",
    "sequenceToggleTitle": "Скрыть / показать представление последовательности",
    "settingsBody": "Эта кнопка в левом нижнем углу открывает настройки: тема оформления, настройка панели быстрых инструментов, конфигурация ИИ-ассистента, сервер команды и другое; здесь же находятся переключатели ИИ, такие как «Автоматическая генерация тегов плазмид», а также можно сбросить обучение для новичков.",
    "settingsTitle": "Настройки",
    "shareBody": "Отправьте текущий генетический документ другим людям через WeChat, электронную почту или другие приложения",
    "shareTitle": "Поделиться",
    "stepOf": "{{current}}/{{total}}",
    "tagsBody": "Теги используются для поиска и классификации плазмид в библиотеке генетических файлов: нажмите «+», чтобы ввести тег вручную, а кнопка «Обновить теги с помощью ИИ» справа позволяет сгенерировать их автоматически; после включения «Автоматической генерации тегов плазмид» в разделе Настройки → ИИ-ассистент теги будут автоматически обновляться в фоновом режиме при каждом открытии плазмиды.",
    "tagsTitle": "Теги плазмид",
    "toolboxBody": "Кнопка с портфелем вверху — это панель инструментов, в которой собраны все встроенные инструменты: библиотека рестриктаз, оптимизация кодонов, моделирование электрофореза, моделирование молекулярного клонирования и другие, сгруппированные по категориям; часто используемые инструменты можно добавить на соседнюю панель быстрых инструментов для открытия в один клик.",
    "toolboxTitle": "Панель инструментов",
    "wheelToggleBody": "Эта кнопка определяет, куда прокручивается содержимое при вращении колеса мыши в области последовательности: стрелки влево/вправо = колесо прокручивает по горизонтали; щелчок переключает на стрелки вверх/вниз = колесо прокручивает по вертикали. Такая же кнопка есть в панели выравнивания внизу слева; каждая панель запоминает свой выбор, и он также применяется к файлам, открытым позже.",
    "wheelToggleTitle": "Переключение направления прокрутки"
  },
  "update": {
    "aiTranslateFailed": "Ошибка перевода: {{error}}",
    "aiTranslateNotConfigured": "Чтобы перевести список изменений на текущий язык, сначала настройте ИИ-помощника в настройках.",
    "aiTranslateRetry": "Перевести заново",
    "aiTranslateRunning": "Перевод...",
    "aiTranslateSection": "ИИ-перевод",
    "aiTranslateStart": "Перевести",
    "aiTranslateStop": "Остановить",
    "aiTranslateStopped": "Перевод остановлен.",
    "changelogLoadError": "Не удалось загрузить список изменений",
    "changelogTitle": "Список изменений",
    "checkingForUpdates": "Проверка обновлений...",
    "currentVersion": "Текущая версия",
    "description": "Текущая версия {{current}}, последняя версия {{latest}}",
    "download": "Скачать сейчас",
    "downloadError": "Не удалось проверить обновления",
    "downloadingUpdate": "Загрузка {{percent}}%",
    "downloadingUpdateNoSize": "Загрузка...",
    "installConfirming": "Ожидание подтверждения...",
    "installFailed": "Ошибка обновления: {{error}}",
    "installFailedHint": "Также можно скачать и установить вручную с официального сайта.",
    "installNow": "Обновить сейчас",
    "installWithoutSaving": "Обновить без сохранения",
    "installingUpdate": "Установка, приложение скоро закроется или перезапустится...",
    "loadingNotes": "Загрузка списка изменений...",
    "noContext": "Информация об обновлении не получена.",
    "originalNotes": "Оригинал",
    "platform": "Текущая платформа",
    "releaseNotes": "Что нового",
    "retryInstall": "Повторить обновление",
    "saveAndInstall": "Сохранить и обновить",
    "skipVersion": "Пропустить эту версию",
    "title": "Доступна новая версия",
    "unknownPlatform": "Неизвестная платформа",
    "unsavedBeforeUpdateMessage": "Сохранить несохранённые документы перед обновлением?",
    "unsavedBeforeUpdateTitle": "Есть несохранённые документы",
    "upToDate": "Установлена последняя версия",
    "updateAvailable": "Доступна новая версия",
    "viewChangelog": "Посмотреть последние изменения",
    "visitWebsite": "Перейти на сайт"
  }
}