{
  "_meta": {
    "locale": "ru",
    "status": "machine-draft",
    "note": "Полный перевод на русский язык (черновик ИИ, формальное обращение на «вы»). Рекомендуется проверка носителем языка перед маркетинговыми кампаниями, согласно требованию качества переводов. Без длинного тире (em dash), согласно правилам CONCORD: фразы построены так, чтобы обойтись без него (короткое тире сохранено только в диапазонах лет). Переменные и имена собственные оставлены без изменений. Если предпочтительно неформальное обращение на «ты», это простое и последовательное изменение."
  },
  "site": {
    "name": "ronutz",
    "tagline": "Инструменты для сетей и безопасности, которые работают на вашей собственной машине, а не в чужом облаке."
  },
  "nav": {
    "tools": "Инструменты",
    "about": "Обо мне",
    "certifications": "Сертификаты",
    "training": "Обучение",
    "contact": "Контакты",
    "skipToContent": "Перейти к содержимому",
    "openMenu": "Открыть меню",
    "closeMenu": "Закрыть меню",
    "learn": "Изучить",
    "endorsements": "Отзывы",
    "certs": "Сертификаты"
  },
  "languageSwitcher": {
    "label": "Язык",
    "stubNotice": "Этот язык ещё не переведён. Отображается на английском."
  },
  "home": {
    "hero": {
      "eyebrow": "Создано практиком, с приоритетом конфиденциальности",
      "title": "Набор инструментов для сетей и безопасности, который хранит ваши данные на вашей машине.",
      "subtitle": "Расчёты подсетей, диагностика DNS и электронной почты, проверка сертификатов и многое другое, вычисляется локально в вашем браузере. Без отправки, без журналирования, без необходимости заводить учётную запись для повседневных инструментов.",
      "ctaPrimary": "Открыть набор инструментов",
      "ctaSecondary": "Кто это создаёт"
    },
    "credibility": {
      "title": "Создано тем, кто занимается этим делом с 1996 года.",
      "body": "Тридцать лет в корпоративных сетях и безопасности, представленные действующим инструктором, а не маркетинговой страницей. Сертификация по четырём платформам, поэтому сравнения здесь сделаны честно, а не ради продажи.",
      "aboutCta": "Подробнее о создателе"
    },
    "pillars": {
      "title": "Четыре платформы, преподаются и поддерживаются в актуальном состоянии.",
      "f5": "F5",
      "fortinet": "Fortinet",
      "extreme": "Extreme Networks",
      "netskope": "Netskope"
    },
    "privacy": {
      "title": "Почему локальная работа важна в задачах безопасности.",
      "body": "Когда вы вставляете конфигурацию, перехват пакетов или сертификат в инструмент, эти данные часто содержат секреты. Здесь повседневные инструменты работают полностью в вашем браузере. Введённые данные никогда не покидают ваше устройство, поэтому нечего журналировать, нечему утекать и нечего выдавать по решению суда."
    },
    "toolPreview": {
      "title": "Попробуйте инструмент прямо сейчас.",
      "body": "Калькулятор CIDR ниже работает локально. Введите сеть и префикс, чтобы увидеть диапазон адресов, число узлов и маску. Ничего никуда не отправляется.",
      "learnHeading": "Изучите концепции",
      "toolboxCta": "Открыть полный набор инструментов",
      "seeAllArticles": "Посмотреть все статьи"
    },
    "provenance": {
      "title": "Благодарности и источники",
      "show": "Показать",
      "hide": "Скрыть",
      "basisLabel": "Как это работает",
      "sourcesLabel": "Стандарты и источники"
    },
    "funding": {
      "title": "Поддержите этот инструмент",
      "pitch": "Этот инструмент бесплатный и задуман таким остаться. Если он заслужит место в вашем рабочем процессе, вы можете помочь финансировать его поддержку и то, что появится дальше.",
      "purposeLabel": "Финансируется сейчас"
    },
    "stats": {
      "tools": "Инструменты",
      "articles": "Статьи",
      "sectionLabel": "Набор инструментов вкратце"
    }
  },
  "tools": {
    "cidr": {
      "title": "Калькулятор CIDR",
      "description": "Рассчитайте адреса сети и широковещательной рассылки, диапазон используемых узлов, число узлов и маску сети для блока IPv4 CIDR. Работает локально в вашем браузере.",
      "inputLabel": "Блок CIDR",
      "inputPlaceholder": "192.168.1.0/24",
      "compute": "Рассчитать",
      "runsLocally": "Работает локально, ничего не отправляется ни на один сервер.",
      "prefixSlider": "Длина префикса",
      "bitsHeading": "Биты адреса",
      "bitsNetwork": "Сеть",
      "bitsHost": "Хост",
      "bitsNote": "Выделенные биты определяют сеть — остальные адресуют хосты внутри неё.",
      "results": {
        "network": "Адрес сети",
        "broadcast": "Широковещательный адрес",
        "netmask": "Маска сети",
        "wildcard": "Обратная маска",
        "firstHost": "Первый используемый узел",
        "lastHost": "Последний используемый узел",
        "totalAddresses": "Всего адресов",
        "usableHosts": "Используемые узлы"
      },
      "errors": {
        "empty": "Введите блок CIDR для расчёта.",
        "invalid": "Это не похоже на корректный блок CIDR. Попробуйте формат вроде 192.168.1.0/24."
      },
      "name": "Калькулятор CIDR / подсетей",
      "blurb": "Разложите любой блок CIDR IPv4 на адреса сети и широковещательный, диапазон используемых узлов, число узлов и маску сети. Работает полностью в вашем браузере.",
      "modes": {
        "subnet": "Подсеть",
        "vlsm": "VLSM",
        "supernet": "Суперсеть",
        "overlap": "Пересечение / пробел"
      },
      "modeDesc": {
        "subnet": "Анализирует один блок CIDR IPv4: сеть, широковещание, маску и диапазон узлов.",
        "vlsm": "Делит родительский блок на подсети переменной длины по списку количества узлов.",
        "supernet": "Объединяет список префиксов в наименьший набор покрывающих блоков.",
        "overlap": "Находит пересечения и вложенность между префиксами, а также пробелы в необязательной области."
      },
      "vlsm": {
        "parentLabel": "Родительский блок",
        "reqsLabel": "Требования к подсетям",
        "namePlaceholder": "Имя (необязательно)",
        "hostsPlaceholder": "Узлы",
        "addRow": "Добавить подсеть",
        "remove": "Удалить",
        "run": "Распределить",
        "th": {
          "name": "Имя",
          "hosts": "Узлы",
          "network": "Сеть",
          "prefix": "Префикс",
          "netmask": "Маска сети",
          "range": "Используемый диапазон",
          "broadcast": "Широковещательный",
          "usable": "Используемые узлы"
        },
        "stat": {
          "parent": "Родитель",
          "used": "Использовано",
          "free": "Свободно",
          "utilization": "Заполнение"
        },
        "unfit": "Не поместились",
        "parentPlaceholder": "10.0.0.0/24"
      },
      "supernet": {
        "label": "Префиксы для агрегации",
        "run": "Агрегировать",
        "minimal": "Минимальный покрывающий набор",
        "single": "Одна суперсеть",
        "singleExtra": "Добавляет {extra} дополнительных адресов сверх входных данных.",
        "stat": {
          "inputs": "Входные префиксы",
          "addresses": "Адреса",
          "blocks": "Агрегированные блоки"
        },
        "placeholder": "192.168.0.0/24\n192.168.1.0/24"
      },
      "overlap": {
        "label": "Префиксы для проверки",
        "scopeLabel": "Область (необязательно, включает поиск пробелов)",
        "run": "Проверить",
        "overlapsTitle": "Пересечения",
        "noOverlaps": "Пересечений не найдено.",
        "gapsTitle": "Пробелы в области",
        "noGaps": "В указанной области пробелов нет.",
        "kind": {
          "identical": "идентичен",
          "contains": "содержит",
          "contained": "входит в",
          "partial": "частично пересекается с"
        },
        "addresses": "адресов",
        "stat": {
          "covered": "Покрыто",
          "scope": "Область"
        },
        "placeholder": "10.0.0.0/24\n10.0.0.128/25",
        "scopePlaceholder": "10.0.0.0/16"
      },
      "err": {
        "ipv4": "Недействительный адрес IPv4. Используйте четыре октета от 0 до 255, например 192.168.1.0.",
        "octet": "Октет вне диапазона (каждый должен быть от 0 до 255).",
        "format": "Ожидается формат A.B.C.D/префикс, например 192.168.1.0/24.",
        "prefix": "Длина префикса должна быть от 0 до 32.",
        "tooMany": "Слишком много записей. Сократите список и повторите попытку.",
        "noReqs": "Добавьте хотя бы одно требование к подсети с количеством узлов.",
        "noPrefixes": "Введите хотя бы один префикс, по одному в строке."
      },
      "rangeHeading": "Раскладка адресов",
      "usableShort": "доступно",
      "rfcNote": "/31 и /32 ничего не резервируют: каждый адрес доступен (RFC 3021).",
      "reservedNote": "Первый адрес — это сеть, а последний — широковещательный; оба зарезервированы, поэтому доступно = всего − 2."
    },
    "title": "Инструменты",
    "lede": "Небольшие, быстрые и уважающие конфиденциальность инструменты, которые работают полностью в вашем браузере. Ничего из того, что вы вводите, никуда не отправляется. Скоро появятся новые.",
    "open": "Открыть",
    "comingSoon": "Скоро",
    "note": "Этот набор инструментов растёт. Новые инструменты добавляются сюда по мере готовности, каждый с локальной работой и бесплатный в использовании.",
    "learnHeading": "Изучите концепции",
    "backToTools": "Инструменты",
    "references": "Источники",
    "jumpTo": "Перейти к",
    "categories": {
      "identity": "Идентификация и токены",
      "encoding": "Кодирование и данные",
      "hashing": "Хеширование и крипто",
      "identifiers": "Идентификаторы",
      "pki": "Сертификаты и PKI",
      "networking": "Сети",
      "transport": "TLS и транспорт"
    },
    "hash": {
      "name": "Генератор хешей (SHA-1/256/384/512)",
      "blurb": "Вычисляйте дайджесты SHA-1, SHA-256, SHA-384 и SHA-512 любого текста, показанные в hex и Base64, с помощью встроенного Web Crypto браузера. Работает полностью в вашем браузере.",
      "algorithmLabel": "Алгоритм хеширования",
      "inputLabel": "Текст для хеширования",
      "inputPlaceholder": "The quick brown fox jumps over the lazy dog",
      "runsLocally": "Хеширование выполняется локально через Web Crypto. Ничего из того, что вы вводите, не покидает ваш браузер.",
      "bits": "{bits} бит ({bytes} байт)",
      "sha1Note": "SHA-1 взломан в части устойчивости к коллизиям и непригоден для безопасности (подписи, сертификаты). Он годится только для контрольных сумм без целей безопасности и для устаревшей совместимости.",
      "hex": "Hex",
      "base64": "Base64",
      "copy": "Копировать",
      "copied": "Скопировано"
    },
    "hmac": {
      "name": "Генератор HMAC (SHA-256/384/512)",
      "blurb": "Вычисляйте HMAC с ключом над сообщением, используя ваш секретный ключ, показанный в hex и Base64, через встроенный Web Crypto браузера. Та же конструкция, что верификатор JWT использует для HS256. Ваш ключ никогда не покидает ваш браузер.",
      "algorithmLabel": "Алгоритм HMAC",
      "messageLabel": "Сообщение",
      "messagePlaceholder": "Сообщение для аутентификации",
      "keyLabel": "Секретный ключ",
      "keyPlaceholder": "Ваш общий секрет",
      "runsLocally": "HMAC выполняется локально через Web Crypto. Ваше сообщение и ключ никогда не покидают ваш браузер.",
      "hex": "Hex",
      "base64": "Base64",
      "copy": "Копировать",
      "copied": "Скопировано",
      "struct": {
        "heading": "Как устроен HMAC",
        "innerHash": "внутренний хеш",
        "note": "HMAC хеширует сообщение дважды. Ключ объединяется операцией XOR с фиксированным внутренним паддингом перед первым хешированием и с внешним паддингом перед вторым, и именно эта конструкция с двумя паддингами предотвращает атаки расширения длины. Ключ сначала приводится к размеру блока хеш-функции."
      }
    },
    "base64": {
      "name": "Кодек Base64, Base32, Hex и процентное кодирование",
      "blurb": "Кодируйте текст в Base64, URL-безопасный Base64, Base32, шестнадцатеричный формат или процентное кодирование и декодируйте любой из них обратно. Допускает отсутствие заполнения и пробелов и помечает двоичные (не UTF-8) результаты. Работает полностью в вашем браузере.",
      "directionLabel": "Направление",
      "direction": {
        "encode": "Кодировать",
        "decode": "Декодировать"
      },
      "inputLabelEncode": "Текст для кодирования",
      "inputLabelDecode": "Закодированный текст для декодирования",
      "placeholderEncode": "Hello, World!",
      "placeholderDecode": "SGVsbG8sIFdvcmxkIQ==",
      "runsLocally": "Кодирование и декодирование выполняются локально. Ничего из того, что вы вставляете, не покидает ваш браузер.",
      "decodeErrors": {
        "invalid-characters": "Эти входные данные содержат символы вне алфавита выбранного кодека.",
        "invalid-length": "Эти входные данные имеют недопустимую длину для выбранного кодека.",
        "invalid-escape": "Эти входные данные содержат некорректную процентную последовательность (% без двух следующих шестнадцатеричных цифр)."
      },
      "outputEncode": "Закодировано",
      "outputDecode": "Декодированный текст",
      "copy": "Копировать",
      "copied": "Скопировано",
      "emptyOutput": "(пусто)",
      "decodedBytes": "{bytes, plural, one {Декодирован # байт} few {Декодировано # байта} many {Декодировано # байт} other {Декодировано # байта}}.",
      "notUtf8": "{bytes, plural, one {Декодирован # байт} few {Декодировано # байта} many {Декодировано # байт} other {Декодировано # байта}}, но результат не является действительным текстом UTF-8 (вероятно, двоичный).",
      "codecLabel": "Кодек",
      "codec": {
        "base64": "Base64",
        "base64url": "Base64URL",
        "base32": "Base32",
        "base16": "Hex",
        "percent": "Percent"
      }
    },
    "pkce": {
      "name": "Верификатор и challenge OAuth PKCE",
      "blurb": "Сгенерируйте code_verifier OAuth 2.0 и выведите его code_challenge S256, либо вставьте свой и проверьте его по правилам длины и набора символов RFC 7636. То же самое выведение SHA-256 в base64url, которое ожидает ваш сервер авторизации. Работает полностью в вашем браузере.",
      "verifierLabel": "Верификатор кода",
      "verifierPlaceholder": "Вставьте code_verifier или сгенерируйте его",
      "generate": "Сгенерировать",
      "runsLocally": "Генерация и выведение выполняются локально. Ваш верификатор никогда не покидает ваш браузер.",
      "lengthBadge": "Длина {length} (43-128)",
      "charsetOk": "Незарезервированный набор символов",
      "charsetBad": "Недопустимые символы",
      "s256Title": "Code challenge · S256",
      "plainTitle": "Code challenge · plain",
      "plainNote": "Метод plain не рекомендуется. Используйте S256 везде, где клиент может вычислить SHA-256.",
      "encodingLabel": "base64url",
      "plainValueLabel": "= code_verifier",
      "copy": "Копировать",
      "copied": "Скопировано",
      "flowHeading": "Как работает PKCE",
      "laneClient": "Приложение / Клиент",
      "laneServer": "Сервер авторизации",
      "s1": "Сгенерировать случайный code_verifier",
      "s2": "Вывести code_challenge",
      "s3": "Запрос авторизации несёт challenge",
      "s4": "Сервер сохраняет challenge",
      "s5": "Возвращён код авторизации",
      "s6": "Запрос токена несёт verifier",
      "s7": "Сервер заново выводит и сравнивает",
      "s8": "Выданы токены доступа и обновления"
    },
    "uuid": {
      "name": "Генератор и инспектор UUID (v4 / v7)",
      "blurb": "Генерируйте случайные UUID v4 или упорядоченные по времени v7, либо вставьте любой UUID, чтобы прочитать его версию, вариант и (для v7) встроенную метку времени создания. Генерация использует безопасный источник случайности браузера. Работает полностью в вашем браузере.",
      "versionLabel": "Версия UUID",
      "generate": "Сгенерировать",
      "clear": "Очистить",
      "emptyHint": "Выберите версию и сгенерируйте.",
      "runsLocally": "Генерация и инспекция выполняются локально. Ничего никуда не отправляется.",
      "copy": "Копировать",
      "copied": "Скопировано",
      "inspectLabel": "Исследовать UUID",
      "inspectPlaceholder": "Вставьте любой UUID, чтобы декодировать его",
      "valid": "Действительный UUID",
      "invalid": "Недействительный UUID",
      "versionField": "Версия",
      "variantField": "Вариант",
      "timestampField": "Метка времени (v7)",
      "versionValue": "Версия {version}"
    },
    "jwt": {
      "name": "Декодировщик и верификатор JWT",
      "blurb": "Декодируйте заголовок и утверждения (claims) JSON Web Token, прочитайте срок его действия и тайминги простым языком и проверьте подпись HS256/384/512 с помощью вставленного секрета. Работает полностью в вашем браузере.",
      "inputLabel": "JSON Web Token",
      "inputPlaceholder": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
      "runsLocally": "Декодирование и проверки подписи выполняются локально. Токен и секрет никогда не покидают ваш браузер.",
      "errors": {
        "empty": "Вставьте JSON Web Token для декодирования.",
        "format": "Это не похоже на JWT. Токен состоит из трёх частей base64url, разделённых точками: header.payload.signature.",
        "header": "Заголовок недействителен. Он должен быть JSON, закодированным в base64url.",
        "payload": "Полезная нагрузка недействительна. Она должна быть JSON, закодированным в base64url."
      },
      "panels": {
        "header": "Заголовок",
        "payload": "Полезная нагрузка",
        "signature": "Подпись",
        "noSignature": "Нет сегмента подписи (незащищённый токен)."
      },
      "claims": {
        "iss": "Издатель (iss)",
        "sub": "Субъект (sub)",
        "aud": "Аудитория (aud)",
        "jti": "Идентификатор JWT (jti)",
        "iat": "Выдан (iat)",
        "nbf": "Не ранее (nbf)",
        "exp": "Истекает (exp)"
      },
      "status": {
        "expired": "Истёк {rel}",
        "expiresIn": "Действителен, истекает {rel}",
        "notYetValid": "Ещё не действителен, начинается {rel}",
        "noExpiry": "Нет утверждения об истечении (exp)"
      },
      "verify": {
        "label": "Проверить подпись HMAC (HS256/384/512)",
        "placeholder": "общий секрет",
        "button": "Проверить",
        "valid": "Подпись действительна для этого секрета.",
        "invalid": "Подпись не соответствует этому секрету.",
        "algNone": "Этот токен незащищён (alg: none), поэтому проверять нечего.",
        "unsupportedAlg": "Проверка в браузере охватывает только HS256/384/512. {alg} асимметричен и требует открытого ключа.",
        "hint": "Секрет используется только для вычисления HMAC в вашем браузере. Он никогда никуда не отправляется."
      },
      "struct": {
        "heading": "Строение JWT",
        "signingInput": "Входные данные подписи",
        "note": "Заголовок и полезная нагрузка только закодированы в base64url, а не зашифрованы, поэтому их может прочитать кто угодно. Подпись вычисляется по заголовку и полезной нагрузке, соединённым точкой, и именно её проверяет верификатор."
      }
    },
    "x509": {
      "name": "Декодировщик сертификатов X.509",
      "blurb": "Вставьте сертификат в формате PEM, base64 или hex, чтобы прочитать его субъект, издателя, окно действия, открытый ключ и расширения v3, с отпечатками SHA-256 и SHA-1. Работает полностью в вашем браузере.",
      "inputLabel": "Сертификат X.509",
      "inputPlaceholder": "-----BEGIN CERTIFICATE-----\nMIIB...\n-----END CERTIFICATE-----",
      "runsLocally": "Декодирование и отпечатки выполняются локально. Сертификат никогда не покидает ваш браузер.",
      "errors": {
        "empty": "Вставьте сертификат X.509 для декодирования.",
        "format": "Это не похоже на сертификат. Вставьте PEM (-----BEGIN CERTIFICATE-----), base64 или hex.",
        "der": "Байты не являются действительным DER. Проверьте, что вставлен весь сертификат, включая строку END.",
        "structure": "Это декодируется как ASN.1, но не является сертификатом X.509. Сертификат — это SEQUENCE из TBSCertificate, signatureAlgorithm и signatureValue."
      },
      "status": {
        "valid": "Действителен, истекает {rel}",
        "expired": "Истёк {rel}",
        "notYetValid": "Ещё не действителен, начинается {rel}"
      },
      "panels": {
        "subject": "Субъект",
        "issuer": "Издатель",
        "details": "Подробности",
        "publicKey": "Открытый ключ",
        "extensions": "Расширения",
        "fingerprints": "Отпечатки",
        "sct": "Certificate Transparency"
      },
      "fields": {
        "version": "Версия",
        "serial": "Серийный номер",
        "notBefore": "Не ранее",
        "notAfter": "Не позднее",
        "signatureAlgorithm": "Алгоритм подписи",
        "algorithm": "Алгоритм",
        "keySize": "Размер ключа",
        "exponent": "Экспонента",
        "curve": "Кривая",
        "bits": "{n} бит",
        "selfSigned": "Самоизданный"
      },
      "ext": {
        "san": "Альтернативные имена субъекта",
        "keyUsage": "Использование ключа",
        "extKeyUsage": "Расширенное использование ключа",
        "basicConstraints": "Базовые ограничения",
        "subjectKeyId": "Идентификатор ключа субъекта",
        "authorityKeyId": "Идентификатор ключа центра",
        "caTrue": "Центр сертификации (CA: true)",
        "caFalse": "Не является CA (CA: false)",
        "pathLen": "длина пути {n}",
        "critical": "критическое"
      },
      "fp": {
        "sha256": "SHA-256",
        "sha1": "SHA-1",
        "computing": "Вычисление отпечатков..."
      },
      "chainHeading": "Цепочка доверия",
      "tierRoot": "Корневой ЦС",
      "tierIntermediate": "Промежуточный ЦС",
      "tierLeaf": "Конечный сертификат",
      "roleRoot": "Самоподписанный якорь доверия",
      "roleIntermediate": "Подписан корневым; подписывает конечные сертификаты",
      "roleLeaf": "Идентифицирует сервер или клиент",
      "thisCert": "этот сертификат",
      "issuedBy": "Выдан",
      "signs": "подписывает",
      "trustNote": "Доверие течёт сверху вниз: каждый сертификат подписан вышестоящим, вплоть до корневого, которому ваша система уже доверяет.",
      "sct": {
        "intro": "Встроенные SCT: {n}. Каждый — это подписанное доказательство CT-журнала о том, что он зарегистрировал этот сертификат; браузеры требуют минимальное количество, чтобы сертификат был доверенным.",
        "entry": "SCT {i}",
        "logId": "ID журнала",
        "timestamp": "Зарегистрировано",
        "signature": "Подпись",
        "note": "Подписи показаны, но здесь не проверяются; для проверки SCT нужны открытый ключ журнала и предсертификат."
      }
    },
    "ipv6": {
      "name": "Набор инструментов IPv6",
      "blurb": "Разберите адрес или префикс IPv6, чтобы увидеть его канонический (RFC 5952) и полностью развёрнутый виды, классификацию специального назначения, арифметику префикса, MAC EUI-64 (если присутствует) и его имя обратного DNS ip6.arpa. Работает полностью в вашем браузере.",
      "inputLabel": "Адрес или префикс IPv6",
      "inputPlaceholder": "2001:db8::1/64",
      "runsLocally": "Разбор выполняется локально. Адрес никогда не покидает ваш браузер.",
      "errors": {
        "empty": "Введите адрес или префикс IPv6 для декодирования.",
        "format": "Это недействительный адрес IPv6. Используйте восемь шестнадцатеричных групп, при необходимости один раз сжатых с помощью :: (например, 2001:db8::1).",
        "prefix": "Длина префикса недействительна. Для IPv6 она должна быть от 0 до 128."
      },
      "panels": {
        "forms": "Канонические формы",
        "classification": "Классификация",
        "prefix": "Префикс",
        "identifiers": "Идентификаторы"
      },
      "fields": {
        "compressed": "Сжатый (RFC 5952)",
        "expanded": "Развёрнутый",
        "type": "Тип",
        "scope": "Область",
        "embeddedIpv4": "Встроенный IPv4",
        "network": "Сеть",
        "firstAddress": "Первый адрес",
        "lastAddress": "Последний адрес",
        "count": "Адреса",
        "hostBits": "Биты узла",
        "eui64": "MAC EUI-64",
        "reverseDns": "Обратный DNS (ip6.arpa)"
      },
      "badges": {
        "multicast": "многоадресный"
      },
      "segHeading": "Структура адреса",
      "networkSeg": "Сетевой префикс",
      "ifaceId": "ID интерфейса",
      "hostBits": "Биты хоста",
      "prefixNote": "Биты слева от границы заданы префиксом; биты справа идентифицируют хост внутри него.",
      "conventionNote": "Префикс не указан, поэтому пунктирная линия отмечает обычное деление /64: префикс маршрутизации и подсеть слева, 64-битный идентификатор интерфейса справа."
    },
    "cipher": {
      "name": "Декодер наборов шифров",
      "blurb": "Введите набор шифров TLS — имя IANA, имя OpenSSL или GnuTLS либо шестнадцатеричную кодовую точку — чтобы разложить его на обмен ключами, аутентификацию, шифр, режим и MAC, с понятной оценкой безопасности и официальной рекомендацией IANA. Работает полностью в вашем браузере на встроенной копии реестра IANA.",
      "inputLabel": "Набор шифров",
      "inputPlaceholder": "TLS_AES_128_GCM_SHA256, ECDHE-RSA-AES128-GCM-SHA256 или 0x1301",
      "runsLocally": "Декодирование выполняется локально на встроенной копии реестра наборов шифров TLS организации IANA. Ничего никуда не отправляется.",
      "notInRegistryNote": "Это имя разобрано структурно, но не найдено во встроенном снимке реестра IANA — поэтому его кодовая точка и эквивалентные имена не показаны.",
      "errors": {
        "empty": "Введите набор шифров для декодирования.",
        "format": "Это не набор шифров. Введите имя IANA (TLS_...), имя OpenSSL или шестнадцатеричную кодовую точку, например 0x1301.",
        "unknown": "Это допустимый формат кодовой точки, но это не назначенный набор шифров в реестре IANA."
      },
      "ratings": {
        "recommended": "Рекомендуемый",
        "secure": "Безопасный",
        "weak": "Слабый",
        "insecure": "Небезопасный",
        "unknown": "Неизвестно"
      },
      "iana": {
        "Y": "IANA: рекомендуется",
        "N": "IANA: не рекомендуется",
        "D": "IANA: не советуется"
      },
      "badges": {
        "tls13": "TLS 1.3",
        "notInRegistry": "Нет в снимке IANA"
      },
      "panels": {
        "identity": "Идентификация",
        "components": "Компоненты",
        "security": "Безопасность"
      },
      "fields": {
        "codePoint": "Кодовая точка",
        "name": "Имя IANA",
        "openssl": "Имя OpenSSL",
        "gnutls": "Имя GnuTLS",
        "protocol": "Протокол",
        "dtls": "DTLS-OK",
        "references": "Ссылки"
      },
      "protocol": {
        "tls13": "TLS 1.3",
        "legacy": "TLS 1.2 и более ранние"
      },
      "comp": {
        "keyExchange": "Обмен ключами",
        "authentication": "Аутентификация",
        "forwardSecrecy": "Прямая секретность",
        "cipher": "Шифр",
        "mode": "Режим",
        "aead": "AEAD",
        "prf": "Хеш PRF/KDF",
        "mac": "MAC",
        "yes": "Да",
        "no": "Нет",
        "bits": "{n} бит",
        "negotiatedSeparately": "Согласуется отдельно (TLS 1.3)"
      },
      "reasons": {
        "nullCipher": "Шифр NULL: трафик вообще не шифруется.",
        "anon": "Анонимный обмен ключами: партнёр не аутентифицируется, поэтому это не даёт защиты от активного посредника.",
        "export40": "Ключ экспортного класса (40 бит): тривиально вскрывается перебором, пережиток экспортных правил 1990-х.",
        "rc4": "Потоковый шифр RC4: смещённый поток ключа делает его взломанным, и RFC 7465 запрещает его для TLS.",
        "singleDes": "Одиночный DES с 56-битным ключом: вскрывается перебором за часы.",
        "rc2": "RC2: устаревший 40/64-битный шифр, небезопасный для современного применения.",
        "tripleDes": "У 3DES 64-битный блок, что делает его уязвимым к атаке дней рождения Sweet32 (CVE-2016-2183). RFC 8429 объявляет его устаревшим.",
        "md5Mac": "MAC на MD5: MD5 криптографически взломан.",
        "cbcMac": "CBC с MAC на HMAC-SHA1 или MD5 использует MAC-then-encrypt и уязвим к атакам padding oracle, таким как BEAST и Lucky13.",
        "ccm8": "CCM_8 усекает тег аутентификации до 8 байт, ослабляя целостность. IANA не помечает его как рекомендуемый.",
        "noFs": "Нет прямой секретности: при статическом обмене ключами один скомпрометированный долгосрочный ключ может расшифровать прошлые сеансы. Современные требования предписывают ECDHE или DHE.",
        "legacyCipher": "{value} — устаревший шифр, неактуальный для TLS.",
        "aead": "Шифр AEAD (аутентифицированное шифрование): конфиденциальность и целостность в одном примитиве, без отдельного MAC, который можно применить неверно.",
        "fs": "Прямая секретность: эфемерный обмен ключами сохраняет прошлый трафик в безопасности, даже если долгосрочный ключ позже скомпрометируют.",
        "tls13": "Набор TLS 1.3: только современные шифры AEAD, с обменом ключами, согласуемым отдельно и всегда эфемерным.",
        "ianaD": "IANA помечает этот набор как «D» (не советуется): его НЕ СЛЕДУЕТ или НЕЛЬЗЯ использовать, в зависимости от ситуации.",
        "ianaN": "IANA не помечает этот набор как «Рекомендуемый»: ограниченная применимость или он не прошёл процесс консенсуса IETF.",
        "signalling": "Сигнальный набор (SCSV): не настоящий шифр, а несёт сигнал протокола, например защиту от понижения версии или сведения о повторном согласовании."
      },
      "groups": {
        "title": "Группы обмена ключами",
        "intro": "TLS согласует саму группу согласования ключей отдельно от набора шифров, в расширении supported_groups. Поскольку \"harvest now, decrypt later\" подталкивает к постквантовому обмену ключами, приведённые ниже гибридные группы сочетают классическую кривую с ML-KEM.",
        "kind": {
          "ecdhe": "Кривая ECDHE",
          "ffdhe": "DH в конечном поле",
          "pq-hybrid": "PQ-гибрид"
        },
        "pq": {
          "classical": "Классический",
          "hybrid-pq": "Гибридный PQ"
        },
        "recommended": "Рекомендуется",
        "obsolete": "Устаревший",
        "legacy": "Унаследованный",
        "combines": "Сочетает {classical} с {pq}",
        "foot": "X25519MLKEM768 — это гибридная группа, которую большинство браузеров теперь отправляют по умолчанию."
      }
    },
    "f5-ssl-profile-explainer": {
      "name": "Разбор SSL-профиля F5",
      "blurb": "Вставьте профиль client-ssl или server-ssl из tmsh и получите его роль, матрицу протоколов TLS и оценку безопасности по цепочке, пересогласованию, SNI, OCSP и взаимному TLS — всё в браузере.",
      "inputLabel": "SSL-профиль (tmsh)",
      "inputPlaceholder": "ltm profile client-ssl /Common/name ...",
      "runsLocally": "Обрабатывается в вашем браузере. Ничего никуда не отправляется.",
      "scopeNote": "Декодирует вставленный блок профиля. Никогда не обращается к BIG-IP.",
      "errorTitle": "Не удалось прочитать профиль",
      "err_empty": "Вставьте SSL-профиль, чтобы начать.",
      "err_noHeader": "Ожидалась строка вида: ltm profile client-ssl /Common/name ...",
      "err_noBody": "В профиле не найдена открывающая фигурная скобка.",
      "err_tooLong": "Эти данные слишком велики для разбора.",
      "err_invalid": "Это не похоже на профиль client-ssl или server-ssl.",
      "protocolsHeading": "Версии протокола TLS",
      "permitted": "разрешён",
      "disabled": "отключён",
      "findingsHeading": "Оценка безопасности",
      "settingsHeading": "Объяснение настроек",
      "topoHeading": "В пути данных",
      "nodeClient": "Клиент",
      "nodeBigip": "BIG-IP",
      "nodePool": "Член пула",
      "clientLeg": "TLS со стороны клиента",
      "serverLeg": "Сторона сервера",
      "thisProfile": "этот профиль",
      "clientNote": "Профиль client-ssl завершает TLS клиента на BIG-IP. Соединение к члену пула повторно шифруется только при наличии профиля server-ssl; без него этот участок передаётся открытым текстом (SSL offload).",
      "serverNote": "Профиль server-ssl позволяет BIG-IP открыть новое TLS-соединение к члену пула (повторное шифрование). Сторону клиента обрабатывает отдельный профиль client-ssl."
    },
    "epoch": {
      "name": "Конвертер времени Unix",
      "blurb": "Введите метку времени Unix — секунды, миллисекунды, микросекунды или наносекунды, определяется автоматически — или дату ISO-8601 и прочитайте её во всех распространённых форматах. Всё в браузере.",
      "inputLabel": "Метка времени или дата",
      "inputPlaceholder": "1700000000  или  2023-11-14T22:13:20Z",
      "runsLocally": "Преобразовано в вашем браузере. Ничего никуда не отправляется.",
      "scopeNote": "Чистая арифметика дат. Единица определяется по размеру числа; при необходимости исправьте.",
      "nowButton": "Сейчас",
      "errorTitle": "Не удалось это прочитать",
      "err_empty": "Введите метку времени или дату, чтобы начать.",
      "err_invalid": "Это не метка времени Unix и не дата ISO-8601.",
      "err_tooLong": "Этот ввод слишком длинный.",
      "err_outOfRange": "Эта метка времени вне представимого диапазона дат.",
      "utcHeading": "Дата и время UTC",
      "formatsHeading": "Все форматы",
      "dayOfYearLabel": "день года",
      "relativeNote": "относительно часов вашего устройства"
    },
    "irules-event-order": {
      "name": "Порядок событий iRule",
      "blurb": "Выберите набор профилей виртуального сервера BIG-IP — Client-SSL, HTTP, Server-SSL, пул — и посмотрите порядок, в котором срабатывают типичные события iRule, от CLIENT_ACCEPTED до CLIENT_CLOSED, в виде таймлайна и списка. Всё в браузере.",
      "stackLabel": "Набор профилей виртуального сервера",
      "tog_clientssl": "Профиль Client-SSL",
      "tog_http": "Профиль HTTP",
      "tog_serverssl": "Профиль Server-SSL",
      "tog_pool": "Пул (балансировка)",
      "tog_fastl4": "FastL4 (быстрый путь пакетов)",
      "presetsLabel": "Шаблоны:",
      "preset_https": "HTTPS с перешифрованием",
      "preset_offload": "SSL-офлоад",
      "preset_http": "HTTP",
      "preset_tcp": "Чистый TCP",
      "runsLocally": "Вычислено в вашем браузере. Ничего никуда не отправляется.",
      "scopeNote": "Модель документированного поведения F5 для виртуального сервера Standard. Никогда не обращается к BIG-IP.",
      "diagramHeading": "Последовательность событий",
      "listHeading": "События по порядку",
      "conditionalHeading": "Условные события",
      "conditionalNote": "Они срабатывают только при определённых условиях: TCP::collect или HTTP::collect, сбой балансировки или ответ 100 Continue.",
      "sideClient": "сторона клиента",
      "sideServer": "сторона сервера",
      "sideGlobal": "глобально"
    },
    "cert-renewal-planner": {
      "name": "Планировщик обновления сертификатов",
      "blurb": "Рассчитайте срок действия сертификата TLS, укладывается ли он в 47-дневный график CA/Browser Forum, и вытекающую из этого частоту обновления; всё офлайн.",
      "notBeforeLabel": "Выдан (notBefore)",
      "notAfterLabel": "Истекает (notAfter)",
      "runsLocally": "Всё работает в вашем браузере; ничего не загружается.",
      "exampleLabel": "Попробовать пример на 90 дней",
      "summaryHeading": "Этот сертификат",
      "validity": "Срок действия {days} дней",
      "compliantBadge": "В пределах лимита",
      "overCapBadge": "Превышает лимит",
      "maxForPhase": "Максимум для даты выпуска: {max} дней.",
      "overByText": "{days} дней сверх максимума в {max} дней для даты выпуска; публичный УЦ его не выпустил бы.",
      "renewalsValue": "Около {n} обновлений в год при таком сроке действия.",
      "remainingHeading": "По часам вашего устройства",
      "daysRemaining": "{days} дней до истечения.",
      "expiredText": "Истёк {days} дней назад.",
      "renewByText": "Обновить до {date} (примерно за {lead} дней до истечения)",
      "renewByDue": "через {days} дней",
      "reuseHeading": "Повторное использование проверки (эпоха выпуска)",
      "dcvText": "Данные проверки домена (DCV) можно повторно использовать {days} дней.",
      "siiText": "Идентификацию организации (OV/EV SII) можно повторно использовать {days} дней.",
      "scheduleHeading": "График SC-081v3",
      "scheduleIntro": "Публичные максимумы TLS зависят от даты выпуска сертификата:",
      "colPeriod": "Выпущен с",
      "colValidity": "Макс. срок (дней)",
      "colDcv": "Повтор DCV (дней)",
      "colSii": "Повтор SII (дней)",
      "phaseP0": "До 15 мар 2026",
      "phaseP1": "15 мар 2026",
      "phaseP2": "15 мар 2027",
      "phaseP3": "15 мар 2029",
      "yourPhase": "← этот сертификат",
      "projectionHeading": "Нагрузка обновления на каждом лимите",
      "projectionIntro": "Обновлений на сертификат в год по мере ужесточения лимитов:",
      "perYearShort": "год",
      "note_overCap": "Этот срок действия превышает максимум в {max} дней для даты выпуска.",
      "note_future47": "Сегодня соответствует, но дольше будущего лимита в 47 дней; по мере действия графика ожидайте более частых обновлений.",
      "note_publicOnly": "Эти лимиты применяются только к публично доверенным сертификатам TLS. Частная или внутренняя PKI не регулируется SC-081v3.",
      "note_automate": "При таких темпах автоматизируйте выпуск и обновление с помощью ACME (RFC 8555) и ARI (RFC 9773); ручное обновление не масштабируется.",
      "err_empty": "Введите обе даты, выпуска и истечения.",
      "err_invalidDate": "Используйте корректную дату (ГГГГ-ММ-ДД).",
      "err_order": "Дата истечения должна быть позже даты выпуска.",
      "err_tooLong": "Этот ввод слишком длинный.",
      "err_invalid": "Не удалось прочитать эти даты."
    },
    "csr-decoder": {
      "name": "Декодер CSR",
      "blurb": "Декодируйте запрос на подпись сертификата PKCS#10, чтобы прочитать его субъект, открытый ключ, запрошенные SAN и расширения, а также атрибуты; полностью в браузере.",
      "inputLabel": "Запрос на подпись сертификата (PEM, base64 или hex)",
      "inputPlaceholder": "-----BEGIN CERTIFICATE REQUEST-----\n...",
      "exampleLabel": "Загрузить пример CSR",
      "runsLocally": "Всё работает в вашем браузере; CSR никогда не загружается.",
      "notCertNote": "CSR — это запрос, а не сертификат. У него нет серийного номера, издателя и дат действия; только то, что запрашивающий просит удостоверить у УЦ.",
      "subjectHeading": "Субъект",
      "colAttr": "Атрибут",
      "colValue": "Значение",
      "noSubject": "Нет имени субъекта (этот CSR опирается на запрошенные SAN).",
      "keyHeading": "Открытый ключ",
      "keyAlgorithmLabel": "Алгоритм",
      "keySizeLabel": "Размер",
      "keySizeValue": "{bits} бит",
      "keyCurveLabel": "Кривая",
      "keyExponentLabel": "Экспонента",
      "keyExponentValue": "{exp}",
      "requestedHeading": "Запрошенные расширения",
      "sanLabel": "Subject Alternative Names",
      "keyUsageLabel": "Использование ключа",
      "ekuLabel": "Расширенное использование ключа",
      "basicConstraintsLabel": "Базовые ограничения",
      "caYes": "CA: да",
      "caNo": "CA: нет",
      "pathLenValue": "длина пути {n}",
      "noRequested": "Расширения не запрошены.",
      "attributesHeading": "Атрибуты",
      "challengePasswordLabel": "Challenge-пароль",
      "unstructuredNameLabel": "Неструктурированное имя",
      "signatureHeading": "Самоподпись",
      "signatureAlgLabel": "Алгоритм",
      "signatureBitsLabel": "Длина",
      "signatureBitsValue": "{bits} бит",
      "versionValue": "Версия: v1 ({v})",
      "derLengthValue": "DER: {bytes} байт",
      "err_empty": "Вставьте запрос на подпись сертификата для декодирования.",
      "err_format": "Это не похоже на CSR в формате PEM, base64 или hex.",
      "err_der": "Не удалось разобрать структуру DER.",
      "err_structure": "Это разбирается как DER, но не является запросом на сертификацию PKCS#10."
    },
    "oidc": {
      "name": "Декодер OIDC",
      "blurb": "Вставьте ID-токен OpenID Connect или документ .well-known/openid-configuration и декодируйте его: основные claims, claims профиля, endpoints и возможности, с проверками обязательных claims, алгоритма подписи, nonce и PKCE.",
      "inputLabel": "ID-токен (JWT) или JSON openid-configuration",
      "inputPlaceholder": "Вставьте ID-токен или документ JSON discovery OIDC",
      "runsLocally": "Декодирование выполняется локально в вашем браузере. Оно никогда не обращается к jwks_uri или любому endpoint, и ничего никуда не отправляется.",
      "notVerifiedNote": "Этот инструмент декодирует и объясняет. Он не проверяет подпись токена, не загружает ключи подписи и не сверяет срок действия с часами.",
      "errors": {
        "empty": "Вставьте ID-токен или документ openid-configuration для декодирования.",
        "malformed-json": "Это начинается как JSON, но не удалось разобрать. Проверьте, не пропущена ли скобка, запятая или кавычка.",
        "json-not-oidc": "Это JSON, но не документ discovery OpenID Connect. Вставьте ID-токен или документ .well-known/openid-configuration.",
        "not-jwt": "Это не похоже на JWT или документ OIDC. Вставьте ID-токен или документ discovery.",
        "jwt-header": "Не удалось декодировать заголовок токена. JWT состоит из трёх частей base64url, разделённых точками.",
        "jwt-payload": "Не удалось декодировать полезную нагрузку токена как JSON."
      },
      "badges": {
        "idToken": "ID Token",
        "discovery": "Discovery",
        "signed": "Подписан",
        "unsigned": "Без подписи",
        "algNone": "alg: none",
        "algUnknown": "alg: ?"
      },
      "panels": {
        "header": "Заголовок",
        "coreClaims": "Основные claims ID-токена",
        "metadata": "Провайдер",
        "endpoints": "Endpoints",
        "capabilities": "Возможности"
      },
      "categories": {
        "binding": "Привязка токена",
        "profile": "Claims профиля",
        "email": "Эл. почта",
        "address": "Адрес",
        "phone": "Телефон",
        "oauth": "OAuth / сессия",
        "other": "Другие claims"
      },
      "fields": {
        "alg": "Алгоритм",
        "typ": "Тип",
        "kid": "ID ключа",
        "iss": "Издатель (iss)",
        "sub": "Субъект (sub)",
        "aud": "Аудитория (aud)",
        "azp": "Авторизованная сторона (azp)",
        "nonce": "Nonce",
        "acr": "Контекст auth (acr)",
        "amr": "Методы auth (amr)",
        "authTime": "Время auth",
        "iat": "Выдан (iat)",
        "nbf": "Не ранее (nbf)",
        "exp": "Истекает (exp)",
        "issuer": "Издатель"
      },
      "reasons": {
        "MISSING_REQUIRED_CLAIM": "Отсутствует обязательный claim {value}. ID-токен должен содержать iss, sub, aud, exp и iat.",
        "ALG_NONE": "Токен использует alg none, то есть он без подписи. Неподписанный ID-токен ничего не доказывает и должен быть отклонён.",
        "ALG_SYMMETRIC": "Подписан с помощью {value}, симметричного (HMAC) алгоритма. ID-токены от публичного провайдера обычно используют асимметричный алгоритм, такой как RS256 или ES256, чтобы доверяющая сторона могла проверить открытым ключом.",
        "ALG_UNKNOWN": "Подписан с помощью {value}, алгоритма, который этот инструмент не распознаёт. Убедитесь, что это ожидаемый, надёжный алгоритм.",
        "SIGNED_ASYMMETRIC": "Подписан с помощью {value}, асимметричного алгоритма. Доверяющая сторона проверяет его открытым ключом провайдера из JWKS.",
        "NO_NONCE": "Нет claim nonce. Nonce связывает токен с запросом аутентификации и защищает от повторного воспроизведения. Он должен присутствовать, если запрос его отправил.",
        "MULTI_AUD_NO_AZP": "У токена несколько аудиторий, но нет azp (авторизованной стороны). При более чем одной аудитории azp должен указывать клиента, для которого предназначен токен.",
        "DISCOVERY_MISSING_FIELD": "Отсутствует обязательное поле discovery {value}.",
        "DISCOVERY_ALG_NONE": "Провайдер объявляет алгоритм подписи none для ID-токенов, что разрешало бы неподписанные токены. Этого не следует предлагать.",
        "DISCOVERY_NO_PKCE": "Нет code_challenge_methods_supported. Провайдер не объявляет PKCE, который рекомендуется для потока authorization code.",
        "DISCOVERY_NO_PKCE_S256": "PKCE объявлен, но без метода S256. S256 — рекомендуемый метод code challenge."
      },
      "flow": {
        "heading": "Поток authorization code",
        "laneRp": "Доверяющая сторона",
        "laneOp": "Провайдер OpenID",
        "s1": "Перенаправить пользователя к провайдеру с scope=openid",
        "s2": "Провайдер аутентифицирует пользователя и получает согласие",
        "s3": "Провайдер перенаправляет обратно с authorization code",
        "s4": "Доверяющая сторона обменивает код на token endpoint",
        "s5": "Провайдер возвращает ID-токен и access token",
        "s6": "Доверяющая сторона проверяет подпись ID-токена по JWKS",
        "s7": "Доверяющая сторона может вызвать UserInfo с access token",
        "s8": "Провайдер возвращает claims пользователя"
      }
    }
  },
  "privacy_page": {
    "eyebrow": "Конфиденциальность",
    "title": "Ваши данные и что этот сайт с ними делает",
    "lede": "Объяснение простым языком того, что именно этот сайт делает и не делает с вашей информацией. Оно написано так, чтобы быть точным, а не просто успокаивающим, потому что при таких нормах, как GDPR и бразильский LGPD, значение имеет именно точное раскрытие.",
    "shortTitle": "Краткая версия",
    "short1": "Этот сайт не устанавливает файлы cookie, не запускает аналитику, не использует рекламу и не содержит сторонних трекеров или фингерпринтинга. Ничто не следует за вами по сети.",
    "short2": "Он не продаёт, не передаёт и не создаёт профили своих посетителей и ничего не просит у вас, чтобы вы могли его читать.",
    "short3": "Интерактивные инструменты работают целиком в вашем браузере. То, что вы вставляете или вводите в них, остаётся на вашем устройстве и никуда не передаётся.",
    "short4": "Лишь три вещи вообще затрагивают данные, и каждая объяснена ниже: единственная настройка темы, сохранённая в вашем собственном браузере, стандартные журналы соединений, которые любое посещение сайта создаёт на уровне хостинга, и любое сообщение, которое вы решите отправить по электронной почте.",
    "controllerTitle": "Кто несёт ответственность",
    "controllerBody": "Это персональный сайт Rodolfo Nützmann (ronutz.com). По любому вопросу конфиденциальности или для осуществления любого из прав, описанных ниже, напишите на {email}. Запросы обрабатываются непосредственно Rodolfo Nützmann как оператором данных.",
    "noTrackTitle": "Без файлов cookie, без отслеживания, без аналитики",
    "noTrackBody": "Этот сайт не устанавливает никаких файлов cookie. Он не использует никакого сервиса аналитики (такого как Google Analytics или Plausible), никакой рекламной сети, никаких отслеживающих пикселей социальных сетей и никакого фингерпринтинга устройства. Ваше посещение не измеряется, не профилируется и не передаётся кому-либо в этих целях.",
    "browserTitle": "Что хранится в вашем браузере",
    "browserBody": "Одна небольшая вещь: выбранная вами визуальная тема, сохранённая в локальном хранилище (local storage) вашего браузера, чтобы сайт мог запомнить её при вашем следующем посещении. Это настройка для удобства, которая остаётся на вашем собственном устройстве, никогда не отправляется на этот сайт или кому-либо ещё и может быть очищена в любой момент через ваш браузер. Никакие другие данные о вас не хранятся на вашем устройстве.",
    "hostingTitle": "Хостинг и журналы сервера",
    "hostingBody": "Сайт доставляется через Cloudflare, который обеспечивает его хостинг и доставку контента. Как и на любом сайте, загрузка страницы означает, что ваше устройство подключается к серверу, и Cloudflare, действуя как поставщик хостинга, обрабатывает базовые данные соединения — включая ваш IP-адрес и стандартные детали запроса — чтобы доставить вам страницы и защитить сайт от злоупотреблений и атак. Эта обработка необходима для работы и защиты сайта (законный интерес согласно Статье 6(1)(f) GDPR и соответствующим основаниям Статей 7 и 10 LGPD). Она хранится поставщиком лишь недолго и здесь не используется для идентификации или отслеживания вас.",
    "toolsTitle": "Инструменты работают в вашем браузере",
    "toolsBody": "Декодеры и калькуляторы на этом сайте — для JWT, IP-адресов, сертификатов и прочего — вычисляют целиком внутри вашего браузера. Значения, которые вы вводите, обрабатываются на вашем собственном устройстве и никогда не отправляются на сервер. Отдельный программный интерфейс (API) предлагается для автоматизации и интеграций; по своему устройству он не сохраняет состояния и не журналирует ни запросов, ни тел запросов, отправленных ему.",
    "contactTitle": "Если вы со мной свяжетесь",
    "contactBody": "Контактная форма ничего не отправляет на сервер. Вместо этого она открывает заранее заполненное сообщение в вашем собственном почтовом приложении, которое вы затем сами отправляете со своей собственной учётной записи, так что ничто не проходит через третью сторону. Если вы пишете, через форму или напрямую, я получаю информацию, которую вы включаете, такую как ваше имя, адрес электронной почты и сообщение, и использую её только для того, чтобы вам ответить. Я храню её лишь столько, сколько нужно для обработки вашего обращения, не использую её для маркетинга и не передаю её.",
    "intlTitle": "Обработка за пределами вашей страны",
    "intlBody": "Поскольку Cloudflare управляет глобальной сетью, описанная выше обработка на уровне соединения может происходить на серверах, расположенных за пределами вашей собственной страны, в том числе за пределами Бразилии и Европейской экономической зоны. Там, где персональные данные обрабатываются таким образом на международном уровне, это происходит под гарантиями, предлагаемыми соответствующим поставщиком.",
    "childrenTitle": "Дети",
    "childrenBody": "Этот сайт предназначен для профессиональной, общей аудитории. Он не направлен на детей и сознательно не собирает их персональные данные.",
    "rightsTitle": "Ваши права",
    "rightsBody": "В зависимости от того, где вы живёте, у вас есть права в отношении ваших персональных данных, включая доступ к ним, их исправление или удаление, возражение против их обработки или её ограничение, запрос копии в переносимом формате и получение информации о том, как они обрабатываются. Чтобы осуществить любое из них, просто напишите на {email}. Поскольку здесь обрабатывается так мало персональных данных, на практике обычно делать почти нечего, но канал всегда открыт.",
    "rightsGdpr": "Если вы находитесь в Европейской экономической зоне или Соединённом Королевстве, у вас также есть право подать жалобу в ваш местный надзорный орган по защите данных.",
    "rightsLgpd": "Если вы находитесь в Бразилии, вы обладаете правами, изложенными в Статье 18 LGPD, и также можете обратиться в национальный орган по защите данных (ANPD).",
    "changesTitle": "Изменения в этом уведомлении",
    "changesBody": "Если это уведомление изменится, пересмотренная версия будет опубликована на этой странице, а дата ниже будет обновлена. Существенные изменения не будут применяться задним числом.",
    "updated": "Последнее обновление: 30 июня 2026 г.",
    "backHome": "Вернуться на главную"
  },
  "footer": {
    "redEducation": "Закажите официальное обучение в <b>Red Education</b>",
    "privacy": "Конфиденциальность",
    "builtWith": "Создано Rodolfo Nützmann с CONCORD",
    "colophon": "Как это было создано",
    "contribute": "Помочь улучшить переводы",
    "feedback": "Оставить отзыв",
    "api": "Справочник по API",
    "contributeTools": "Поделиться идеей",
    "license": "Лицензия",
    "coffee": "Купите мне кофе"
  },
  "search": {
    "kindTool": "Инструмент",
    "kindArticle": "Статья",
    "kindPage": "Страница",
    "label": "Поиск",
    "placeholder": "Искать по сайту…",
    "close": "Закрыть",
    "searching": "Поиск…",
    "noResults": "Нет результатов по запросу «{query}».",
    "unavailable": "Поиск работает на опубликованном сайте. Он недоступен в локальном предпросмотре.",
    "hint": "Печатайте, чтобы искать по статьям, инструментам и страницам."
  },
  "theme": {
    "label": "Тема",
    "dark": "Тёмная",
    "light": "Светлая"
  },
  "about": {
    "eyebrow": "Инструктор",
    "role": "Старший технический инструктор",
    "lede": "Обучение сетям и безопасности, которое ведёт практик, проведший карьеру на стороне внедрения, а не только у слайдов. Базируется в Сан-Паулу, преподаёт по всему миру, на португальском и английском.",
    "now": {
      "title": "Чем я занимаюсь сейчас",
      "body": "Я провожу официальное, сертифицированное обучение с инструктором по четырём платформам в области безопасности и сетей. Работа практическая и основана на лабораториях: цель всегда в том, чтобы участники уходили способными выполнить задачу, а не только описать её. Я авторизованный инструктор с 1996 года, а обучение и техническое сопровождение были частью моей работы с конца 1990-х.",
      "basedLabel": "Базируется в",
      "basedValue": "Сан-Паулу, Бразилия",
      "teachesLabel": "Преподаёт",
      "teachesValue": "Обучение с инструктором, дистанционно и очно, по всему миру",
      "languagesLabel": "Языки",
      "languagesValue": "Португальский (родной), английский (свободно)"
    },
    "platforms": {
      "title": "Четыре платформы, преподаются углублённо",
      "body": "Сертификация у четырёх вендоров означает, что я могу преподавать каждую как следует и сравнивать их честно. Вот платформы, по которым я в настоящее время авторизован проводить официальное обучение.",
      "f5": "BIG-IP по всей программе с инструктором: LTM, DNS, Advanced WAF (ASM), APM, AFM, SSL Orchestrator, автоматизация и поиск неисправностей.",
      "fortinet": "Сертифицированное обучение Fortinet, включая трек FCP.",
      "extreme": "Треки коммутации, SD-WAN, а также API и автоматизации Extreme Networks, охватывающие установку, настройку, администрирование и поиск неисправностей.",
      "netskope": "Обучение с инструктором по Netskope Security Cloud."
    },
    "path": {
      "title": "Путь сюда",
      "intro": "Моя карьера началась на стороне вендора и внедрения в 1996 году и оставалась там два десятилетия, прежде чем я полностью посвятил себя обучению. Этот опыт внедрения и есть причина, по которой обучение бьёт точно в цель: я строил, ломал и чинил эти системы в эксплуатации.",
      "present": "сейчас",
      "cabletron": "Сетевой инженер и сертифицированный инструктор. Сети не-Ethernet и Ethernet, кампусные сети, IP-маршрутизация.",
      "riverstone": "Инженер поддержки продуктов и координатор базы знаний в Калифорнии. Gigabit Ethernet, городские сети, IP-маршрутизация, BGP. Эскалация третьего уровня, воспроизведение клиентских сценариев и регрессионное тестирование.",
      "cisco": "Консультирующий сетевой инженер, единая точка контакта для ключевых клиентов, таких как SERPRO и Correios. Управление эскалациями и удовлетворённостью клиентов.",
      "enterasys": "Сетевой инженер и инструктор. Корпоративные сети, IP-маршрутизация, контроль доступа пользователей и NAC, IDS и IPS.",
      "juniper": "Инженер поддержки канала и инструктор по корпоративным коммутаторам и межсетевым экранам. Техническое сопровождение продаж и операционное обучение по Junos-SRX.",
      "f5channel": "Канально-ориентированная инженерия продаж и предпродажной подготовки для F5, с техническим сопровождением, проведением proof of concept и обучением партнёров через дистрибуцию.",
      "rededucation": "Авторизованный инструктор по обучению, проводящий официальные сертифицированные курсы по F5, Fortinet, Extreme Networks и Netskope для организаций по всему миру.",
      "fullHistory": "Прочитать всю историю",
      "vendorsLink": "Вендоры, с которыми я работал"
    },
    "origins": {
      "title": "С чего это началось",
      "body": "До формальной карьеры было любопытство. В начале 1990-х я импортировал и собирал компьютеры, держал и использовал BBS и работал с DOS, Unix, Linux, Netware, ранним Ethernet, X.25 и интернетом по модему. К 1995 году эта практическая работа стала первым формальным занятием: построением системы электронного обмена данными. Сквозная нить с тех пор и до сегодня одна и та же: взять что-то по-настоящему сложное и заставить это работать, а затем сделать это понятным для другого человека."
    },
    "approach": {
      "title": "Как я преподаю",
      "body": "Я выбрал специализацию в обучении, потому что оно соединяет глубокие технические знания с той частью работы, которую я люблю больше всего: объяснять сложные понятия простым образом. Лучшие занятия связывают каждое понятие с задачей, которую участник действительно должен выполнить, чтобы содержанию было где осесть. Примеры из реального мира, настоящие лаборатории и упор на понимание, а не на зубрёжку."
    },
    "cta": {
      "title": "Начните с концепций",
      "body": "Раздел «Изучить» объясняет идеи, стоящие за инструментами, а инструменты позволяют работать с ними напрямую, всё в вашем браузере.",
      "learnButton": "Читать раздел «Изучить»",
      "toolsButton": "Открыть инструменты"
    },
    "recognition": {
      "title": "Признание",
      "body": "Удостоен звания F5 DevCentral MVP три года подряд, в 2022, 2023 и 2024, за вклад в техническое сообщество F5."
    }
  },
  "endorsements": {
    "eyebrow": "Отзывы",
    "title": "Что говорят люди, их собственными словами.",
    "intro": "{count} рекомендаций и отзывов полностью, за два десятилетия обучения и консультирования. Ничего здесь не перефразировано и не отредактировано.",
    "provenance": "Взято из рекомендаций LinkedIn, отзывов Google и проверенных отзывов участников обучения Red Education. Исходные формулировки и орфография сохранены в точности так, как были написаны."
  },
  "testimonials": {
    "filterLabel": "Фильтровать отзывы",
    "sourceFilter": "Источник",
    "languageFilter": "Язык",
    "all": "Все",
    "showing": "Показано {count} из {total}",
    "reply": "Ответ Red Education",
    "translateLabel": "Перевод",
    "translateOff": "Перевести на английский",
    "translateOn": "Отображается на английском",
    "machineDisclaimer": "Машинный перевод. Может не передавать исходную формулировку точно.",
    "showOriginal": "Показать оригинал",
    "hideOriginal": "Скрыть оригинал"
  },
  "history": {
    "indexTitle": "История",
    "indexLede": "Три эпохи, одна сквозная нить: взять что-то по-настоящему сложное, заставить это работать, а затем сделать это понятным для другого человека.",
    "eraLabel": "Эпоха",
    "backToHistory": "Все эпохи",
    "backToAbout": "Обо мне",
    "readNext": "Читать дальше",
    "pre1996": {
      "years": "До 1996",
      "title": "Любопытство",
      "subtitle": "Импорт деталей, сборка машин и подключение к раннему интернету, прежде чем что-либо из этого стало работой.",
      "intro": "У любой технической карьеры есть своё «до». До значков вендоров и сертификатов был подросток, который разбирал машины, чтобы понять, как они работают, и молодой предприниматель, который превращал это понимание в средство к существованию. Именно здесь сформировался инстинкт, который движет всем остальным.",
      "s1Title": "Практика с железом, с 1991 по 1995",
      "s1Body": "С 1991 года работа была самостоятельной и практической: импорт компьютерных компонентов из США, сборка и продажа персональных компьютеров на заказ, а также их установка, настройка и ремонт для всех, кому нужна была помощь. Это было время, когда машину собирали из компонентов и заставляли работать, вместо того чтобы покупать готовую. Системы той поры прошли прямо через эти руки: DOS и CP/M, BASIC, Turbo Pascal, ранний Windows и офисные приложения, а также инструменты баз данных, на которых тогда работал малый бизнес, Clipper и dBase.",
      "s2Title": "Сети до интернета",
      "s2Body": "Сети начались не с веба. Задолго до широкополосного доступа связующая ткань была другой и более трудной в обращении: Novell NetWare для локальных серверов, BBS для сообщества и обмена файлами, ранние сети Ethernet, а также глобальные технологии той поры, X.25 (в Бразилии известная как RENPAC) и Frame Relay. Когда интернет наконец пришёл, он пришёл по модему, через shell-аккаунт, SLIP или PPP. Работа со всем этим означала понимание сети начиная с кабеля, понимание, которое позже сделало корпоративные сети знакомой территорией.",
      "s3Title": "BBS, фрикинг и академический интернет",
      "s3Body": "Настоящее любопытство той эпохи выходило за пределы оплачиваемой работы. Изыскания тех лет включали ведение и использование BBS, эксперименты с телефонной сетью в среде фрикинга, практический UNIX и ранний доступ к академическому интернету. Это было обучение через действие, в сообществе, которое делилось знаниями, потому что больше их негде было взять. Эта привычка, докапываться, пока что-то не будет по-настоящему понято, а затем передавать это дальше, так и не исчезла.",
      "s4Title": "1995: первое формальное занятие",
      "s4Body": "В 1995 году самостоятельная работа вылилась в первое формальное занятие. В INTELECTA, компании, инкубированной SEBRAE-SP, проектом была система электронного обмена данными для торговли медицинскими и больничными изделиями, построенная на серверах Novell NetWare и BBS-системе PCBoard. Это была настоящая система, решавшая настоящую бизнес-задачу, и она отметила момент, когда хобби и ремесло стали профессией.",
      "closer": "К концу 1995 года фундамент был заложен: человек, который понимал машины и сети с основ, который учился через создание и у которого уже был инстинкт объяснять. Всё, что последовало дальше, вендоры, сертификаты, учебные аудитории по всему миру, было построено на этом."
    },
    "era19962020": {
      "years": "1996 – 2020",
      "title": "Человек из отрасли",
      "subtitle": "Два десятилетия внутри отрасли сетей и безопасности, в создании, поломке и ремонте систем, которые позже стали учебным материалом.",
      "intro": "Это длинная середина повествования и причина, по которой обучение, пришедшее позже, имеет вес. Около двух десятилетий работа была внедрением: проектировать сети, вводить их в эксплуатацию, искать в них неисправности под давлением и быть тем, кому звонят, когда что-то критическое ломается. Путь прошёл через некоторые из имён, которые определяли сети, на двух континентах.",
      "s1Title": "Cabletron и Enterasys, с 1996 по 2000",
      "s1Body": "Формальная карьера началась в 1996 году в Cabletron Systems, тогда ведущем поставщике сетевого оборудования со штаб-квартирой в Рочестере, штат Нью-Гэмпшир. За четыре с половиной года роль охватывала полевую инженерию и послепродажную поддержку, системную инженерию и предпродажную подготовку, а с 1997 года, сертифицированное обучение. Темой была корпоративная сеть LAN и WAN той поры: коммутаторы, маршрутизаторы, Wi-Fi и WLAN, управление сетью, NAC и UAC, а также межсетевые экраны с инспекцией состояния. В 2000 году Cabletron реорганизовалась в четыре компании, и часть, относящаяся к этой карьере, стала Enterasys Networks.",
      "s2Title": "Riverstone Networks, Санта-Клара, с 2000 по 2002",
      "s2Body": "Следующая глава развернулась в Калифорнии. Riverstone Networks, выделившаяся из Cabletron компания, строившая оборудование для городских сетей, означала переезд в Санта-Клару по рабочей визе H1-B1. Ролью был инженер поддержки продуктов уровня III и координатор управления знаниями: техническая эскалация третьего уровня, воспроизведение клиентских сценариев в лаборатории, регрессионное тестирование и проверка ошибок, а также построение базы знаний, на которой держалась остальная поддержка. Технологии были хребтом мира операторов и городских сетей начала 2000-х: Gigabit Ethernet, MPLS, городская коммутация и маршрутизация, а также BGP. Этот период принёс и формальную веху: в рамках визового процесса оценка в США в 2001 году признала образование, эквивалентное степени бакалавра по информатике и степени бакалавра по управлению бизнесом.",
      "s3Title": "Cisco Systems, Бразилиа, с 2003 по 2004",
      "s3Body": "Вернувшись в Бразилию и работая через Cisco Professional Services, роль сместилась к отношениям с клиентом в их самой требовательной форме. В качестве high-touch operations manager и единой точки контакта работа состояла в управлении удовлетворённостью клиентов на послепродажном этапе для двух крупнейших федеральных структур Бразилии, SERPRO, государственного агентства обработки данных, и ECT-Correios, национальной почты. Технической поверхностью были коммутаторы и маршрутизаторы Catalyst, межсетевые экраны PIX, а также балансировщики нагрузки CSS, CSM и ACE, но настоящей работой были управление эскалациями и поддержание критической национальной инфраструктуры в непрерывной работе.",
      "s4Title": "Снова Enterasys, затем Juniper, с 2005 по 2010",
      "s4Body": "Вторая половина десятилетия вернулась на сторону вендора в качестве эксперта по корпоративным сетям LAN. В Enterasys с 2005 года упор делался на коммутаторы и маршрутизаторы, Wi-Fi и WLAN, управление сетью, NAC и UAC, а также обнаружение и предотвращение вторжений, охватывая проектирование решений, внедрение, аудит и обучение. С 2009 года, в Juniper Networks через Professional Services для Латинской Америки, ролью было продвижение новых продуктов для стратегического партнёра Telefónica Empresas в Бразилии, с упором на коммутаторы EX и межсетевые экраны SRX, с операционным обучением по Junos-SRX, проводимым в Level 3 и Impsat, сегодня Lumen.",
      "s5Title": "Годы канала и консалтинга, с 2010 по 2020",
      "s5Body": "Последнее десятилетие этой эпохи плавно переходило между ролями, и все они вели к инструктору, к которому подводит повествование. Были периоды в качестве инженера по сетям и безопасности через реселлеров и дистрибьюторов, с углублением экспертизы в корпоративной коммутации и маршрутизации, межсетевых экранах и межсетевых экранах нового поколения, SSL-VPN, контроле доступа пользователей, ускорении WAN и балансировке интернет-нагрузки в решениях Juniper и Cisco. Что особенно важно, этот период включал поворот к F5, с начальной работой над F5 BIG-IP, которая определила последующие годы. На протяжении всего этого техническое обучение было постоянной нитью, никогда не отсутствовавшей ни в одной роли.",
      "closer": "К 2020 году картина была полной: тот, кто не только изучал эти системы, но и жил внутри них двадцать лет, на стороне вендора и на стороне клиента, в проектировании и в кризисе. Это та разница, которую специалист по внедрению приносит в аудиторию. Когда такой человек объясняет, почему конфигурация ведёт себя определённым образом, это потому, что он видел, как она так себя ведёт, в три часа ночи, с ожидающей национальной почтой."
    },
    "era2020present": {
      "years": "2020 – сейчас",
      "title": "Инструктор",
      "subtitle": "Техническое обучение на полную занятость, проводимое по всему миру, расширяющееся платформа за платформой.",
      "intro": "В 2020 году нить, проходившая через всю карьеру, стала всей тканью. После двух десятилетий, когда преподавание сопровождало каждую роль, обучение стало самой работой: на полную занятость, официальное, сертифицированное преподавание для профессионалов и команд по всему миру. Что отличает эту эпоху, так это не только сосредоточенность, но и осознанное, датированное расширение по платформам, каждая из которых добавлена поверх глубокого опыта работы в поле, а не вместо него.",
      "s1Title": "Полная занятость, по призванию",
      "s1Body": "С 2020 года работа состоит в проведении официального обучения с инструктором, дистанционно и очно, на португальском и английском, для аудитории по всему миру. Оказание услуг достигает Австралии, Сингапура, Индии, Центральной Европы, США и Бразилии. Бразильское и немецкое гражданство вместе с разрешением на поездки в США и Великобританию делают этот глобальный охват практичным: неограниченное право работать в Европейском союзе и Меркосур, а также свобода отправиться туда, где находится аудитория.",
      "s2Title": "F5, с самого начала",
      "s2Body": "F5 является якорем с начала этой эпохи, опираясь на работу с BIG-IP, которая уходит более чем на десятилетие назад. Авторизованная программа охватывает весь каталог BIG-IP с инструктором: Local Traffic Manager, DNS, Advanced WAF, Access Policy Manager, Advanced Firewall Manager, SSL Orchestrator, BIG-IQ, разработку iRules, автоматизацию и поиск неисправностей, от однодневных до четырёхдневных курсов. Рядом с обучением идёт практическое дополнение: управляемые лабораторные среды F5 BIG-IP, чтобы у упражнений всегда было настоящее место, где они могут происходить.",
      "s3Title": "Расширение, платформа за платформой",
      "s3Body": "Что отличает последние годы, так это явное, датированное движение. Обучение Extreme Networks было добавлено с 2021 года, охватывая коммутацию EXOS, SD-WAN и автоматизацию. Fortinet последовал с 2024 года, с упором на трек FCP FortiGate Administrator. Netskope добавился с 2025 года, охватывая работу, администрирование, развёртывание и интеграцию Netskope Security Cloud. Четыре платформы, каждая добавлена осознанно, каждая опирается на те же два десятилетия внедрения сетей и безопасности под ними.",
      "s4Title": "Через Red Education, в мир",
      "s4Body": "Главным средством этого глобального оказания услуг является Red Education, авторизованный учебный центр, через который официальные сертифицированные курсы достигают организаций в разных регионах. Роль называется global technical training instructor, с оказанием услуг той международной аудитории, которую делают возможной база в Сан-Паулу, два паспорта и искренняя любовь к путешествиям. Это устойчивое сотрудничество превращает индивидуальную экспертизу в нечто, что организации по всему миру могут заказать и на что могут положиться.",
      "closer": "Именно здесь сквозная нить всей истории окупается. Любопытство первых лет стало глубиной внедрения за годы в поле, и эта глубина теперь то, что получает каждый участник: не докладчика, читающего слайды, а того, кто построил эти системы и объясняет, как они на самом деле работают, и почему."
    }
  },
  "vendors": {
    "indexTitle": "Вендоры",
    "indexLede": "Сетевые компании и компании в области безопасности, чья технология сформировала эту карьеру, начиная с кабеля. Это отношения из прошлого; платформы, которые преподаются сегодня, находятся в разделе «Обучение».",
    "backToVendors": "Все вендоры",
    "backToAbout": "Обо мне",
    "technologies": "Технологии",
    "role": "Роль",
    "years": "Годы",
    "readNext": "Следующий вендор",
    "cabletron": {
      "name": "Cabletron и Enterasys",
      "years": "1996 – 2007",
      "tagline": "Где началась карьера и где корпоративная сеть LAN была изучена с основ.",
      "intro": "Самая длинная одиночная нить этой истории проходит через одну компанию и её преемника. Cabletron Systems, ведущий поставщик сетевого оборудования со штаб-квартирой в Рочестере, штат Нью-Гэмпшир, был первым работодателем, с 1996 года. Когда Cabletron реорганизовалась в четыре компании в 2000 году, линия продолжилась как Enterasys Networks, и отношения возобновились там с 2005 года. Вместе они охватывают формирующее десятилетие экспертизы в корпоративных сетях.",
      "s1Title": "Cabletron, с 1996 по 2000",
      "s1Body": "За четыре с половиной года роль прошла через всю дугу вендорской инженерии: полевую инженерию и послепродажную поддержку, системную инженерию и предпродажную подготовку, а с 1997 года, сертифицированное обучение. Темой была корпоративная сеть LAN и WAN той поры: коммутаторы и маршрутизаторы, Wi-Fi и WLAN, управление сетью, NAC и UAC, а также межсетевые экраны с инспекцией состояния. Именно здесь дисциплина проектирования решений, внедрения, аудита, поиска неисправностей и управления эскалациями отрабатывалась впервые, и именно здесь обучение впервые вошло в работу.",
      "s2Title": "Enterasys, с 2005 по 2007",
      "s2Body": "Вернувшись в линию в качестве менеджера по услугам и поддержке, упор делался на продуктовую линейку Secure Routing, с Enterasys как региональной точкой сосредоточения для Бразилии. Работа сочетала поддержку клиентов на высоком уровне, сложный поиск неисправностей и управление эскалациями с локализованным управлением продуктом. Техническая поверхность выросла и теперь охватывала управление сетью, NAC и UAC, обнаружение и предотвращение вторжений, а также SIEM, через корпоративную коммутацию и маршрутизацию. Enterasys позже была приобретена Extreme Networks в 2013 году, замкнув круг, который связывает эту раннюю работу с платформой, которая преподаётся и сегодня.",
      "certs": "Cabletron Systems Engineer (CSE), 1999. Enterasys Systems Engineer (ESE), 2000 и 2007. Enterasys Certified Internetworking Engineer (ECIE), 2007.",
      "lineageTitle": "Корпоративная линия",
      "lineageDesc": "Cabletron Systems, со штаб-квартирой в Рочестере, штат Нью-Гэмпшир, разделилась на четыре компании в 2000 году: Enterasys, Riverstone, Aprisma и GNTS. Enterasys была приобретена Extreme Networks в 2013 году. Riverstone была приобретена Alcatel-Lucent в 2006 году."
    },
    "juniper": {
      "name": "NetScreen и Juniper",
      "years": "2009 – 2014",
      "tagline": "Корпоративная коммутация и шлюзы безопасности, которые выросли из NetScreen в линейку SRX компании Juniper.",
      "intro": "Juniper Networks приобрела NetScreen, компанию по производству межсетевых экранов, в 2004 году, и технология безопасности NetScreen стала основой линейки защищённых шлюзов Juniper. Работа с обеими отражает непрерывную линию: межсетевые экраны SSG от NetScreen и шлюзы SRX, которые последовали за ними. Отношения шли напрямую через Juniper с 2009 года, а затем продолжились через канал дистрибуции.",
      "s1Title": "Juniper Networks, с 2009 по 2010",
      "s1Body": "Работая через Juniper Professional Services для Бразилии, ролью было продвижение новых продуктов для недавно представленных корпоративных линеек: защищённых шлюзов серии SRX и коммутаторов серии EX. Основное сотрудничество было со стратегическим партнёром Telefónica Empresas в Бразилии. Помимо предпродажного продвижения, этот период принёс настоящее обучение: обучение по сетевой операционной системе JUNOS и работе защищённых шлюзов SRX для партнёров канала и клиентов, включая операционное обучение персонала центра сетевых операций Level 3 Communications в Бразилии и Аргентине.",
      "s2Title": "Через канал, с 2010 по 2014",
      "s2Body": "Отношения с Juniper и NetScreen продолжились через системных интеграторов и реселлеров. В CYLK работа охватывала разработку конфигураций, тестирование proof of concept и совместимости, а также развёртывание и поиск неисправностей в эксплуатации в Juniper, NetScreen и F5. В TDec Juniper присоединился к многовендорной практике консалтинга и обучения. Практический ассортимент продуктов в те годы был широким: коммутаторы EX, межсетевые экраны SRX и NetScreen SSG, SSL-VPN SA, маршрутизаторы серии J и управляемый Wi-Fi AX.",
      "certs": "Juniper Networks Sales Specialist, Enterprise Networking (JNSS-EN), 2010. Juniper Networks Sales Associate, Enterprise Networking (JNSA-EN), 2010.",
      "lineageTitle": "Линия безопасности",
      "lineageDesc": "NetScreen, производитель межсетевых экранов SSG, была приобретена Juniper Networks в 2004 году и стала основой линейки защищённых шлюзов SRX компании Juniper."
    },
    "riverstone": {
      "name": "Riverstone Networks",
      "years": "2000 – 2002",
      "tagline": "Два года в Санта-Кларе, на окраине операторских и городских сетей.",
      "intro": "Единственная глава этой карьеры, которая развернулась полностью за пределами Бразилии. Riverstone Networks, производитель оборудования для городских сетей со штаб-квартирой в Санта-Кларе, штат Калифорния, означала переезд в США по рабочей визе H1-B1. У Riverstone была своя необычная линия: изначально компания под названием Yago, приобретённая Cabletron около 1998 года и вновь появившаяся как независимая компания через выделение в 2001 году. Позже она была приобретена Alcatel-Lucent в 2006 году.",
      "s1Title": "Поддержка уровня III и управление знаниями",
      "s1Body": "Роль носила два названия в течение двух лет: инженер поддержки продуктов и координатор управления знаниями. В качестве специалиста технической поддержки уровня III работа состояла в эскалации третьего уровня, воспроизведении клиентских сценариев в лаборатории, регрессионном тестировании и проверке ошибок. В качестве координатора управления знаниями она состояла в построении и организации базы знаний, на которой держалась остальная поддержка, наряду с поддержкой маркетинга продукта и внутренним обучением. Это была самая глубокая работа технической поддержки в карьере, на том уровне, куда эскалируют самые трудные проблемы.",
      "s2Title": "Мир городских сетей",
      "s2Body": "Технологии были хребтом операторской и городской эпохи начала 2000-х: Gigabit Ethernet, MPLS, городская коммутация и маршрутизация, а также глобальная IP-маршрутизация, включая BGP. Работа в вендорской поддержке третьего уровня означала наблюдение за тем, как эти системы ведут себя на границах, в условиях, которые проявляются только в эксплуатации в большом масштабе. Она принесла и формальное обучение: обучение по концепциям, функциям и настройке Riverstone, а также обучение по выявлению проблем в поддержке клиентов и процедурам эскалации.",
      "certs": "Riverstone Certified Networking Professional (RCNP), 2001. Оценка эквивалентности образования в США, признающая образование, эквивалентное степени бакалавра по информатике и степени бакалавра по управлению бизнесом, завершена в 2001 году в рамках визового процесса H1-B1.",
      "lineageTitle": "Корпоративная линия",
      "lineageDesc": "Riverstone Networks началась как компания под названием Yago, была приобретена Cabletron Systems около 1998 года, вновь появилась как независимая компания через выделение в 2001 году и была приобретена Alcatel-Lucent в 2006 году."
    },
    "cisco": {
      "name": "Cisco Systems",
      "years": "2003 – 2008",
      "tagline": "Поддержание критической национальной инфраструктуры в работе, в качестве единой точки контакта для федеральных клиентов Бразилии.",
      "intro": "Работая через Cisco Professional Services в Бразилии, это была карьера в её операционно самой требовательной форме, где работа была меньше об отдельной технологии и больше о поддержании критических систем в работе для клиентов, которые не могли позволить себе простой.",
      "s1Title": "High-touch операции, с 2003 по 2004",
      "s1Body": "В качестве high-touch operations manager и единой точки контакта ролью было управление удовлетворённостью клиентов на послепродажном этапе для двух крупнейших федеральных структур Бразилии: SERPRO, государственного агентства обработки данных, и ECT-Correios, национальной почты, между Бразилиа и Сан-Паулу. Техническая поверхность включала коммутаторы и маршрутизаторы Catalyst, межсетевые экраны PIX, а также устройства для работы с контентом и балансировки нагрузки CSS, CSM и ACE. Настоящей дисциплиной, однако, были управление эскалациями и кризисное управление, поддержание высокой удовлетворённости для учётных записей, где ставка была национальной.",
      "s2Title": "Обучение Cisco, с 2007 по 2008",
      "s2Body": "Отношения с Cisco принесли и формальное проведение обучения: концепции и работу IOS и CatOS, а также концепции, работу и поиск неисправностей сетей уровня 2 и уровня 3, в многодневных курсах. Это дополнило глубокий операционный опыт структурированным обучением, которое позже стало полным сосредоточением карьеры.",
      "ironportTitle": "Отдельное замечание: IronPort, 2004",
      "ironportBody": "Стоит отметить с точностью и отделить от работы в Cisco: краткое, трёхмесячное сотрудничество в конце 2004 года с IronPort Systems, тогда независимым стартапом по производству устройств безопасности электронной почты со штаб-квартирой в Сан-Бруно, штат Калифорния. Работа состояла в развитии канала и техническом предпродажном консультировании для их устройств безопасности электронной почты серии C. Это целиком предшествует приобретению IronPort компанией Cisco в 2007 году, поэтому это были отдельные отношения с независимой компанией, а не технология Cisco, и упоминается здесь только потому, что компания позже стала частью Cisco.",
      "certs": "Cisco Certified Network Associate (CCNA), 2000 и 2005. Cisco Internetwork Troubleshooting (CIT), 2003."
    },
    "paloalto": {
      "name": "Palo Alto Networks",
      "years": "2013 – 2015",
      "tagline": "Межсетевые экраны нового поколения, через канал дистрибуции и аудиторию.",
      "intro": "Сосредоточенные отношения вокруг технологии межсетевых экранов нового поколения, проведённые через канал реселлеров и интеграторов. Это сотрудничество из прошлого; Palo Alto не входит в число платформ, которые преподаются сегодня, но работа была настоящей и сертифицированной.",
      "s1Title": "Канальный консалтинг и обучение, с 2013 по 2015",
      "s1Body": "В TDec Network Group Palo Alto присоединился к многовендорной практике консалтинга и обучения, которая охватывала системную инженерию, архитектуру решений, поддержку приложений, внедрение, аудиты и поиск неисправностей. Отношения продолжились через Cipher Security в 2015 году для предпродажной и послепродажной работы. Технический упор делался на межсетевые экраны нового поколения и платформу управления Panorama, ядро корпоративного предложения по безопасности Palo Alto в то время.",
      "s2Title": "Обучение PAN-OS",
      "s2Body": "Этот период включал формальное проведение обучения: учебный курс PAN-OS 6.0, который строил то же практическое, основанное на лабораториях обучение, которое определяет сегодняшнюю практику преподавания. В сочетании с сертификатами, полученными в 2014 году, это установило настоящую глубину в платформе, даже если сосредоточение карьеры позже сконцентрировалось на других технологиях.",
      "certs": "Palo Alto Certified Network Security Engineer (CNSE 5.1), 2014. Palo Alto Networks Accredited Configuration Engineer (ACE), 2014. Palo Alto Networks Accredited Sales Expert (ASE), 2014. Примечание: эти сертификаты являются историческими и не поддерживаются как актуальные."
    }
  },
  "training": {
    "eyebrow": "Курсы, которые я провожу",
    "title": "Четыре платформы, преподаются тем, кто их эксплуатировал.",
    "intro": "Официальное, сертифицированное обучение с инструктором по {courses} курсам на четырёх платформах в сердце современных сетей и безопасности. Каждый курс проводится авторизованным инструктором, с десятилетиями практического внедрения за обучением.",
    "courseCount": "{count} курсов",
    "since": "с",
    "representativeNote": "Этот каталог является представительным, а не исчерпывающим. Названия курсов, длительности и содержание отражают актуальную публичную информацию и уточнены на основе официальных описаний.",
    "allPlatforms": "Все платформы",
    "authorizedSince": "Авторизованный инструктор с {year}",
    "workingSince": "Работает с {platform} с {year}",
    "tech": {
      "switchesRouters": "корпоративными коммутаторами и маршрутизаторами",
      "firewalls": "межсетевыми экранами",
      "webCloudSecurity": "веб- и облачной безопасностью"
    },
    "coursesHeading": "{count} курсов",
    "duration": "Длительность",
    "delivery": "Формат",
    "deliveryValue": "Виртуально или очно",
    "modules": "Модули",
    "aboutCourse": "Об этом курсе",
    "tableOfContents": "Содержание",
    "agendaPending": "Подробная программа, день за днём, будет добавлена на основе официального описания курса.",
    "moreFrom": "Больше курсов {platform}",
    "requestTraining": "Запросить это обучение",
    "requestVia": "Предоставляется через {destination}"
  },
  "teach": {
    "eyebrow": "Как я преподаю",
    "title": "Инструктор, который построил эти системы, прежде чем стал их преподавать.",
    "lede": "Большую часть технического обучения проводят те, кто выучил предмет, чтобы его преподавать. Здесь наоборот: три десятилетия создания, поломки и ремонта настоящих сетевых систем и систем безопасности, выжатые в обучение, которое связывает каждое понятие с тем, как оно на самом деле ведёт себя в эксплуатации.",
    "s1Title": "Почему это важно в аудитории",
    "s1Body": "Есть разница между объяснением того, как функция должна работать, и объяснением того, почему она ведёт себя так, как ведёт, в три часа ночи, когда что-то критическое не работает. Первое приходит из руководства. Второе приходит из того, что ты был там. С 1996 года работа была внедрением: проектировать сети, вводить их в эксплуатацию и быть тем, кому звонят, когда они ломались, для вендоров и для некоторых из крупнейших организаций Бразилии. Эта глубина и есть то, что получает каждый участник, не докладчика, читающего слайды, а инженера, который жил внутри этих систем и объясняет, как они на самом деле работают.",
    "s2Title": "Сложное, сделанное ясным",
    "s2Body": "Глубокие технические знания необходимы, но недостаточны. Более редкое умение, это переводить их: взять что-то по-настоящему сложное, межсетевые экраны для веб-приложений, федерацию идентичности, управление трафиком, SD-WAN, и сделать так, чтобы это встало на место у того, кто сталкивается с этим впервые. Участники последовательно отмечают примеры из реального мира и ясную, структурированную методику, способность помещать каждое понятие в контекст работы, которую они действительно выполняют. Обучение было нитью через всю эту карьеру, присутствуя почти в каждой роли с 1997 года, и сосредоточением на полную занятость с 2020 года.",
    "s3Title": "Практически, а не туманно",
    "s3Body": "Техническое мастерство строится через действие, а не через наблюдение. Каждый курс построен вокруг практических лабораторий на настоящих системах, усиленных управляемыми лабораторными средами, чтобы у упражнений всегда было настоящее место, где они могут происходить. Формат подстраивается под аудиторию: виртуальное обучение с инструктором по всему миру, очно, когда это подходит лучше, на английском или португальском. Цель каждого занятия одна и та же, чтобы участники уходили способными выполнить задачу, а не только описать её.",
    "s4Title": "Признанный, сертифицированный и актуальный",
    "s4Body": "Обучение опирается на фундамент формального признания. F5 DevCentral MVP три года подряд, в 2022, 2023 и 2024. Сертификаты F5, поддерживаемые с 2015 года, и авторизация инструктора по четырём платформам: F5, Extreme Networks, Fortinet и Netskope. Оказание услуг достигает Австралии, Сингапура, Индии, Центральной Европы, США и Бразилии, через Red Education, авторизованный учебный центр. Квалификации важны, но они короткий путь к тому, что лежит под ними: настоящему, актуальному владению технологией.",
    "platformsTitle": "Чему я учу",
    "platformsBody": "Официальное, сертифицированное обучение с инструктором по четырём платформам в сердце современных сетей и безопасности. Каждая ведёт к своему полному каталогу курсов.",
    "s5Title": "За пределами аудитории",
    "s5Body": "Та же глубина, которая даёт хорошее обучение, даёт хорошее консультирование. Тридцать лет через доставку приложений, сетевую безопасность, идентичность и инфраструктуру, как на стороне вендора, так и на стороне клиента, это перспектива, которая простирается далеко за пределы учебной аудитории, вплоть до архитектурных решений, выбора технологий и трудных проблем, которые не помещаются в учебный план. Обучение является сосредоточением; опыт за ним доступен командам, которым нужно больше, чем курс.",
    "toolsTitle": "Инструменты, которые считают, а не угадывают",
    "toolsBody": "Рядом с обучением находится растущий набор бесплатных, уважающих конфиденциальность инструментов для сетей и безопасности, детерминированных инструментов, которые работают полностью в вашем браузере и никогда не отправляют ваши данные никуда. Расчёты подсетей и CIDR, IPv6, проверка сертификатов и токенов и многое другое, тот тип повседневных инструментов, к которым тянется инженер в работе. Они сделаны в том же духе, что и обучение: точные, практичные и по-настоящему полезные. Попробуйте их, без регистрации, без отслеживания.",
    "toolsCta": "Открыть инструменты",
    "historyTitle": "Три десятилетия, одна сквозная нить",
    "historyBody": "От сборки компьютеров подростком в 1991 году, через два десятилетия внутри отрасли сетей и безопасности, до глобального обучения на полную занятость с 2020 года. Всю историю стоит прочитать, если вы хотите понять опыт, стоящий за обучением.",
    "historyCta": "Прочитать всю историю",
    "ctaTitle": "Давайте работать вместе",
    "ctaBody": "Идёт ли речь о заказе официального обучения, построении программы под заказ для вашей команды или привлечении опытного консультирования к трудной проблеме, дверь открыта.",
    "ctaButton": "Связаться",
    "coursesButton": "Просмотреть все курсы"
  },
  "contact": {
    "title": "Связаться",
    "lede": "Идёт ли речь о заказе официального обучения, построении программы под заказ для вашей команды или привлечении опытного консультирования к трудной проблеме, я буду рад услышать вас.",
    "formHeading": "Отправить сообщение",
    "directHeading": "Или свяжитесь напрямую",
    "formName": "Ваше имя",
    "formEmail": "Ваша электронная почта",
    "formTopic": "О чём речь?",
    "topicTraining": "Официальное обучение",
    "topicCustom": "Программа под заказ для команды",
    "topicAdvisory": "Консультирование и консультации",
    "topicOther": "Что-то другое",
    "formMessage": "Ваше сообщение",
    "formSend": "Отправить сообщение",
    "formSending": "Отправка…",
    "formRequired": "Заполните ваше имя, электронную почту и сообщение.",
    "successTitle": "Спасибо.",
    "successBody": "Ваше сообщение в пути. Я отвечу, как только смогу.",
    "errorBody": "Что-то пошло не так при отправке. Попробуйте снова или напишите по электронной почте напрямую.",
    "emailLabel": "Электронная почта",
    "channels": {
      "linkedin": {
        "description": "Деловое общение",
        "label": "LinkedIn"
      },
      "youtube": {
        "description": "Видео и руководства",
        "label": "YouTube"
      },
      "instagram": {
        "description": "За кулисами",
        "label": "Instagram"
      },
      "training": {
        "label": "Официальное обучение",
        "description": "Запишитесь на курс через Red Education"
      }
    },
    "feedbackNote": "Нашли баг, ошибку или неточность на сайте?",
    "feedbackLink": "Поделитесь на странице идей"
  },
  "certs": {
    "title": "Сертификаты и квалификации",
    "lede": "Три десятилетия формальных квалификаций в области сетей и безопасности. Авторизации инструктора и сертификаты ниже актуальны; полный реестр полученных квалификаций, большинство из которых уже исторические, следует далее для тех, кто хочет глубины.",
    "jumpToHistorical": "Перейти к полному реестру",
    "credlyVerify": "Проверить в Credly",
    "current": "Актуальный",
    "historical": "Исторический",
    "instructorTitle": "Авторизации инструктора",
    "instructorIntro": "Авторизован проводить сегодня официальное, сертифицированное обучение по каждой из этих платформ.",
    "currentCertsTitle": "Актуальные сертификаты",
    "recognitionTitle": "Признание",
    "historicalTitle": "Полный реестр",
    "historicalIntro": "Квалификации, полученные за карьеру, начавшуюся в 1996 году. Большинство являются историческими или истёкшими, сохранены здесь ради глубины, которую они представляют.",
    "verify": "Проверить",
    "credly": "Credly",
    "certificate": "Сертификат",
    "verifyCode": "Код",
    "candidateId": "ID"
  },
  "colophon_page": {
    "eyebrow": "Колофон",
    "title": "Как это было создано",
    "lede": "Большинство сайтов не объясняют себя. Этот объясняет, потому что то, как он был сделан, является частью того, что он есть: осознанным экспериментом по хорошему созданию, с необычными соавторами, и записью, достойной сохранения.",
    "concordTitle": "CONCORD",
    "concordBody1": "Этот сайт был спроектирован и построен через протокол под названием CONCORD: структурированное сотрудничество между одним человеком и тремя разными ИИ-системами, каждая в своей роли. Это не трюк. Это работающий метод, со своим управлением, своей записью решений и одним человеком, ответственным за каждый выбор, который был опубликован.",
    "concordBody2": "Предпосылка проста. У разных моделей ИИ разные сильные стороны, и трудная задача выигрывает от более чем одной перспективы, удерживаемой в напряжении. Поэтому работа была разделена по ролям, и один человек сидел в центре, выступая мостом между ними, утверждая то, что прочно, и отвергая то, что нет.",
    "concordBody3": "CONCORD ниоткуда не заимствован. Его разработал Rodolfo Nützmann для этого проекта, исходя из практической потребности: как одновременно задействовать несколько систем ИИ, каждая из которых по-настоящему сильна в чём-то своём, не отказываясь от единой нити человеческой ответственности, которой требует настоящая работа. Ответом стало дать каждой системе чёткое место, не позволять им договариваться между собой и проводить каждый обмен через одного человека, который держал в голове всю картину. У такого устройства есть более старое название. Системы ИИ — агенты: они действуют по указанию и от чужого имени. PRIME — принципал: тот, кто действительно решает, кто выносит суждение и кто несёт и последствия, и имя.",
    "concordBody4": "Всё началось неформально — как способ распределить работу — и за время сборки затвердело в названный метод: фиксированные места, единое главенствующее правило, что ничто не публикуется без утверждения со стороны PRIME, и письменная запись о том, почему принято каждое решение. Название выражает цель: согласие, договорённость, достигнутая намеренно через процесс, а не то, что случайно выдаёт инструмент без присмотра.",
    "concordPrincipal": "Сила на стороне агентов. Ответственность лежит на принципале и не передаётся.",
    "concordMechTitle": "Как это устроено, простыми словами",
    "mech1Label": "Предложить",
    "mech1Gloss": "Каждое место выдвигает варианты в пределах своей зоны ответственности.",
    "mech2Label": "Передать",
    "mech2Gloss": "PRIME переносит предложения между местами; сами они напрямую не договариваются.",
    "mech3Label": "Утвердить",
    "mech3Gloss": "PRIME принимает то, что состоятельно, и отклоняет то, что нет. Без этого ничто не публикуется.",
    "mech4Label": "Ограничить",
    "mech4Gloss": "Постоянный свод внутренних правил ограничивает каждый результат, на каждом месте.",
    "mech5Label": "Зафиксировать",
    "mech5Gloss": "Письменный журнал решений сохраняет обоснование каждого выбора.",
    "mech6Label": "Помнить",
    "mech6Gloss": "Контекст, внутренние правила и этот журнал сохраняются как файлы, переносимые из одной сессии в следующую, так что метод переживает любой отдельный разговор.",
    "rolesTitle": "Места",
    "rolePrime": "PRIME",
    "rolePrimeWho": "Rodolfo Nützmann",
    "rolePrimeBody": "Единственный, кто утверждает. Каждое решение, каждая опубликованная строка прошли через человека, у которого была вся картина и который нёс окончательную ответственность. ИИ предлагали; PRIME решал.",
    "rolePrimeModel": "Человек",
    "roleAnvil": "ANVIL",
    "roleAnvilWho": "Инженерия",
    "roleAnvilBody": "Место главного инженера. Архитектура, код, структура содержания и сама сборка, превращённые из замысла в работающий, протестированный и готовый к развёртыванию сайт.",
    "roleAnvilModel": "Anthropic · Claude Opus 4.8",
    "roleScout": "SCOUT",
    "roleScoutWho": "Стратегия и бренд",
    "roleScoutBody": "Место стратегии и позиционирования. Вопросы о том, что это такое, для кого это и как оно должно представить себя миру.",
    "roleScoutModel": "OpenAI · ChatGPT 5.5",
    "rolePrism": "PRISM",
    "rolePrismWho": "Дизайн",
    "rolePrismBody": "Место дизайна. Визуальный язык, типографика, цвет и ощущение целого, оформленные в единую систему.",
    "rolePrismModel": "Google · Gemini 3.1 Pro",
    "seatsModelNote": "Версии моделей ИИ по состоянию на июнь 2026 года.",
    "principlesTitle": "Как это было сделано",
    "principlesBody": "Несколько принципов действовали от начала до конца, и они видны, если вы знаете, куда смотреть.",
    "p1Title": "Считать, а не угадывать",
    "p1Body": "Инструменты на этом сайте вычисляют ответы локально и детерминированно. Они не обращаются к серверу с вашими данными и не приближают. То, что работает в вашем браузере, остаётся в вашем браузере.",
    "p2Title": "Открытый в основе",
    "p3Title": "Документированный по построению",
    "p3Body": "Каждая часть кодовой базы прокомментирована и документирована, не как нечто добавленное позже, а как постоянное правило. Сборка задумана так, чтобы быть читаемой, для того, кто её поддерживает, и для того, кто её унаследует.",
    "p4Title": "Создан, чтобы служить и путешествовать",
    "p4Body": "Сайт является статическим экспортом: быстрым, кешируемым и независимым от чего-либо во время выполнения. Он построен с основ для многих языков, чтобы он мог обращаться к глобальной аудитории без пересборки.",
    "stackTitle": "Стек",
    "stackBody": "Для тех, кому это важно, технический фундамент, изложенный ясно.",
    "stackFramework": "Фреймворк",
    "stackFrameworkV": "Next.js 15 и React 19, экспортированные как полностью статический сайт",
    "stackI18n": "Интернационализация",
    "stackI18nV": "next-intl, с {count} языками и поддержкой письма справа налево",
    "stackDesign": "Система дизайна",
    "stackDesignV": "Настраиваемый движок тем на основе токенов; тема по умолчанию, это Obsidian",
    "stackType": "Типографика",
    "stackTypeV": "Inter для текста, JetBrains Mono для данных и кодов",
    "stackEngine": "Движок инструментов",
    "stackEngineV": "Детерминированный вычислительный слой, работающий полностью в браузере",
    "stackSearch": "Поиск",
    "stackSearchV": "Статический полнотекстовый поиск на стороне клиента; без сервера поиска",
    "vibeTitle": "Это вайб-кодинг?",
    "vibeBody1": "Это справедливый вопрос, и на него стоит ответить прямо. Vibe coding (вайб-кодинг) — термин, который исследователь ИИ Andrej Karpathy ввёл в начале 2025 года для способа создания программ, когда вы описываете языковой модели, что хотите, принимаете написанное ею, не вчитываясь, и ориентируетесь на результат, а не на сам код. Он описал это как поддаться настроению и забыть, что код вообще существует, и ясно дал понять, что это подходит скорее для быстрых одноразовых проектов, чем для систем, на которые люди полагаются.",
    "vibeBody2": "По этому определению часть этого сайта была сделана именно так, и это стоит признать, а не скрывать. Внешний слой приложения, обвязка фреймворка, компоненты, оформление, та проводка, что скрепляет страницы, были созданы быстро вместе с ИИ-инженером и направлялись результатом и фиксированным сводом внутренних правил, а не набирались вручную строка за строкой. Для этого слоя, где ошибка видна и легко исправляется, смысл был именно в скорости.",
    "vibeBody3": "К частям, которые важнее всего, применяется иной стандарт. Всё, что вычисляет ваши данные, проверяется, а не делается на ощущениях: ядро каждого инструмента сверяется с опубликованным стандартом, который оно реализует, с соответствующими RFC и спецификациями, а его вывод подтверждается по независимым источникам перед публикацией. Как гласит часто цитируемая фраза программиста Simon Willison, код, который вы просмотрели, протестировали и поняли, вовсе не вайб-кодинг. Сам Karpathy теперь называет дисциплинированный вариант agentic engineering: сохранять рычаг ИИ, не уступая в качестве результата. Именно эту черту проводит данный проект. Быстро там, где скорость даётся даром, строго там, где это важно, и один человек отвечает за всё.",
    "closingTitle": "Замечание о методе",
    "closingBody": "Создание программного обеспечения с соавторами-ИИ достаточно ново, чтобы было честно быть прозрачным об этом. Ничего здесь не было опубликовано без того, чтобы человек решил, что так и должно быть. ИИ были инструментами, способными инструментами, но инструментами. Суждение, ответственность и имя на работе принадлежат человеку.",
    "backHome": "Назад к инструментам",
    "standardsTitle": "Стандарты и фреймворки",
    "standardsLede": "Каждый инструмент здесь реализует опубликованную спецификацию, а не догадку. Декодеры и калькуляторы строятся на документах, определяющих их форматы, и привязаны к тестовым векторам, которые эти документы публикуют, так что каждый ответ сверяется с источником истины, а не с самим собой.",
    "specsLabel": "Спецификации",
    "specsBody": "JSON Web Tokens следуют RFC 7519, с подписями и алгоритмами в RFC 7515 и 7518; PKCE — это RFC 7636; Base64 и его варианты — это RFC 4648; UUID — это RFC 9562 (которая в 2024 году заменила RFC 4122 и содержит собственные тестовые векторы); HMAC — это RFC 2104, над семейством SHA, стандартизированным в FIPS 180-4 и FIPS 202; сертификаты X.509 — это RFC 5280; IPv4 и нотация CIDR — это RFC 4632; адресация IPv6 и её каноническая текстовая форма — это RFC 4291 и RFC 5952; а декодер cipher suite опирается на официальный реестр IANA TLS Cipher Suites, сверенный со спецификациями TLS 1.3 и 1.2 (RFC 8446 и 5246), правилами обновления реестра, задающими столбец “Recommended” (RFC 8447), и запретом RC4 (RFC 7465). Там, где авторитетом является реестр, его данные встраиваются напрямую, а не перенабираются.",
    "vectorsLabel": "Эталонные векторы",
    "vectorsBody": "Каждый инструмент поставляется с набором эталонных векторов: известные входные данные в паре с заведомо верными выходными, взятые из соответствующих RFC и органов стандартизации. Они выполняются при каждой сборке, так что рефакторинг, который тихо меняет ответ, приводит к падению сборки вместо выпуска.",
    "owaspLabel": "OWASP",
    "owaspBody": "Инструменты безопасности определяются по фреймворкам OWASP, а не собираются на ходу. Криптографические и TLS-инструменты соответствуют областям Cryptographic Failures и Security Misconfiguration из OWASP Top 10 и соответствующим проверкам Application Security Verification Standard; инструмент для токенов следует рекомендациям OWASP по проверке и валидации JWT. Prevention cheat sheets OWASP также задают жёсткие правила для того, что строится дальше: любая обработка XML или SAML, добавляемая здесь, должна быть закалена против XXE до выпуска.",
    "redblueLabel": "Красная и синяя",
    "redblueBody": "То же декодирование-и-объяснение, что позволяет специалисту red team прочитать перехваченный токен, позволяет специалисту blue team понять, что выдаёт его собственный стек. Платформа намеренно находится на аналитической стороне этой линии: она опознаёт, декодирует, преобразует и объясняет — и не доходит до подделки, внедрения или обхода средств защиты. Эта граница — проектное решение, а не упущение; эти инструменты существуют, чтобы обучать и диагностировать, а не чтобы стать оружием.",
    "localLabel": "Локально и детерминированно",
    "localBody": "Всё работает в браузере. Инструмент вызывает чистую функцию: при одинаковом вводе она возвращает одинаковый вывод, не хранит состояния и ничего не отправляет на сервер. Без файлов cookie, без аналитики, как полностью изложено на странице Конфиденциальности.",
    "thanksTitle": "Особая благодарность",
    "p2Body": "Детерминированная логика, которую выполняет каждый инструмент, и есть весь инструмент целиком: нет скрытого серверного шага, нет учётной записи и нет телеметрии. Всё выполняется в вашем браузере.",
    "changelogLink": "Журнал изменений"
  },
  "support": {
    "title": "Поддержите проект",
    "lede": "Эти инструменты бесплатны и задуманы таковыми остаться. Если они экономят ваше время, вы можете внести вклад в их поддержку. Полностью добровольно, всегда.",
    "tipHeading": "Оставить чаевые",
    "tipBlurb": "Каждый вклад идёт напрямую на поддержку инструментов и времени, вложенного в них.",
    "zeroCommission": "0% комиссии. Ссылки ведут напрямую к поставщику; этот сайт никогда не находится в платёжном потоке.",
    "placeholder": "Варианты поддержки настраиваются и скоро появятся здесь."
  },
  "admin": {
    "eyebrow": "Админ",
    "title": "Управление сайтом",
    "lede": "Поверхность управления для необязательных функций и настроек этого сайта.",
    "previewBanner": "Каркас предпросмотра. На статическом сайте эти элементы управления показывают предпросмотр административной поверхности; живое управление активируется сервисным слоем. Изменения здесь не сохраняются.",
    "featuresTitle": "Функции",
    "flagRequestTraining": "Запросить это обучение",
    "flagRequestTrainingDesc": "CTA генерации лидов на страницах курсов и платформ.",
    "flagTipJar": "TipJar",
    "flagTipJarDesc": "Ссылки поддержки создателя на странице поддержки.",
    "flagToolFunding": "Финансирование инструмента",
    "flagToolFundingDesc": "Интерфейс поддержки для отдельного инструмента.",
    "flagToolProvenance": "Происхождение инструмента",
    "flagToolProvenanceDesc": "Панель благодарностей и источников для отдельного инструмента.",
    "routingTitle": "Маршрутизация лидов",
    "routingDefaultLabel": "Глобальное значение по умолчанию",
    "routingNoOverrides": "Переопределения для платформы или курса не настроены.",
    "contactTitle": "Контакты",
    "contactEmailLabel": "Электронная почта",
    "contactFormLabel": "Отправка формы",
    "formMailto": "Резервный mailto (без бэкенда)",
    "formEndpoint": "Отправка на конечную точку",
    "tipJarTitle": "Поставщики TipJar",
    "tipConfigured": "Настроено",
    "tipNotConfigured": "Не настроено",
    "on": "Вкл.",
    "off": "Выкл.",
    "accessTitle": "Контроль доступа",
    "accessNote": "Только эти федеративные идентичности могут иметь административный доступ. Обеспечивается на стороне сервера сервисным слоем; статический сайт не выполняет аутентификацию.",
    "accessFederatedOnly": "Только федеративный вход. Без резервной локальной учётной записи.",
    "accessRoleLabel": "Роль",
    "accessPermsLabel": "Права владельца"
  },
  "machineTranslation": {
    "notice": "Эта страница переведена машинно и может содержать ошибки.",
    "cta": "Помочь улучшить"
  },
  "contribute": {
    "eyebrow": "Переводы",
    "title": "Помогите улучшить переводы",
    "lede": "Все языки здесь, кроме английского, являются черновиком, сделанным машиной. Если вы говорите на одном из них и замечаете что-то неправильное или неуклюжее, ваши исправления очень приветствуются. Вот как их прислать.",
    "howTitle": "Как внести вклад",
    "howBody": "Английский является источником истины, и все остальные языки переводятся с него, поэтому возможны ошибки. Каждый языковой пакет, это один текстовый файл с помеченными фразами. Скачайте тот, который хотите улучшить, изменяйте только текст после каждой метки и оставляйте метки и всё, что в фигурных скобках, ровно так, как есть. Затем отправьте отредактированный файл по электронной почте и укажите язык. Каждая присланная правка проверяется вручную.",
    "downloadHeading": "Языковые пакеты",
    "referenceTag": "образец",
    "emailHeading": "Отправьте свой вклад",
    "backHome": "Назад к инструментам"
  },
  "api": {
    "title": "API",
    "lede": "Инструменты на этом сайте работают в вашем браузере и держат ваши данные на вашем устройстве. Для автоматизации — скрипты, пайплайны и интеграции — те же детерминированные вычисления доступны в виде небольшого HTTP API. Это программный аналог браузерных инструментов, а не их замена.",
    "privacyTitle": "Что это значит для ваших данных",
    "privacyBody": "API получает только тот вход, который вы ему отправляете, вычисляет результат и возвращает его. Он не сохраняет состояния и не журналирует ни значений запроса, ни тел запросов. Если вам нужен гарантированный нулевой отток данных, используйте браузерные инструменты или запустите открытый движок сами.",
    "engineTitle": "Тот же движок, что и в браузере",
    "specTitle": "Спецификация",
    "specBody": "Полный контракт опубликован как OpenAPI 3.1. Скачайте его, направьте на него собственные инструменты или прочитайте справочник ниже.",
    "downloadSpec": "Скачать openapi.yaml",
    "baseUrlLabel": "Базовый URL",
    "authLabel": "Аутентификация",
    "authValue": "Отсутствует. Это публичный API только для чтения.",
    "referenceTitle": "Справочник",
    "loading": "Загрузка спецификации.",
    "loadError": "Не удалось загрузить спецификацию.",
    "tryItTitle": "Попробовать",
    "tryItSend": "Отправить",
    "tryItRunning": "Выполняется.",
    "tryItHint": "Выполняется на действующем API этого источника. Ваш вход отправляется на конечную точку.",
    "paramsTitle": "Параметры",
    "responsesTitle": "Ответы",
    "schemasTitle": "Схемы",
    "exampleLabel": "Пример",
    "requiredLabel": "обязательно",
    "fieldLabel": "Поле",
    "typeLabel": "Тип",
    "descriptionLabel": "Описание",
    "viewReference": "Справочник",
    "viewSwagger": "Swagger UI",
    "swaggerLoadError": "Не удалось загрузить Swagger UI.",
    "engineBody": "Каждая конечная точка выполняет ту же чистую функцию, что и инструмент в браузере, поэтому API и браузер возвращают побайтово идентичные результаты."
  },
  "license_page": {
    "eyebrow": "Условия",
    "title": "Лицензия",
    "closedHeading": "Закрытый код — этот сайт",
    "closedBody": "Сам сайт имеет закрытый исходный код. Его дизайн, интерфейс, текстовое наполнение (включая каждую статью Learn), брендинг и тот особый способ, которым эти инструменты собраны и представлены здесь, являются исключительной собственностью, все права защищены. Не предоставляется разрешение копировать, воспроизводить, изменять, распространять или создавать производные работы на основе сайта или его содержимого без предварительного письменного согласия.",
    "contact": "Вопросы о лицензии? <a>Свяжитесь с нами.</a>",
    "backHome": "Назад к инструментам",
    "thirdHeading": "Компоненты с открытым кодом",
    "lede": "ronutz.com — это проприетарная работа, все права защищены. Эти условия распространяются на веб-сайт и его содержимое. Сайт построен на программном обеспечении с открытым исходным кодом, которое используется и распространяется на собственных условиях лицензий, указанных ниже.",
    "thirdBody": "Этот сайт опирается на работу с открытым исходным кодом. Сам сайт построен с помощью Next.js и React и поставляется как статический экспорт; интернационализация использует next-intl; содержимое Learn отображается с помощью next-mdx-remote, gray-matter, remark-gfm и js-yaml; а поиск обеспечивается Pagefind. Эти компоненты предоставляются под лицензией MIT License, кроме next-mdx-remote (Mozilla Public License 2.0). Справочник API встраивает Swagger UI под лицензией Apache License 2.0. Каждый компонент остаётся под собственной лицензией, а полные уведомления поставляются вместе с исходным кодом."
  },
  "contributeIdeas": {
    "eyebrow": "Идеи приветствуются",
    "title": "Поделитесь идеей",
    "lede": "Этот набор инструментов создан, чтобы расти, и самый ясный сигнал о том, куда ему двигаться, исходит от тех, кто им пользуется. Нашли баг, ошибку или неточность? Не хватает инструмента, которого здесь пока нет? Видите способ сделать что-то лучше или результат, который сформулировали бы иначе? Пришлите это; любой отклик приветствуется.",
    "sendTitle": "Что можно прислать",
    "sendBody": "Баги, ошибки и неточности любого рода: инструмент, который ведёт себя неправильно, неверный результат, ошибку в статье Learn или просто что-то, что выглядит не так. Пожелания по функциям для уже существующих инструментов. Идеи новых инструментов, которые стоило бы добавить. Исправления и дополнения к статьям Learn, например более ясное объяснение, лучший источник или недостающую тему. Или просто другой взгляд на задачу. Можно начерно; одного предложения достаточно, чтобы начать разговор.",
    "toolTitle": "Если вы предлагаете новый инструмент",
    "toolBody": "Инструменты здесь — это небольшие самоописательные модули: манифест, который сообщает, что это за инструмент и откуда берётся его корректность, одна чистая функция, выполняющая работу, и набор golden vectors, фиксированных пар вход-выход, которые это доказывают. Хороший кандидат вычисляет локально и детерминированно (один и тот же вход всегда даёт один и тот же выход, без часов, сети или случайности в результате), держит всё чувствительное на устройстве и опирает свою корректность на цитируемый источник, такой как RFC, а не на мнение. Чтобы предложить инструмент, не нужно ничего из этого создавать: просто опишите, что он должен вычислять, пример и источник, на котором он основан.",
    "fitRule": "Решает один простой тест. Каждый инструмент здесь работает целиком в вашем браузере и ничего никуда не отправляет, поэтому новый инструмент должен быть тем, что компьютер может вычислить только из того, что вы вводите, следуя фиксированному опубликованному правилу. Если ему нужно выходить в интернет, проверять что-то вживую, выполнять вход или запоминать вас, ему здесь не место.",
    "fitYes": "Подходит:",
    "fitYesBody": "декодировать или объяснить то, что вы вставляете (токен, сертификат, конфигурацию, вывод команды), преобразовать между форматами, вычислить по стандарту или формуле, либо сгенерировать по правилу — например, UUID, хеш или командную строку.",
    "fitNo": "Не подходит:",
    "fitNoBody": "всё, что должно выходить в интернет или проверять что-то вживую (тестировать реальный сайт, запрашивать действующий DNS-сервер, сканировать адрес), всё, что требует учётной записи, входа или сохранённых данных, либо всё, чей ответ не задан опубликованным стандартом.",
    "fitUnsure": "Не уверены, на какой стороне ваша идея? Всё равно пришлите её и опишите, что она должна делать. Я честно скажу, подходит ли она и почему.",
    "emailTitle": "Как со мной связаться",
    "emailBody": "Канал — электронная почта. Расскажите, что вы нашли или чего хотели бы, с достаточными деталями, чтобы можно было действовать: пример, ссылку, точную формулировку, что подходит. Если это сделает набор инструментов лучше, это будет реализовано.",
    "emailLabel": "Эл. почта",
    "backToTools": "Назад к инструментам"
  },
  "languageStatus": {
    "title": "Статус перевода",
    "reviewed": "Проверено человеком",
    "complete": "Машинный, полный",
    "partial": "Машинный, в процессе",
    "explainTitle": "Как обозначаются переводы",
    "explainBody": "Английский и бразильский португальский пишутся и проверяются человеком. Большинство других языков переведены машинно и помечены по степени готовности: янтарный, когда язык охватывает весь сайт, жёлтый, пока более новый контент всё ещё на английском и догоняет. Языки, отмеченные красным, пока не имеют перевода и показываются на английском. Страницы с машинным переводом также содержат краткое уведомление, и вы можете помочь улучшить любую из них.",
    "stub": "Ещё не переведено"
  },
  "changelog": {
    "eyebrow": "Журнал изменений",
    "title": "Что нового",
    "lede": "Текущая хроника новых инструментов, новых статей Learn и значимых изменений на этом сайте. Сегодня доступно {count} инструментов.",
    "kindLaunch": "Запуск",
    "kindTool": "Новый инструмент",
    "kindFeature": "Функция",
    "kindI18n": "Локализация",
    "kindContent": "Контент",
    "kindInfra": "Инфраструктура"
  }
}
