// AUTO-GENERATED by scripts/gen-errors.mjs — do not edit by hand. // Source: stapel-auth canonical errors.json (backend codegen artifact). // Regenerate: pnpm gen:errors · Drift gate: pnpm gen:errors:check // Locale source: backend translations/errors.ru.json (locale catalog // beside the canonical errors.json — i18n-shipping.md §1). import type { CategoriesErrorCode } from "./errors.gen.js"; /** * `ru` texts for the backend error codes this catalog carries. * * PARTIAL, and deliberately typed to say so: 13 key(s) owned by * stapel_attributes are absent, because that owner ships no locale catalog * (ERRORS_LOCALE_EXEMPT_OWNERS). English for them still comes from the registry * artifact via the en bundle; the pair layers its own authored `ru` * strings over this one until upstream ships translations. `Partial` is what * makes the gap visible to TypeScript instead of a silent English fallback. * * Import from the pair's `./i18n/ru` subpath, NOT the main entry, so * the locale stays out of hosts that don't ship it. */ export const categoriesErrorBundleRu: Partial> = { "error.400.bad_request": "Некорректный запрос", "error.400.captcha_invalid": "Проверка капчи не пройдена. Пожалуйста, попробуйте ещё раз.", "error.400.captcha_required": "Требуется токен капчи.", "error.400.categories_config_required": "Требуется объект config", "error.400.categories_database_error": "Ошибка базы данных при применении изменений", "error.400.categories_duplicate_slug": "Характеристика со слагом «{slug}» уже существует", "error.400.categories_expected_list": "Ожидался список объектов", "error.400.categories_feature_editor_invalid": "Некорректный запрос к редактору характеристик: {reason}", "error.400.categories_invalid_conversion": "Недопустимое преобразование типа (поддерживается только select ↔ string)", "error.400.categories_not_deleted": "Категория не удалена", "error.400.expected_list": "Ожидался список элементов", "error.400.field.blank": "Поле «{field}» не может быть пустым", "error.400.field.does_not_exist": "«{field}» не существует", "error.400.field.invalid": "Поле «{field}» содержит недопустимое значение", "error.400.field.invalid_choice": "Недопустимый вариант для поля «{field}»", "error.400.field.max_length": "Поле «{field}» должно содержать не более {max_length} символов", "error.400.field.max_value": "Значение поля «{field}» должно быть не больше {max_value}", "error.400.field.min_length": "Поле «{field}» должно содержать не менее {min_length} символов", "error.400.field.min_value": "Значение поля «{field}» должно быть не меньше {min_value}", "error.400.field.null": "Поле «{field}» не может быть null", "error.400.field.required": "Поле «{field}» обязательно", "error.400.field.unique": "Значение поля «{field}» должно быть уникальным", "error.400.invalid_ad_id": "Недопустимый идентификатор объявления", "error.400.validation_error": "Ошибка валидации", "error.400.verification_failed": "Проверка не пройдена", "error.400.verification_invalid_factor": "Этот способ подтверждения недоступен", "error.401.unauthorized": "Требуется аутентификация", "error.402.payment_required": "Требуется оплата", "error.403.forbidden": "У вас нет прав для выполнения этого действия", "error.403.network_blocked": "Запросы из этой сети не разрешены.", "error.403.verification_enrollment_required": "Требуется регистрация фактора подтверждения.", "error.403.verification_required": "Требуется дополнительная проверка", "error.404.ad_not_found": "Объявление не найдено", "error.404.categories_slug_not_found": "Категория со слагом «{slug}» не найдена", "error.404.not_found": "Запрошенный ресурс не найден", "error.404.verification_challenge_not_found": "Запрос на подтверждение не найден или истёк", "error.405.method_not_allowed": "Метод не разрешён", "error.406.not_acceptable": "Недопустимый формат ответа", "error.408.request_timeout": "Время ожидания запроса истекло", "error.409.categories_feature_editor_conflict": "Категорию изменил другой редактор (ожидалась ревизия {expected}, сейчас {actual}); обновите страницу и повторите попытку", "error.409.conflict": "Ресурс уже существует", "error.410.gone": "Ресурс был безвозвратно удалён", "error.413.payload_too_large": "Тело запроса слишком большое", "error.415.unsupported_media_type": "Неподдерживаемый тип данных", "error.422.unprocessable_entity": "Невозможно обработать данные запроса", "error.423.locked": "Ресурс заблокирован", "error.423.verification_locked": "Слишком много неудачных попыток — подтверждение заблокировано", "error.429.rate_limit": "Слишком много попыток. Повторите попытку через {retry_after_minutes} мин.", "error.429.too_many_requests": "Слишком много запросов. Пожалуйста, повторите попытку позже.", "error.500.internal": "Что-то пошло не так", "error.503.mandate_unavailable": "Не удалось проверить доступ к рабочему пространству", };