mirror of
https://github.com/zitadel/zitadel.git
synced 2025-11-01 22:52:28 +00:00
Closes #10498
The registration form's legal checkboxes had incorrect validation logic
that prevented users from completing registration when only one legal
document (ToS or Privacy Policy) was configured, or when no legal
documents were required.
additionally removes a duplicate description for "or use Identity
Provider"
# Which Problems Are Solved
Having only partial legal documents was blocking users to register. The
logic now conditionally renders checkboxes and checks if all provided
documents are accepted.
# How the Problems Are Solved
- Fixed checkbox validation: Now properly validates based on which legal
documents are actually available
- acceptance logic: Only requires acceptance of checkboxes that are
shown
- No legal docs support: Users can proceed when no legal documents are
configured
- Proper state management: Fixed checkbox state tracking and mixed-up
test IDs
---------
Co-authored-by: Stefan Benz <46600784+stebenz@users.noreply.github.com>
(cherry picked from commit b9b9baf67f)
334 lines
15 KiB
JSON
334 lines
15 KiB
JSON
{
|
||
"common": {
|
||
"back": "Назад",
|
||
"title": "Войти с Zitadel"
|
||
},
|
||
"accounts": {
|
||
"title": "Аккаунты",
|
||
"description": "Выберите аккаунт, который хотите использовать.",
|
||
"addAnother": "Добавить другой аккаунт",
|
||
"noResults": "Аккаунты не найдены",
|
||
"verified": "проверенный",
|
||
"expired": "истёк"
|
||
},
|
||
"logout": {
|
||
"title": "Выход",
|
||
"description": "Выберите аккаунт, который хотите удалить",
|
||
"noResults": "Аккаунты не найдены",
|
||
"clear": "Удалить сессию",
|
||
"verifiedAt": "Последняя активность: {time}",
|
||
"success": {
|
||
"title": "Выход выполнен успешно",
|
||
"description": "Вы успешно вышли из системы."
|
||
}
|
||
},
|
||
"loginname": {
|
||
"title": "С возвращением!",
|
||
"description": "Введите свои данные для входа.",
|
||
"register": "Зарегистрировать нового пользователя",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"loginname": "Логин",
|
||
"username": "Имя пользователя",
|
||
"usernameOrPhoneNumber": "Имя пользователя или номер телефона",
|
||
"usernameOrEmail": "Имя пользователя или электронная почта"
|
||
},
|
||
"required": {
|
||
"loginName": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"password": {
|
||
"verify": {
|
||
"title": "Пароль",
|
||
"description": "Введите ваш пароль.",
|
||
"resetPassword": "Сбросить пароль",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"password": "Пароль"
|
||
},
|
||
"required": {
|
||
"password": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"set": {
|
||
"title": "Установить пароль",
|
||
"description": "Установите пароль для вашего аккаунта",
|
||
"codeSent": "Код отправлен на ваш адрес электронной почты.",
|
||
"noCodeReceived": "Не получили код?",
|
||
"resend": "Отправить код повторно",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"code": "Код",
|
||
"newPassword": "Новый пароль",
|
||
"confirmPassword": "Подтвердите пароль"
|
||
},
|
||
"required": {
|
||
"code": "Это поле обязательно для заполнения",
|
||
"newPassword": "Вы должны указать пароль!",
|
||
"confirmPassword": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"change": {
|
||
"title": "Изменить пароль",
|
||
"description": "Установите пароль для вашего аккаунта",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"newPassword": "Новый пароль",
|
||
"confirmPassword": "Подтвердите пароль"
|
||
},
|
||
"required": {
|
||
"newPassword": "Вы должны указать новый пароль!",
|
||
"confirmPassword": "Это поле обязательно для заполнения"
|
||
}
|
||
}
|
||
},
|
||
"idp": {
|
||
"title": "Войти через SSO",
|
||
"description": "Выберите одного из провайдеров для входа",
|
||
"orSignInWith": "или войти через",
|
||
"signInWithApple": "Войти через Apple",
|
||
"signInWithGoogle": "Войти через Google",
|
||
"signInWithAzureAD": "Войти через AzureAD",
|
||
"signInWithGithub": "Войти через GitHub",
|
||
"signInWithGitlab": "Войти через GitLab",
|
||
"loginSuccess": {
|
||
"title": "Вход выполнен успешно",
|
||
"description": "Вы успешно вошли в систему!"
|
||
},
|
||
"linkingSuccess": {
|
||
"title": "Аккаунт привязан",
|
||
"description": "Аккаунт успешно привязан!"
|
||
},
|
||
"registerSuccess": {
|
||
"title": "Регистрация завершена",
|
||
"description": "Вы успешно зарегистрировались!"
|
||
},
|
||
"loginError": {
|
||
"title": "Ошибка входа",
|
||
"description": "Произошла ошибка при попытке входа."
|
||
},
|
||
"linkingError": {
|
||
"title": "Ошибка привязки аккаунта",
|
||
"description": "Произошла ошибка при попытке привязать аккаунт."
|
||
},
|
||
"completeRegister": {
|
||
"title": "Завершите регистрацию",
|
||
"description": "Завершите регистрацию вашего аккаунта."
|
||
}
|
||
},
|
||
"ldap": {
|
||
"title": "Войти через LDAP",
|
||
"description": "Введите ваши учетные данные LDAP.",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"username": "Имя пользователя",
|
||
"password": "Пароль"
|
||
},
|
||
"required": {
|
||
"username": "Это поле обязательно для заполнения",
|
||
"password": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"mfa": {
|
||
"verify": {
|
||
"title": "Подтвердите вашу личность",
|
||
"description": "Выберите один из следующих факторов.",
|
||
"noResults": "Нет доступных методов двухфакторной аутентификации"
|
||
},
|
||
"set": {
|
||
"title": "Настройка двухфакторной аутентификации",
|
||
"description": "Выберите один из следующих методов.",
|
||
"skip": "Пропустить"
|
||
}
|
||
},
|
||
"otp": {
|
||
"verify": {
|
||
"title": "Подтверждение 2FA",
|
||
"totpDescription": "Введите код из приложения-аутентификатора.",
|
||
"smsDescription": "Введите код, полученный по SMS.",
|
||
"emailDescription": "Введите код, полученный по email.",
|
||
"noCodeReceived": "Не получили код?",
|
||
"resendCode": "Отправить код повторно",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"code": "Код"
|
||
},
|
||
"required": {
|
||
"code": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"set": {
|
||
"title": "Настройка двухфакторной аутентификации",
|
||
"totpDescription": "Отсканируйте QR-код в приложении-аутентификаторе.",
|
||
"smsDescription": "Введите номер телефона для получения кода по SMS.",
|
||
"emailDescription": "Введите email для получения кода.",
|
||
"totpRegisterDescription": "Отсканируйте QR-код или перейдите по ссылке вручную.",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"code": "Код"
|
||
},
|
||
"required": {
|
||
"code": "Это поле обязательно для заполнения"
|
||
}
|
||
}
|
||
},
|
||
"passkey": {
|
||
"verify": {
|
||
"title": "Аутентификация с помощью пасскей",
|
||
"description": "Устройство запросит отпечаток пальца, лицо или экранный замок",
|
||
"usePassword": "Использовать пароль",
|
||
"submit": "Продолжить"
|
||
},
|
||
"set": {
|
||
"title": "Настройка пасскей",
|
||
"description": "Устройство запросит отпечаток пальца, лицо или экранный замок",
|
||
"info": {
|
||
"description": "Пасскей — метод аутентификации через устройство (отпечаток пальца, Apple FaceID и аналоги).",
|
||
"link": "Аутентификация без пароля"
|
||
},
|
||
"skip": "Пропустить",
|
||
"submit": "Продолжить"
|
||
}
|
||
},
|
||
"u2f": {
|
||
"verify": {
|
||
"title": "Подтверждение 2FA",
|
||
"description": "Подтвердите аккаунт с помощью устройства."
|
||
},
|
||
"set": {
|
||
"title": "Настройка двухфакторной аутентификации",
|
||
"description": "Настройте устройство как второй фактор.",
|
||
"submit": "Продолжить"
|
||
}
|
||
},
|
||
"register": {
|
||
"methods": {
|
||
"passkey": "Пасскей",
|
||
"password": "Пароль"
|
||
},
|
||
"disabled": {
|
||
"title": "Регистрация отключена",
|
||
"description": "Регистрация недоступна. Обратитесь к администратору."
|
||
},
|
||
"missingdata": {
|
||
"title": "Недостаточно данных",
|
||
"description": "Укажите email, имя и фамилию для регистрации."
|
||
},
|
||
"title": "Регистрация",
|
||
"description": "Создайте свой аккаунт ZITADEL.",
|
||
"noMethodAvailableWarning": "Нет доступных методов аутентификации. Обратитесь к администратору.",
|
||
"selectMethod": "Выберите метод аутентификации",
|
||
"agreeTo": "Для регистрации необходимо принять условия:",
|
||
"termsOfService": "Условия использования",
|
||
"privacyPolicy": "Политика конфиденциальности",
|
||
"submit": "Продолжить",
|
||
"password": {
|
||
"title": "Установить пароль",
|
||
"description": "Установите пароль для вашего аккаунта",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"password": "Пароль",
|
||
"confirmPassword": "Подтвердите пароль"
|
||
},
|
||
"required": {
|
||
"password": "Вы должны указать пароль!",
|
||
"confirmPassword": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"labels": {
|
||
"firstname": "Имя",
|
||
"lastname": "Фамилия",
|
||
"email": "Электронная почта"
|
||
},
|
||
"required": {
|
||
"firstname": "Это поле обязательно для заполнения",
|
||
"lastname": "Это поле обязательно для заполнения",
|
||
"email": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"invite": {
|
||
"title": "Пригласить пользователя",
|
||
"description": "Укажите email и имя пользователя для приглашения.",
|
||
"info": "Пользователь получит email с инструкциями.",
|
||
"notAllowed": "Ваши настройки не позволяют приглашать пользователей.",
|
||
"submit": "Продолжить",
|
||
"success": {
|
||
"title": "Пользователь приглашён",
|
||
"description": "Письмо успешно отправлено.",
|
||
"verified": "Пользователь приглашён и уже подтвердил email.",
|
||
"notVerifiedYet": "Пользователь приглашён. Он получит email с инструкциями.",
|
||
"submit": "Пригласить другого пользователя"
|
||
}
|
||
},
|
||
"signedin": {
|
||
"title": "Добро пожаловать, {user}!",
|
||
"description": "Вы вошли в систему.",
|
||
"continue": "Продолжить",
|
||
"error": {
|
||
"title": "Ошибка",
|
||
"description": "Не удалось войти в систему. Проверьте свои данные и попробуйте снова."
|
||
}
|
||
},
|
||
"verify": {
|
||
"userIdMissing": "Не указан userId!",
|
||
"successTitle": "Пользователь подтверждён",
|
||
"successDescription": "Пользователь успешно подтверждён.",
|
||
"setupAuthenticator": "Настроить аутентификатор",
|
||
"verify": {
|
||
"title": "Подтверждение пользователя",
|
||
"description": "Введите код из письма подтверждения.",
|
||
"noCodeReceived": "Не получили код?",
|
||
"resendCode": "Отправить код повторно",
|
||
"codeSent": "Код отправлен на ваш email.",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"code": "Код"
|
||
},
|
||
"required": {
|
||
"code": "Это поле обязательно для заполнения"
|
||
}
|
||
}
|
||
},
|
||
"authenticator": {
|
||
"title": "Выбор метода аутентификации",
|
||
"description": "Выберите предпочитаемый метод аутентификации",
|
||
"noMethodsAvailable": "Нет доступных методов аутентификации",
|
||
"allSetup": "Аутентификатор уже настроен!",
|
||
"linkWithIDP": "или привязать через Identity Provider"
|
||
},
|
||
"device": {
|
||
"usercode": {
|
||
"title": "Код устройства",
|
||
"description": "Введите код.",
|
||
"submit": "Продолжить",
|
||
"labels": {
|
||
"code": "Код"
|
||
},
|
||
"required": {
|
||
"code": "Это поле обязательно для заполнения"
|
||
}
|
||
},
|
||
"request": {
|
||
"title": "{appName} хочет подключиться:",
|
||
"description": "{appName} получит доступ к:",
|
||
"disclaimer": "Нажимая «Разрешить», вы разрешаете этому приложению и Zitadel использовать вашу информацию в соответствии с их условиями использования и политиками конфиденциальности. Вы можете отозвать этот доступ в любое время.",
|
||
"submit": "Разрешить",
|
||
"deny": "Запретить"
|
||
},
|
||
"scope": {
|
||
"openid": "Проверка вашей личности.",
|
||
"email": "Доступ к вашему адресу электронной почты.",
|
||
"profile": "Доступ к полной информации вашего профиля.",
|
||
"offline_access": "Разрешить офлайн-доступ к вашему аккаунту."
|
||
}
|
||
},
|
||
"error": {
|
||
"noUserCode": "Не указан код пользователя!",
|
||
"noDeviceRequest": "Не найдена ни одна заявка на устройство.",
|
||
"unknownContext": "Не удалось получить контекст пользователя. Укажите имя пользователя или loginName в параметрах поиска.",
|
||
"sessionExpired": "Ваша сессия истекла. Войдите снова.",
|
||
"failedLoading": "Ошибка загрузки данных. Попробуйте ещё раз.",
|
||
"tryagain": "Попробовать снова"
|
||
}
|
||
}
|