diff --git a/public/locales/de.json b/public/locales/de.json index 1bf43f7d..c7167438 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -43,6 +43,24 @@ "register_rate_limited": "Zu viele Versuche. Bitte versuchen Sie es später erneut.", "register_invalid_request": "Ungültige Anfrage. Registrierungsparameter konnten nicht abgerufen werden.", "register_unsupported": "Diese Anwendung unterstützt keine Registrierung auf diesem Server.", + "register_username_label": "Benutzername", + "register_password_label": "Passwort", + "register_confirm_password_label": "Passwort bestätigen", + "register_button": "Registrieren", + "register_token_label": "Registrierungstoken", + "register_token_optional_label": "Registrierungstoken (optional)", + "register_email_label": "E-Mail", + "register_email_optional_label": "E-Mail (optional)", + "register_terms": "Ich akzeptiere die Nutzungsbedingungen des Servers.", + "register_error_user_taken": "Dieser Benutzername ist bereits vergeben.", + "register_error_user_invalid": "Dieser Benutzername enthält ungültige Zeichen.", + "register_error_user_exclusive": "Dieser Benutzername ist reserviert.", + "register_error_password_weak": "Schwaches Passwort. Vom Server abgelehnt, bitte wählen Sie ein stärkeres.", + "register_error_password_short": "Kurzes Passwort. Vom Server abgelehnt, bitte wählen Sie ein längeres.", + "register_error_rate_limited": "Registrierung fehlgeschlagen. Zu viele Anfragen, bitte versuchen Sie es später erneut.", + "register_error_forbidden": "Registrierung fehlgeschlagen. Der Server erlaubt keine Registrierung.", + "register_error_invalid_request": "Registrierung fehlgeschlagen. Ungültige Anfrage.", + "register_error_unknown": "Registrierung fehlgeschlagen. Unbekannter Fehler.", "reset_description": "Der Homeserver {{server}} sendet Ihnen eine E-Mail, um Ihr Passwort zurückzusetzen.", "reset_email_label": "E-Mail", "reset_new_password": "Neues Passwort", diff --git a/public/locales/en.json b/public/locales/en.json index 771ecc9b..d7e0c1df 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -43,6 +43,24 @@ "register_rate_limited": "Too many attempts. Please try again later.", "register_invalid_request": "Invalid request. Failed to get registration parameters.", "register_unsupported": "This application does not support registration on this server.", + "register_username_label": "Username", + "register_password_label": "Password", + "register_confirm_password_label": "Confirm Password", + "register_button": "Register", + "register_token_label": "Registration Token", + "register_token_optional_label": "Registration Token (Optional)", + "register_email_label": "Email", + "register_email_optional_label": "Email (Optional)", + "register_terms": "I accept the server Terms and Conditions.", + "register_error_user_taken": "This username is already taken.", + "register_error_user_invalid": "This username contains invalid characters.", + "register_error_user_exclusive": "This username is reserved.", + "register_error_password_weak": "Weak password. Password rejected by server, please choose a stronger one.", + "register_error_password_short": "Short password. Password rejected by server, please choose a longer one.", + "register_error_rate_limited": "Failed to register. Your request has been rate-limited, please try again later.", + "register_error_forbidden": "Failed to register. The homeserver does not permit registration.", + "register_error_invalid_request": "Failed to register. Invalid request.", + "register_error_unknown": "Failed to register. Unknown reason.", "reset_description": "Homeserver {{server}} will send you an email to let you reset your password.", "reset_email_label": "Email", "reset_new_password": "New Password", diff --git a/public/locales/ru.json b/public/locales/ru.json index d1abb4ff..043d2a3d 100644 --- a/public/locales/ru.json +++ b/public/locales/ru.json @@ -43,6 +43,24 @@ "register_rate_limited": "Слишком много попыток. Попробуйте позже.", "register_invalid_request": "Неверный запрос. Не удалось получить параметры регистрации.", "register_unsupported": "Это приложение не поддерживает регистрацию на данном сервере.", + "register_username_label": "Имя пользователя", + "register_password_label": "Пароль", + "register_confirm_password_label": "Подтвердите пароль", + "register_button": "Зарегистрироваться", + "register_token_label": "Токен регистрации", + "register_token_optional_label": "Токен регистрации (необязательно)", + "register_email_label": "Email", + "register_email_optional_label": "Email (необязательно)", + "register_terms": "Я принимаю Условия использования сервера.", + "register_error_user_taken": "Это имя пользователя уже занято.", + "register_error_user_invalid": "Имя пользователя содержит недопустимые символы.", + "register_error_user_exclusive": "Это имя пользователя зарезервировано.", + "register_error_password_weak": "Слабый пароль. Сервер отклонил пароль, выберите более надёжный.", + "register_error_password_short": "Короткий пароль. Сервер отклонил пароль, выберите более длинный.", + "register_error_rate_limited": "Не удалось зарегистрироваться. Слишком много попыток, попробуйте позже.", + "register_error_forbidden": "Не удалось зарегистрироваться. Сервер не разрешает регистрацию.", + "register_error_invalid_request": "Не удалось зарегистрироваться. Неверный запрос.", + "register_error_unknown": "Не удалось зарегистрироваться. Неизвестная ошибка.", "reset_description": "Сервер {{server}} отправит вам письмо для сброса пароля.", "reset_email_label": "Email", "reset_new_password": "Новый пароль", diff --git a/src/app/pages/auth/SSOLogin.tsx b/src/app/pages/auth/SSOLogin.tsx deleted file mode 100644 index 3ff1a229..00000000 --- a/src/app/pages/auth/SSOLogin.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import { Avatar, AvatarImage, Box, Button, Text } from 'folds'; -import { IIdentityProvider, SSOAction, createClient } from 'matrix-js-sdk'; -import React, { useMemo } from 'react'; -import { useAutoDiscoveryInfo } from '../../hooks/useAutoDiscoveryInfo'; - -type SSOLoginProps = { - providers?: IIdentityProvider[]; - redirectUrl: string; - action?: SSOAction; - saveScreenSpace?: boolean; -}; -export function SSOLogin({ providers, redirectUrl, action, saveScreenSpace }: SSOLoginProps) { - const discovery = useAutoDiscoveryInfo(); - const baseUrl = discovery['m.homeserver'].base_url; - const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); - - const getSSOIdUrl = (ssoId?: string): string => - mx.getSsoLoginUrl(redirectUrl, 'sso', ssoId, action); - - const withoutIcon = providers - ? providers.find( - (provider) => !provider.icon || !mx.mxcUrlToHttp(provider.icon, 96, 96, 'crop', false) - ) - : true; - - const renderAsIcons = withoutIcon ? false : saveScreenSpace && providers && providers.length > 2; - - return ( - - {providers ? ( - providers.map((provider) => { - const { id, name, icon } = provider; - const iconUrl = icon && mx.mxcUrlToHttp(icon, 96, 96, 'crop', false); - - const buttonTitle = `Continue with ${name}`; - - if (renderAsIcons) { - return ( - - - - ); - } - - return ( - - ); - }) - ) : ( - - )} - - ); -} diff --git a/src/app/pages/auth/register/PasswordRegisterForm.tsx b/src/app/pages/auth/register/PasswordRegisterForm.tsx index 0e182181..6c7eeaba 100644 --- a/src/app/pages/auth/register/PasswordRegisterForm.tsx +++ b/src/app/pages/auth/register/PasswordRegisterForm.tsx @@ -11,6 +11,7 @@ import { color, } from 'folds'; import React, { ChangeEventHandler, useCallback, useMemo, useState } from 'react'; +import { Trans, useTranslation } from 'react-i18next'; import { AuthDict, AuthType, @@ -184,6 +185,7 @@ export function PasswordRegisterForm({ defaultEmail, defaultRegisterToken, }: PasswordRegisterFormProps) { + const { t } = useTranslation(); const serverDiscovery = useAutoDiscoveryInfo(); const baseUrl = serverDiscovery['m.homeserver'].base_url; const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); @@ -259,7 +261,7 @@ export function PasswordRegisterForm({ - Username + {t('Auth.register_username_label')} {registerError?.errcode === RegisterError.UserTaken && ( - + )} {registerError?.errcode === RegisterError.UserInvalid && ( - + )} {registerError?.errcode === RegisterError.UserExclusive && ( - + )} @@ -284,7 +286,7 @@ export function PasswordRegisterForm({ <> - Password + {t('Auth.register_password_label')} )} @@ -307,14 +309,14 @@ export function PasswordRegisterForm({ )} - Confirm Password + {t('Auth.register_confirm_password_label')} {requiredStageInFlows(uiaFlows, AuthType.RegistrationToken) - ? 'Registration Token' - : 'Registration Token (Optional)'} + ? t('Auth.register_token_label') + : t('Auth.register_token_optional_label')} - {requiredStageInFlows(uiaFlows, AuthType.Email) ? 'Email' : 'Email (Optional)'} + {requiredStageInFlows(uiaFlows, AuthType.Email) + ? t('Auth.register_email_label') + : t('Auth.register_email_optional_label')} - I accept server{' '} - - Terms and Conditions - - . + }} + /> )} {registerError?.errcode === RegisterError.RateLimited && ( - + )} {registerError?.errcode === RegisterError.Forbidden && ( - + )} {registerError?.errcode === RegisterError.InvalidRequest && ( - + )} {registerError?.errcode === RegisterError.Unknown && ( - + )}