diff --git a/client/src/i18n.ts b/client/src/i18n.ts index b2cc4316..99ca100c 100644 --- a/client/src/i18n.ts +++ b/client/src/i18n.ts @@ -28,6 +28,17 @@ export const I18N_INSTRUMENT_BASIC_MATERIALS = "instrument.basic.materials"; export const I18N_INSTRUMENT_DATE_FROM = "instrument.date.from"; export const I18N_INSTRUMENT_DATE_TO = "instrument.date.to"; +export const I18N_LOGIN_INPUT = "login.login.input"; +export const I18N_LOGIN_PASSWORD_INPUT = "login.login.password"; +export const I18N_LOGIN_BUTTON = "login.login.button"; +export const I18N_REGISTRATION_BUTTON = "login.registration.button"; + +export const I18N_PROFILE_NAME_SPAN = "profile.name.span"; +export const I18N_PROFILE_ROLE_SPAN = "profile.role.span"; + +export const I18N_DARK_MODE_BUTTON = "dark-mode.button"; +export const I18N_LOGOUT_BUTTON = "logout.button"; + export const I18N_FOOTER = "footer"; const resources = { @@ -55,6 +66,17 @@ const resources = { [I18N_INSTRUMENT_DATE_FROM]: "From", [I18N_INSTRUMENT_DATE_TO]: "To", + [I18N_LOGIN_INPUT]: "Login", + [I18N_LOGIN_PASSWORD_INPUT]: "Password", + [I18N_LOGIN_BUTTON]: "Login", + [I18N_REGISTRATION_BUTTON]: "Registration", + + [I18N_DARK_MODE_BUTTON]: "Dark Mode", + [I18N_LOGOUT_BUTTON]: "Logout", + + [I18N_PROFILE_NAME_SPAN]: "Name", + [I18N_PROFILE_ROLE_SPAN]: "Role", + [I18N_FOOTER]: "Muse Group Frontend Academy", } }, @@ -81,6 +103,17 @@ const resources = { [I18N_INSTRUMENT_BASIC_MATERIALS]: "Основные материалы", [I18N_INSTRUMENT_DATE_FROM]: "С", [I18N_INSTRUMENT_DATE_TO]: "По", + + [I18N_LOGIN_INPUT]: "Логин", + [I18N_LOGIN_PASSWORD_INPUT]: "Пароль", + [I18N_LOGIN_BUTTON]: "Войти", + [I18N_REGISTRATION_BUTTON]: "Регистрация", + + [I18N_PROFILE_NAME_SPAN]: "Имя", + [I18N_PROFILE_ROLE_SPAN]: "Роль", + + [I18N_DARK_MODE_BUTTON]: "Темная тема", + [I18N_LOGOUT_BUTTON]: "Выйти", } } }; diff --git a/client/src/pages/login/ui/Login.page.tsx b/client/src/pages/login/ui/Login.page.tsx index d2234c64..76dd13a6 100644 --- a/client/src/pages/login/ui/Login.page.tsx +++ b/client/src/pages/login/ui/Login.page.tsx @@ -6,8 +6,16 @@ import { Form, useActionData, useNavigate } from "react-router-dom"; import { LoginAction } from "../api/action"; import { REGISTRATION_URL } from "shared/config/paths"; import { useDarkMode } from "shared/dark-mode/use-dark-mode"; +import { useTranslation } from "react-i18next"; +import { + I18N_LOGIN_BUTTON, + I18N_LOGIN_INPUT, + I18N_LOGIN_PASSWORD_INPUT, + I18N_REGISTRATION_BUTTON +} from "../../../i18n"; export function LoginPage() { + const { t } = useTranslation(); const { darkMode } = useDarkMode(); const actionData = useActionData() as LoginAction; const navigate = useNavigate(); @@ -30,23 +38,23 @@ export function LoginPage() { diff --git a/client/src/pages/profile/ui/Profile.page.tsx b/client/src/pages/profile/ui/Profile.page.tsx index 06effa70..1a81399f 100644 --- a/client/src/pages/profile/ui/Profile.page.tsx +++ b/client/src/pages/profile/ui/Profile.page.tsx @@ -12,11 +12,19 @@ import { deleteCookie } from "shared/cookie/cookie"; import { COOKIE_JWT_KEY, COOKIE_SESSIONID } from "shared/config/frontend"; import { useDarkMode } from "shared/dark-mode/use-dark-mode"; import { apiConfig } from "shared/config/api"; +import { + I18N_DARK_MODE_BUTTON, + I18N_LOGOUT_BUTTON, + I18N_PROFILE_NAME_SPAN, + I18N_PROFILE_ROLE_SPAN +} from "../../../i18n"; +import { useTranslation } from "react-i18next"; const logout = new LogoutApi(apiConfig); export function ProfilePage() { useJwt(); + const { t } = useTranslation(); const { darkMode, toggleTheme } = useDarkMode(); const navigate = useNavigate(); const profile = useLoaderData() as ProfileDetails; @@ -55,22 +63,22 @@ export function ProfilePage() { >

{profile.full_name}

- Name: {profile.full_name} + {t(I18N_PROFILE_NAME_SPAN)}: {profile.full_name}
- Role: {profile.role} + {t(I18N_PROFILE_ROLE_SPAN)}: {profile.role}