From a0467fad3876bc962e93bc0c8f66f9aee16b90c7 Mon Sep 17 00:00:00 2001 From: ilnaz <237x237@gmail.com> Date: Sat, 9 Nov 2024 18:52:38 +0300 Subject: [PATCH] feat: add i18next for arm (#17) --- locales/ru.json | 34 +++++++++++++++++-- .../MasterActionsMenu/MasterActionsMenu.tsx | 7 ++-- .../MasterDrawer.tsx | 26 ++++++++++---- .../{MasterModal => MasterDrawer}/index.ts | 0 src/components/Masters/Masters.tsx | 12 ++++--- src/components/OrderItem/OrderItem.tsx | 4 +-- src/components/Orders/Orders.tsx | 20 ++++++----- src/components/Sidebar/Sidebar.tsx | 8 ++--- 8 files changed, 78 insertions(+), 33 deletions(-) rename src/components/{MasterModal => MasterDrawer}/MasterDrawer.tsx (64%) rename src/components/{MasterModal => MasterDrawer}/index.ts (100%) diff --git a/locales/ru.json b/locales/ru.json index 43163f8..6f5e671 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1,5 +1,33 @@ { - "dry-wash.arm.masters.add": "Добавить", - "dry-wash.order.status.progress": "Выполняется", - "dry-wash.order.status.complete": "Завершено" + "dry-wash.arm.master.add": "Добавить", + "dry-wash.arm.order.title": "Заказы", + "dry-wash.arm.order.status.progress": "Выполняется", + "dry-wash.arm.order.status.complete": "Завершено", + "dry-wash.arm.order.status.pending": "в ожидании", + "dry-wash.arm.order.status.working": "В работе", + "dry-wash.arm.order.status.canceled": "Отменено", + "dry-wash.arm.order.status.placeholder": "Выберите статус", + "dry-wash.arm.order.table.header.carNumber": "Номер машины", + "dry-wash.arm.order.table.header.washingTime": "Время мойки", + "dry-wash.arm.order.table.header.orderDate": "Дата заказа", + "dry-wash.arm.order.table.header.status": "Статус", + "dry-wash.arm.order.table.header.telephone": "Телефон", + "dry-wash.arm.order.table.header.location": "Расположение", + "dry-wash.arm.master.title": "Мастера", + "dry-wash.arm.master.table.header.name": "Имя", + "dry-wash.arm.master.table.header.currentJob": "Актуальная занятость", + "dry-wash.arm.master.table.header.phone": "Телефон", + "dry-wash.arm.master.table.header.actions": "Действия", + "dry-wash.arm.master.table.actionsMenu.delete": "Удалить мастера", + "dry-wash.arm.master.drawer.title": "Добавить нового мастера", + "dry-wash.arm.master.drawer.inputName.label": "ФИО", + "dry-wash.arm.master.drawer.inputName.placeholder": "Введите ФИО", + "dry-wash.arm.master.drawer.inputPhone.label": "Номер телефона", + "dry-wash.arm.master.drawer.inputPhone.placeholder": "Введите номер телефона", + "dry-wash.arm.master.drawer.button.save": "Сохранить", + "dry-wash.arm.master.drawer.button.cancel": "Отменить", + "dry-wash.arm.master.sideBar.title": " Сухой мастер", + "dry-wash.arm.master.sideBar.title.master": "Мастера", + "dry-wash.arm.master.sideBar.title.orders": "Заказы" + } diff --git a/src/components/MasterActionsMenu/MasterActionsMenu.tsx b/src/components/MasterActionsMenu/MasterActionsMenu.tsx index d8097d0..6f5bd9a 100644 --- a/src/components/MasterActionsMenu/MasterActionsMenu.tsx +++ b/src/components/MasterActionsMenu/MasterActionsMenu.tsx @@ -7,15 +7,16 @@ import { IconButton, } from '@chakra-ui/react'; import { EditIcon } from '@chakra-ui/icons'; +import i18next from 'i18next'; const MasterActionsMenu = () => { return ( } as={IconButton} variant='outline' /> - Посмотреть профиль - Изменить расписание - Удалить мастера + + {i18next.t('dry-wash.arm.master.table.actionsMenu.delete')} + ); diff --git a/src/components/MasterModal/MasterDrawer.tsx b/src/components/MasterDrawer/MasterDrawer.tsx similarity index 64% rename from src/components/MasterModal/MasterDrawer.tsx rename to src/components/MasterDrawer/MasterDrawer.tsx index a0644ed..03ed489 100644 --- a/src/components/MasterModal/MasterDrawer.tsx +++ b/src/components/MasterDrawer/MasterDrawer.tsx @@ -12,6 +12,7 @@ import { DrawerHeader, DrawerOverlay, } from '@chakra-ui/react'; +import i18next from 'i18next'; const MasterDrawer = ({ isOpen, onClose }) => { const [newMaster, setNewMaster] = useState({ name: '', phone: '' }); @@ -26,35 +27,46 @@ const MasterDrawer = ({ isOpen, onClose }) => { - Добавить нового мастера + + {i18next.t('dry-wash.arm.master.drawer.title')} + - ФИО + + {i18next.t('dry-wash.arm.master.drawer.inputName.label')} + setNewMaster({ ...newMaster, name: e.target.value }) } - placeholder='Введите ФИО' + placeholder={i18next.t( + 'dry-wash.arm.master.drawer.inputName.placeholder', + )} /> - Номер телефона + + {' '} + {i18next.t('dry-wash.arm.master.drawer.inputPhone.label')} + setNewMaster({ ...newMaster, phone: e.target.value }) } - placeholder='Введите номер телефона' + placeholder={i18next.t( + 'dry-wash.arm.master.drawer.inputPhone.placeholder', + )} /> diff --git a/src/components/MasterModal/index.ts b/src/components/MasterDrawer/index.ts similarity index 100% rename from src/components/MasterModal/index.ts rename to src/components/MasterDrawer/index.ts diff --git a/src/components/Masters/Masters.tsx b/src/components/Masters/Masters.tsx index 6d0028d..581d6b5 100644 --- a/src/components/Masters/Masters.tsx +++ b/src/components/Masters/Masters.tsx @@ -13,10 +13,10 @@ import { } from '@chakra-ui/react'; import { mastersData } from '../../mocks'; import MasterItem from '../MasterItem'; -import MasterDrawer from '../MasterModal'; +import MasterDrawer from '../MasterDrawer'; import i18next from 'i18next'; -const TABLE_HEADERS = ['Имя', 'Актуальная занятость', 'Телефон', 'Действия']; +const TABLE_HEADERS = ['name', 'currentJob', 'phone', 'actions']; const Masters = () => { const { isOpen, onOpen, onClose } = useDisclosure(); @@ -24,16 +24,18 @@ const Masters = () => { return ( - Мастера + {i18next.t('dry-wash.arm.master.title')} {TABLE_HEADERS.map((name) => ( - + ))} diff --git a/src/components/OrderItem/OrderItem.tsx b/src/components/OrderItem/OrderItem.tsx index bd6e826..64c5444 100644 --- a/src/components/OrderItem/OrderItem.tsx +++ b/src/components/OrderItem/OrderItem.tsx @@ -23,11 +23,11 @@ const OrderItem = ({ diff --git a/src/components/Orders/Orders.tsx b/src/components/Orders/Orders.tsx index 9401731..1e9f258 100644 --- a/src/components/Orders/Orders.tsx +++ b/src/components/Orders/Orders.tsx @@ -2,26 +2,28 @@ import { Box, Heading, Table, Thead, Tbody, Tr, Th } from '@chakra-ui/react'; import React from 'react'; import { ordersData } from '../../mocks'; import OrderItem from '../OrderItem'; - +import i18next from 'i18next'; const Orders = () => { const TABLE_HEADERS = [ - 'Номер машины', - 'Время мойки', - 'Дата заказа', - 'Статус', - 'Телефон', - 'Расположение', + 'carNumber', + 'washingTime', + 'orderDate', + 'status', + 'telephone', + 'location', ]; return ( - Заказы + {i18next.t('dry-wash.arm.order.title')}
{name} + {i18next.t(`dry-wash.arm.master.table.header.${name}`)} +
{TABLE_HEADERS.map((name, key) => ( - + ))} diff --git a/src/components/Sidebar/Sidebar.tsx b/src/components/Sidebar/Sidebar.tsx index a88e350..86f64f5 100644 --- a/src/components/Sidebar/Sidebar.tsx +++ b/src/components/Sidebar/Sidebar.tsx @@ -1,7 +1,7 @@ import { Box, Button, Heading, VStack } from '@chakra-ui/react'; import React from 'react'; import { Divider } from '@chakra-ui/react'; - +import i18next from 'i18next'; const Sidebar = ({ onSelectPage }) => ( ( pt='8' > - Сухой мастер + {i18next.t(`dry-wash.arm.master.sideBar.title`)} @@ -23,7 +23,7 @@ const Sidebar = ({ onSelectPage }) => ( colorScheme='green' variant='ghost' > - Заказы + {i18next.t(`dry-wash.arm.master.sideBar.title.orders`)}
{name} + {i18next.t(`dry-wash.arm.order.table.header.${name}`)} +