Добавлены новые зависимости: "react-select" и "@floating-ui/core". Реализована локализация с использованием i18next, добавлены переводы для английского и русского языков. Обновлены компоненты для поддержки локализации, включая AppHeader, Attendance, Dashboard и другие. Улучшена логика отображения данных и взаимодействия с пользователем.

This commit is contained in:
2025-03-23 11:41:29 +03:00
parent d5b5838e51
commit d3a7f70d12
27 changed files with 995 additions and 191 deletions

131
locales/en.json Normal file
View File

@@ -0,0 +1,131 @@
{
"journal.pl.add": "Add",
"journal.pl.edit": "Edit",
"journal.pl.delete": "Delete",
"journal.pl.save": "Save",
"journal.pl.cancel": "Cancel",
"journal.pl.close": "Close",
"journal.pl.title": "Attendance Journal",
"journal.pl.common.add": "Add",
"journal.pl.common.edit": "Edit",
"journal.pl.common.delete": "Delete",
"journal.pl.common.save": "Save",
"journal.pl.common.cancel": "Cancel",
"journal.pl.common.students": "students",
"journal.pl.common.teachers": "teachers",
"journal.pl.common.date": "Date",
"journal.pl.common.lessonName": "Lesson Name",
"journal.pl.common.name": "Name",
"journal.pl.common.noData": "No data",
"journal.pl.common.of": "of",
"journal.pl.common.required": "This field is required",
"journal.pl.common.error": "Error",
"journal.pl.common.error.something": "Something went wrong",
"journal.pl.common.create": "Create",
"journal.pl.common.requiredField": "This field is required",
"journal.pl.common.startDate": "Start Date",
"journal.pl.common.selectDateTime": "Select Date and Time",
"journal.pl.common.sending": "Sending",
"journal.pl.common.restored": "Restore",
"journal.pl.common.cancel": "Cancel",
"journal.pl.common.journal": "Journal",
"journal.pl.common.course": "Course",
"journal.pl.common.lesson": "Lesson",
"journal.pl.common.marked": "Marked",
"journal.pl.common.people": "people",
"journal.pl.common.success": "Success",
"journal.pl.common.open": "Open",
"journal.pl.common.loading": "Loading",
"journal.pl.course.defaultName": "Title",
"journal.pl.course.sending": "Sending",
"journal.pl.course.created": "Course created",
"journal.pl.course.successMessage": "Course {{name}} successfully created",
"journal.pl.course.createTitle": "Create Course",
"journal.pl.course.specifyStartDate": "Specify the course start date",
"journal.pl.course.newLectureName": "New lecture name",
"journal.pl.course.namePlaceholder": "KFU-24-2",
"journal.pl.course.startDate": "Course start date",
"journal.pl.course.lessonCount": "Number of lessons",
"journal.pl.course.attendancePage": "Go to lessons page",
"journal.pl.course.attendance": "Attendance",
"journal.pl.course.details": "Details",
"journal.pl.course.viewDetails": "View details",
"journal.pl.lesson.created": "Lesson created",
"journal.pl.lesson.successMessage": "Lesson {{name}} successfully created",
"journal.pl.lesson.updated": "Lesson updated",
"journal.pl.lesson.updateMessage": "Lesson {{name}} successfully updated",
"journal.pl.lesson.createTitle": "Create Lesson",
"journal.pl.lesson.editTitle": "Edit Lesson",
"journal.pl.lesson.deleteConfirm": "Delete lesson from {{date}}?",
"journal.pl.lesson.deleteWarning": "All attendance data for this lesson will be deleted",
"journal.pl.lesson.deletedMessage": "Deleted lesson {{name}}",
"journal.pl.lesson.noInternet": "No internet connection",
"journal.pl.lesson.topicTitle": "Lesson Topic:",
"journal.pl.lesson.dateFormat": "MMMM DD, YYYY",
"journal.pl.lesson.attendanceChart": "Lecture attendance chart",
"journal.pl.lesson.list": "Lesson List",
"journal.pl.lesson.link": "Link",
"journal.pl.lesson.time": "Time",
"journal.pl.lesson.action": "Actions",
"journal.pl.exam.title": "Exam",
"journal.pl.exam.startExam": "Start exam",
"journal.pl.exam.open": "Open",
"journal.pl.exam.notSpecified": "Not specified",
"journal.pl.exam.createWithJury": "Create exam with jury",
"journal.pl.exam.juryCount": "Number of jury members",
"journal.pl.access.expiredCode": "Failed to activate access code. Please try scanning the code again",
"journal.pl.attendance.stats.title": "Attendance Statistics",
"journal.pl.attendance.stats.totalLessons": "Total Lessons",
"journal.pl.attendance.stats.averageAttendance": "Average Attendance",
"journal.pl.attendance.stats.topStudents": "Top 3 Students by Attendance",
"journal.pl.attendance.stats.noData": "No data",
"journal.pl.attendance.emojis.excellent": "Excellent attendance",
"journal.pl.attendance.emojis.good": "Good attendance",
"journal.pl.attendance.emojis.average": "Average attendance",
"journal.pl.attendance.emojis.poor": "Poor attendance",
"journal.pl.attendance.emojis.critical": "Critical attendance",
"journal.pl.attendance.emojis.none": "No attendance",
"journal.pl.attendance.table.copy": "Copy Table",
"journal.pl.attendance.table.show": "Show Table",
"journal.pl.attendance.table.hide": "Hide Table",
"journal.pl.attendance.table.copySuccess": "Table copied",
"journal.pl.attendance.table.copySuccessDescription": "Table data successfully copied to clipboard",
"journal.pl.attendance.table.copyError": "Copy error",
"journal.pl.attendance.table.copyErrorDescription": "Failed to copy table data",
"journal.pl.attendance.addDialog.title": "Add Attendance Data",
"journal.pl.attendance.addDialog.lessonNamePlaceholder": "Enter lesson name",
"journal.pl.attendance.addDialog.selectStudents": "Select students who attended the lesson",
"journal.pl.attendance.addDialog.studentsPlaceholder": "Select students...",
"journal.pl.attendance.addDialog.studentsHelperText": "Select students who attended the lesson",
"journal.pl.attendance.addDialog.selectTeachers": "Select teachers who conducted the lesson",
"journal.pl.attendance.addDialog.teachersPlaceholder": "Select teachers...",
"journal.pl.attendance.addDialog.teachersHelperText": "Select teachers who conducted the lesson",
"journal.pl.attendance.emptyState.title": "No Attendance Data",
"journal.pl.attendance.emptyState.description": "Add lesson information and mark student attendance",
"journal.pl.userSelect.placeholder": "Select users...",
"journal.pl.userSelect.noOptions": "No users found",
"journal.pl.theme.switchDark": "Switch to dark theme",
"journal.pl.theme.switchLight": "Switch to light theme",
"journal.pl.lang.switchToEn": "Switch to English",
"journal.pl.lang.switchToRu": "Switch to Russian",
"journal.pl.serviceMenu.title": "BRO Services",
"journal.pl.serviceMenu.ariaLabel": "BRO Services",
"journal.pl.lesson.form.title": "New lesson title:",
"journal.pl.lesson.form.date": "Date",
"journal.pl.lesson.form.dateTime": "Specify date and time of the lesson",
"journal.pl.lesson.form.datePlaceholder": "Specify lesson date",
"journal.pl.lesson.form.namePlaceholder": "Lesson name"
}

View File

@@ -1,3 +1,126 @@
{
"": ""
"journal.pl.add": "Добавить",
"journal.pl.edit": "Редактировать",
"journal.pl.delete": "Удалить",
"journal.pl.save": "Сохранить",
"journal.pl.cancel": "Отменить",
"journal.pl.close": "Закрыть",
"journal.pl.title": "Журнал посещаемости",
"journal.pl.common.students": "студентов",
"journal.pl.common.teachers": "преподавателей",
"journal.pl.common.noData": "Нет данных",
"journal.pl.common.date": "Дата",
"journal.pl.common.name": "Название",
"journal.pl.common.lessonName": "Название занятия",
"journal.pl.common.of": "из",
"journal.pl.common.required": "Обязательное поле",
"journal.pl.common.error": "Ошибка",
"journal.pl.common.error.something": "Что-то пошло не так",
"journal.pl.common.add": "Добавить",
"journal.pl.common.create": "Создать",
"journal.pl.common.requiredField": "Обязательное поле",
"journal.pl.common.startDate": "Дата начала",
"journal.pl.common.selectDateTime": "Выберите дату и время",
"journal.pl.common.sending": "Отправляем",
"journal.pl.common.restored": "Восстановить",
"journal.pl.common.cancel": "Отмена",
"journal.pl.common.journal": "Журнал",
"journal.pl.common.course": "Курс",
"journal.pl.common.lesson": "Лекция",
"journal.pl.common.marked": "Отмечено",
"journal.pl.common.people": "человек",
"journal.pl.common.success": "Успешно",
"journal.pl.common.open": "Открыть",
"journal.pl.common.loading": "Загрузка",
"journal.pl.course.defaultName": "Название",
"journal.pl.course.sending": "Отправляем",
"journal.pl.course.created": "Курс создан",
"journal.pl.course.successMessage": "Курс {{name}} успешно создан",
"journal.pl.course.createTitle": "Создание курса",
"journal.pl.course.specifyStartDate": "Укажите дату начала курса",
"journal.pl.course.newLectureName": "Название новой лекции",
"journal.pl.course.namePlaceholder": "КФУ-24-2",
"journal.pl.course.startDate": "Дата начала курса",
"journal.pl.course.lessonCount": "Количество занятий",
"journal.pl.course.attendancePage": "На страницу с лекциями",
"journal.pl.course.attendance": "Посещаемость",
"journal.pl.course.details": "Детали",
"journal.pl.course.viewDetails": "Просмотреть детали",
"journal.pl.lesson.created": "Лекция создана",
"journal.pl.lesson.successMessage": "Лекция {{name}} успешно создана",
"journal.pl.lesson.updated": "Лекция обновлена",
"journal.pl.lesson.updateMessage": "Лекция {{name}} успешно обновлена",
"journal.pl.lesson.createTitle": "Создание лекции",
"journal.pl.lesson.editTitle": "Редактирование лекции",
"journal.pl.lesson.deleteConfirm": "Удалить занятие от {{date}}?",
"journal.pl.lesson.deleteWarning": "Все данные о посещении данного занятия будут удалены",
"journal.pl.lesson.deletedMessage": "Удалена лекция {{name}}",
"journal.pl.lesson.noInternet": "Отсутствует интернет",
"journal.pl.lesson.topicTitle": "Тема занятия:",
"journal.pl.lesson.dateFormat": "DD MMMM YYYYг.",
"journal.pl.lesson.attendanceChart": "График посещаемости лекций",
"journal.pl.lesson.list": "Список занятий",
"journal.pl.lesson.link": "Ссылка",
"journal.pl.lesson.time": "Время",
"journal.pl.lesson.action": "Действия",
"journal.pl.exam.title": "Экзамен",
"journal.pl.exam.startExam": "Начать экзамен",
"journal.pl.exam.open": "Открыть",
"journal.pl.exam.notSpecified": "Не задан",
"journal.pl.exam.createWithJury": "Создать экзамен с жюри",
"journal.pl.exam.juryCount": "Количество членов жюри",
"journal.pl.access.expiredCode": "Не удалось активировать код доступа. Попробуйте отсканировать код ещё раз",
"journal.pl.attendance.stats.title": "Статистика посещаемости",
"journal.pl.attendance.stats.totalLessons": "Всего занятий",
"journal.pl.attendance.stats.averageAttendance": "Средняя посещаемость",
"journal.pl.attendance.stats.topStudents": "Топ-3 студента по посещаемости",
"journal.pl.attendance.stats.noData": "Нет данных",
"journal.pl.attendance.emojis.excellent": "Отличная посещаемость",
"journal.pl.attendance.emojis.good": "Хорошая посещаемость",
"journal.pl.attendance.emojis.average": "Средняя посещаемость",
"journal.pl.attendance.emojis.poor": "Низкая посещаемость",
"journal.pl.attendance.emojis.none": "Нет посещений",
"journal.pl.attendance.table.copy": "Копировать таблицу",
"journal.pl.attendance.table.show": "Показать таблицу",
"journal.pl.attendance.table.hide": "Скрыть таблицу",
"journal.pl.attendance.table.copySuccess": "Таблица скопирована",
"journal.pl.attendance.table.copySuccessDescription": "Данные таблицы успешно скопированы в буфер обмена",
"journal.pl.attendance.table.copyError": "Ошибка копирования",
"journal.pl.attendance.table.copyErrorDescription": "Не удалось скопировать данные таблицы",
"journal.pl.attendance.addDialog.title": "Добавить данные о посещаемости",
"journal.pl.attendance.addDialog.lessonNamePlaceholder": "Введите название занятия",
"journal.pl.attendance.addDialog.selectStudents": "Выберите студентов, присутствовавших на занятии",
"journal.pl.attendance.addDialog.studentsPlaceholder": "Выберите студентов...",
"journal.pl.attendance.addDialog.studentsHelperText": "Выберите студентов, которые присутствовали на занятии",
"journal.pl.attendance.addDialog.selectTeachers": "Выберите преподавателей, проводивших занятие",
"journal.pl.attendance.addDialog.teachersPlaceholder": "Выберите преподавателей...",
"journal.pl.attendance.addDialog.teachersHelperText": "Выберите преподавателей, которые проводили занятие",
"journal.pl.attendance.emptyState.title": "Нет данных о посещаемости",
"journal.pl.attendance.emptyState.description": "Добавьте информацию о занятиях и отметьте посещаемость студентов",
"journal.pl.userSelect.placeholder": "Выберите пользователей...",
"journal.pl.userSelect.noOptions": "Пользователи не найдены",
"journal.pl.theme.switchDark": "Переключить на темную тему",
"journal.pl.theme.switchLight": "Переключить на светлую тему",
"journal.pl.lang.switchToEn": "Переключить на английский",
"journal.pl.lang.switchToRu": "Переключить на русский",
"journal.pl.serviceMenu.title": "Сервисы BRO",
"journal.pl.serviceMenu.ariaLabel": "Сервисы BRO",
"journal.pl.lesson.form.title": "Название новой лекции:",
"journal.pl.lesson.form.date": "Дата",
"journal.pl.lesson.form.dateTime": "Укажите дату и время лекции",
"journal.pl.lesson.form.datePlaceholder": "Укажите дату лекции",
"journal.pl.lesson.form.namePlaceholder": "Название лекции"
}