{
    "components.brand": "Бессонный Кодер",
    "components.appcard.go": "Открыть",
    "components.appcard.label": "Сервис",
    "components.nav.login": "Войти",
    "components.nav.logout": "Выйти",
    "components.nav.main": "Главная",
    "components.nav.menu": "Открыть меню",
    "components.nav.navigation": "Основная навигация",
    "components.nav.projects": "Проекты",
    "components.nav.socials": "Блоги",
    "components.footer.tagline": "Личный сайт, блог и лаборатория Ильи",
    "general.back": "Назад",
    "general.cancel": "Отмена",
    "general.close": "Закрыть",
    "general.create": "Создать",
    "general.send": "Отправить",
    "page.blog.article": "Статья",
    "page.blog.author": "Автор",
    "page.blog.authorDescription": "Пишу о разработке, системах и играх.",
    "page.blog.back": "На главную",
    "page.blog.copied": "Ссылка скопирована",
    "page.blog.copyLink": "Скопировать ссылку",
    "page.blog.errorDescription": "Не удалось загрузить статью.",
    "page.blog.errorTitle": "Статья недоступна",
    "page.blog.eyebrow": "Блог · Бессонный Кодер",
    "page.blog.fallbackTitle": "Блог — Бессонный Кодер",
    "page.blog.loading": "Загружаю статью…",
    "page.blog.minutes": "мин чтения",
    "page.blog.moreEyebrow": "Продолжить чтение",
    "page.blog.moreTitle": "Похожие материалы",
    "page.blog.retry": "Попробовать ещё раз",
    "page.blog.telegram": "Telegram-канал",
    "page.blog.toMain": "На главную",
    "page.blogCategory.articles": "статей в категории | статья в категории | статьи в категории | статей в категории",
    "page.blogCategory.articlesTitle": "Материалы категории",
    "page.blogCategory.empty": "В этой категории пока нет опубликованных статей.",
    "page.blogCategory.errorDescription": "Не удалось загрузить категорию.",
    "page.blogCategory.errorTitle": "Категория недоступна",
    "page.blogCategory.eyebrow": "Серия статей",
    "page.blogCategory.fallbackDescription": "Подборка тематических статей.",
    "page.blogCategory.fallbackTitle": "Категория блога — Бессонный Кодер",
    "page.blogCategory.listEyebrow": "Все публикации",
    "page.blogCategory.loading": "Загружаю категорию…",
    "page.blogCategory.metaSuffix": "Бессонный Кодер",
    "page.dev.appId": "ID приложения",
    "page.dev.appName": "Название приложения",
    "page.dev.appSecret": "Приватный токен приложения",
    "page.dev.createApp": "Создать приложение",
    "page.dev.createdApp": "Приложение создано",
    "page.dev.delete": "Удалить",
    "page.dev.deleteApp": "Удалить приложение",
    "page.dev.issueToken": "Выпустить токен",
    "page.dev.issuedTokens": "Выпущенные токены:",
    "page.dev.issuingToken": "Выпуск токена",
    "page.dev.permissions": "Права",
    "page.dev.requestsPerDay": "Запросов за день: {ldr}",
    "page.dev.requestsPerMouth": "Запросов за месяц: {lmr}",
    "page.dev.saveToken": "Токен отображается в первый и последний раз, сохраните его в надёжном месте!",
    "page.dev.tokenIssued": "Токен выпущен",
    "page.dev.tokenName": "Название токена",
    "page.hub.available": "Доступно сервисов: {count}",
    "page.hub.categoryCount": "{count} сервисов",
    "page.hub.description": "Сервисы, боты и инструменты Бессонного Кодера.",
    "page.hub.emptyDescription": "API ответил успешно, но пока не вернул ни одного доступного сервиса.",
    "page.hub.emptyTitle": "Здесь пока пусто",
    "page.hub.errorDescription": "Не удалось получить список сервисов. Возможно, API временно недоступен — попробуйте ещё раз.",
    "page.hub.errorTitle": "Hub не загрузился",
    "page.hub.eyebrow": "Сервисы и эксперименты",
    "page.hub.heading": "Hub",
    "page.hub.intro": "Боты, инструменты, документация и небольшие сервисы, которыми можно пользоваться прямо сейчас.",
    "page.hub.loading": "Получаю список сервисов…",
    "page.hub.retry": "Попробовать снова",
    "page.hub.title": "Бессонный Кодер — Hub",
    "page.hub.unavailable": "API временно недоступен",
    "page.hub.untitledCategory": "Прочее",
    "page.index.latestDescription": "Большие материалы о разработке, инфраструктуре, устройстве систем и игровой культуре.",
    "page.index.latestEyebrow": "Последние публикации",
    "page.index.latestTitle": "Из блога",
    "page.index.readArticle": "Читать статью",
    "page.index.about": "Привет! Меня зовут Илья, я Java и Node.js программист с более чем 6-летним опытом.",
    "page.index.aboutEyebrow": "Обо мне",
    "page.index.aboutTitle": "Превращаю идеи в работающие продукты",
    "page.index.allProjects": "Все проекты",
    "page.index.automationDescription": "Модерация сообществ, транскрибация голосовых сообщений, поиск стикерпаков, платежи и автоматизация рутинных процессов.",
    "page.index.automationTitle": "Telegram-боты и автоматизация",
    "page.index.backendDescription": "Разрабатываю backend на Java и Node.js: REST API, WebSocket, PostgreSQL и платёжная логика.",
    "page.index.backendTitle": "Backend и системные интеграции",
    "page.index.career01Period": "Май 2025 — сейчас",
    "page.index.careerAlta": "Поддержка и развитие существующих Java-систем.",
    "page.index.careerAltaPeriod": "Апрель 2024 — апрель 2025",
    "page.index.careerAltaTitle": "Альта-Софт",
    "page.index.careerEyebrow": "Опыт",
    "page.index.careerPractice": "Telegram-боты, API, сервисы и автоматизация для частных заказчиков.",
    "page.index.careerPracticePeriod": "Март 2018 — сейчас",
    "page.index.careerPracticeTitle": "Частная практика",
    "page.index.careerStorytelling": "Java / Node.js, системные интеграции и внутренние инструменты.",
    "page.index.careerStorytellingPeriod": "Февраль 2022 — май 2025",
    "page.index.careerTitle": "Мой опыт",
    "page.index.currentRole": "Сейчас",
    "page.index.expertiseEyebrow": "Специализация",
    "page.index.expertiseIntro": "От прикладной логики до эксплуатации: собираю сервисы целиком и связываю их с внешними системами.",
    "page.index.expertiseTitle": "Что я делаю",
    "page.index.infrastructureDescription": "Docker, Nginx, Linux, CI/CD, Grafana и Prometheus — для воспроизводимого развёртывания и наблюдаемости.",
    "page.index.infrastructureTitle": "Инфраструктура",
    "page.index.stackEyebrow": "Инструменты",
    "page.index.stackTitle": "Основной стек",
    "page.index.backend": "бэкенд",
    "page.index.contactDescription": "Есть идея, задача или просто хочется обсудить технологии? Напишите — отвечу и подумаем вместе.",
    "page.index.contactEyebrow": "На связи",
    "page.index.contactMe": "Написать мне",
    "page.index.contactTitle": "Давайте сделаем что-нибудь полезное",
    "page.index.channelDescription": "Это мой личный канал. Там я рассказываю, как устроены системы, с которыми работаю, разбираюсь в технологиях и размышляю об играх — их устройстве, этике и влиянии на людей.",
    "page.index.channelEyebrow": "Мой Telegram-канал",
    "page.index.channelTitle": "Ещё я пишу в Telegram",
    "page.index.channelTopicDevelopment": "практика разработки",
    "page.index.channelTopicGames": "устройство игр",
    "page.index.channelTopicSystems": "архитектура систем",
    "page.index.channelTopicsLabel": "Темы канала",
    "page.index.contact": "Вы можете связаться со мной через: ",
    "page.index.contact2": "Или через бота: ",
    "page.index.dashboards": "Дашборды статистики",
    "page.index.eyebrow": "Java & Node.js developer",
    "page.index.experience": "Я специализируюсь на создании Telegram ботов и бэк-энд решений для самых разных проектов. За годы работы успел посотрудничать с Московским центром развития профессионального образования, Колледжем связи №54, StoryTelling team и десятками индивидуальных заказчиков. Я всегда открыт для новых идей и готов помочь воплотить ваш проект в жизнь!",
    "page.index.factsLabel": "Кратко об опыте и специализации",
    "page.index.guard": "Имперский стражник",
    "page.index.guardDescription": "Бот для модерации и защиты Telegram-сообществ с прозрачной статистикой работы.",
    "page.index.heroAccent": "Создаю полезные сервисы.",
    "page.index.heroLead": "Проектирую бэкенды, Telegram-ботов и небольшие эксперименты, которые решают реальные задачи.",
    "page.index.heroTitle": "Пишу код.",
    "page.index.hubDescription": "Коллекция сервисов, инструментов и экспериментов, собранных в одном месте.",
    "page.index.hubTitle": "Лаборатория проектов",
    "page.index.metaDescription": "Личный сайт Ильи: Java и Node.js разработка, Telegram-боты, проекты и технические эксперименты.",
    "page.index.labLabel": "Бессонный Кодер · Лаборатория",
    "page.index.metaTitle": "Бессонный Кодер — Java & Node.js разработчик",
    "page.index.openDashboard": "Открыть статистику",
    "page.index.openHub": "Перейти в Hub",
    "page.index.projectsEyebrow": "Избранное",
    "page.index.projectsTitle": "Проекты в работе",
    "page.index.postAiDescription": "От ELIZA 1966 года до людей, которые воспринимают современные модели как друзей.",
    "page.index.postAiTitle": "Почему мы привязываемся к ИИ",
    "page.index.postGamesDescription": "Как игроки сами меняют правила и превращают PvP-среду в пространство сотрудничества.",
    "page.index.postGamesTitle": "Игрок — автор видеоигровой среды",
    "page.index.postQueuesDescription": "Как одна Map и глобальный listener заменили сотни обработчиков в большой системе.",
    "page.index.postQueuesTitle": "Очереди сообщений без утечки listener’ов",
    "page.index.readChannel": "Заглянуть в канал",
    "page.index.services": "сервисы",
    "page.index.viewProjects": "Смотреть проекты",
    "page.index.voice": "Подпольный транскриптор",
    "page.index.voiceDescription": "Сервис, который превращает голосовые сообщения в текст и помогает экономить время.",
    "page.index.years": "лет опыта",
    "page.login.back": "Назад",
    "page.login.confirm": "Подтвердить",
    "page.login.createAccount": "Создать аккаунт",
    "page.login.description": "Вход в личный кабинет на redguy.ru.",
    "page.login.emailNotConfirmed": "Ваш email не подтвержден",
    "page.login.eyebrow": "Личный кабинет",
    "page.login.error": "Логин или пароль не верны",
    "page.login.forgotPassword": "Забыли пароль?",
    "page.login.formDescription": "Используйте логин и пароль, указанные при регистрации.",
    "page.login.formTitle": "Вход в аккаунт",
    "page.login.heroDescription": "Войдите, чтобы управлять аккаунтом, приложениями и настройками сервисов.",
    "page.login.heroTitle": "С возвращением",
    "page.login.hidePassword": "Скрыть",
    "page.login.networkError": "Не удалось связаться с сервером. Попробуйте ещё раз.",
    "page.login.password": "Пароль",
    "page.login.passwordPlaceholder": "Ваш пароль",
    "page.login.requiredFields": "Введите логин и пароль.",
    "page.login.showPassword": "Показать",
    "page.login.tfa": "Подтверждение входа",
    "page.login.tfaCode": "Одноразовый код",
    "page.login.tfaDescription": "Введите одноразовый код из приложения-аутентификатора.",
    "page.login.tfaError": "Неверный код подтверждения.",
    "page.login.tfaPlaceholder": "000000",
    "page.login.tfaRequired": "Введите код подтверждения.",
    "page.login.title": "Вход — Бессонный Кодер",
    "page.login.username": "Логин",
    "page.login.usernamePlaceholder": "Ваш логин",
    "page.logs.createService": "Создать сервис",
    "page.logs.level": "Уровень",
    "page.logs.loadMore": "Загрузить ещё",
    "page.logs.message": "Сообщение",
    "page.logs.payload": "Дополнительные данные",
    "page.logs.service": "Источник",
    "page.logs.serviceName": "Название сервиса",
    "page.logs.time": "Время",
    "page.oauth.vk.description": "Завершение входа через VK ID.",
    "page.oauth.vk.errorTitle": "Не удалось войти",
    "page.oauth.vk.exchangeError": "Не удалось завершить вход через VK ID. Попробуйте ещё раз.",
    "page.oauth.vk.loadingDescription": "Проверяем ответ VK ID и завершаем авторизацию.",
    "page.oauth.vk.loadingTitle": "Завершаем вход",
    "page.oauth.vk.missingCode": "VK ID не передал код авторизации. Вернитесь ко входу и попробуйте снова.",
    "page.oauth.vk.title": "Вход через VK ID — Бессонный Кодер",
    "page.oauth.vk.toLogin": "Вернуться ко входу",
    "page.oauth.vk.toMain": "На главную",
    "page.oauth.authorize.authorizeError": "Не удалось выдать доступ приложению.",
    "page.oauth.authorize.basicDescription": "Приложение узнает, что вы успешно вошли.",
    "page.oauth.authorize.basicTitle": "Подтверждение входа",
    "page.oauth.authorize.description": "Предоставление приложению доступа к аккаунту.",
    "page.oauth.authorize.emailTitle": "Адрес электронной почты",
    "page.oauth.authorize.errorTitle": "Некорректный запрос",
    "page.oauth.authorize.eyebrow": "Запрос доступа",
    "page.oauth.authorize.invalidRequest": "В OAuth-запросе отсутствуют обязательные параметры.",
    "page.oauth.authorize.loadError": "Не удалось получить информацию о приложении.",
    "page.oauth.authorize.loadingDescription": "Проверяем приложение и запрошенные разрешения.",
    "page.oauth.authorize.loadingTitle": "Проверяем запрос",
    "page.oauth.authorize.profileTitle": "Профиль аккаунта",
    "page.oauth.authorize.securityNote": "Пароль не передаётся приложению. Вы сможете отозвать доступ позже.",
    "page.oauth.authorize.title": "Разрешение доступа — Бессонный Кодер",
    "page.oauth.authorize.toMain": "На главную",
    "page.oauth.authorize.access.email": "Получить доступ к вашему email адресу",
    "page.oauth.authorize.access.nickname": "Получить доступ к вашему id и никнейму",
    "page.oauth.authorize.allow": "Разрешить",
    "page.oauth.authorize.app": "Приложение {app}",
    "page.oauth.authorize.cancel": "Отмена",
    "page.oauth.authorize.requestsAccess": "хочет получить доступ к вашему аккаунту",
    "page.oauth.authorize.willAllow": "Это позволит приложению:",
    "page.register.description": "Создание аккаунта на redguy.ru.",
    "page.register.email": "Email",
    "page.register.emailError": "Введена не корректная почта",
    "page.register.emailExists": "Почта уже занята",
    "page.register.error": "Что-то пошло не так",
    "page.register.eyebrow": "Новый аккаунт",
    "page.register.formDescription": "Заполните четыре поля — подтверждение придёт на указанную почту.",
    "page.register.formTitle": "Регистрация",
    "page.register.haveAccount": "Уже есть аккаунт?",
    "page.register.heroDescription": "Один аккаунт для сервисов, настроек и приложений экосистемы.",
    "page.register.heroTitle": "Создайте свой профиль",
    "page.register.login": "Логин",
    "page.register.loginError": "Логин должен быть от 3 символов",
    "page.register.loginExists": "Логин уже занят",
    "page.register.loginPlaceholder": "Минимум 3 символа",
    "page.register.networkError": "Не удалось связаться с сервером. Попробуйте ещё раз.",
    "page.register.ok": "Вам на почту было отправлено письмо с подтверждением. Пожалуйста, перейдите по ссылке в письме.",
    "page.register.password": "Пароль",
    "page.register.passwordPlaceholder": "От 8 символов",
    "page.register.passwordAgain": "Повтор пароля",
    "page.register.passwordAgainError": "Пароли не совпадают",
    "page.register.passwordAgainPlaceholder": "Введите пароль ещё раз",
    "page.register.passwordError": "Пароль должен быть от 8 символов, включая латинские буквы верхнего и нижнего регистра, а так же цифры",
    "page.register.register": "Зарегистрироваться",
    "page.register.successTitle": "Проверьте почту",
    "page.register.title": "Регистрация — Бессонный Кодер",
    "page.register.toLogin": "Перейти ко входу",
    "page.reset.description": "Создание нового пароля для аккаунта на redguy.ru.",
    "page.reset.error": "Не удалось изменить пароль. Попробуйте ещё раз.",
    "page.reset.eyebrow": "Восстановление доступа",
    "page.reset.formTitle": "Новый пароль",
    "page.reset.heroDescription": "Придумайте новый пароль для защиты своего аккаунта.",
    "page.reset.heroTitle": "Почти готово",
    "page.reset.invalidTitle": "Ссылка недействительна",
    "page.reset.invalidToken": "Ссылка для восстановления недействительна или уже была использована.",
    "page.reset.missingToken": "В ссылке отсутствует код восстановления. Запросите новое письмо.",
    "page.reset.networkError": "Не удалось связаться с сервером. Проверьте соединение и попробуйте ещё раз.",
    "page.reset.password": "Новый пароль",
    "page.reset.passwordAgain": "Повторите пароль",
    "page.reset.passwordAgainPlaceholder": "Введите пароль ещё раз",
    "page.reset.passwordHint": "Минимум 8 символов: строчная и заглавная латинские буквы и хотя бы одна цифра.",
    "page.reset.passwordPlaceholder": "От 8 символов",
    "page.reset.requestAgain": "Запросить новую ссылку",
    "page.reset.submit": "Сохранить пароль",
    "page.reset.successDescription": "Пароль изменён. Теперь вы можете войти с новыми данными.",
    "page.reset.successTitle": "Пароль обновлён",
    "page.reset.title": "Новый пароль — Бессонный Кодер",
    "page.reset.toLogin": "Перейти ко входу",
    "page.reset.enter": "Введите новый пароль",
    "page.reset.not-match": "Пароли не совпадают",
    "page.reset.too-easy": "Пароль слишком простой",
    "page.restore.captchaError": "Не удалось загрузить проверку CAPTCHA. Обновите страницу и попробуйте снова.",
    "page.restore.captchaLoading": "Загружаем проверку…",
    "page.restore.captchaRequired": "Подтвердите, что вы не робот.",
    "page.restore.description": "Восстановление доступа к аккаунту на redguy.ru.",
    "page.restore.email": "Email",
    "page.restore.emailError": "Введите корректный адрес электронной почты.",
    "page.restore.emailPlaceholder": "name{'@'}example.com",
    "page.restore.error": "Не удалось отправить письмо. Попробуйте ещё раз.",
    "page.restore.eyebrow": "Восстановление доступа",
    "page.restore.formTitle": "Забыли пароль?",
    "page.restore.heroDescription": "Отправим безопасную ссылку для создания нового пароля.",
    "page.restore.heroTitle": "Вернём доступ",
    "page.restore.networkError": "Не удалось связаться с сервером. Проверьте соединение и попробуйте ещё раз.",
    "page.restore.successTitle": "Проверьте почту",
    "page.restore.title": "Восстановление пароля — Бессонный Кодер",
    "page.restore.toLogin": "Вернуться ко входу",
    "page.restore.enter": "Введите почту которую вы указали при регистрации",
    "page.restore.sent": "Если данная почта существует в нашей системе, мы отправили письмо с ссылкой восстановления пароля.",
    "page.settings.close": "Закрыть",
    "page.settings.disabled": "Выключена",
    "page.settings.enabled": "Включена",
    "page.settings.enterCode": "Введите код из приложения-аутентификатора, чтобы отключить двухфакторную защиту.",
    "page.settings.eyebrow": "Аккаунт",
    "page.settings.heading": "Настройки",
    "page.settings.intro": "Управление безопасностью аккаунта и активными сессиями.",
    "page.settings.loadError": "Не удалось загрузить настройки",
    "page.settings.loading": "Загружаю настройки…",
    "page.settings.manualCode": "Или введите секрет вручную",
    "page.settings.passwordDesc": "Обновите пароль, если считаете, что старый мог быть скомпрометирован.",
    "page.settings.retry": "Повторить",
    "page.settings.sessionsDesc": "Завершить все активные сеансы, кроме текущего.",
    "page.settings.sessionsReset": "Остальные сессии завершены.",
    "page.settings.totpDescDisabled": "Добавьте второй фактор защиты с помощью приложения-аутентификатора.",
    "page.settings.totpDescEnabled": "При входе потребуется одноразовый код из приложения.",
    "page.settings.cancel": "Отмена",
    "page.settings.changePassword": "Смена пароля",
    "page.settings.changePassword2": "Сменить пароль",
    "page.settings.code": "Код из приложения",
    "page.settings.currentPassword": "Текущий пароль",
    "page.settings.description": "Настройки аккаунта",
    "page.settings.error": "Ошибка",
    "page.settings.incorrectCode": "Код не корректен",
    "page.settings.incorrectPassword": "Неверный пароль",
    "page.settings.newPassword": "Новый пароль",
    "page.settings.newPasswordAgain": "Повтор пароля",
    "page.settings.notStrongEnough": "Новый пароль недостаточно безопасен",
    "page.settings.passwordsNotEquals": "Пароли не совпадают",
    "page.settings.resetSessions": "Сбросить сессии",
    "page.settings.resetTOTP": "Выключить двухфакторную авторизацию",
    "page.settings.safety": "Безопасность",
    "page.settings.setTOTP": "Включить двухфакторную авторизацию",
    "page.settings.setTOTP2": "Подтвердить",
    "page.settings.title": "Настройки",
    "page.socials.boosty.description": "Мой Boosty, где я публикую интересные дополнительные материалы и вы можете поддержать меня!",
    "page.socials.boosty.title": "Boosty",
    "page.socials.description": "Мои блоги и каналы",
    "page.socials.discord.description": "Мой Discord сервер, где я частенько общаюсь",
    "page.socials.discord.title": "SleepLessCode discord",
    "page.socials.my": "Мои блоги и каналы",
    "page.socials.sleeplesschat.description": "Мой чат в Telegram, где я общаюсь с подписчиками",
    "page.socials.sleeplesschat.title": "Спящие джуны",
    "page.socials.sleeplesscode.description": "Мой личный канал где я расказываю о своих проектах и не только",
    "page.socials.sleeplesscode.title": "Бессонный кодер",
    "page.socials.sleeplessfoto.description": "Мой личный канал в Telegram, где я публикую свои фотографии",
    "page.socials.sleeplessfoto.title": "Бессонные фоточки",
    "page.socials.sleeplessstickers.description": "Мой канал в Telegram, где я публикую обновления своих стикеров",
    "page.socials.sleeplessstickers.title": "Бессонные стикеры",
    "page.socials.title": "Бессонный Кодер — блоги и каналы",
    "page.socials.youtube.description": "Мой канал на YouTube, где я публикую самые разнообразные видео",
    "page.socials.youtube.title": "Бессонный Кодер",
    "page.verify.description": "Подтверждение адреса электронной почты на redguy.ru.",
    "page.verify.errorDescription": "Не удалось подтвердить аккаунт.",
    "page.verify.errorTitle": "Подтверждение не выполнено",
    "page.verify.eyebrow": "Подтверждение аккаунта",
    "page.verify.invalidToken": "Ссылка недействительна или уже была использована.",
    "page.verify.missingToken": "В ссылке отсутствует код подтверждения. Откройте ссылку из письма целиком.",
    "page.verify.networkError": "Не удалось связаться с сервером. Проверьте соединение и попробуйте ещё раз.",
    "page.verify.retry": "Попробовать ещё раз",
    "page.verify.successDescription": "Адрес электронной почты подтверждён. Теперь можно войти в аккаунт.",
    "page.verify.successTitle": "Аккаунт подтверждён",
    "page.verify.title": "Подтверждение аккаунта — Бессонный Кодер",
    "page.verify.toLogin": "Перейти ко входу",
    "page.verify.toMain": "На главную",
    "page.verify.waitDescription": "Проверяем ссылку из письма. Это займёт всего несколько секунд.",
    "page.verify.waitTitle": "Подтверждаем аккаунт",
    "page.verify.error": "Что-то пошло не так",
    "page.verify.main": "главную",
    "page.verify.ok": "Готово! Вы можете вернуться на",
    "page.verify.wait": "Пожалуйста, подождите",
    "permissions.hashes": "Декодирование хешей",
    "permissions.logs": "Логгинг",
    "permissions.minecraft": "Minecraft"
}
