From 581cb8241caf6eb916fc898596cebc2645507b21 Mon Sep 17 00:00:00 2001 From: Mekan1206 Date: Fri, 31 Jul 2026 18:08:08 +0500 Subject: [PATCH] translate base --- app/Enums/ApprovalStatus.php | 6 +- app/Enums/BonusType.php | 8 +- app/Enums/DisciplinarySeverity.php | 6 +- app/Enums/DocumentType.php | 10 +- app/Enums/EmploymentStatus.php | 8 +- app/Enums/Gender.php | 6 +- app/Enums/ImportType.php | 70 +- app/Enums/NavigationGroup.php | 21 + app/Enums/VacationType.php | 8 +- app/Filament/Pages/ImportWizard.php | 84 +- .../ActivityLogs/ActivityLogResource.php | 24 +- .../Schemas/ActivityLogInfolist.php | 16 +- .../ActivityLogs/Tables/ActivityLogsTable.php | 28 +- .../Resources/Bonuses/BonusResource.php | 3 +- .../Bonuses/Schemas/BonusInfolist.php | 2 +- .../Resources/Bonuses/Tables/BonusesTable.php | 6 +- .../Departments/DepartmentResource.php | 3 +- .../Departments/Schemas/DepartmentForm.php | 2 +- .../Departments/Tables/DepartmentsTable.php | 12 +- .../DisciplinaryReportResource.php | 3 +- .../Schemas/DisciplinaryReportForm.php | 2 +- .../Schemas/DisciplinaryReportInfolist.php | 2 +- .../Tables/DisciplinaryReportsTable.php | 6 +- .../EmployeeDocumentResource.php | 3 +- .../Schemas/EmployeeDocumentForm.php | 2 +- .../Schemas/EmployeeDocumentInfolist.php | 2 +- .../Tables/EmployeeDocumentsTable.php | 8 +- .../Resources/Employees/EmployeeResource.php | 9 +- .../BonusesRelationManager.php | 9 +- .../DisciplinaryReportsRelationManager.php | 11 +- .../DocumentsRelationManager.php | 13 +- .../ExplanationsRelationManager.php | 9 +- .../RelationManagers/GiftsRelationManager.php | 9 +- .../SickLeavesRelationManager.php | 13 +- .../UnpaidLeavesRelationManager.php | 15 +- .../VacationsRelationManager.php | 19 +- .../Employees/Schemas/EmployeeForm.php | 10 +- .../Employees/Schemas/EmployeeInfolist.php | 74 +- .../Employees/Tables/EmployeesTable.php | 24 +- .../Employees/Widgets/EmployeeStatsWidget.php | 16 +- .../Explanations/ExplanationResource.php | 3 +- .../Explanations/Schemas/ExplanationForm.php | 2 +- .../Schemas/ExplanationInfolist.php | 2 +- .../Explanations/Tables/ExplanationsTable.php | 4 +- app/Filament/Resources/Gifts/GiftResource.php | 3 +- .../Resources/Gifts/Schemas/GiftForm.php | 2 +- .../Resources/Gifts/Schemas/GiftInfolist.php | 2 +- .../Resources/Gifts/Tables/GiftsTable.php | 4 +- .../Resources/Positions/PositionResource.php | 3 +- .../Resources/Shifts/Schemas/ShiftForm.php | 6 +- .../Resources/Shifts/ShiftResource.php | 3 +- .../Resources/Shifts/Tables/ShiftsTable.php | 16 +- .../SickLeaves/Schemas/SickLeaveForm.php | 6 +- .../SickLeaves/Schemas/SickLeaveInfolist.php | 2 +- .../SickLeaves/SickLeaveResource.php | 3 +- .../SickLeaves/Tables/SickLeavesTable.php | 4 +- .../UnpaidLeaves/Schemas/UnpaidLeaveForm.php | 4 +- .../Schemas/UnpaidLeaveInfolist.php | 2 +- .../UnpaidLeaves/Tables/UnpaidLeavesTable.php | 14 +- .../UnpaidLeaves/UnpaidLeaveResource.php | 3 +- .../Resources/Users/Schemas/UserForm.php | 11 +- .../Resources/Users/Schemas/UserInfolist.php | 4 +- .../Resources/Users/Tables/UsersTable.php | 2 +- app/Filament/Resources/Users/UserResource.php | 4 +- .../Vacations/Schemas/VacationForm.php | 8 +- .../Vacations/Schemas/VacationInfolist.php | 2 +- .../Vacations/Tables/VacationsTable.php | 14 +- .../Resources/Vacations/VacationResource.php | 3 +- app/Filament/Support/ExportExcelAction.php | 4 +- app/Filament/Support/ExportPdfAction.php | 8 +- app/Filament/Support/HrForm.php | 2 +- .../Widgets/DepartmentDistributionChart.php | 9 +- .../Widgets/HrStatsOverviewWidget.php | 29 +- app/Filament/Widgets/MonthlyHiringChart.php | 10 +- app/Filament/Widgets/MonthlyLeaveChart.php | 9 +- app/Filament/Widgets/RecentReportsWidget.php | 11 +- .../Widgets/UpcomingBirthdaysWidget.php | 13 +- app/Filament/Widgets/UpcomingLeaveWidget.php | 11 +- app/Models/User.php | 2 +- .../DisciplinaryReportCreatedNotification.php | 10 +- .../EmployeeTerminatedNotification.php | 9 +- .../VacationApprovedNotification.php | 10 +- .../VacationSubmittedNotification.php | 10 +- app/Providers/AppServiceProvider.php | 15 + app/Providers/Filament/AdminPanelProvider.php | 13 +- composer.json | 1 + composer.lock | 89 +- config/hr.php | 10 + database/factories/UserFactory.php | 1 + ...07_31_123118_add_locale_to_users_table.php | 28 + database/seeders/AdminUserSeeder.php | 2 +- lang/en/enums.php | 59 + lang/en/exports.php | 51 + lang/en/hr.php | 248 +++ lang/en/notifications.php | 35 + lang/ru/enums.php | 59 + lang/ru/exports.php | 51 + lang/ru/hr.php | 248 +++ lang/ru/notifications.php | 35 + lang/tk/enums.php | 59 + lang/tk/exports.php | 51 + lang/tk/hr.php | 248 +++ lang/tk/notifications.php | 35 + lang/vendor/filament/am/components/button.php | 9 + .../filament/am/components/copyable.php | 9 + lang/vendor/filament/am/components/modal.php | 12 + .../filament/am/components/pagination.php | 41 + lang/vendor/filament/ar/components/button.php | 9 + .../filament/ar/components/copyable.php | 9 + lang/vendor/filament/ar/components/modal.php | 13 + .../filament/ar/components/pagination.php | 47 + lang/vendor/filament/az/components/button.php | 9 + .../filament/az/components/copyable.php | 9 + lang/vendor/filament/az/components/modal.php | 13 + .../filament/az/components/pagination.php | 45 + lang/vendor/filament/bg/components/button.php | 9 + .../filament/bg/components/copyable.php | 9 + lang/vendor/filament/bg/components/modal.php | 13 + .../filament/bg/components/pagination.php | 47 + lang/vendor/filament/bn/components/button.php | 9 + .../filament/bn/components/copyable.php | 9 + lang/vendor/filament/bn/components/modal.php | 13 + .../filament/bn/components/pagination.php | 47 + lang/vendor/filament/bs/components/button.php | 9 + .../filament/bs/components/copyable.php | 9 + lang/vendor/filament/bs/components/modal.php | 13 + .../filament/bs/components/pagination.php | 39 + lang/vendor/filament/ca/components/button.php | 9 + .../filament/ca/components/copyable.php | 9 + lang/vendor/filament/ca/components/modal.php | 13 + .../filament/ca/components/pagination.php | 47 + .../vendor/filament/ckb/components/button.php | 9 + .../filament/ckb/components/copyable.php | 9 + lang/vendor/filament/ckb/components/modal.php | 13 + .../filament/ckb/components/pagination.php | 47 + lang/vendor/filament/cs/components/badge.php | 13 + .../filament/cs/components/breadcrumbs.php | 7 + lang/vendor/filament/cs/components/button.php | 11 + .../filament/cs/components/copyable.php | 9 + .../cs/components/input/one-time-code.php | 7 + .../cs/components/loading-section.php | 7 + lang/vendor/filament/cs/components/modal.php | 13 + .../filament/cs/components/pagination.php | 45 + .../vendor/filament/cs/components/section.php | 17 + lang/vendor/filament/cs/components/tabs.php | 7 + .../filament/cy/components/copyable.php | 9 + .../filament/cy/components/pagination.php | 39 + lang/vendor/filament/da/components/button.php | 9 + .../filament/da/components/copyable.php | 9 + lang/vendor/filament/da/components/modal.php | 13 + .../filament/da/components/pagination.php | 39 + lang/vendor/filament/de/components/badge.php | 13 + .../filament/de/components/breadcrumbs.php | 7 + lang/vendor/filament/de/components/button.php | 9 + .../filament/de/components/copyable.php | 9 + .../de/components/input/one-time-code.php | 7 + .../de/components/loading-section.php | 7 + lang/vendor/filament/de/components/modal.php | 13 + .../filament/de/components/pagination.php | 47 + .../vendor/filament/de/components/section.php | 17 + lang/vendor/filament/de/components/tabs.php | 7 + lang/vendor/filament/el/components/button.php | 9 + .../filament/el/components/copyable.php | 9 + lang/vendor/filament/el/components/modal.php | 13 + .../filament/el/components/pagination.php | 47 + lang/vendor/filament/en/components/badge.php | 13 + .../filament/en/components/breadcrumbs.php | 7 + lang/vendor/filament/en/components/button.php | 9 + .../filament/en/components/copyable.php | 9 + .../en/components/input/one-time-code.php | 7 + .../en/components/loading-section.php | 7 + lang/vendor/filament/en/components/modal.php | 13 + .../filament/en/components/pagination.php | 47 + .../vendor/filament/en/components/section.php | 17 + lang/vendor/filament/en/components/tabs.php | 7 + lang/vendor/filament/es/components/badge.php | 13 + .../filament/es/components/breadcrumbs.php | 7 + lang/vendor/filament/es/components/button.php | 11 + .../filament/es/components/copyable.php | 9 + .../es/components/input/one-time-code.php | 7 + .../es/components/loading-section.php | 7 + lang/vendor/filament/es/components/modal.php | 13 + .../filament/es/components/pagination.php | 47 + .../vendor/filament/es/components/section.php | 17 + lang/vendor/filament/es/components/tabs.php | 7 + lang/vendor/filament/et/components/button.php | 9 + .../filament/et/components/copyable.php | 9 + lang/vendor/filament/et/components/modal.php | 13 + .../filament/et/components/pagination.php | 47 + lang/vendor/filament/eu/components/button.php | 11 + .../filament/eu/components/copyable.php | 9 + lang/vendor/filament/eu/components/modal.php | 13 + .../filament/eu/components/pagination.php | 47 + lang/vendor/filament/fa/components/button.php | 11 + .../filament/fa/components/copyable.php | 9 + lang/vendor/filament/fa/components/modal.php | 13 + .../filament/fa/components/pagination.php | 47 + lang/vendor/filament/fi/components/badge.php | 13 + .../filament/fi/components/breadcrumbs.php | 7 + lang/vendor/filament/fi/components/button.php | 9 + .../filament/fi/components/copyable.php | 9 + .../fi/components/input/one-time-code.php | 7 + .../fi/components/loading-section.php | 7 + lang/vendor/filament/fi/components/modal.php | 13 + .../filament/fi/components/pagination.php | 47 + .../vendor/filament/fi/components/section.php | 17 + lang/vendor/filament/fi/components/tabs.php | 7 + lang/vendor/filament/fr/components/button.php | 9 + .../filament/fr/components/copyable.php | 9 + lang/vendor/filament/fr/components/modal.php | 13 + .../filament/fr/components/pagination.php | 47 + lang/vendor/filament/he/components/button.php | 9 + .../filament/he/components/copyable.php | 9 + lang/vendor/filament/he/components/modal.php | 13 + .../filament/he/components/pagination.php | 47 + .../filament/hi/components/pagination.php | 33 + lang/vendor/filament/hr/components/button.php | 9 + .../filament/hr/components/copyable.php | 9 + lang/vendor/filament/hr/components/modal.php | 13 + .../filament/hr/components/pagination.php | 47 + lang/vendor/filament/hu/components/button.php | 9 + .../filament/hu/components/copyable.php | 9 + lang/vendor/filament/hu/components/modal.php | 13 + .../filament/hu/components/pagination.php | 47 + lang/vendor/filament/hy/components/button.php | 9 + .../filament/hy/components/copyable.php | 9 + lang/vendor/filament/hy/components/modal.php | 13 + .../filament/hy/components/pagination.php | 47 + lang/vendor/filament/id/components/button.php | 11 + .../filament/id/components/copyable.php | 9 + lang/vendor/filament/id/components/modal.php | 13 + .../filament/id/components/pagination.php | 47 + lang/vendor/filament/it/components/button.php | 11 + .../filament/it/components/copyable.php | 9 + lang/vendor/filament/it/components/modal.php | 13 + .../filament/it/components/pagination.php | 47 + lang/vendor/filament/ja/components/button.php | 9 + .../filament/ja/components/copyable.php | 9 + .../ja/components/input/one-time-code.php | 7 + lang/vendor/filament/ja/components/modal.php | 13 + .../filament/ja/components/pagination.php | 47 + lang/vendor/filament/ka/components/button.php | 9 + .../filament/ka/components/copyable.php | 9 + lang/vendor/filament/ka/components/modal.php | 13 + .../filament/ka/components/pagination.php | 47 + lang/vendor/filament/km/components/button.php | 9 + .../filament/km/components/copyable.php | 9 + lang/vendor/filament/km/components/modal.php | 13 + .../filament/km/components/pagination.php | 47 + lang/vendor/filament/ko/components/button.php | 9 + .../filament/ko/components/copyable.php | 9 + lang/vendor/filament/ko/components/modal.php | 13 + .../filament/ko/components/pagination.php | 47 + lang/vendor/filament/ku/components/button.php | 9 + .../filament/ku/components/copyable.php | 9 + lang/vendor/filament/ku/components/modal.php | 13 + .../filament/ku/components/pagination.php | 39 + lang/vendor/filament/lt/components/button.php | 9 + .../filament/lt/components/copyable.php | 9 + lang/vendor/filament/lt/components/modal.php | 13 + .../filament/lt/components/pagination.php | 47 + .../vendor/filament/lus/components/button.php | 9 + .../filament/lus/components/copyable.php | 9 + lang/vendor/filament/lus/components/modal.php | 13 + .../filament/lus/components/pagination.php | 47 + lang/vendor/filament/lv/components/button.php | 9 + .../filament/lv/components/copyable.php | 9 + lang/vendor/filament/lv/components/modal.php | 13 + .../filament/lv/components/pagination.php | 39 + lang/vendor/filament/mk/components/button.php | 9 + .../filament/mk/components/copyable.php | 9 + lang/vendor/filament/mk/components/modal.php | 13 + .../filament/mk/components/pagination.php | 47 + lang/vendor/filament/mn/components/button.php | 9 + .../filament/mn/components/copyable.php | 9 + lang/vendor/filament/mn/components/modal.php | 13 + .../filament/mn/components/pagination.php | 47 + lang/vendor/filament/ms/components/button.php | 9 + .../filament/ms/components/copyable.php | 9 + lang/vendor/filament/ms/components/modal.php | 13 + .../filament/ms/components/pagination.php | 47 + lang/vendor/filament/nb/components/button.php | 9 + .../filament/nb/components/copyable.php | 9 + lang/vendor/filament/nb/components/modal.php | 13 + .../filament/nb/components/pagination.php | 47 + lang/vendor/filament/ne/components/button.php | 9 + .../filament/ne/components/copyable.php | 9 + lang/vendor/filament/ne/components/modal.php | 13 + .../filament/ne/components/pagination.php | 39 + lang/vendor/filament/nl/components/button.php | 9 + .../filament/nl/components/copyable.php | 9 + lang/vendor/filament/nl/components/modal.php | 13 + .../filament/nl/components/pagination.php | 47 + lang/vendor/filament/pl/components/badge.php | 13 + .../filament/pl/components/breadcrumbs.php | 7 + lang/vendor/filament/pl/components/button.php | 9 + .../filament/pl/components/copyable.php | 9 + .../pl/components/input/one-time-code.php | 7 + .../pl/components/loading-section.php | 7 + lang/vendor/filament/pl/components/modal.php | 13 + .../filament/pl/components/pagination.php | 47 + .../vendor/filament/pl/components/section.php | 17 + lang/vendor/filament/pl/components/tabs.php | 7 + lang/vendor/filament/pt/components/button.php | 9 + .../filament/pt/components/copyable.php | 9 + lang/vendor/filament/pt/components/modal.php | 13 + .../filament/pt/components/pagination.php | 47 + .../filament/pt_BR/components/button.php | 9 + .../filament/pt_BR/components/copyable.php | 9 + .../filament/pt_BR/components/modal.php | 13 + .../filament/pt_BR/components/pagination.php | 47 + lang/vendor/filament/ro/components/button.php | 9 + .../filament/ro/components/copyable.php | 9 + lang/vendor/filament/ro/components/modal.php | 13 + .../filament/ro/components/pagination.php | 47 + lang/vendor/filament/ru/components/button.php | 9 + .../filament/ru/components/copyable.php | 9 + lang/vendor/filament/ru/components/modal.php | 13 + .../filament/ru/components/pagination.php | 47 + lang/vendor/filament/sk/components/badge.php | 13 + .../filament/sk/components/breadcrumbs.php | 7 + lang/vendor/filament/sk/components/button.php | 9 + .../filament/sk/components/copyable.php | 9 + .../sk/components/input/one-time-code.php | 7 + .../sk/components/loading-section.php | 7 + lang/vendor/filament/sk/components/modal.php | 13 + .../filament/sk/components/pagination.php | 47 + .../vendor/filament/sk/components/section.php | 17 + lang/vendor/filament/sk/components/tabs.php | 7 + lang/vendor/filament/sl/components/button.php | 9 + .../filament/sl/components/copyable.php | 9 + lang/vendor/filament/sl/components/modal.php | 13 + .../filament/sl/components/pagination.php | 47 + lang/vendor/filament/sq/components/button.php | 9 + .../filament/sq/components/copyable.php | 9 + lang/vendor/filament/sq/components/modal.php | 13 + .../filament/sq/components/pagination.php | 39 + .../filament/sr_Cyrl/components/button.php | 9 + .../filament/sr_Cyrl/components/copyable.php | 9 + .../filament/sr_Cyrl/components/modal.php | 13 + .../sr_Cyrl/components/pagination.php | 47 + .../filament/sr_Latn/components/button.php | 9 + .../filament/sr_Latn/components/copyable.php | 9 + .../filament/sr_Latn/components/modal.php | 13 + .../sr_Latn/components/pagination.php | 47 + lang/vendor/filament/sv/components/button.php | 9 + .../filament/sv/components/copyable.php | 9 + lang/vendor/filament/sv/components/modal.php | 13 + .../filament/sv/components/pagination.php | 47 + lang/vendor/filament/sw/components/button.php | 9 + .../filament/sw/components/copyable.php | 9 + lang/vendor/filament/sw/components/modal.php | 13 + .../filament/sw/components/pagination.php | 39 + lang/vendor/filament/th/components/button.php | 9 + .../filament/th/components/copyable.php | 9 + lang/vendor/filament/th/components/modal.php | 13 + .../filament/th/components/pagination.php | 47 + lang/vendor/filament/tk/components/badge.php | 13 + .../filament/tk/components/breadcrumbs.php | 7 + lang/vendor/filament/tk/components/button.php | 9 + .../filament/tk/components/copyable.php | 9 + .../tk/components/input/one-time-code.php | 7 + .../tk/components/loading-section.php | 7 + lang/vendor/filament/tk/components/modal.php | 13 + .../filament/tk/components/pagination.php | 47 + .../vendor/filament/tk/components/section.php | 17 + lang/vendor/filament/tk/components/tabs.php | 7 + lang/vendor/filament/tr/components/badge.php | 13 + .../filament/tr/components/breadcrumbs.php | 7 + lang/vendor/filament/tr/components/button.php | 9 + .../filament/tr/components/copyable.php | 9 + .../tr/components/input/one-time-code.php | 7 + .../tr/components/loading-section.php | 7 + lang/vendor/filament/tr/components/modal.php | 13 + .../filament/tr/components/pagination.php | 47 + .../vendor/filament/tr/components/section.php | 17 + lang/vendor/filament/tr/components/tabs.php | 7 + lang/vendor/filament/uk/components/button.php | 9 + .../filament/uk/components/copyable.php | 9 + lang/vendor/filament/uk/components/modal.php | 13 + .../filament/uk/components/pagination.php | 47 + lang/vendor/filament/ur/components/button.php | 9 + .../filament/ur/components/copyable.php | 9 + lang/vendor/filament/ur/components/modal.php | 13 + .../filament/ur/components/pagination.php | 47 + lang/vendor/filament/uz/components/button.php | 9 + .../filament/uz/components/copyable.php | 9 + lang/vendor/filament/uz/components/modal.php | 13 + .../filament/uz/components/pagination.php | 39 + lang/vendor/filament/vi/components/button.php | 9 + .../filament/vi/components/copyable.php | 9 + lang/vendor/filament/vi/components/modal.php | 13 + .../filament/vi/components/pagination.php | 47 + .../filament/zh_CN/components/button.php | 9 + .../filament/zh_CN/components/copyable.php | 9 + .../filament/zh_CN/components/modal.php | 13 + .../filament/zh_CN/components/pagination.php | 39 + .../filament/zh_HK/components/button.php | 9 + .../filament/zh_HK/components/copyable.php | 9 + .../filament/zh_HK/components/modal.php | 13 + .../filament/zh_HK/components/pagination.php | 47 + .../filament/zh_TW/components/button.php | 9 + .../filament/zh_TW/components/copyable.php | 9 + .../filament/zh_TW/components/modal.php | 13 + .../filament/zh_TW/components/pagination.php | 47 + package-lock.json | 1875 +++++++++++++++++ package.json | 4 +- resources/css/filament/admin/theme.css | 5 + .../views/exports/employee-list.blade.php | 22 +- .../views/exports/employee-profile.blade.php | 26 +- .../views/exports/leave-summary.blade.php | 20 +- tests/Feature/LocalizationTest.php | 61 + vite.config.js | 2 +- 413 files changed, 9087 insertions(+), 428 deletions(-) create mode 100644 app/Enums/NavigationGroup.php create mode 100644 database/migrations/2026_07_31_123118_add_locale_to_users_table.php create mode 100644 lang/en/enums.php create mode 100644 lang/en/exports.php create mode 100644 lang/en/hr.php create mode 100644 lang/en/notifications.php create mode 100644 lang/ru/enums.php create mode 100644 lang/ru/exports.php create mode 100644 lang/ru/hr.php create mode 100644 lang/ru/notifications.php create mode 100644 lang/tk/enums.php create mode 100644 lang/tk/exports.php create mode 100644 lang/tk/hr.php create mode 100644 lang/tk/notifications.php create mode 100644 lang/vendor/filament/am/components/button.php create mode 100644 lang/vendor/filament/am/components/copyable.php create mode 100644 lang/vendor/filament/am/components/modal.php create mode 100644 lang/vendor/filament/am/components/pagination.php create mode 100644 lang/vendor/filament/ar/components/button.php create mode 100644 lang/vendor/filament/ar/components/copyable.php create mode 100644 lang/vendor/filament/ar/components/modal.php create mode 100644 lang/vendor/filament/ar/components/pagination.php create mode 100644 lang/vendor/filament/az/components/button.php create mode 100644 lang/vendor/filament/az/components/copyable.php create mode 100644 lang/vendor/filament/az/components/modal.php create mode 100644 lang/vendor/filament/az/components/pagination.php create mode 100644 lang/vendor/filament/bg/components/button.php create mode 100644 lang/vendor/filament/bg/components/copyable.php create mode 100644 lang/vendor/filament/bg/components/modal.php create mode 100644 lang/vendor/filament/bg/components/pagination.php create mode 100644 lang/vendor/filament/bn/components/button.php create mode 100644 lang/vendor/filament/bn/components/copyable.php create mode 100644 lang/vendor/filament/bn/components/modal.php create mode 100644 lang/vendor/filament/bn/components/pagination.php create mode 100644 lang/vendor/filament/bs/components/button.php create mode 100644 lang/vendor/filament/bs/components/copyable.php create mode 100644 lang/vendor/filament/bs/components/modal.php create mode 100644 lang/vendor/filament/bs/components/pagination.php create mode 100644 lang/vendor/filament/ca/components/button.php create mode 100644 lang/vendor/filament/ca/components/copyable.php create mode 100644 lang/vendor/filament/ca/components/modal.php create mode 100644 lang/vendor/filament/ca/components/pagination.php create mode 100644 lang/vendor/filament/ckb/components/button.php create mode 100644 lang/vendor/filament/ckb/components/copyable.php create mode 100644 lang/vendor/filament/ckb/components/modal.php create mode 100644 lang/vendor/filament/ckb/components/pagination.php create mode 100644 lang/vendor/filament/cs/components/badge.php create mode 100644 lang/vendor/filament/cs/components/breadcrumbs.php create mode 100644 lang/vendor/filament/cs/components/button.php create mode 100644 lang/vendor/filament/cs/components/copyable.php create mode 100644 lang/vendor/filament/cs/components/input/one-time-code.php create mode 100644 lang/vendor/filament/cs/components/loading-section.php create mode 100644 lang/vendor/filament/cs/components/modal.php create mode 100644 lang/vendor/filament/cs/components/pagination.php create mode 100644 lang/vendor/filament/cs/components/section.php create mode 100644 lang/vendor/filament/cs/components/tabs.php create mode 100644 lang/vendor/filament/cy/components/copyable.php create mode 100644 lang/vendor/filament/cy/components/pagination.php create mode 100644 lang/vendor/filament/da/components/button.php create mode 100644 lang/vendor/filament/da/components/copyable.php create mode 100644 lang/vendor/filament/da/components/modal.php create mode 100644 lang/vendor/filament/da/components/pagination.php create mode 100644 lang/vendor/filament/de/components/badge.php create mode 100644 lang/vendor/filament/de/components/breadcrumbs.php create mode 100644 lang/vendor/filament/de/components/button.php create mode 100644 lang/vendor/filament/de/components/copyable.php create mode 100644 lang/vendor/filament/de/components/input/one-time-code.php create mode 100644 lang/vendor/filament/de/components/loading-section.php create mode 100644 lang/vendor/filament/de/components/modal.php create mode 100644 lang/vendor/filament/de/components/pagination.php create mode 100644 lang/vendor/filament/de/components/section.php create mode 100644 lang/vendor/filament/de/components/tabs.php create mode 100644 lang/vendor/filament/el/components/button.php create mode 100644 lang/vendor/filament/el/components/copyable.php create mode 100644 lang/vendor/filament/el/components/modal.php create mode 100644 lang/vendor/filament/el/components/pagination.php create mode 100644 lang/vendor/filament/en/components/badge.php create mode 100644 lang/vendor/filament/en/components/breadcrumbs.php create mode 100644 lang/vendor/filament/en/components/button.php create mode 100644 lang/vendor/filament/en/components/copyable.php create mode 100644 lang/vendor/filament/en/components/input/one-time-code.php create mode 100644 lang/vendor/filament/en/components/loading-section.php create mode 100644 lang/vendor/filament/en/components/modal.php create mode 100644 lang/vendor/filament/en/components/pagination.php create mode 100644 lang/vendor/filament/en/components/section.php create mode 100644 lang/vendor/filament/en/components/tabs.php create mode 100644 lang/vendor/filament/es/components/badge.php create mode 100644 lang/vendor/filament/es/components/breadcrumbs.php create mode 100644 lang/vendor/filament/es/components/button.php create mode 100644 lang/vendor/filament/es/components/copyable.php create mode 100644 lang/vendor/filament/es/components/input/one-time-code.php create mode 100644 lang/vendor/filament/es/components/loading-section.php create mode 100644 lang/vendor/filament/es/components/modal.php create mode 100644 lang/vendor/filament/es/components/pagination.php create mode 100644 lang/vendor/filament/es/components/section.php create mode 100644 lang/vendor/filament/es/components/tabs.php create mode 100644 lang/vendor/filament/et/components/button.php create mode 100644 lang/vendor/filament/et/components/copyable.php create mode 100644 lang/vendor/filament/et/components/modal.php create mode 100644 lang/vendor/filament/et/components/pagination.php create mode 100644 lang/vendor/filament/eu/components/button.php create mode 100644 lang/vendor/filament/eu/components/copyable.php create mode 100644 lang/vendor/filament/eu/components/modal.php create mode 100644 lang/vendor/filament/eu/components/pagination.php create mode 100644 lang/vendor/filament/fa/components/button.php create mode 100644 lang/vendor/filament/fa/components/copyable.php create mode 100644 lang/vendor/filament/fa/components/modal.php create mode 100644 lang/vendor/filament/fa/components/pagination.php create mode 100644 lang/vendor/filament/fi/components/badge.php create mode 100644 lang/vendor/filament/fi/components/breadcrumbs.php create mode 100644 lang/vendor/filament/fi/components/button.php create mode 100644 lang/vendor/filament/fi/components/copyable.php create mode 100644 lang/vendor/filament/fi/components/input/one-time-code.php create mode 100644 lang/vendor/filament/fi/components/loading-section.php create mode 100644 lang/vendor/filament/fi/components/modal.php create mode 100644 lang/vendor/filament/fi/components/pagination.php create mode 100644 lang/vendor/filament/fi/components/section.php create mode 100644 lang/vendor/filament/fi/components/tabs.php create mode 100644 lang/vendor/filament/fr/components/button.php create mode 100644 lang/vendor/filament/fr/components/copyable.php create mode 100644 lang/vendor/filament/fr/components/modal.php create mode 100644 lang/vendor/filament/fr/components/pagination.php create mode 100644 lang/vendor/filament/he/components/button.php create mode 100644 lang/vendor/filament/he/components/copyable.php create mode 100644 lang/vendor/filament/he/components/modal.php create mode 100644 lang/vendor/filament/he/components/pagination.php create mode 100644 lang/vendor/filament/hi/components/pagination.php create mode 100644 lang/vendor/filament/hr/components/button.php create mode 100644 lang/vendor/filament/hr/components/copyable.php create mode 100644 lang/vendor/filament/hr/components/modal.php create mode 100644 lang/vendor/filament/hr/components/pagination.php create mode 100644 lang/vendor/filament/hu/components/button.php create mode 100644 lang/vendor/filament/hu/components/copyable.php create mode 100644 lang/vendor/filament/hu/components/modal.php create mode 100644 lang/vendor/filament/hu/components/pagination.php create mode 100644 lang/vendor/filament/hy/components/button.php create mode 100644 lang/vendor/filament/hy/components/copyable.php create mode 100644 lang/vendor/filament/hy/components/modal.php create mode 100644 lang/vendor/filament/hy/components/pagination.php create mode 100644 lang/vendor/filament/id/components/button.php create mode 100644 lang/vendor/filament/id/components/copyable.php create mode 100644 lang/vendor/filament/id/components/modal.php create mode 100644 lang/vendor/filament/id/components/pagination.php create mode 100644 lang/vendor/filament/it/components/button.php create mode 100644 lang/vendor/filament/it/components/copyable.php create mode 100644 lang/vendor/filament/it/components/modal.php create mode 100644 lang/vendor/filament/it/components/pagination.php create mode 100644 lang/vendor/filament/ja/components/button.php create mode 100644 lang/vendor/filament/ja/components/copyable.php create mode 100644 lang/vendor/filament/ja/components/input/one-time-code.php create mode 100644 lang/vendor/filament/ja/components/modal.php create mode 100644 lang/vendor/filament/ja/components/pagination.php create mode 100644 lang/vendor/filament/ka/components/button.php create mode 100644 lang/vendor/filament/ka/components/copyable.php create mode 100644 lang/vendor/filament/ka/components/modal.php create mode 100644 lang/vendor/filament/ka/components/pagination.php create mode 100644 lang/vendor/filament/km/components/button.php create mode 100644 lang/vendor/filament/km/components/copyable.php create mode 100644 lang/vendor/filament/km/components/modal.php create mode 100644 lang/vendor/filament/km/components/pagination.php create mode 100644 lang/vendor/filament/ko/components/button.php create mode 100644 lang/vendor/filament/ko/components/copyable.php create mode 100644 lang/vendor/filament/ko/components/modal.php create mode 100644 lang/vendor/filament/ko/components/pagination.php create mode 100644 lang/vendor/filament/ku/components/button.php create mode 100644 lang/vendor/filament/ku/components/copyable.php create mode 100644 lang/vendor/filament/ku/components/modal.php create mode 100644 lang/vendor/filament/ku/components/pagination.php create mode 100644 lang/vendor/filament/lt/components/button.php create mode 100644 lang/vendor/filament/lt/components/copyable.php create mode 100644 lang/vendor/filament/lt/components/modal.php create mode 100644 lang/vendor/filament/lt/components/pagination.php create mode 100644 lang/vendor/filament/lus/components/button.php create mode 100644 lang/vendor/filament/lus/components/copyable.php create mode 100644 lang/vendor/filament/lus/components/modal.php create mode 100644 lang/vendor/filament/lus/components/pagination.php create mode 100644 lang/vendor/filament/lv/components/button.php create mode 100644 lang/vendor/filament/lv/components/copyable.php create mode 100644 lang/vendor/filament/lv/components/modal.php create mode 100644 lang/vendor/filament/lv/components/pagination.php create mode 100644 lang/vendor/filament/mk/components/button.php create mode 100644 lang/vendor/filament/mk/components/copyable.php create mode 100644 lang/vendor/filament/mk/components/modal.php create mode 100644 lang/vendor/filament/mk/components/pagination.php create mode 100644 lang/vendor/filament/mn/components/button.php create mode 100644 lang/vendor/filament/mn/components/copyable.php create mode 100644 lang/vendor/filament/mn/components/modal.php create mode 100644 lang/vendor/filament/mn/components/pagination.php create mode 100644 lang/vendor/filament/ms/components/button.php create mode 100644 lang/vendor/filament/ms/components/copyable.php create mode 100644 lang/vendor/filament/ms/components/modal.php create mode 100644 lang/vendor/filament/ms/components/pagination.php create mode 100644 lang/vendor/filament/nb/components/button.php create mode 100644 lang/vendor/filament/nb/components/copyable.php create mode 100644 lang/vendor/filament/nb/components/modal.php create mode 100644 lang/vendor/filament/nb/components/pagination.php create mode 100644 lang/vendor/filament/ne/components/button.php create mode 100644 lang/vendor/filament/ne/components/copyable.php create mode 100644 lang/vendor/filament/ne/components/modal.php create mode 100644 lang/vendor/filament/ne/components/pagination.php create mode 100644 lang/vendor/filament/nl/components/button.php create mode 100644 lang/vendor/filament/nl/components/copyable.php create mode 100644 lang/vendor/filament/nl/components/modal.php create mode 100644 lang/vendor/filament/nl/components/pagination.php create mode 100644 lang/vendor/filament/pl/components/badge.php create mode 100644 lang/vendor/filament/pl/components/breadcrumbs.php create mode 100644 lang/vendor/filament/pl/components/button.php create mode 100644 lang/vendor/filament/pl/components/copyable.php create mode 100644 lang/vendor/filament/pl/components/input/one-time-code.php create mode 100644 lang/vendor/filament/pl/components/loading-section.php create mode 100644 lang/vendor/filament/pl/components/modal.php create mode 100644 lang/vendor/filament/pl/components/pagination.php create mode 100644 lang/vendor/filament/pl/components/section.php create mode 100644 lang/vendor/filament/pl/components/tabs.php create mode 100644 lang/vendor/filament/pt/components/button.php create mode 100644 lang/vendor/filament/pt/components/copyable.php create mode 100644 lang/vendor/filament/pt/components/modal.php create mode 100644 lang/vendor/filament/pt/components/pagination.php create mode 100644 lang/vendor/filament/pt_BR/components/button.php create mode 100644 lang/vendor/filament/pt_BR/components/copyable.php create mode 100644 lang/vendor/filament/pt_BR/components/modal.php create mode 100644 lang/vendor/filament/pt_BR/components/pagination.php create mode 100644 lang/vendor/filament/ro/components/button.php create mode 100644 lang/vendor/filament/ro/components/copyable.php create mode 100644 lang/vendor/filament/ro/components/modal.php create mode 100644 lang/vendor/filament/ro/components/pagination.php create mode 100644 lang/vendor/filament/ru/components/button.php create mode 100644 lang/vendor/filament/ru/components/copyable.php create mode 100644 lang/vendor/filament/ru/components/modal.php create mode 100644 lang/vendor/filament/ru/components/pagination.php create mode 100644 lang/vendor/filament/sk/components/badge.php create mode 100644 lang/vendor/filament/sk/components/breadcrumbs.php create mode 100644 lang/vendor/filament/sk/components/button.php create mode 100644 lang/vendor/filament/sk/components/copyable.php create mode 100644 lang/vendor/filament/sk/components/input/one-time-code.php create mode 100644 lang/vendor/filament/sk/components/loading-section.php create mode 100644 lang/vendor/filament/sk/components/modal.php create mode 100644 lang/vendor/filament/sk/components/pagination.php create mode 100644 lang/vendor/filament/sk/components/section.php create mode 100644 lang/vendor/filament/sk/components/tabs.php create mode 100644 lang/vendor/filament/sl/components/button.php create mode 100644 lang/vendor/filament/sl/components/copyable.php create mode 100644 lang/vendor/filament/sl/components/modal.php create mode 100644 lang/vendor/filament/sl/components/pagination.php create mode 100644 lang/vendor/filament/sq/components/button.php create mode 100644 lang/vendor/filament/sq/components/copyable.php create mode 100644 lang/vendor/filament/sq/components/modal.php create mode 100644 lang/vendor/filament/sq/components/pagination.php create mode 100644 lang/vendor/filament/sr_Cyrl/components/button.php create mode 100644 lang/vendor/filament/sr_Cyrl/components/copyable.php create mode 100644 lang/vendor/filament/sr_Cyrl/components/modal.php create mode 100644 lang/vendor/filament/sr_Cyrl/components/pagination.php create mode 100644 lang/vendor/filament/sr_Latn/components/button.php create mode 100644 lang/vendor/filament/sr_Latn/components/copyable.php create mode 100644 lang/vendor/filament/sr_Latn/components/modal.php create mode 100644 lang/vendor/filament/sr_Latn/components/pagination.php create mode 100644 lang/vendor/filament/sv/components/button.php create mode 100644 lang/vendor/filament/sv/components/copyable.php create mode 100644 lang/vendor/filament/sv/components/modal.php create mode 100644 lang/vendor/filament/sv/components/pagination.php create mode 100644 lang/vendor/filament/sw/components/button.php create mode 100644 lang/vendor/filament/sw/components/copyable.php create mode 100644 lang/vendor/filament/sw/components/modal.php create mode 100644 lang/vendor/filament/sw/components/pagination.php create mode 100644 lang/vendor/filament/th/components/button.php create mode 100644 lang/vendor/filament/th/components/copyable.php create mode 100644 lang/vendor/filament/th/components/modal.php create mode 100644 lang/vendor/filament/th/components/pagination.php create mode 100644 lang/vendor/filament/tk/components/badge.php create mode 100644 lang/vendor/filament/tk/components/breadcrumbs.php create mode 100644 lang/vendor/filament/tk/components/button.php create mode 100644 lang/vendor/filament/tk/components/copyable.php create mode 100644 lang/vendor/filament/tk/components/input/one-time-code.php create mode 100644 lang/vendor/filament/tk/components/loading-section.php create mode 100644 lang/vendor/filament/tk/components/modal.php create mode 100644 lang/vendor/filament/tk/components/pagination.php create mode 100644 lang/vendor/filament/tk/components/section.php create mode 100644 lang/vendor/filament/tk/components/tabs.php create mode 100644 lang/vendor/filament/tr/components/badge.php create mode 100644 lang/vendor/filament/tr/components/breadcrumbs.php create mode 100644 lang/vendor/filament/tr/components/button.php create mode 100644 lang/vendor/filament/tr/components/copyable.php create mode 100644 lang/vendor/filament/tr/components/input/one-time-code.php create mode 100644 lang/vendor/filament/tr/components/loading-section.php create mode 100644 lang/vendor/filament/tr/components/modal.php create mode 100644 lang/vendor/filament/tr/components/pagination.php create mode 100644 lang/vendor/filament/tr/components/section.php create mode 100644 lang/vendor/filament/tr/components/tabs.php create mode 100644 lang/vendor/filament/uk/components/button.php create mode 100644 lang/vendor/filament/uk/components/copyable.php create mode 100644 lang/vendor/filament/uk/components/modal.php create mode 100644 lang/vendor/filament/uk/components/pagination.php create mode 100644 lang/vendor/filament/ur/components/button.php create mode 100644 lang/vendor/filament/ur/components/copyable.php create mode 100644 lang/vendor/filament/ur/components/modal.php create mode 100644 lang/vendor/filament/ur/components/pagination.php create mode 100644 lang/vendor/filament/uz/components/button.php create mode 100644 lang/vendor/filament/uz/components/copyable.php create mode 100644 lang/vendor/filament/uz/components/modal.php create mode 100644 lang/vendor/filament/uz/components/pagination.php create mode 100644 lang/vendor/filament/vi/components/button.php create mode 100644 lang/vendor/filament/vi/components/copyable.php create mode 100644 lang/vendor/filament/vi/components/modal.php create mode 100644 lang/vendor/filament/vi/components/pagination.php create mode 100644 lang/vendor/filament/zh_CN/components/button.php create mode 100644 lang/vendor/filament/zh_CN/components/copyable.php create mode 100644 lang/vendor/filament/zh_CN/components/modal.php create mode 100644 lang/vendor/filament/zh_CN/components/pagination.php create mode 100644 lang/vendor/filament/zh_HK/components/button.php create mode 100644 lang/vendor/filament/zh_HK/components/copyable.php create mode 100644 lang/vendor/filament/zh_HK/components/modal.php create mode 100644 lang/vendor/filament/zh_HK/components/pagination.php create mode 100644 lang/vendor/filament/zh_TW/components/button.php create mode 100644 lang/vendor/filament/zh_TW/components/copyable.php create mode 100644 lang/vendor/filament/zh_TW/components/modal.php create mode 100644 lang/vendor/filament/zh_TW/components/pagination.php create mode 100644 package-lock.json create mode 100644 resources/css/filament/admin/theme.css create mode 100644 tests/Feature/LocalizationTest.php diff --git a/app/Enums/ApprovalStatus.php b/app/Enums/ApprovalStatus.php index a80fe46..904d73e 100644 --- a/app/Enums/ApprovalStatus.php +++ b/app/Enums/ApprovalStatus.php @@ -13,9 +13,9 @@ enum ApprovalStatus: string public function label(): string { return match ($this) { - self::Pending => 'Pending', - self::Approved => 'Approved', - self::Rejected => 'Rejected', + self::Pending => __('enums.approval_status.pending'), + self::Approved => __('enums.approval_status.approved'), + self::Rejected => __('enums.approval_status.rejected'), }; } diff --git a/app/Enums/BonusType.php b/app/Enums/BonusType.php index 57a0a67..153516a 100644 --- a/app/Enums/BonusType.php +++ b/app/Enums/BonusType.php @@ -14,10 +14,10 @@ enum BonusType: string public function label(): string { return match ($this) { - self::Performance => 'Performance', - self::Holiday => 'Holiday', - self::Retention => 'Retention', - self::Other => 'Other', + self::Performance => __('enums.bonus_type.performance'), + self::Holiday => __('enums.bonus_type.holiday'), + self::Retention => __('enums.bonus_type.retention'), + self::Other => __('enums.bonus_type.other'), }; } diff --git a/app/Enums/DisciplinarySeverity.php b/app/Enums/DisciplinarySeverity.php index 5080ca7..17bb2e7 100644 --- a/app/Enums/DisciplinarySeverity.php +++ b/app/Enums/DisciplinarySeverity.php @@ -13,9 +13,9 @@ enum DisciplinarySeverity: string public function label(): string { return match ($this) { - self::Low => 'Low', - self::Medium => 'Medium', - self::High => 'High', + self::Low => __('enums.disciplinary_severity.low'), + self::Medium => __('enums.disciplinary_severity.medium'), + self::High => __('enums.disciplinary_severity.high'), }; } diff --git a/app/Enums/DocumentType.php b/app/Enums/DocumentType.php index 76c13d7..40b7997 100644 --- a/app/Enums/DocumentType.php +++ b/app/Enums/DocumentType.php @@ -15,11 +15,11 @@ enum DocumentType: string public function label(): string { return match ($this) { - self::Passport => 'Passport', - self::Contract => 'Contract', - self::MedicalCertificate => 'Medical Certificate', - self::EducationCertificate => 'Education Certificate', - self::Other => 'Other', + self::Passport => __('enums.document_type.passport'), + self::Contract => __('enums.document_type.contract'), + self::MedicalCertificate => __('enums.document_type.medical_certificate'), + self::EducationCertificate => __('enums.document_type.education_certificate'), + self::Other => __('enums.document_type.other'), }; } diff --git a/app/Enums/EmploymentStatus.php b/app/Enums/EmploymentStatus.php index 28b99da..2e42d91 100644 --- a/app/Enums/EmploymentStatus.php +++ b/app/Enums/EmploymentStatus.php @@ -14,10 +14,10 @@ enum EmploymentStatus: string public function label(): string { return match ($this) { - self::Active => 'Active', - self::Inactive => 'Inactive', - self::Terminated => 'Terminated', - self::OnLeave => 'On Leave', + self::Active => __('enums.employment_status.active'), + self::Inactive => __('enums.employment_status.inactive'), + self::Terminated => __('enums.employment_status.terminated'), + self::OnLeave => __('enums.employment_status.on_leave'), }; } diff --git a/app/Enums/Gender.php b/app/Enums/Gender.php index 5227908..024f70b 100644 --- a/app/Enums/Gender.php +++ b/app/Enums/Gender.php @@ -13,9 +13,9 @@ enum Gender: string public function label(): string { return match ($this) { - self::Male => 'Male', - self::Female => 'Female', - self::Other => 'Other', + self::Male => __('enums.gender.male'), + self::Female => __('enums.gender.female'), + self::Other => __('enums.gender.other'), }; } diff --git a/app/Enums/ImportType.php b/app/Enums/ImportType.php index de9d265..00b838e 100644 --- a/app/Enums/ImportType.php +++ b/app/Enums/ImportType.php @@ -14,10 +14,10 @@ enum ImportType: string public function label(): string { return match ($this) { - self::Employees => 'Employees', - self::Vacations => 'Vacations', - self::Bonuses => 'Bonuses', - self::Reports => 'Disciplinary Reports', + self::Employees => __('enums.import_type.employees'), + self::Vacations => __('enums.import_type.vacations'), + self::Bonuses => __('enums.import_type.bonuses'), + self::Reports => __('enums.import_type.reports'), }; } @@ -28,43 +28,43 @@ enum ImportType: string { return match ($this) { self::Employees => [ - 'employee_number' => 'Employee Number', - 'full_name' => 'Full Name', - 'national_id' => 'National ID', - 'gender' => 'Gender', - 'birth_date' => 'Birth Date', - 'phone' => 'Phone', - 'address' => 'Address', - 'department' => 'Department', - 'position' => 'Position', - 'shift' => 'Shift', - 'employment_status' => 'Employment Status', - 'hire_date' => 'Hire Date', - 'notes' => 'Notes', + 'employee_number' => __('hr.fields.employee_number'), + 'full_name' => __('hr.fields.full_name'), + 'national_id' => __('hr.fields.national_id'), + 'gender' => __('hr.fields.gender'), + 'birth_date' => __('hr.fields.birth_date'), + 'phone' => __('hr.fields.phone'), + 'address' => __('hr.fields.address'), + 'department' => __('hr.fields.department'), + 'position' => __('hr.fields.position'), + 'shift' => __('hr.fields.shift'), + 'employment_status' => __('hr.fields.employment_status'), + 'hire_date' => __('hr.fields.hire_date'), + 'notes' => __('hr.fields.notes'), ], self::Vacations => [ - 'employee_number' => 'Employee Number', - 'type' => 'Type', - 'start_date' => 'Start Date', - 'end_date' => 'End Date', - 'return_date' => 'Return Date', - 'days' => 'Days', - 'status' => 'Status', - 'reason' => 'Reason', + 'employee_number' => __('hr.fields.employee_number'), + 'type' => __('hr.fields.type'), + 'start_date' => __('hr.fields.start_date'), + 'end_date' => __('hr.fields.end_date'), + 'return_date' => __('hr.fields.return_date'), + 'days' => __('hr.fields.days'), + 'status' => __('hr.fields.status'), + 'reason' => __('hr.fields.reason'), ], self::Bonuses => [ - 'employee_number' => 'Employee Number', - 'bonus_date' => 'Bonus Date', - 'bonus_type' => 'Bonus Type', - 'amount' => 'Amount', - 'reason' => 'Reason', + 'employee_number' => __('hr.fields.employee_number'), + 'bonus_date' => __('hr.fields.bonus_date'), + 'bonus_type' => __('hr.fields.bonus_type'), + 'amount' => __('hr.fields.amount'), + 'reason' => __('hr.fields.reason'), ], self::Reports => [ - 'employee_number' => 'Employee Number', - 'report_date' => 'Report Date', - 'title' => 'Title', - 'description' => 'Description', - 'severity' => 'Severity', + 'employee_number' => __('hr.fields.employee_number'), + 'report_date' => __('hr.fields.report_date'), + 'title' => __('hr.fields.title'), + 'description' => __('hr.fields.description'), + 'severity' => __('hr.fields.severity'), ], }; } diff --git a/app/Enums/NavigationGroup.php b/app/Enums/NavigationGroup.php new file mode 100644 index 0000000..3dc7943 --- /dev/null +++ b/app/Enums/NavigationGroup.php @@ -0,0 +1,21 @@ +value); + } +} diff --git a/app/Enums/VacationType.php b/app/Enums/VacationType.php index 0d6c7b4..55b582d 100644 --- a/app/Enums/VacationType.php +++ b/app/Enums/VacationType.php @@ -14,10 +14,10 @@ enum VacationType: string public function label(): string { return match ($this) { - self::Annual => 'Annual', - self::Marriage => 'Marriage', - self::Study => 'Study', - self::Other => 'Other', + self::Annual => __('enums.vacation_type.annual'), + self::Marriage => __('enums.vacation_type.marriage'), + self::Study => __('enums.vacation_type.study'), + self::Other => __('enums.vacation_type.other'), }; } diff --git a/app/Filament/Pages/ImportWizard.php b/app/Filament/Pages/ImportWizard.php index cc38b78..9c63bd9 100644 --- a/app/Filament/Pages/ImportWizard.php +++ b/app/Filament/Pages/ImportWizard.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Filament\Pages; use App\Enums\ImportType; +use App\Enums\NavigationGroup; use App\Jobs\ProcessImportJob; use App\Services\Import\ImportService; use BackedEnum; @@ -32,14 +33,10 @@ class ImportWizard extends Page { protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedArrowUpTray; - protected static string|UnitEnum|null $navigationGroup = 'System'; - - protected static ?string $navigationLabel = 'Import Wizard'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::System; protected static ?int $navigationSort = 2; - protected static ?string $title = 'Import Wizard'; - protected static ?string $slug = 'import-wizard'; /** @@ -55,6 +52,16 @@ class ImportWizard extends Page /** @var array|null */ public ?array $importResult = null; + public static function getNavigationLabel(): string + { + return __('hr.resources.import_wizard'); + } + + public function getTitle(): string|Htmlable + { + return __('hr.import.title'); + } + public function mount(): void { $this->form->fill([ @@ -76,17 +83,17 @@ class ImportWizard extends Page { return $schema->components([ Wizard::make([ - Step::make('Upload') - ->description('Select import type and upload an Excel file') + Step::make(__('hr.import.upload')) + ->description(__('hr.import.upload_description')) ->schema([ Select::make('import_type') - ->label('Import Type') + ->label(__('hr.import.import_type')) ->options(ImportType::class) ->required() ->live() ->afterStateUpdated(fn () => $this->resetColumnMapping()), FileUpload::make('file') - ->label('Excel File') + ->label(__('hr.import.excel_file')) ->disk(config('hr.file_uploads.disk')) ->directory(config('hr.file_uploads.directory') . '/imports') ->acceptedFileTypes([ @@ -97,29 +104,29 @@ class ImportWizard extends Page ->required() ->afterStateUpdated(fn () => $this->loadHeaders()), ]), - Step::make('Map Columns') - ->description('Match spreadsheet columns to system fields') + Step::make(__('hr.import.map_columns')) + ->description(__('hr.import.map_columns_description')) ->schema([ - Section::make('Column Mapping') + Section::make(__('hr.import.column_mapping')) ->schema(fn (): array => $this->getColumnMappingFields()), ]), - Step::make('Preview') - ->description('Review the first 10 rows with validation') + Step::make(__('hr.import.preview_step')) + ->description(__('hr.import.preview_description')) ->schema([ Placeholder::make('preview_table') - ->label('Preview') + ->label(__('hr.import.preview')) ->content(fn (): HtmlString => new HtmlString($this->getPreviewHtml())), ]), - Step::make('Import') - ->description('Run the import and review results') + Step::make(__('hr.import.import_step')) + ->description(__('hr.import.import_description')) ->schema([ Placeholder::make('import_results') - ->label('Import Results') + ->label(__('hr.import.import_results')) ->content(fn (): HtmlString => new HtmlString($this->getResultsHtml())), ]), ]) ->alpineSubmitHandler('$wire.runImport()') - ->submitAction(new HtmlString('')) + ->submitAction(new HtmlString('')) ->skippable(false), ]); } @@ -146,8 +153,8 @@ class ImportWizard extends Page if ($filePath === null) { Notification::make() - ->title('Upload required') - ->body('Please upload an Excel file before importing.') + ->title(__('hr.import.upload_required_title')) + ->body(__('hr.import.upload_required_body')) ->danger() ->send(); @@ -165,8 +172,8 @@ class ImportWizard extends Page ); Notification::make() - ->title('Import queued') - ->body('Your import has been queued and will be processed shortly.') + ->title(__('hr.import.import_queued_title')) + ->body(__('hr.import.import_queued_body')) ->success() ->send(); } @@ -197,14 +204,14 @@ class ImportWizard extends Page } /** - * @return array + * @return array */ protected function getColumnMappingFields(): array { if ($this->headers === []) { return [ Placeholder::make('mapping_hint') - ->content('Upload a file in step 1 to load column headers.'), + ->content(__('hr.import.mapping_hint')), ]; } @@ -228,7 +235,7 @@ class ImportWizard extends Page $path = $this->resolveStoredFilePath(); if ($path === null) { - return '

Upload a file to preview rows.

'; + return '

' . e(__('hr.import.upload_to_preview')) . '

'; } $importType = ImportType::from($this->data['import_type'] ?? ImportType::Employees->value); @@ -238,18 +245,18 @@ class ImportWizard extends Page $validation = $importService->validatePreview($importType, $mappedRows); if ($mappedRows === []) { - return '

No rows found in the uploaded file.

'; + return '

' . e(__('hr.import.no_rows')) . '

'; } $fields = array_keys($importType->fields()); $html = '
'; - $html .= ''; + $html .= ''; foreach ($fields as $field) { $html .= ''; } - $html .= ''; + $html .= ''; foreach ($mappedRows as $index => $row) { $errors = $validation[$index]['errors'] ?? []; @@ -263,7 +270,7 @@ class ImportWizard extends Page $html .= '
Row' . e(__('hr.import.row')) . '' . e($importType->fields()[$field]) . 'Validation
' . e(__('hr.import.validation')) . '
'; if ($errors === []) { - $html .= 'Valid'; + $html .= '' . e(__('hr.import.valid')) . ''; } else { $html .= '' . e(implode(' ', $errors)) . ''; } @@ -281,17 +288,17 @@ class ImportWizard extends Page $this->refreshImportResult(); if ($this->importResult === null) { - return '

Submit the import to see results here after processing completes.

'; + return '

' . e(__('hr.import.submit_to_see_results')) . '

'; } $html = '
'; - $html .= '

Total rows: ' . $this->importResult['total'] . '

'; - $html .= '

Imported: ' . $this->importResult['imported'] . '

'; - $html .= '

Skipped (duplicates): ' . $this->importResult['skipped'] . '

'; - $html .= '

Failed: ' . $this->importResult['failed'] . '

'; + $html .= '

' . e(__('hr.import.total_rows')) . ': ' . $this->importResult['total'] . '

'; + $html .= '

' . e(__('hr.import.imported')) . ': ' . $this->importResult['imported'] . '

'; + $html .= '

' . e(__('hr.import.skipped_duplicates')) . ': ' . $this->importResult['skipped'] . '

'; + $html .= '

' . e(__('hr.import.failed')) . ': ' . $this->importResult['failed'] . '

'; if (($this->importResult['errors'] ?? []) !== []) { - $html .= '
Errors:
    '; + $html .= '
    ' . e(__('hr.import.errors')) . ':
      '; foreach ($this->importResult['errors'] as $error) { $html .= '
    • ' . e($error) . '
    • '; @@ -324,9 +331,4 @@ class ImportWizard extends Page return $this->storedFilePath; } - - public function getTitle(): string|Htmlable - { - return 'Import Wizard'; - } } diff --git a/app/Filament/Resources/ActivityLogs/ActivityLogResource.php b/app/Filament/Resources/ActivityLogs/ActivityLogResource.php index 3afffc9..2181b6f 100644 --- a/app/Filament/Resources/ActivityLogs/ActivityLogResource.php +++ b/app/Filament/Resources/ActivityLogs/ActivityLogResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\ActivityLogs; +use App\Enums\NavigationGroup; use App\Filament\Resources\ActivityLogs\Pages\ListActivityLogs; use App\Filament\Resources\ActivityLogs\Pages\ViewActivityLog; use App\Filament\Resources\ActivityLogs\Schemas\ActivityLogInfolist; @@ -22,18 +23,27 @@ class ActivityLogResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedClipboardDocumentList; - protected static string|UnitEnum|null $navigationGroup = 'System'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::System; protected static ?int $navigationSort = 3; - protected static ?string $navigationLabel = 'Audit Log'; - - protected static ?string $modelLabel = 'Activity Log'; - - protected static ?string $pluralModelLabel = 'Activity Logs'; - protected static ?string $slug = 'activity-logs'; + public static function getNavigationLabel(): string + { + return __('hr.resources.audit_log'); + } + + public static function getModelLabel(): string + { + return __('hr.resources.activity_log'); + } + + public static function getPluralModelLabel(): string + { + return __('hr.resources.activity_logs'); + } + public static function form(Schema $schema): Schema { return $schema; diff --git a/app/Filament/Resources/ActivityLogs/Schemas/ActivityLogInfolist.php b/app/Filament/Resources/ActivityLogs/Schemas/ActivityLogInfolist.php index d4ea636..c6cfedd 100644 --- a/app/Filament/Resources/ActivityLogs/Schemas/ActivityLogInfolist.php +++ b/app/Filament/Resources/ActivityLogs/Schemas/ActivityLogInfolist.php @@ -15,28 +15,28 @@ class ActivityLogInfolist { return $schema ->components([ - Section::make('Activity Details') + Section::make(__('hr.sections.activity_details')) ->schema([ TextEntry::make('created_at') - ->label('Date') + ->label(__('hr.fields.date')) ->dateTime(), TextEntry::make('description'), TextEntry::make('event') ->badge(), TextEntry::make('log_name') - ->label('Log Name'), + ->label(__('hr.fields.log_name')), TextEntry::make('subject_type') - ->label('Subject Type') + ->label(__('hr.fields.subject_type')) ->formatStateUsing(fn (?string $state): string => $state ? class_basename($state) : '—'), TextEntry::make('subject_id') - ->label('Subject ID'), + ->label(__('hr.fields.subject_id')), TextEntry::make('causer.name') - ->label('Causer'), + ->label(__('hr.fields.causer')), KeyValueEntry::make('properties.attributes') - ->label('Changes') + ->label(__('hr.fields.changes')) ->visible(fn ($record): bool => filled($record->properties['attributes'] ?? null)), KeyValueEntry::make('properties.old') - ->label('Previous Values') + ->label(__('hr.fields.previous_values')) ->visible(fn ($record): bool => filled($record->properties['old'] ?? null)), ]) ->columns(2), diff --git a/app/Filament/Resources/ActivityLogs/Tables/ActivityLogsTable.php b/app/Filament/Resources/ActivityLogs/Tables/ActivityLogsTable.php index 6b81612..8d005d7 100644 --- a/app/Filament/Resources/ActivityLogs/Tables/ActivityLogsTable.php +++ b/app/Filament/Resources/ActivityLogs/Tables/ActivityLogsTable.php @@ -25,7 +25,7 @@ class ActivityLogsTable return $table ->columns([ TextColumn::make('created_at') - ->label('Date') + ->label(__('hr.fields.date')) ->dateTime() ->sortable(), TextColumn::make('description') @@ -36,15 +36,15 @@ class ActivityLogsTable ->searchable() ->sortable(), TextColumn::make('subject_type') - ->label('Subject Type') + ->label(__('hr.fields.subject_type')) ->formatStateUsing(fn (?string $state): string => $state ? class_basename($state) : '—') ->searchable() ->sortable(), TextColumn::make('subject_id') - ->label('Subject ID') + ->label(__('hr.fields.subject_id')) ->sortable(), TextColumn::make('causer.name') - ->label('Causer') + ->label(__('hr.fields.causer')) ->searchable() ->sortable(), TextColumn::make('log_name') @@ -53,14 +53,14 @@ class ActivityLogsTable ->defaultSort('created_at', 'desc') ->filters([ SelectFilter::make('subject_type') - ->label('Subject Type') + ->label(__('hr.fields.subject_type')) ->options([ - Employee::class => 'Employee', - Vacation::class => 'Vacation', - Bonus::class => 'Bonus', - DisciplinaryReport::class => 'Disciplinary Report', - Department::class => 'Department', - User::class => 'User', + Employee::class => __('hr.audit.employee'), + Vacation::class => __('hr.audit.vacation'), + Bonus::class => __('hr.audit.bonus'), + DisciplinaryReport::class => __('hr.audit.disciplinary_report'), + Department::class => __('hr.audit.department'), + User::class => __('hr.audit.user'), ]), SelectFilter::make('event') ->options(fn (): array => \Spatie\Activitylog\Models\Activity::query() @@ -69,16 +69,16 @@ class ActivityLogsTable ->pluck('event', 'event') ->all()), SelectFilter::make('causer') - ->label('Causer') + ->label(__('hr.fields.causer')) ->relationship('causer', 'name') ->searchable() ->preload(), Filter::make('created_at') ->schema([ DatePicker::make('from') - ->label('From'), + ->label(__('hr.fields.from')), DatePicker::make('until') - ->label('Until'), + ->label(__('hr.fields.until')), ]) ->query(function (Builder $query, array $data): Builder { return $query diff --git a/app/Filament/Resources/Bonuses/BonusResource.php b/app/Filament/Resources/Bonuses/BonusResource.php index 75ded37..39806ba 100644 --- a/app/Filament/Resources/Bonuses/BonusResource.php +++ b/app/Filament/Resources/Bonuses/BonusResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Bonuses; +use App\Enums\NavigationGroup; use App\Filament\Resources\Bonuses\Pages\CreateBonus; use App\Filament\Resources\Bonuses\Pages\EditBonus; use App\Filament\Resources\Bonuses\Pages\ListBonuses; @@ -27,7 +28,7 @@ class BonusResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedCurrencyDollar; - protected static string | UnitEnum | null $navigationGroup = 'Records'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Records; protected static ?int $navigationSort = 3; diff --git a/app/Filament/Resources/Bonuses/Schemas/BonusInfolist.php b/app/Filament/Resources/Bonuses/Schemas/BonusInfolist.php index 495794c..420d244 100644 --- a/app/Filament/Resources/Bonuses/Schemas/BonusInfolist.php +++ b/app/Filament/Resources/Bonuses/Schemas/BonusInfolist.php @@ -13,7 +13,7 @@ class BonusInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('bonus_date') ->date(), TextEntry::make('bonus_type') diff --git a/app/Filament/Resources/Bonuses/Tables/BonusesTable.php b/app/Filament/Resources/Bonuses/Tables/BonusesTable.php index 4b8e194..cc69626 100644 --- a/app/Filament/Resources/Bonuses/Tables/BonusesTable.php +++ b/app/Filament/Resources/Bonuses/Tables/BonusesTable.php @@ -22,14 +22,14 @@ class BonusesTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('bonus_date') ->date() ->sortable(), TextColumn::make('bonus_type') - ->label('Type') + ->label(__('hr.fields.type')) ->badge() ->color(fn (BonusType $state): string => $state->color()) ->formatStateUsing(fn (BonusType $state): string => $state->label()) @@ -56,7 +56,7 @@ class BonusesTable ]) ->filters([ SelectFilter::make('bonus_type') - ->label('Type') + ->label(__('hr.fields.type')) ->options(BonusType::class), TrashedFilter::make(), ]) diff --git a/app/Filament/Resources/Departments/DepartmentResource.php b/app/Filament/Resources/Departments/DepartmentResource.php index 88212db..f9fd3a7 100644 --- a/app/Filament/Resources/Departments/DepartmentResource.php +++ b/app/Filament/Resources/Departments/DepartmentResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Departments; +use App\Enums\NavigationGroup; use App\Filament\Resources\Departments\Pages\CreateDepartment; use App\Filament\Resources\Departments\Pages\EditDepartment; use App\Filament\Resources\Departments\Pages\ListDepartments; @@ -27,7 +28,7 @@ class DepartmentResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedBuildingOffice2; - protected static string | UnitEnum | null $navigationGroup = 'Organization'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Organization; protected static ?int $navigationSort = 1; diff --git a/app/Filament/Resources/Departments/Schemas/DepartmentForm.php b/app/Filament/Resources/Departments/Schemas/DepartmentForm.php index 7ba0a16..6c3ccb0 100644 --- a/app/Filament/Resources/Departments/Schemas/DepartmentForm.php +++ b/app/Filament/Resources/Departments/Schemas/DepartmentForm.php @@ -24,7 +24,7 @@ class DepartmentForm ->rows(3) ->columnSpanFull(), Toggle::make('is_active') - ->label('Active') + ->label(__('hr.fields.active')) ->default(true) ->required(), ]); diff --git a/app/Filament/Resources/Departments/Tables/DepartmentsTable.php b/app/Filament/Resources/Departments/Tables/DepartmentsTable.php index 607edf4..7f76c07 100644 --- a/app/Filament/Resources/Departments/Tables/DepartmentsTable.php +++ b/app/Filament/Resources/Departments/Tables/DepartmentsTable.php @@ -29,9 +29,9 @@ class DepartmentsTable ->limit(50) ->toggleable(), TextColumn::make('is_active') - ->label('Status') + ->label(__('hr.fields.status')) ->badge() - ->formatStateUsing(fn (bool $state): string => $state ? 'Active' : 'Inactive') + ->formatStateUsing(fn (bool $state): string => $state ? __('enums.employment_status.active') : __('enums.employment_status.inactive')) ->color(fn (bool $state): string => $state ? 'success' : 'danger') ->sortable(), TextColumn::make('created_at') @@ -49,10 +49,10 @@ class DepartmentsTable ]) ->filters([ TernaryFilter::make('is_active') - ->label('Status') - ->placeholder('All departments') - ->trueLabel('Active') - ->falseLabel('Inactive'), + ->label(__('hr.fields.status')) + ->placeholder(__('hr.filters.all_departments')) + ->trueLabel(__('enums.employment_status.active')) + ->falseLabel(__('enums.employment_status.inactive')), TrashedFilter::make(), ]) ->recordActions([ diff --git a/app/Filament/Resources/DisciplinaryReports/DisciplinaryReportResource.php b/app/Filament/Resources/DisciplinaryReports/DisciplinaryReportResource.php index 3503735..aa1d612 100644 --- a/app/Filament/Resources/DisciplinaryReports/DisciplinaryReportResource.php +++ b/app/Filament/Resources/DisciplinaryReports/DisciplinaryReportResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\DisciplinaryReports; +use App\Enums\NavigationGroup; use App\Filament\Resources\DisciplinaryReports\Pages\CreateDisciplinaryReport; use App\Filament\Resources\DisciplinaryReports\Pages\EditDisciplinaryReport; use App\Filament\Resources\DisciplinaryReports\Pages\ListDisciplinaryReports; @@ -27,7 +28,7 @@ class DisciplinaryReportResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedExclamationTriangle; - protected static string | UnitEnum | null $navigationGroup = 'Records'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Records; protected static ?int $navigationSort = 1; diff --git a/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportForm.php b/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportForm.php index 3ecb1a8..6f23116 100644 --- a/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportForm.php +++ b/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportForm.php @@ -32,7 +32,7 @@ class DisciplinaryReportForm ->required() ->native(false), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); diff --git a/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportInfolist.php b/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportInfolist.php index 9702a9c..95752a2 100644 --- a/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportInfolist.php +++ b/app/Filament/Resources/DisciplinaryReports/Schemas/DisciplinaryReportInfolist.php @@ -13,7 +13,7 @@ class DisciplinaryReportInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('report_date') ->date(), TextEntry::make('title'), diff --git a/app/Filament/Resources/DisciplinaryReports/Tables/DisciplinaryReportsTable.php b/app/Filament/Resources/DisciplinaryReports/Tables/DisciplinaryReportsTable.php index 2a7a7e3..2bd4078 100644 --- a/app/Filament/Resources/DisciplinaryReports/Tables/DisciplinaryReportsTable.php +++ b/app/Filament/Resources/DisciplinaryReports/Tables/DisciplinaryReportsTable.php @@ -23,7 +23,7 @@ class DisciplinaryReportsTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('report_date') @@ -39,12 +39,12 @@ class DisciplinaryReportsTable ->searchable() ->sortable(), IconColumn::make('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->boolean() ->trueIcon('heroicon-o-paper-clip') ->falseIcon('heroicon-o-minus'), TextColumn::make('creator.name') - ->label('Created By') + ->label(__('hr.fields.created_by')) ->sortable() ->toggleable(), TextColumn::make('created_at') diff --git a/app/Filament/Resources/EmployeeDocuments/EmployeeDocumentResource.php b/app/Filament/Resources/EmployeeDocuments/EmployeeDocumentResource.php index 65c2729..f7b8e19 100644 --- a/app/Filament/Resources/EmployeeDocuments/EmployeeDocumentResource.php +++ b/app/Filament/Resources/EmployeeDocuments/EmployeeDocumentResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\EmployeeDocuments; +use App\Enums\NavigationGroup; use App\Filament\Resources\EmployeeDocuments\Pages\CreateEmployeeDocument; use App\Filament\Resources\EmployeeDocuments\Pages\EditEmployeeDocument; use App\Filament\Resources\EmployeeDocuments\Pages\ListEmployeeDocuments; @@ -27,7 +28,7 @@ class EmployeeDocumentResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedDocument; - protected static string | UnitEnum | null $navigationGroup = 'Records'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Records; protected static ?int $navigationSort = 5; diff --git a/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentForm.php b/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentForm.php index 9b1480d..0efc89f 100644 --- a/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentForm.php +++ b/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentForm.php @@ -23,7 +23,7 @@ class EmployeeDocumentForm ->required() ->maxLength(255), HrForm::fileUpload('file_path') - ->label('Document') + ->label(__('hr.fields.document')) ->required() ->acceptedFileTypes(['application/pdf', 'image/*', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document']) ->maxSize(15360), diff --git a/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentInfolist.php b/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentInfolist.php index 992167c..9a27217 100644 --- a/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentInfolist.php +++ b/app/Filament/Resources/EmployeeDocuments/Schemas/EmployeeDocumentInfolist.php @@ -13,7 +13,7 @@ class EmployeeDocumentInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('document_type') ->badge(), TextEntry::make('title'), diff --git a/app/Filament/Resources/EmployeeDocuments/Tables/EmployeeDocumentsTable.php b/app/Filament/Resources/EmployeeDocuments/Tables/EmployeeDocumentsTable.php index 670ca1b..d1a55c7 100644 --- a/app/Filament/Resources/EmployeeDocuments/Tables/EmployeeDocumentsTable.php +++ b/app/Filament/Resources/EmployeeDocuments/Tables/EmployeeDocumentsTable.php @@ -24,11 +24,11 @@ class EmployeeDocumentsTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('document_type') - ->label('Type') + ->label(__('hr.fields.type')) ->badge() ->color(fn (DocumentType $state): string => $state->color()) ->formatStateUsing(fn (DocumentType $state): string => $state->label()) @@ -56,13 +56,13 @@ class EmployeeDocumentsTable ]) ->filters([ SelectFilter::make('document_type') - ->label('Type') + ->label(__('hr.fields.type')) ->options(DocumentType::class), TrashedFilter::make(), ]) ->recordActions([ Action::make('download') - ->label('Download') + ->label(__('hr.actions.download')) ->icon('heroicon-o-arrow-down-tray') ->visible(fn (EmployeeDocument $record): bool => filled($record->file_path)) ->action(function (EmployeeDocument $record) { diff --git a/app/Filament/Resources/Employees/EmployeeResource.php b/app/Filament/Resources/Employees/EmployeeResource.php index 885f121..e99cf17 100644 --- a/app/Filament/Resources/Employees/EmployeeResource.php +++ b/app/Filament/Resources/Employees/EmployeeResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Employees; +use App\Enums\NavigationGroup; use App\Filament\Resources\Employees\Pages\CreateEmployee; use App\Filament\Resources\Employees\Pages\EditEmployee; use App\Filament\Resources\Employees\Pages\ListEmployees; @@ -36,7 +37,7 @@ class EmployeeResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedUsers; - protected static string | UnitEnum | null $navigationGroup = 'Employees'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Employees; protected static ?int $navigationSort = 1; @@ -80,9 +81,9 @@ class EmployeeResource extends Resource { /** @var Employee $record */ return [ - 'Employee #' => $record->employee_number, - 'Department' => $record->department?->name ?? '—', - 'Position' => $record->position?->name ?? '—', + __('hr.fields.employee_number') => $record->employee_number, + __('hr.fields.department') => $record->department?->name ?? '—', + __('hr.fields.position') => $record->position?->name ?? '—', ]; } diff --git a/app/Filament/Resources/Employees/RelationManagers/BonusesRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/BonusesRelationManager.php index de5a320..f8eb1ee 100644 --- a/app/Filament/Resources/Employees/RelationManagers/BonusesRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/BonusesRelationManager.php @@ -27,7 +27,10 @@ class BonusesRelationManager extends RelationManager { protected static string $relationship = 'bonuses'; - protected static ?string $title = 'Bonuses'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.bonuses"); + } public function form(Schema $schema): Schema { @@ -61,7 +64,7 @@ class BonusesRelationManager extends RelationManager ->date() ->sortable(), TextColumn::make('bonus_type') - ->label('Type') + ->label(__('hr.fields.type')) ->badge() ->color(fn (BonusType $state): string => $state->color()) ->formatStateUsing(fn (BonusType $state): string => $state->label()) @@ -75,7 +78,7 @@ class BonusesRelationManager extends RelationManager ]) ->filters([ SelectFilter::make('bonus_type') - ->label('Type') + ->label(__('hr.fields.type')) ->options(BonusType::class), TrashedFilter::make(), ]) diff --git a/app/Filament/Resources/Employees/RelationManagers/DisciplinaryReportsRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/DisciplinaryReportsRelationManager.php index e90d5a9..7672e12 100644 --- a/app/Filament/Resources/Employees/RelationManagers/DisciplinaryReportsRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/DisciplinaryReportsRelationManager.php @@ -29,7 +29,10 @@ class DisciplinaryReportsRelationManager extends RelationManager { protected static string $relationship = 'disciplinaryReports'; - protected static ?string $title = 'Disciplinary Reports'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.disciplinary_reports"); + } public function form(Schema $schema): Schema { @@ -50,7 +53,7 @@ class DisciplinaryReportsRelationManager extends RelationManager ->required() ->native(false), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); @@ -73,12 +76,12 @@ class DisciplinaryReportsRelationManager extends RelationManager ->formatStateUsing(fn (DisciplinarySeverity $state): string => $state->label()) ->sortable(), IconColumn::make('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->boolean() ->trueIcon('heroicon-o-paper-clip') ->falseIcon('heroicon-o-minus'), TextColumn::make('creator.name') - ->label('Created By') + ->label(__('hr.fields.created_by')) ->toggleable(), ]) ->filters([ diff --git a/app/Filament/Resources/Employees/RelationManagers/DocumentsRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/DocumentsRelationManager.php index 252bfc2..0fa6aca 100644 --- a/app/Filament/Resources/Employees/RelationManagers/DocumentsRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/DocumentsRelationManager.php @@ -29,7 +29,10 @@ class DocumentsRelationManager extends RelationManager { protected static string $relationship = 'documents'; - protected static ?string $title = 'Employee Documents'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.employee_documents"); + } public function form(Schema $schema): Schema { @@ -43,7 +46,7 @@ class DocumentsRelationManager extends RelationManager ->required() ->maxLength(255), HrForm::fileUpload('file_path') - ->label('Document') + ->label(__('hr.fields.document')) ->required() ->acceptedFileTypes(['application/pdf', 'image/*', 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document']) ->maxSize(15360), @@ -56,7 +59,7 @@ class DocumentsRelationManager extends RelationManager ->recordTitleAttribute('title') ->columns([ TextColumn::make('document_type') - ->label('Type') + ->label(__('hr.fields.type')) ->badge() ->color(fn (DocumentType $state): string => $state->color()) ->formatStateUsing(fn (DocumentType $state): string => $state->label()) @@ -71,7 +74,7 @@ class DocumentsRelationManager extends RelationManager ]) ->filters([ SelectFilter::make('document_type') - ->label('Type') + ->label(__('hr.fields.type')) ->options(DocumentType::class), TrashedFilter::make(), ]) @@ -80,7 +83,7 @@ class DocumentsRelationManager extends RelationManager ]) ->recordActions([ Action::make('download') - ->label('Download') + ->label(__('hr.actions.download')) ->icon('heroicon-o-arrow-down-tray') ->visible(fn (EmployeeDocument $record): bool => filled($record->file_path)) ->action(function (EmployeeDocument $record) { diff --git a/app/Filament/Resources/Employees/RelationManagers/ExplanationsRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/ExplanationsRelationManager.php index 3099f1f..463ba1b 100644 --- a/app/Filament/Resources/Employees/RelationManagers/ExplanationsRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/ExplanationsRelationManager.php @@ -26,7 +26,10 @@ class ExplanationsRelationManager extends RelationManager { protected static string $relationship = 'explanations'; - protected static ?string $title = 'Explanations'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.explanations"); + } public function form(Schema $schema): Schema { @@ -43,7 +46,7 @@ class ExplanationsRelationManager extends RelationManager ->rows(4) ->columnSpanFull(), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); @@ -64,7 +67,7 @@ class ExplanationsRelationManager extends RelationManager ->limit(50) ->toggleable(), IconColumn::make('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->boolean() ->trueIcon('heroicon-o-paper-clip') ->falseIcon('heroicon-o-minus'), diff --git a/app/Filament/Resources/Employees/RelationManagers/GiftsRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/GiftsRelationManager.php index 03b86ae..c7f6a89 100644 --- a/app/Filament/Resources/Employees/RelationManagers/GiftsRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/GiftsRelationManager.php @@ -24,7 +24,10 @@ class GiftsRelationManager extends RelationManager { protected static string $relationship = 'gifts'; - protected static ?string $title = 'Gifts'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.gifts"); + } public function form(Schema $schema): Schema { @@ -34,7 +37,7 @@ class GiftsRelationManager extends RelationManager ->required() ->default(now()), TextInput::make('gift_name') - ->label('Gift Name') + ->label(__('hr.fields.gift_name')) ->required() ->maxLength(255), TextInput::make('value') @@ -59,7 +62,7 @@ class GiftsRelationManager extends RelationManager ->date() ->sortable(), TextColumn::make('gift_name') - ->label('Gift') + ->label(__('hr.fields.gift')) ->searchable() ->sortable(), TextColumn::make('value') diff --git a/app/Filament/Resources/Employees/RelationManagers/SickLeavesRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/SickLeavesRelationManager.php index 0d3766b..d7c010c 100644 --- a/app/Filament/Resources/Employees/RelationManagers/SickLeavesRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/SickLeavesRelationManager.php @@ -25,14 +25,17 @@ class SickLeavesRelationManager extends RelationManager { protected static string $relationship = 'sickLeaves'; - protected static ?string $title = 'Sick Leaves'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.sick_leaves"); + } public function form(Schema $schema): Schema { return $schema ->components([ - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), HrForm::leaveDaysDisplay(), TextInput::make('medical_institution') ->maxLength(255), @@ -40,7 +43,7 @@ class SickLeavesRelationManager extends RelationManager ->rows(3) ->columnSpanFull(), HrForm::fileUpload('document_path') - ->label('Medical Document') + ->label(__('hr.fields.medical_document')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); @@ -64,7 +67,7 @@ class SickLeavesRelationManager extends RelationManager ->searchable() ->toggleable(), IconColumn::make('document_path') - ->label('Document') + ->label(__('hr.fields.document')) ->boolean() ->trueIcon('heroicon-o-document-check') ->falseIcon('heroicon-o-document'), diff --git a/app/Filament/Resources/Employees/RelationManagers/UnpaidLeavesRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/UnpaidLeavesRelationManager.php index 7a8de3b..87de136 100644 --- a/app/Filament/Resources/Employees/RelationManagers/UnpaidLeavesRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/UnpaidLeavesRelationManager.php @@ -29,14 +29,17 @@ class UnpaidLeavesRelationManager extends RelationManager { protected static string $relationship = 'unpaidLeaves'; - protected static ?string $title = 'Unpaid Leaves'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.unpaid_leaves"); + } public function form(Schema $schema): Schema { return $schema ->components([ - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), HrForm::leaveDaysDisplay(), Textarea::make('reason') ->rows(3) @@ -64,7 +67,7 @@ class UnpaidLeavesRelationManager extends RelationManager ->formatStateUsing(fn (ApprovalStatus $state): string => $state->label()) ->sortable(), TextColumn::make('approver.name') - ->label('Approved By') + ->label(__('hr.fields.approved_by')) ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ @@ -77,7 +80,7 @@ class UnpaidLeavesRelationManager extends RelationManager ]) ->recordActions([ Action::make('approve') - ->label('Approve') + ->label(__('hr.actions.approve')) ->icon('heroicon-o-check-badge') ->color('success') ->requiresConfirmation() @@ -86,7 +89,7 @@ class UnpaidLeavesRelationManager extends RelationManager $unpaidLeaveService->approve($record, Auth::user()); }), Action::make('reject') - ->label('Reject') + ->label(__('hr.actions.reject')) ->icon('heroicon-o-x-mark') ->color('danger') ->requiresConfirmation() diff --git a/app/Filament/Resources/Employees/RelationManagers/VacationsRelationManager.php b/app/Filament/Resources/Employees/RelationManagers/VacationsRelationManager.php index 883f6a6..66ce842 100644 --- a/app/Filament/Resources/Employees/RelationManagers/VacationsRelationManager.php +++ b/app/Filament/Resources/Employees/RelationManagers/VacationsRelationManager.php @@ -32,7 +32,10 @@ class VacationsRelationManager extends RelationManager { protected static string $relationship = 'vacations'; - protected static ?string $title = 'Vacations'; + public static function getTitle(\Illuminate\Database\Eloquent\Model $ownerRecord, string $pageClass): string + { + return __("hr.relation_managers.vacations"); + } public function form(Schema $schema): Schema { @@ -42,16 +45,16 @@ class VacationsRelationManager extends RelationManager ->options(VacationType::class) ->required() ->native(false), - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), DatePicker::make('return_date') - ->label('Return Date'), + ->label(__('hr.fields.return_date')), HrForm::leaveDaysDisplay(), Textarea::make('reason') ->rows(3) ->columnSpanFull(), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); @@ -82,7 +85,7 @@ class VacationsRelationManager extends RelationManager ->formatStateUsing(fn (ApprovalStatus $state): string => $state->label()) ->sortable(), TextColumn::make('approver.name') - ->label('Approved By') + ->label(__('hr.fields.approved_by')) ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ @@ -97,7 +100,7 @@ class VacationsRelationManager extends RelationManager ]) ->recordActions([ Action::make('approve') - ->label('Approve') + ->label(__('hr.actions.approve')) ->icon('heroicon-o-check-badge') ->color('success') ->requiresConfirmation() @@ -106,7 +109,7 @@ class VacationsRelationManager extends RelationManager $vacationService->approve($record, Auth::user()); }), Action::make('reject') - ->label('Reject') + ->label(__('hr.actions.reject')) ->icon('heroicon-o-x-mark') ->color('danger') ->requiresConfirmation() diff --git a/app/Filament/Resources/Employees/Schemas/EmployeeForm.php b/app/Filament/Resources/Employees/Schemas/EmployeeForm.php index f9b9947..30e296f 100644 --- a/app/Filament/Resources/Employees/Schemas/EmployeeForm.php +++ b/app/Filament/Resources/Employees/Schemas/EmployeeForm.php @@ -19,12 +19,12 @@ class EmployeeForm { return $schema ->components([ - Tabs::make('Employee') + Tabs::make(__('hr.tabs.employee')) ->tabs([ - Tab::make('Personal') + Tab::make(__('hr.tabs.personal')) ->schema([ HrForm::fileUpload('profile_photo_path') - ->label('Photo') + ->label(__('hr.fields.photo')) ->image() ->avatar() ->imageEditor(), @@ -36,7 +36,7 @@ class EmployeeForm ->required() ->maxLength(255), TextInput::make('national_id') - ->label('National ID') + ->label(__('hr.fields.national_id')) ->maxLength(50), Select::make('gender') ->options(Gender::class) @@ -53,7 +53,7 @@ class EmployeeForm ->columnSpanFull(), ]) ->columns(2), - Tab::make('Employment') + Tab::make(__('hr.tabs.employment')) ->schema([ Select::make('department_id') ->relationship('department', 'name') diff --git a/app/Filament/Resources/Employees/Schemas/EmployeeInfolist.php b/app/Filament/Resources/Employees/Schemas/EmployeeInfolist.php index 222c856..e7e2028 100644 --- a/app/Filament/Resources/Employees/Schemas/EmployeeInfolist.php +++ b/app/Filament/Resources/Employees/Schemas/EmployeeInfolist.php @@ -22,14 +22,14 @@ class EmployeeInfolist { return $schema ->components([ - Tabs::make('Employee Details') + Tabs::make(__('hr.sections.employee_details')) ->tabs([ - Tab::make('Overview') + Tab::make(__('hr.sections.overview')) ->schema([ - Section::make('Profile') + Section::make(__('hr.sections.profile')) ->schema([ ImageEntry::make('profile_photo_path') - ->label('Photo') + ->label(__('hr.fields.photo')) ->disk(config('hr.file_uploads.disk')) ->visibility('private') ->circular() @@ -37,10 +37,10 @@ class EmployeeInfolist ->placeholder('—') ->columnSpanFull(), TextEntry::make('employee_number') - ->label('Employee #'), + ->label(__('hr.fields.employee_number')), TextEntry::make('full_name'), TextEntry::make('national_id') - ->label('National ID') + ->label(__('hr.fields.national_id')) ->placeholder('—'), TextEntry::make('gender') ->badge() @@ -54,18 +54,18 @@ class EmployeeInfolist ->columnSpanFull(), ]) ->columns(2), - Section::make('Organization') + Section::make(__('hr.navigation.organization')) ->schema([ TextEntry::make('department.name') - ->label('Department') + ->label(__('hr.fields.department')) ->badge() ->color('info'), TextEntry::make('position.name') - ->label('Position') + ->label(__('hr.fields.position')) ->badge() ->color('primary'), TextEntry::make('shift.name') - ->label('Shift') + ->label(__('hr.fields.shift')) ->badge() ->color('gray'), TextEntry::make('employment_status') @@ -75,19 +75,19 @@ class EmployeeInfolist ->icon(fn (EmploymentStatus $state): string => $state->icon()), ]) ->columns(2), - Section::make('Employment Timeline') + Section::make(__('hr.sections.employment_timeline')) ->schema([ TextEntry::make('hire_date') - ->label('Hire Date') + ->label(__('hr.fields.hire_date')) ->date() ->icon('heroicon-o-calendar'), TextEntry::make('termination_date') - ->label('Termination Date') + ->label(__('hr.fields.termination_date')) ->date() ->placeholder('—') ->icon('heroicon-o-calendar-days'), TextEntry::make('tenure') - ->label('Tenure') + ->label(__('hr.fields.tenure')) ->state(fn (Employee $record): string => $record->hire_date ? $record->hire_date->diffForHumans(now(), true) : '—'), @@ -97,78 +97,78 @@ class EmployeeInfolist ]) ->columns(2), ]), - Tab::make('Statistics') + Tab::make(__('hr.sections.statistics')) ->schema([ - Section::make('Leave & Attendance') + Section::make(__('hr.sections.leave_attendance')) ->schema([ TextEntry::make('stats_vacation_taken') - ->label('Vacation Taken (days)') + ->label(__('hr.fields.vacation_taken_days')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->vacationTaken) ->numeric() ->icon('heroicon-o-sun'), TextEntry::make('stats_vacation_remaining') - ->label('Vacation Remaining (days)') + ->label(__('hr.fields.vacation_remaining_days')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->vacationRemaining) ->numeric() ->color('success') ->icon('heroicon-o-calendar'), TextEntry::make('stats_sick_leave_count') - ->label('Sick Leave Records') + ->label(__('hr.fields.sick_leave_records')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->sickLeaveCount) ->numeric() ->icon('heroicon-o-heart'), ]) ->columns(3), - Section::make('HR Records') + Section::make(__('hr.sections.hr_records')) ->schema([ TextEntry::make('stats_reports_count') - ->label('Disciplinary Reports') + ->label(__('hr.fields.disciplinary_reports')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->reportsCount) ->numeric() ->icon('heroicon-o-exclamation-triangle'), TextEntry::make('stats_bonuses_total') - ->label('Total Bonuses') + ->label(__('hr.fields.total_bonuses')) ->state(fn (Employee $record): float => app(EmployeeStatisticsService::class)->summary($record)->bonusesTotal) ->money('TMT') ->icon('heroicon-o-banknotes'), TextEntry::make('stats_gifts_count') - ->label('Gifts Received') + ->label(__('hr.fields.gifts_received')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->giftsCount) ->numeric() ->icon('heroicon-o-gift'), ]) ->columns(3), ]), - Tab::make('Leave Summary') + Tab::make(__('hr.sections.leave_summary')) ->schema([ - Section::make('Annual Leave Balance') + Section::make(__('hr.sections.annual_leave_balance')) ->schema([ TextEntry::make('leave_balance_taken') - ->label('Days Taken') + ->label(__('hr.fields.days_taken')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->vacationTaken) - ->suffix(' days'), + ->suffix(' ' . __('hr.messages.days_suffix')), TextEntry::make('leave_balance_remaining') - ->label('Days Remaining') + ->label(__('hr.fields.days_remaining')) ->state(fn (Employee $record): int => app(EmployeeStatisticsService::class)->summary($record)->vacationRemaining) - ->suffix(' days') + ->suffix(' ' . __('hr.messages.days_suffix')) ->color('success'), TextEntry::make('leave_balance_total') - ->label('Annual Allowance') + ->label(__('hr.fields.annual_allowance')) ->state(fn (): int => (int) config('hr.annual_leave_days')) - ->suffix(' days'), + ->suffix(' ' . __('hr.messages.days_suffix')), ]) ->columns(3), - Section::make('Upcoming Approved Leave') + Section::make(__('hr.sections.upcoming_approved_leave')) ->schema([ TextEntry::make('upcoming_leave') - ->label('Scheduled Vacations') + ->label(__('hr.fields.scheduled_vacations')) ->state(function (Employee $record): string { $upcoming = app(EmployeeStatisticsService::class) ->summary($record) ->upcomingLeave; if ($upcoming->isEmpty()) { - return 'No upcoming approved leave'; + return __('hr.messages.no_upcoming_approved_leave'); } return $upcoming @@ -184,14 +184,14 @@ class EmployeeInfolist ->listWithLineBreaks() ->columnSpanFull(), ]), - Section::make('Other Leave Types') + Section::make(__('hr.sections.other_leave_types')) ->schema([ TextEntry::make('unpaid_leaves_count') - ->label('Unpaid Leave Records') + ->label(__('hr.fields.unpaid_leave_records')) ->state(fn (Employee $record): int => $record->unpaidLeaves()->count()) ->numeric(), TextEntry::make('explanations_count') - ->label('Explanations') + ->label(__('hr.fields.explanations')) ->state(fn (Employee $record): int => $record->explanations()->count()) ->numeric(), ]) diff --git a/app/Filament/Resources/Employees/Tables/EmployeesTable.php b/app/Filament/Resources/Employees/Tables/EmployeesTable.php index c484651..33b1f18 100644 --- a/app/Filament/Resources/Employees/Tables/EmployeesTable.php +++ b/app/Filament/Resources/Employees/Tables/EmployeesTable.php @@ -28,14 +28,14 @@ class EmployeesTable return $table ->columns([ TextColumn::make('employee_number') - ->label('Number') + ->label(__('hr.fields.number')) ->searchable() ->sortable(), TextColumn::make('full_name') ->searchable() ->sortable(), TextColumn::make('national_id') - ->label('National ID') + ->label(__('hr.fields.national_id')) ->searchable() ->toggleable(), TextColumn::make('gender') @@ -47,25 +47,25 @@ class EmployeesTable ->searchable() ->toggleable(), TextColumn::make('department.name') - ->label('Department') + ->label(__('hr.fields.department')) ->badge() ->color('info') ->searchable() ->sortable(), TextColumn::make('position.name') - ->label('Position') + ->label(__('hr.fields.position')) ->badge() ->color('primary') ->searchable() ->sortable(), TextColumn::make('shift.name') - ->label('Shift') + ->label(__('hr.fields.shift')) ->badge() ->color('gray') ->searchable() ->sortable(), TextColumn::make('employment_status') - ->label('Status') + ->label(__('hr.fields.status')) ->badge() ->color(fn (EmploymentStatus $state): string => $state->color()) ->formatStateUsing(fn (EmploymentStatus $state): string => $state->label()) @@ -93,22 +93,22 @@ class EmployeesTable ]) ->filters([ SelectFilter::make('department_id') - ->label('Department') + ->label(__('hr.fields.department')) ->relationship('department', 'name') ->searchable() ->preload(), SelectFilter::make('position_id') - ->label('Position') + ->label(__('hr.fields.position')) ->relationship('position', 'name') ->searchable() ->preload(), SelectFilter::make('shift_id') - ->label('Shift') + ->label(__('hr.fields.shift')) ->relationship('shift', 'name') ->searchable() ->preload(), SelectFilter::make('employment_status') - ->label('Employment Status') + ->label(__('hr.fields.employment_status')) ->options(EmploymentStatus::class), TrashedFilter::make(), ]) @@ -120,11 +120,11 @@ class EmployeesTable BulkActionGroup::make([ ExportExcelAction::bulk('exportSelected', \App\Exports\EmployeesExport::class, 'employees.xlsx'), BulkAction::make('changeDepartment') - ->label('Change Department') + ->label(__('hr.actions.change_department')) ->icon('heroicon-o-building-office-2') ->schema([ Select::make('department_id') - ->label('Department') + ->label(__('hr.fields.department')) ->options(fn (): array => Department::query()->orderBy('name')->pluck('name', 'id')->all()) ->searchable() ->required(), diff --git a/app/Filament/Resources/Employees/Widgets/EmployeeStatsWidget.php b/app/Filament/Resources/Employees/Widgets/EmployeeStatsWidget.php index 3ba1280..259bcf8 100644 --- a/app/Filament/Resources/Employees/Widgets/EmployeeStatsWidget.php +++ b/app/Filament/Resources/Employees/Widgets/EmployeeStatsWidget.php @@ -22,23 +22,23 @@ class EmployeeStatsWidget extends StatsOverviewWidget $summary = app(EmployeeStatisticsService::class)->summary($this->record); return [ - Stat::make('Vacation Taken', (string) $summary->vacationTaken) - ->description("{$summary->vacationRemaining} days remaining") + Stat::make(__('hr.fields.vacation_taken_days'), (string) $summary->vacationTaken) + ->description("{$summary->vacationRemaining} " . __('hr.fields.days_remaining')) ->descriptionIcon('heroicon-o-calendar') ->color('primary') ->icon('heroicon-o-sun'), - Stat::make('Sick Leaves', (string) $summary->sickLeaveCount) - ->description('Total records') + Stat::make(__('hr.relation_managers.sick_leaves'), (string) $summary->sickLeaveCount) + ->description(__('hr.fields.sick_leave_records')) ->descriptionIcon('heroicon-o-heart') ->color('warning') ->icon('heroicon-o-heart'), - Stat::make('Disciplinary Reports', (string) $summary->reportsCount) - ->description('On file') + Stat::make(__('hr.fields.disciplinary_reports'), (string) $summary->reportsCount) + ->description(__('hr.fields.disciplinary_reports')) ->descriptionIcon('heroicon-o-exclamation-triangle') ->color('danger') ->icon('heroicon-o-exclamation-triangle'), - Stat::make('Total Bonuses', number_format($summary->bonusesTotal, 2).' TMT') - ->description("{$summary->giftsCount} gifts received") + Stat::make(__('hr.fields.total_bonuses'), number_format($summary->bonusesTotal, 2).' TMT') + ->description("{$summary->giftsCount} " . __('hr.fields.gifts_received')) ->descriptionIcon('heroicon-o-gift') ->color('success') ->icon('heroicon-o-banknotes'), diff --git a/app/Filament/Resources/Explanations/ExplanationResource.php b/app/Filament/Resources/Explanations/ExplanationResource.php index 54bc2ce..ee9a7c5 100644 --- a/app/Filament/Resources/Explanations/ExplanationResource.php +++ b/app/Filament/Resources/Explanations/ExplanationResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Explanations; +use App\Enums\NavigationGroup; use App\Filament\Resources\Explanations\Pages\CreateExplanation; use App\Filament\Resources\Explanations\Pages\EditExplanation; use App\Filament\Resources\Explanations\Pages\ListExplanations; @@ -27,7 +28,7 @@ class ExplanationResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedDocumentText; - protected static string | UnitEnum | null $navigationGroup = 'Records'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Records; protected static ?int $navigationSort = 2; diff --git a/app/Filament/Resources/Explanations/Schemas/ExplanationForm.php b/app/Filament/Resources/Explanations/Schemas/ExplanationForm.php index 3bdbc81..d60cabe 100644 --- a/app/Filament/Resources/Explanations/Schemas/ExplanationForm.php +++ b/app/Filament/Resources/Explanations/Schemas/ExplanationForm.php @@ -26,7 +26,7 @@ class ExplanationForm ->rows(4) ->columnSpanFull(), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); diff --git a/app/Filament/Resources/Explanations/Schemas/ExplanationInfolist.php b/app/Filament/Resources/Explanations/Schemas/ExplanationInfolist.php index cac3e9b..4762d7f 100644 --- a/app/Filament/Resources/Explanations/Schemas/ExplanationInfolist.php +++ b/app/Filament/Resources/Explanations/Schemas/ExplanationInfolist.php @@ -13,7 +13,7 @@ class ExplanationInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('explanation_date') ->date(), TextEntry::make('reason'), diff --git a/app/Filament/Resources/Explanations/Tables/ExplanationsTable.php b/app/Filament/Resources/Explanations/Tables/ExplanationsTable.php index d1af05e..1f76c72 100644 --- a/app/Filament/Resources/Explanations/Tables/ExplanationsTable.php +++ b/app/Filament/Resources/Explanations/Tables/ExplanationsTable.php @@ -20,7 +20,7 @@ class ExplanationsTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('explanation_date') @@ -33,7 +33,7 @@ class ExplanationsTable ->limit(50) ->toggleable(), IconColumn::make('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->boolean() ->trueIcon('heroicon-o-paper-clip') ->falseIcon('heroicon-o-minus'), diff --git a/app/Filament/Resources/Gifts/GiftResource.php b/app/Filament/Resources/Gifts/GiftResource.php index 4b61ebe..e68ac58 100644 --- a/app/Filament/Resources/Gifts/GiftResource.php +++ b/app/Filament/Resources/Gifts/GiftResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Gifts; +use App\Enums\NavigationGroup; use App\Filament\Resources\Gifts\Pages\CreateGift; use App\Filament\Resources\Gifts\Pages\EditGift; use App\Filament\Resources\Gifts\Pages\ListGifts; @@ -27,7 +28,7 @@ class GiftResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedGift; - protected static string | UnitEnum | null $navigationGroup = 'Records'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Records; protected static ?int $navigationSort = 4; diff --git a/app/Filament/Resources/Gifts/Schemas/GiftForm.php b/app/Filament/Resources/Gifts/Schemas/GiftForm.php index f3ea9f7..93e88ef 100644 --- a/app/Filament/Resources/Gifts/Schemas/GiftForm.php +++ b/app/Filament/Resources/Gifts/Schemas/GiftForm.php @@ -19,7 +19,7 @@ class GiftForm ->required() ->default(now()), TextInput::make('gift_name') - ->label('Gift Name') + ->label(__('hr.fields.gift_name')) ->required() ->maxLength(255), TextInput::make('value') diff --git a/app/Filament/Resources/Gifts/Schemas/GiftInfolist.php b/app/Filament/Resources/Gifts/Schemas/GiftInfolist.php index 1031710..aca05c9 100644 --- a/app/Filament/Resources/Gifts/Schemas/GiftInfolist.php +++ b/app/Filament/Resources/Gifts/Schemas/GiftInfolist.php @@ -13,7 +13,7 @@ class GiftInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('gift_date') ->date(), TextEntry::make('gift_name'), diff --git a/app/Filament/Resources/Gifts/Tables/GiftsTable.php b/app/Filament/Resources/Gifts/Tables/GiftsTable.php index f6f1a7a..d6aef07 100644 --- a/app/Filament/Resources/Gifts/Tables/GiftsTable.php +++ b/app/Filament/Resources/Gifts/Tables/GiftsTable.php @@ -19,14 +19,14 @@ class GiftsTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('gift_date') ->date() ->sortable(), TextColumn::make('gift_name') - ->label('Gift') + ->label(__('hr.fields.gift')) ->searchable() ->sortable(), TextColumn::make('value') diff --git a/app/Filament/Resources/Positions/PositionResource.php b/app/Filament/Resources/Positions/PositionResource.php index 5adb91f..b14688f 100644 --- a/app/Filament/Resources/Positions/PositionResource.php +++ b/app/Filament/Resources/Positions/PositionResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Positions; +use App\Enums\NavigationGroup; use App\Filament\Resources\Positions\Pages\CreatePosition; use App\Filament\Resources\Positions\Pages\EditPosition; use App\Filament\Resources\Positions\Pages\ListPositions; @@ -27,7 +28,7 @@ class PositionResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedBriefcase; - protected static string | UnitEnum | null $navigationGroup = 'Organization'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Organization; protected static ?int $navigationSort = 2; diff --git a/app/Filament/Resources/Shifts/Schemas/ShiftForm.php b/app/Filament/Resources/Shifts/Schemas/ShiftForm.php index 3e81aeb..a43d545 100644 --- a/app/Filament/Resources/Shifts/Schemas/ShiftForm.php +++ b/app/Filament/Resources/Shifts/Schemas/ShiftForm.php @@ -22,18 +22,18 @@ class ShiftForm ->maxLength(50) ->unique(ignoreRecord: true), TimePicker::make('starts_at') - ->label('Starts at') + ->label(__('hr.fields.starts_at')) ->required() ->seconds(false), TimePicker::make('ends_at') - ->label('Ends at') + ->label(__('hr.fields.ends_at')) ->required() ->seconds(false), Textarea::make('description') ->rows(3) ->columnSpanFull(), Toggle::make('is_active') - ->label('Active') + ->label(__('hr.fields.active')) ->default(true) ->required(), ]); diff --git a/app/Filament/Resources/Shifts/ShiftResource.php b/app/Filament/Resources/Shifts/ShiftResource.php index 4dd5d50..243b6cf 100644 --- a/app/Filament/Resources/Shifts/ShiftResource.php +++ b/app/Filament/Resources/Shifts/ShiftResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Shifts; +use App\Enums\NavigationGroup; use App\Filament\Resources\Shifts\Pages\CreateShift; use App\Filament\Resources\Shifts\Pages\EditShift; use App\Filament\Resources\Shifts\Pages\ListShifts; @@ -27,7 +28,7 @@ class ShiftResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedClock; - protected static string | UnitEnum | null $navigationGroup = 'Organization'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::Organization; protected static ?int $navigationSort = 3; diff --git a/app/Filament/Resources/Shifts/Tables/ShiftsTable.php b/app/Filament/Resources/Shifts/Tables/ShiftsTable.php index e25b165..f88bb87 100644 --- a/app/Filament/Resources/Shifts/Tables/ShiftsTable.php +++ b/app/Filament/Resources/Shifts/Tables/ShiftsTable.php @@ -26,20 +26,20 @@ class ShiftsTable ->searchable() ->sortable(), TextColumn::make('starts_at') - ->label('Starts') + ->label(__('hr.fields.starts')) ->time() ->sortable(), TextColumn::make('ends_at') - ->label('Ends') + ->label(__('hr.fields.ends')) ->time() ->sortable(), TextColumn::make('description') ->limit(50) ->toggleable(), TextColumn::make('is_active') - ->label('Status') + ->label(__('hr.fields.status')) ->badge() - ->formatStateUsing(fn (bool $state): string => $state ? 'Active' : 'Inactive') + ->formatStateUsing(fn (bool $state): string => $state ? __('enums.employment_status.active') : __('enums.employment_status.inactive')) ->color(fn (bool $state): string => $state ? 'success' : 'danger') ->sortable(), TextColumn::make('created_at') @@ -57,10 +57,10 @@ class ShiftsTable ]) ->filters([ TernaryFilter::make('is_active') - ->label('Status') - ->placeholder('All shifts') - ->trueLabel('Active') - ->falseLabel('Inactive'), + ->label(__('hr.fields.status')) + ->placeholder(__('hr.filters.all_shifts')) + ->trueLabel(__('enums.employment_status.active')) + ->falseLabel(__('enums.employment_status.inactive')), TrashedFilter::make(), ]) ->recordActions([ diff --git a/app/Filament/Resources/SickLeaves/Schemas/SickLeaveForm.php b/app/Filament/Resources/SickLeaves/Schemas/SickLeaveForm.php index 18efd0e..7ac17a2 100644 --- a/app/Filament/Resources/SickLeaves/Schemas/SickLeaveForm.php +++ b/app/Filament/Resources/SickLeaves/Schemas/SickLeaveForm.php @@ -14,8 +14,8 @@ class SickLeaveForm return $schema ->components([ HrForm::employeeSelect(), - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), HrForm::leaveDaysDisplay(), TextInput::make('medical_institution') ->maxLength(255), @@ -23,7 +23,7 @@ class SickLeaveForm ->rows(3) ->columnSpanFull(), HrForm::fileUpload('document_path') - ->label('Medical Document') + ->label(__('hr.fields.medical_document')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); diff --git a/app/Filament/Resources/SickLeaves/Schemas/SickLeaveInfolist.php b/app/Filament/Resources/SickLeaves/Schemas/SickLeaveInfolist.php index bfd7d3e..d425085 100644 --- a/app/Filament/Resources/SickLeaves/Schemas/SickLeaveInfolist.php +++ b/app/Filament/Resources/SickLeaves/Schemas/SickLeaveInfolist.php @@ -13,7 +13,7 @@ class SickLeaveInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('start_date') ->date(), TextEntry::make('end_date') diff --git a/app/Filament/Resources/SickLeaves/SickLeaveResource.php b/app/Filament/Resources/SickLeaves/SickLeaveResource.php index c6e01c2..d7d152d 100644 --- a/app/Filament/Resources/SickLeaves/SickLeaveResource.php +++ b/app/Filament/Resources/SickLeaves/SickLeaveResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\SickLeaves; +use App\Enums\NavigationGroup; use App\Filament\Resources\SickLeaves\Pages\CreateSickLeave; use App\Filament\Resources\SickLeaves\Pages\EditSickLeave; use App\Filament\Resources\SickLeaves\Pages\ListSickLeaves; @@ -27,7 +28,7 @@ class SickLeaveResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedHeart; - protected static string | UnitEnum | null $navigationGroup = 'Leave Management'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::LeaveManagement; protected static ?int $navigationSort = 2; diff --git a/app/Filament/Resources/SickLeaves/Tables/SickLeavesTable.php b/app/Filament/Resources/SickLeaves/Tables/SickLeavesTable.php index 0289750..b60f29c 100644 --- a/app/Filament/Resources/SickLeaves/Tables/SickLeavesTable.php +++ b/app/Filament/Resources/SickLeaves/Tables/SickLeavesTable.php @@ -20,7 +20,7 @@ class SickLeavesTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('start_date') @@ -36,7 +36,7 @@ class SickLeavesTable ->searchable() ->toggleable(), IconColumn::make('document_path') - ->label('Document') + ->label(__('hr.fields.document')) ->boolean() ->trueIcon('heroicon-o-document-check') ->falseIcon('heroicon-o-document') diff --git a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php index ebe7e7b..8923f59 100644 --- a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php +++ b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveForm.php @@ -13,8 +13,8 @@ class UnpaidLeaveForm return $schema ->components([ HrForm::employeeSelect(), - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), HrForm::leaveDaysDisplay(), Textarea::make('reason') ->rows(3) diff --git a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php index a7e7df5..159af39 100644 --- a/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php +++ b/app/Filament/Resources/UnpaidLeaves/Schemas/UnpaidLeaveInfolist.php @@ -13,7 +13,7 @@ class UnpaidLeaveInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('start_date') ->date(), TextEntry::make('end_date') diff --git a/app/Filament/Resources/UnpaidLeaves/Tables/UnpaidLeavesTable.php b/app/Filament/Resources/UnpaidLeaves/Tables/UnpaidLeavesTable.php index fcf2a3f..5646ae4 100644 --- a/app/Filament/Resources/UnpaidLeaves/Tables/UnpaidLeavesTable.php +++ b/app/Filament/Resources/UnpaidLeaves/Tables/UnpaidLeavesTable.php @@ -28,7 +28,7 @@ class UnpaidLeavesTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('start_date') @@ -47,7 +47,7 @@ class UnpaidLeavesTable ->searchable() ->sortable(), TextColumn::make('approver.name') - ->label('Approved By') + ->label(__('hr.fields.approved_by')) ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('approved_at') ->dateTime() @@ -70,12 +70,12 @@ class UnpaidLeavesTable SelectFilter::make('status') ->options(ApprovalStatus::class), Filter::make('date_range') - ->label('Date Range') + ->label(__('hr.fields.date_range')) ->schema([ DatePicker::make('start_from') - ->label('Start from'), + ->label(__('hr.fields.start_from')), DatePicker::make('start_until') - ->label('Start until'), + ->label(__('hr.fields.start_until')), ]) ->query(function (Builder $query, array $data): Builder { return $query @@ -92,7 +92,7 @@ class UnpaidLeavesTable ]) ->recordActions([ Action::make('approve') - ->label('Approve') + ->label(__('hr.actions.approve')) ->icon('heroicon-o-check-badge') ->color('success') ->requiresConfirmation() @@ -101,7 +101,7 @@ class UnpaidLeavesTable $unpaidLeaveService->approve($record, Auth::user()); }), Action::make('reject') - ->label('Reject') + ->label(__('hr.actions.reject')) ->icon('heroicon-o-x-mark') ->color('danger') ->requiresConfirmation() diff --git a/app/Filament/Resources/UnpaidLeaves/UnpaidLeaveResource.php b/app/Filament/Resources/UnpaidLeaves/UnpaidLeaveResource.php index 9049aaa..1cfc4aa 100644 --- a/app/Filament/Resources/UnpaidLeaves/UnpaidLeaveResource.php +++ b/app/Filament/Resources/UnpaidLeaves/UnpaidLeaveResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\UnpaidLeaves; +use App\Enums\NavigationGroup; use App\Filament\Resources\UnpaidLeaves\Pages\CreateUnpaidLeave; use App\Filament\Resources\UnpaidLeaves\Pages\EditUnpaidLeave; use App\Filament\Resources\UnpaidLeaves\Pages\ListUnpaidLeaves; @@ -27,7 +28,7 @@ class UnpaidLeaveResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedCalendarDays; - protected static string | UnitEnum | null $navigationGroup = 'Leave Management'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::LeaveManagement; protected static ?int $navigationSort = 3; diff --git a/app/Filament/Resources/Users/Schemas/UserForm.php b/app/Filament/Resources/Users/Schemas/UserForm.php index cf65a25..3bda24c 100644 --- a/app/Filament/Resources/Users/Schemas/UserForm.php +++ b/app/Filament/Resources/Users/Schemas/UserForm.php @@ -19,7 +19,7 @@ class UserForm ->required() ->maxLength(255), TextInput::make('email') - ->label('Email address') + ->label(__('hr.fields.email_address')) ->email() ->required() ->maxLength(255) @@ -34,7 +34,14 @@ class UserForm ->relationship('department', 'name') ->searchable() ->preload() - ->label('Department (for managers)'), + ->label(__('hr.fields.department_for_managers')), + Select::make('locale') + ->label(__('hr.fields.locale')) + ->options(collect(config('hr.supported_locales')) + ->mapWithKeys(fn (string $locale): array => [$locale => config('hr.locale_labels')[$locale]]) + ->all()) + ->required() + ->default(config('hr.default_locale')), Select::make('roles') ->relationship('roles', 'name') ->multiple() diff --git a/app/Filament/Resources/Users/Schemas/UserInfolist.php b/app/Filament/Resources/Users/Schemas/UserInfolist.php index c3ba5f5..ba985da 100644 --- a/app/Filament/Resources/Users/Schemas/UserInfolist.php +++ b/app/Filament/Resources/Users/Schemas/UserInfolist.php @@ -13,7 +13,7 @@ class UserInfolist ->components([ TextEntry::make('name'), TextEntry::make('email') - ->label('Email address'), + ->label(__('hr.fields.email_address')), TextEntry::make('email_verified_at') ->dateTime() ->placeholder('-'), @@ -24,7 +24,7 @@ class UserInfolist ->dateTime() ->placeholder('-'), TextEntry::make('department.name') - ->label('Department') + ->label(__('hr.fields.department')) ->placeholder('-'), ]); } diff --git a/app/Filament/Resources/Users/Tables/UsersTable.php b/app/Filament/Resources/Users/Tables/UsersTable.php index afef638..150286b 100644 --- a/app/Filament/Resources/Users/Tables/UsersTable.php +++ b/app/Filament/Resources/Users/Tables/UsersTable.php @@ -18,7 +18,7 @@ class UsersTable TextColumn::make('name') ->searchable(), TextColumn::make('email') - ->label('Email address') + ->label(__('hr.fields.email_address')) ->searchable(), TextColumn::make('email_verified_at') ->dateTime() diff --git a/app/Filament/Resources/Users/UserResource.php b/app/Filament/Resources/Users/UserResource.php index 77b17a8..d12401e 100644 --- a/app/Filament/Resources/Users/UserResource.php +++ b/app/Filament/Resources/Users/UserResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Users; +use App\Enums\NavigationGroup; use App\Filament\Resources\Users\Pages\CreateUser; use App\Filament\Resources\Users\Pages\EditUser; use App\Filament\Resources\Users\Pages\ListUsers; @@ -17,6 +18,7 @@ use Filament\Resources\Resource; use Filament\Schemas\Schema; use Filament\Support\Icons\Heroicon; use Filament\Tables\Table; +use UnitEnum; class UserResource extends Resource { @@ -24,7 +26,7 @@ class UserResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedUsers; - protected static string|\UnitEnum|null $navigationGroup = 'System'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::System; protected static ?int $navigationSort = 2; diff --git a/app/Filament/Resources/Vacations/Schemas/VacationForm.php b/app/Filament/Resources/Vacations/Schemas/VacationForm.php index 0dc5303..5ca7fc8 100644 --- a/app/Filament/Resources/Vacations/Schemas/VacationForm.php +++ b/app/Filament/Resources/Vacations/Schemas/VacationForm.php @@ -20,16 +20,16 @@ class VacationForm ->options(VacationType::class) ->required() ->native(false), - HrForm::leaveDatePicker('start_date', 'Start Date'), - HrForm::leaveDatePicker('end_date', 'End Date'), + HrForm::leaveDatePicker('start_date', __(hr.fields.start_date)), + HrForm::leaveDatePicker('end_date', __(hr.fields.end_date)), DatePicker::make('return_date') - ->label('Return Date'), + ->label(__('hr.fields.return_date')), HrForm::leaveDaysDisplay(), Textarea::make('reason') ->rows(3) ->columnSpanFull(), HrForm::fileUpload('attachment_path') - ->label('Attachment') + ->label(__('hr.fields.attachment')) ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); diff --git a/app/Filament/Resources/Vacations/Schemas/VacationInfolist.php b/app/Filament/Resources/Vacations/Schemas/VacationInfolist.php index ff511aa..4043ce7 100644 --- a/app/Filament/Resources/Vacations/Schemas/VacationInfolist.php +++ b/app/Filament/Resources/Vacations/Schemas/VacationInfolist.php @@ -13,7 +13,7 @@ class VacationInfolist return $schema ->components([ TextEntry::make('employee.id') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextEntry::make('type') ->badge(), TextEntry::make('start_date') diff --git a/app/Filament/Resources/Vacations/Tables/VacationsTable.php b/app/Filament/Resources/Vacations/Tables/VacationsTable.php index afdfa27..d27964b 100644 --- a/app/Filament/Resources/Vacations/Tables/VacationsTable.php +++ b/app/Filament/Resources/Vacations/Tables/VacationsTable.php @@ -30,7 +30,7 @@ class VacationsTable return $table ->columns([ TextColumn::make('employee.full_name') - ->label('Employee') + ->label(__('hr.fields.employee')) ->searchable() ->sortable(), TextColumn::make('type') @@ -55,7 +55,7 @@ class VacationsTable ->searchable() ->sortable(), TextColumn::make('approver.name') - ->label('Approved By') + ->label(__('hr.fields.approved_by')) ->toggleable(isToggledHiddenByDefault: true), TextColumn::make('approved_at') ->dateTime() @@ -80,12 +80,12 @@ class VacationsTable SelectFilter::make('type') ->options(VacationType::class), Filter::make('date_range') - ->label('Date Range') + ->label(__('hr.fields.date_range')) ->schema([ DatePicker::make('start_from') - ->label('Start from'), + ->label(__('hr.fields.start_from')), DatePicker::make('start_until') - ->label('Start until'), + ->label(__('hr.fields.start_until')), ]) ->query(function (Builder $query, array $data): Builder { return $query @@ -102,7 +102,7 @@ class VacationsTable ]) ->recordActions([ Action::make('approve') - ->label('Approve') + ->label(__('hr.actions.approve')) ->icon('heroicon-o-check-badge') ->color('success') ->requiresConfirmation() @@ -111,7 +111,7 @@ class VacationsTable $vacationService->approve($record, Auth::user()); }), Action::make('reject') - ->label('Reject') + ->label(__('hr.actions.reject')) ->icon('heroicon-o-x-mark') ->color('danger') ->requiresConfirmation() diff --git a/app/Filament/Resources/Vacations/VacationResource.php b/app/Filament/Resources/Vacations/VacationResource.php index 843a94d..5ea8367 100644 --- a/app/Filament/Resources/Vacations/VacationResource.php +++ b/app/Filament/Resources/Vacations/VacationResource.php @@ -4,6 +4,7 @@ declare(strict_types=1); namespace App\Filament\Resources\Vacations; +use App\Enums\NavigationGroup; use App\Filament\Resources\Vacations\Pages\CreateVacation; use App\Filament\Resources\Vacations\Pages\EditVacation; use App\Filament\Resources\Vacations\Pages\ListVacations; @@ -27,7 +28,7 @@ class VacationResource extends Resource protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedSun; - protected static string | UnitEnum | null $navigationGroup = 'Leave Management'; + protected static string|UnitEnum|null $navigationGroup = NavigationGroup::LeaveManagement; protected static ?int $navigationSort = 1; diff --git a/app/Filament/Support/ExportExcelAction.php b/app/Filament/Support/ExportExcelAction.php index 97031e5..8ec065e 100644 --- a/app/Filament/Support/ExportExcelAction.php +++ b/app/Filament/Support/ExportExcelAction.php @@ -18,7 +18,7 @@ class ExportExcelAction public static function make(string $name, string $exportClass, string $filename): Action { return Action::make($name) - ->label('Export') + ->label(__('hr.actions.export')) ->icon('heroicon-o-arrow-down-tray') ->action(fn (): BinaryFileResponse => Excel::download(new $exportClass, $filename)); } @@ -29,7 +29,7 @@ class ExportExcelAction public static function bulk(string $name, string $exportClass, string $filename): BulkAction { return BulkAction::make($name) - ->label('Export Selected') + ->label(__('hr.actions.export_selected')) ->icon('heroicon-o-arrow-down-tray') ->action(function (Collection $records) use ($exportClass, $filename): BinaryFileResponse { $ids = $records->pluck('id')->all(); diff --git a/app/Filament/Support/ExportPdfAction.php b/app/Filament/Support/ExportPdfAction.php index c685901..3b2df0f 100644 --- a/app/Filament/Support/ExportPdfAction.php +++ b/app/Filament/Support/ExportPdfAction.php @@ -15,7 +15,7 @@ class ExportPdfAction public static function employeeProfile(): Action { return Action::make('exportPdf') - ->label('Export PDF') + ->label(__('hr.actions.export_pdf')) ->icon('heroicon-o-document-arrow-down') ->action(fn (Employee $record, PdfExportService $pdf) => $pdf->employeeProfile($record)); } @@ -23,7 +23,7 @@ class ExportPdfAction public static function employeeLeaveSummary(): Action { return Action::make('exportLeavePdf') - ->label('Leave Summary PDF') + ->label(__('hr.actions.leave_summary_pdf')) ->icon('heroicon-o-document-text') ->action(fn (Employee $record, PdfExportService $pdf) => $pdf->leaveSummary($record)); } @@ -31,7 +31,7 @@ class ExportPdfAction public static function employeeList(): Action { return Action::make('exportPdf') - ->label('Export PDF') + ->label(__('hr.actions.export_pdf')) ->icon('heroicon-o-document-arrow-down') ->action(fn (PdfExportService $pdf) => $pdf->employeeList( Employee::query()->with(['department', 'position', 'shift'])->orderBy('full_name')->get() @@ -41,7 +41,7 @@ class ExportPdfAction public static function employeeListBulk(): BulkAction { return BulkAction::make('exportPdf') - ->label('Export PDF') + ->label(__('hr.actions.export_pdf')) ->icon('heroicon-o-document-arrow-down') ->action(fn (Collection $records, PdfExportService $pdf) => $pdf->employeeList( Employee::query() diff --git a/app/Filament/Support/HrForm.php b/app/Filament/Support/HrForm.php index 8db2ffe..19267cf 100644 --- a/app/Filament/Support/HrForm.php +++ b/app/Filament/Support/HrForm.php @@ -35,7 +35,7 @@ class HrForm public static function leaveDaysDisplay(): TextInput { return TextInput::make('days') - ->label('Days') + ->label(__('hr.fields.days')) ->numeric() ->disabled() ->dehydrated(false) diff --git a/app/Filament/Widgets/DepartmentDistributionChart.php b/app/Filament/Widgets/DepartmentDistributionChart.php index 2db246a..f4c9885 100644 --- a/app/Filament/Widgets/DepartmentDistributionChart.php +++ b/app/Filament/Widgets/DepartmentDistributionChart.php @@ -9,10 +9,13 @@ use Filament\Widgets\ChartWidget; class DepartmentDistributionChart extends ChartWidget { - protected ?string $heading = 'Employees by Department'; - protected int | string | array $columnSpan = 1; + public function getHeading(): ?string + { + return __('hr.widgets.employees_by_department'); + } + protected function getType(): string { return 'doughnut'; @@ -28,7 +31,7 @@ class DepartmentDistributionChart extends ChartWidget return [ 'datasets' => [ [ - 'label' => 'Employees', + 'label' => __('hr.widgets.employees'), 'data' => $departments->pluck('employees_count')->all(), 'backgroundColor' => [ '#3b82f6', diff --git a/app/Filament/Widgets/HrStatsOverviewWidget.php b/app/Filament/Widgets/HrStatsOverviewWidget.php index aea76b5..245200a 100644 --- a/app/Filament/Widgets/HrStatsOverviewWidget.php +++ b/app/Filament/Widgets/HrStatsOverviewWidget.php @@ -14,7 +14,10 @@ use Filament\Widgets\StatsOverviewWidget\Stat; class HrStatsOverviewWidget extends StatsOverviewWidget { - protected ?string $heading = 'HR Overview'; + public function getHeading(): ?string + { + return __('hr.widgets.hr_overview'); + } protected function getStats(): array { @@ -36,28 +39,28 @@ class HrStatsOverviewWidget extends StatsOverviewWidget ->count(); return [ - Stat::make('Total Employees', Employee::query()->count()) - ->description('All employees in the system') + Stat::make(__('hr.stats.total_employees'), Employee::query()->count()) + ->description(__('hr.stats.total_employees_desc')) ->descriptionIcon('heroicon-o-users') ->color('primary'), - Stat::make('Active', Employee::query()->where('employment_status', EmploymentStatus::Active)->count()) - ->description('Currently active employees') + Stat::make(__('hr.stats.active'), Employee::query()->where('employment_status', EmploymentStatus::Active)->count()) + ->description(__('hr.stats.active_desc')) ->descriptionIcon('heroicon-o-check-circle') ->color('success'), - Stat::make('Inactive', Employee::query()->where('employment_status', EmploymentStatus::Inactive)->count()) - ->description('Inactive employees') + Stat::make(__('hr.stats.inactive'), Employee::query()->where('employment_status', EmploymentStatus::Inactive)->count()) + ->description(__('hr.stats.inactive_desc')) ->descriptionIcon('heroicon-o-pause-circle') ->color('gray'), - Stat::make('On Vacation Today', $onVacationToday) - ->description('Approved vacations in progress') + Stat::make(__('hr.stats.on_vacation_today'), $onVacationToday) + ->description(__('hr.stats.on_vacation_today_desc')) ->descriptionIcon('heroicon-o-sun') ->color('warning'), - Stat::make('On Sick Leave Today', $onSickLeaveToday) - ->description('Employees on sick leave') + Stat::make(__('hr.stats.on_sick_leave_today'), $onSickLeaveToday) + ->description(__('hr.stats.on_sick_leave_today_desc')) ->descriptionIcon('heroicon-o-heart') ->color('danger'), - Stat::make('Pending Requests', $pendingRequests) - ->description('Vacation requests awaiting approval') + Stat::make(__('hr.stats.pending_requests'), $pendingRequests) + ->description(__('hr.stats.pending_requests_desc')) ->descriptionIcon('heroicon-o-clock') ->color('info'), ]; diff --git a/app/Filament/Widgets/MonthlyHiringChart.php b/app/Filament/Widgets/MonthlyHiringChart.php index b9fff09..e6c6c7e 100644 --- a/app/Filament/Widgets/MonthlyHiringChart.php +++ b/app/Filament/Widgets/MonthlyHiringChart.php @@ -6,12 +6,16 @@ namespace App\Filament\Widgets; use App\Models\Employee; use Filament\Widgets\ChartWidget; + class MonthlyHiringChart extends ChartWidget { - protected ?string $heading = 'Monthly Hiring (Last 12 Months)'; - protected int | string | array $columnSpan = 1; + public function getHeading(): ?string + { + return __('hr.widgets.monthly_hiring'); + } + protected function getType(): string { return 'bar'; @@ -35,7 +39,7 @@ class MonthlyHiringChart extends ChartWidget return [ 'datasets' => [ [ - 'label' => 'New Hires', + 'label' => __('hr.widgets.new_hires'), 'data' => $data, 'backgroundColor' => '#3b82f6', ], diff --git a/app/Filament/Widgets/MonthlyLeaveChart.php b/app/Filament/Widgets/MonthlyLeaveChart.php index 609df06..edfa257 100644 --- a/app/Filament/Widgets/MonthlyLeaveChart.php +++ b/app/Filament/Widgets/MonthlyLeaveChart.php @@ -10,10 +10,13 @@ use Filament\Widgets\ChartWidget; class MonthlyLeaveChart extends ChartWidget { - protected ?string $heading = 'Vacation Days by Month'; - protected int | string | array $columnSpan = 1; + public function getHeading(): ?string + { + return __('hr.widgets.vacation_days_by_month'); + } + protected function getType(): string { return 'bar'; @@ -37,7 +40,7 @@ class MonthlyLeaveChart extends ChartWidget return [ 'datasets' => [ [ - 'label' => 'Vacation Days', + 'label' => __('hr.widgets.vacation_days'), 'data' => $data, 'backgroundColor' => '#f59e0b', ], diff --git a/app/Filament/Widgets/RecentReportsWidget.php b/app/Filament/Widgets/RecentReportsWidget.php index d21c4cd..6b2b5e1 100644 --- a/app/Filament/Widgets/RecentReportsWidget.php +++ b/app/Filament/Widgets/RecentReportsWidget.php @@ -13,10 +13,13 @@ use Illuminate\Database\Eloquent\Builder; class RecentReportsWidget extends TableWidget { - protected static ?string $heading = 'Recent Disciplinary Reports'; - protected int | string | array $columnSpan = 'full'; + public function getHeading(): ?string + { + return __('hr.widgets.recent_disciplinary_reports'); + } + public function table(Table $table): Table { return $table @@ -28,7 +31,7 @@ class RecentReportsWidget extends TableWidget ) ->columns([ TextColumn::make('employee.full_name') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextColumn::make('report_date') ->date(), TextColumn::make('title') @@ -38,7 +41,7 @@ class RecentReportsWidget extends TableWidget ->color(fn (DisciplinarySeverity $state): string => $state->color()) ->formatStateUsing(fn (DisciplinarySeverity $state): string => $state->label()), TextColumn::make('creator.name') - ->label('Created By'), + ->label(__('hr.fields.created_by')), ]) ->paginated(false); } diff --git a/app/Filament/Widgets/UpcomingBirthdaysWidget.php b/app/Filament/Widgets/UpcomingBirthdaysWidget.php index d8609eb..ee5312a 100644 --- a/app/Filament/Widgets/UpcomingBirthdaysWidget.php +++ b/app/Filament/Widgets/UpcomingBirthdaysWidget.php @@ -11,10 +11,13 @@ use Filament\Widgets\TableWidget; use Illuminate\Database\Eloquent\Builder; class UpcomingBirthdaysWidget extends TableWidget { - protected static ?string $heading = 'Upcoming Birthdays (30 Days)'; - protected int | string | array $columnSpan = 1; + public function getHeading(): ?string + { + return __('hr.widgets.upcoming_birthdays'); + } + public function table(Table $table): Table { return $table @@ -25,13 +28,13 @@ class UpcomingBirthdaysWidget extends TableWidget ) ->columns([ TextColumn::make('full_name') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextColumn::make('birth_date') - ->label('Birthday') + ->label(__('hr.fields.birthday')) ->date() ->formatStateUsing(fn (Employee $record): string => $record->birth_date?->format('M d') ?? '—'), TextColumn::make('department.name') - ->label('Department'), + ->label(__('hr.fields.department')), ]) ->paginated(false); } diff --git a/app/Filament/Widgets/UpcomingLeaveWidget.php b/app/Filament/Widgets/UpcomingLeaveWidget.php index d1bfaa2..d0fc092 100644 --- a/app/Filament/Widgets/UpcomingLeaveWidget.php +++ b/app/Filament/Widgets/UpcomingLeaveWidget.php @@ -13,10 +13,13 @@ use Illuminate\Database\Eloquent\Builder; class UpcomingLeaveWidget extends TableWidget { - protected static ?string $heading = 'Upcoming Approved Leave (14 Days)'; - protected int | string | array $columnSpan = 1; + public function getHeading(): ?string + { + return __('hr.widgets.upcoming_leave'); + } + public function table(Table $table): Table { return $table @@ -30,13 +33,13 @@ class UpcomingLeaveWidget extends TableWidget ) ->columns([ TextColumn::make('employee.full_name') - ->label('Employee'), + ->label(__('hr.fields.employee')), TextColumn::make('start_date') ->date(), TextColumn::make('end_date') ->date(), TextColumn::make('days') - ->label('Days'), + ->label(__('hr.fields.days')), ]) ->paginated(false); } diff --git a/app/Models/User.php b/app/Models/User.php index 044c7cd..44b0e27 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -15,7 +15,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Spatie\Permission\Traits\HasRoles; -#[Fillable(['name', 'email', 'password', 'department_id'])] +#[Fillable(['name', 'email', 'password', 'department_id', 'locale'])] #[Hidden(['password', 'remember_token'])] class User extends Authenticatable implements FilamentUser { diff --git a/app/Notifications/DisciplinaryReportCreatedNotification.php b/app/Notifications/DisciplinaryReportCreatedNotification.php index e05a787..97c7551 100644 --- a/app/Notifications/DisciplinaryReportCreatedNotification.php +++ b/app/Notifications/DisciplinaryReportCreatedNotification.php @@ -31,11 +31,11 @@ class DisciplinaryReportCreatedNotification extends Notification implements Shou $employee = $this->report->employee; return (new MailMessage) - ->subject('New Disciplinary Report Created') - ->line("A new disciplinary report has been created for {$employee->full_name}.") - ->line("Title: {$this->report->title}") - ->line("Severity: {$this->report->severity->label()}") - ->line("Date: {$this->report->report_date->toDateString()}"); + ->subject(__('notifications.disciplinary_report_created.subject')) + ->line(__('notifications.disciplinary_report_created.line_created', ['name' => $employee->full_name])) + ->line(__('notifications.disciplinary_report_created.title') . ': ' . $this->report->title) + ->line(__('notifications.disciplinary_report_created.severity') . ': ' . $this->report->severity->label()) + ->line(__('notifications.disciplinary_report_created.date') . ': ' . $this->report->report_date->toDateString()); } /** diff --git a/app/Notifications/EmployeeTerminatedNotification.php b/app/Notifications/EmployeeTerminatedNotification.php index 3ad544e..9ee7115 100644 --- a/app/Notifications/EmployeeTerminatedNotification.php +++ b/app/Notifications/EmployeeTerminatedNotification.php @@ -29,9 +29,12 @@ class EmployeeTerminatedNotification extends Notification implements ShouldQueue public function toMail(object $notifiable): MailMessage { return (new MailMessage) - ->subject('Employee Terminated') - ->line("{$this->employee->full_name} ({$this->employee->employee_number}) has been terminated.") - ->line("Termination date: {$this->employee->termination_date?->toDateString()}"); + ->subject(__('notifications.employee_terminated.subject')) + ->line(__('notifications.employee_terminated.line_terminated', [ + 'name' => $this->employee->full_name, + 'number' => $this->employee->employee_number, + ])) + ->line(__('notifications.employee_terminated.termination_date') . ': ' . $this->employee->termination_date?->toDateString()); } /** diff --git a/app/Notifications/VacationApprovedNotification.php b/app/Notifications/VacationApprovedNotification.php index 2fe2e93..a881217 100644 --- a/app/Notifications/VacationApprovedNotification.php +++ b/app/Notifications/VacationApprovedNotification.php @@ -31,11 +31,11 @@ class VacationApprovedNotification extends Notification implements ShouldQueue $employee = $this->vacation->employee; return (new MailMessage) - ->subject('Vacation Request Approved') - ->line("The vacation request for {$employee->full_name} has been approved.") - ->line("Type: {$this->vacation->type->label()}") - ->line("Dates: {$this->vacation->start_date->toDateString()} to {$this->vacation->end_date->toDateString()}") - ->line("Days: {$this->vacation->days}"); + ->subject(__('notifications.vacation_approved.subject')) + ->line(__('notifications.vacation_approved.line_approved', ['name' => $employee->full_name])) + ->line(__('notifications.vacation_approved.type') . ': ' . $this->vacation->type->label()) + ->line(__('notifications.vacation_approved.dates') . ': ' . $this->vacation->start_date->toDateString() . ' – ' . $this->vacation->end_date->toDateString()) + ->line(__('notifications.vacation_approved.days') . ': ' . $this->vacation->days); } /** diff --git a/app/Notifications/VacationSubmittedNotification.php b/app/Notifications/VacationSubmittedNotification.php index e41caaa..9587dec 100644 --- a/app/Notifications/VacationSubmittedNotification.php +++ b/app/Notifications/VacationSubmittedNotification.php @@ -31,11 +31,11 @@ class VacationSubmittedNotification extends Notification implements ShouldQueue $employee = $this->vacation->employee; return (new MailMessage) - ->subject('New Vacation Request Submitted') - ->line("A new vacation request has been submitted for {$employee->full_name}.") - ->line("Type: {$this->vacation->type->label()}") - ->line("Dates: {$this->vacation->start_date->toDateString()} to {$this->vacation->end_date->toDateString()}") - ->line("Days: {$this->vacation->days}"); + ->subject(__('notifications.vacation_submitted.subject')) + ->line(__('notifications.vacation_submitted.line_submitted', ['name' => $employee->full_name])) + ->line(__('notifications.vacation_submitted.type') . ': ' . $this->vacation->type->label()) + ->line(__('notifications.vacation_submitted.dates') . ': ' . $this->vacation->start_date->toDateString() . ' – ' . $this->vacation->end_date->toDateString()) + ->line(__('notifications.vacation_submitted.days') . ': ' . $this->vacation->days); } /** diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 5a46ff7..529bb6c 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -35,6 +35,9 @@ use App\Policies\SickLeavePolicy; use App\Policies\UnpaidLeavePolicy; use App\Policies\UserPolicy; use App\Policies\VacationPolicy; +use BezhanSalleh\LanguageSwitch\Events\LocaleChanged; +use BezhanSalleh\LanguageSwitch\LanguageSwitch; +use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Gate; use Illuminate\Support\ServiceProvider; @@ -72,5 +75,17 @@ class AppServiceProvider extends ServiceProvider UnpaidLeave::observe(UnpaidLeaveObserver::class); DisciplinaryReport::observe(DisciplinaryReportObserver::class); EmployeeDocument::observe(EmployeeDocumentObserver::class); + + LanguageSwitch::configureUsing(function (LanguageSwitch $switch): void { + $switch + ->locales(config('hr.supported_locales')) + ->labels(config('hr.locale_labels')) + ->displayLocale('native') + ->userPreferredLocale(fn () => auth()->user()?->locale); + }); + + Event::listen(function (LocaleChanged $event): void { + auth()->user()?->update(['locale' => $event->locale]); + }); } } diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 40d841e..b655645 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -5,6 +5,7 @@ declare(strict_types=1); namespace App\Providers\Filament; use BezhanSalleh\FilamentShield\FilamentShieldPlugin; +use App\Enums\NavigationGroup; use App\Filament\Pages\Dashboard; use Filament\Http\Middleware\Authenticate; use Filament\Http\Middleware\AuthenticateSession; @@ -28,19 +29,15 @@ class AdminPanelProvider extends PanelProvider ->default() ->id('admin') ->path('admin') + ->viteTheme('resources/css/filament/admin/theme.css') ->login() ->brandName(config('hr.company_name')) + ->viteTheme('resources/css/filament/admin/theme.css') ->colors([ 'primary' => Color::Blue, 'gray' => Color::Slate, ]) - ->navigationGroups([ - 'Organization', - 'Employees', - 'Leave Management', - 'Records', - 'System', - ]) + ->navigationGroups(NavigationGroup::class) ->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources') ->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages') ->pages([ @@ -50,7 +47,7 @@ class AdminPanelProvider extends PanelProvider ->widgets([]) ->plugins([ FilamentShieldPlugin::make() - ->navigationGroup('System'), + ->navigationGroup(NavigationGroup::System), ]) ->middleware([ EncryptCookies::class, diff --git a/composer.json b/composer.json index a359639..e8073d7 100644 --- a/composer.json +++ b/composer.json @@ -8,6 +8,7 @@ "require": { "php": "^8.3", "barryvdh/laravel-dompdf": "^3.1", + "bezhansalleh/filament-language-switch": "^5.0", "bezhansalleh/filament-shield": "^4.3", "filament/filament": "^5.0", "laravel/framework": "^13.8", diff --git a/composer.lock b/composer.lock index b40c14d..4dd10b3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f8edc238cb25b41635b830d1f8cb78f8", + "content-hash": "be3c3ff78f2eaafd723ef2e5a6c235ca", "packages": [ { "name": "anourvalar/eloquent-serialize", @@ -148,6 +148,93 @@ ], "time": "2026-02-21T08:51:10+00:00" }, + { + "name": "bezhansalleh/filament-language-switch", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/bezhanSalleh/filament-language-switch.git", + "reference": "737ed66c8c9a79e73e582980d77892e37713622a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bezhanSalleh/filament-language-switch/zipball/737ed66c8c9a79e73e582980d77892e37713622a", + "reference": "737ed66c8c9a79e73e582980d77892e37713622a", + "shasum": "" + }, + "require": { + "filament/filament": "^4.0|^5.0", + "illuminate/contracts": "^11.28|^12.0|^13.0", + "illuminate/support": "^11.28|^12.0|^13.0", + "php": "^8.2", + "spatie/laravel-package-tools": "^1.9" + }, + "require-dev": { + "larastan/larastan": "^3.0", + "laravel/pint": "^1.0", + "nunomaduro/collision": "^8.0", + "orchestra/testbench": "^9.0|^10.0|^11.0", + "pestphp/pest": "^3.8|^4.0", + "pestphp/pest-plugin-laravel": "^3.2|^4.0", + "pestphp/pest-plugin-livewire": "^3.0|^4.0", + "pestphp/pest-plugin-type-coverage": "^3.6|^4.0", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-deprecation-rules": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpunit/phpunit": "^11.0|^12.0", + "rector/jack": "^0.4.0", + "rector/rector": "^2.2", + "spatie/laravel-ray": "^1.43" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "BezhanSalleh\\LanguageSwitch\\LanguageSwitchServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "BezhanSalleh\\LanguageSwitch\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bezhan Salleh", + "email": "bezhan_salleh@yahoo.com", + "role": "Developer" + } + ], + "description": "Zero config Language Switch(Changer/Localizer) plugin for filamentphp admin", + "homepage": "https://github.com/bezhansalleh/filament-language-switch", + "keywords": [ + "bezhanSalleh", + "filament-language-changer", + "filament-language-switch", + "filament-locale-changer", + "filament-localizer", + "filament-plugin", + "filamentphp", + "laravel" + ], + "support": { + "issues": "https://github.com/bezhanSalleh/filament-language-switch/issues", + "source": "https://github.com/bezhanSalleh/filament-language-switch/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/bezhanSalleh", + "type": "github" + } + ], + "time": "2026-06-27T23:33:56+00:00" + }, { "name": "bezhansalleh/filament-plugin-essentials", "version": "1.3.0", diff --git a/config/hr.php b/config/hr.php index 1eb1ce7..d7f92b4 100644 --- a/config/hr.php +++ b/config/hr.php @@ -17,4 +17,14 @@ return [ 'directory' => 'hr', ], + 'supported_locales' => ['en', 'tk', 'ru'], + + 'default_locale' => 'en', + + 'locale_labels' => [ + 'en' => 'English', + 'tk' => 'Türkmen', + 'ru' => 'Русский', + ], + ]; diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index 611e8c1..5120b8c 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -34,6 +34,7 @@ class UserFactory extends Factory 'password' => static::$password ??= Hash::make('password'), 'remember_token' => Str::random(10), 'department_id' => Department::factory(), + 'locale' => 'en', ]; } diff --git a/database/migrations/2026_07_31_123118_add_locale_to_users_table.php b/database/migrations/2026_07_31_123118_add_locale_to_users_table.php new file mode 100644 index 0000000..5ce3dfb --- /dev/null +++ b/database/migrations/2026_07_31_123118_add_locale_to_users_table.php @@ -0,0 +1,28 @@ +string('locale', 5)->default('en')->after('email'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('locale'); + }); + } +}; diff --git a/database/seeders/AdminUserSeeder.php b/database/seeders/AdminUserSeeder.php index 122b810..836689f 100644 --- a/database/seeders/AdminUserSeeder.php +++ b/database/seeders/AdminUserSeeder.php @@ -15,7 +15,7 @@ class AdminUserSeeder extends Seeder public function run(): void { $admin = User::query()->updateOrCreate( - ['email' => 'admin@company.com'], + ['email' => 'admin@example.com'], [ 'name' => 'Admin', 'password' => Hash::make('password'), diff --git a/lang/en/enums.php b/lang/en/enums.php new file mode 100644 index 0000000..2f1f382 --- /dev/null +++ b/lang/en/enums.php @@ -0,0 +1,59 @@ + [ + 'male' => 'Male', + 'female' => 'Female', + 'other' => 'Other', + ], + + 'employment_status' => [ + 'active' => 'Active', + 'inactive' => 'Inactive', + 'terminated' => 'Terminated', + 'on_leave' => 'On Leave', + ], + + 'vacation_type' => [ + 'annual' => 'Annual', + 'marriage' => 'Marriage', + 'study' => 'Study', + 'other' => 'Other', + ], + + 'approval_status' => [ + 'pending' => 'Pending', + 'approved' => 'Approved', + 'rejected' => 'Rejected', + ], + + 'document_type' => [ + 'passport' => 'Passport', + 'contract' => 'Contract', + 'medical_certificate' => 'Medical Certificate', + 'education_certificate' => 'Education Certificate', + 'other' => 'Other', + ], + + 'bonus_type' => [ + 'performance' => 'Performance', + 'holiday' => 'Holiday', + 'retention' => 'Retention', + 'other' => 'Other', + ], + + 'disciplinary_severity' => [ + 'low' => 'Low', + 'medium' => 'Medium', + 'high' => 'High', + ], + + 'import_type' => [ + 'employees' => 'Employees', + 'vacations' => 'Vacations', + 'bonuses' => 'Bonuses', + 'reports' => 'Disciplinary Reports', + ], +]; diff --git a/lang/en/exports.php b/lang/en/exports.php new file mode 100644 index 0000000..4055a00 --- /dev/null +++ b/lang/en/exports.php @@ -0,0 +1,51 @@ + [ + 'title' => 'Employee List', + 'heading' => 'Employee Directory', + 'generated' => 'Generated', + 'number' => '#', + 'name' => 'Name', + 'department' => 'Department', + 'position' => 'Position', + 'shift' => 'Shift', + 'status' => 'Status', + 'phone' => 'Phone', + ], + + 'employee_profile' => [ + 'title' => 'Employee Profile — :name', + 'department' => 'Department', + 'position' => 'Position', + 'shift' => 'Shift', + 'status' => 'Status', + 'phone' => 'Phone', + 'hire_date' => 'Hire Date', + 'termination' => 'Termination', + 'vacation_taken' => 'Vacation Taken', + 'remaining' => 'Remaining', + 'sick_leaves' => 'Sick Leaves', + 'reports' => 'Reports', + ], + + 'leave_summary' => [ + 'title' => 'Leave Summary — :name', + 'heading' => 'Leave Summary', + 'annual_taken' => 'Annual taken', + 'remaining' => 'Remaining', + 'sick_leaves' => 'Sick leaves', + 'vacations' => 'Vacations', + 'sick_leaves_heading' => 'Sick Leaves', + 'start' => 'Start', + 'end' => 'End', + 'days' => 'Days', + 'type' => 'Type', + 'status' => 'Status', + 'institution' => 'Institution', + 'no_vacation_records' => 'No vacation records.', + 'no_sick_leave_records' => 'No sick leave records.', + ], +]; diff --git a/lang/en/hr.php b/lang/en/hr.php new file mode 100644 index 0000000..1247720 --- /dev/null +++ b/lang/en/hr.php @@ -0,0 +1,248 @@ + [ + 'organization' => 'Organization', + 'employees' => 'Employees', + 'leave_management' => 'Leave Management', + 'records' => 'Records', + 'system' => 'System', + ], + + 'resources' => [ + 'audit_log' => 'Audit Log', + 'activity_log' => 'Activity Log', + 'activity_logs' => 'Activity Logs', + 'import_wizard' => 'Import Wizard', + 'department' => 'Department', + 'departments' => 'Departments', + 'position' => 'Position', + 'positions' => 'Positions', + 'shift' => 'Shift', + 'shifts' => 'Shifts', + 'employee' => 'Employee', + 'employees' => 'Employees', + 'vacation' => 'Vacation', + 'vacations' => 'Vacations', + 'sick_leave' => 'Sick Leave', + 'sick_leaves' => 'Sick Leaves', + 'unpaid_leave' => 'Unpaid Leave', + 'unpaid_leaves' => 'Unpaid Leaves', + 'disciplinary_report' => 'Disciplinary Report', + 'disciplinary_reports' => 'Disciplinary Reports', + 'explanation' => 'Explanation', + 'explanations' => 'Explanations', + 'bonus' => 'Bonus', + 'bonuses' => 'Bonuses', + 'gift' => 'Gift', + 'gifts' => 'Gifts', + 'employee_document' => 'Employee Document', + 'employee_documents' => 'Employee Documents', + 'user' => 'User', + 'users' => 'Users', + ], + + 'fields' => [ + 'photo' => 'Photo', + 'employee_number' => 'Employee Number', + 'full_name' => 'Full Name', + 'national_id' => 'National ID', + 'gender' => 'Gender', + 'birth_date' => 'Birth Date', + 'phone' => 'Phone', + 'address' => 'Address', + 'department' => 'Department', + 'department_for_managers' => 'Department (for managers)', + 'position' => 'Position', + 'shift' => 'Shift', + 'employment_status' => 'Employment Status', + 'status' => 'Status', + 'hire_date' => 'Hire Date', + 'termination_date' => 'Termination Date', + 'notes' => 'Notes', + 'email_address' => 'Email address', + 'locale' => 'Language', + 'number' => 'Number', + 'name' => 'Name', + 'employee' => 'Employee', + 'type' => 'Type', + 'attachment' => 'Attachment', + 'document' => 'Document', + 'medical_document' => 'Medical Document', + 'return_date' => 'Return Date', + 'approved_by' => 'Approved By', + 'created_by' => 'Created By', + 'gift_name' => 'Gift Name', + 'gift' => 'Gift', + 'active' => 'Active', + 'starts_at' => 'Starts at', + 'ends_at' => 'Ends at', + 'starts' => 'Starts', + 'ends' => 'Ends', + 'days' => 'Days', + 'birthday' => 'Birthday', + 'download' => 'Download', + 'date' => 'Date', + 'subject_type' => 'Subject Type', + 'subject_id' => 'Subject ID', + 'causer' => 'Causer', + 'log_name' => 'Log Name', + 'changes' => 'Changes', + 'previous_values' => 'Previous Values', + 'date_range' => 'Date Range', + 'start_from' => 'Start from', + 'start_until' => 'Start until', + 'from' => 'From', + 'until' => 'Until', + 'tenure' => 'Tenure', + 'vacation_taken_days' => 'Vacation Taken (days)', + 'vacation_remaining_days' => 'Vacation Remaining (days)', + 'sick_leave_records' => 'Sick Leave Records', + 'disciplinary_reports' => 'Disciplinary Reports', + 'total_bonuses' => 'Total Bonuses', + 'gifts_received' => 'Gifts Received', + 'days_taken' => 'Days Taken', + 'days_remaining' => 'Days Remaining', + 'annual_allowance' => 'Annual Allowance', + 'scheduled_vacations' => 'Scheduled Vacations', + 'unpaid_leave_records' => 'Unpaid Leave Records', + 'explanations' => 'Explanations', + 'title' => 'Title', + 'description' => 'Description', + 'severity' => 'Severity', + 'amount' => 'Amount', + 'reason' => 'Reason', + 'bonus_date' => 'Bonus Date', + 'bonus_type' => 'Bonus Type', + 'report_date' => 'Report Date', + 'start_date' => 'Start Date', + 'end_date' => 'End Date', + 'institution' => 'Institution', + ], + + 'tabs' => [ + 'personal' => 'Personal', + 'employment' => 'Employment', + 'employee' => 'Employee', + ], + + 'sections' => [ + 'employee_details' => 'Employee Details', + 'overview' => 'Overview', + 'profile' => 'Profile', + 'employment_timeline' => 'Employment Timeline', + 'statistics' => 'Statistics', + 'leave_attendance' => 'Leave & Attendance', + 'hr_records' => 'HR Records', + 'leave_summary' => 'Leave Summary', + 'annual_leave_balance' => 'Annual Leave Balance', + 'upcoming_approved_leave' => 'Upcoming Approved Leave', + 'other_leave_types' => 'Other Leave Types', + 'activity_details' => 'Activity Details', + ], + + 'messages' => [ + 'no_upcoming_approved_leave' => 'No upcoming approved leave', + 'days_suffix' => 'days', + ], + + 'filters' => [ + 'all_shifts' => 'All shifts', + 'all_departments' => 'All departments', + ], + + 'audit' => [ + 'employee' => 'Employee', + 'vacation' => 'Vacation', + 'bonus' => 'Bonus', + 'disciplinary_report' => 'Disciplinary Report', + 'department' => 'Department', + 'user' => 'User', + ], + + 'widgets' => [ + 'hr_overview' => 'HR Overview', + 'upcoming_birthdays' => 'Upcoming Birthdays (30 Days)', + 'upcoming_leave' => 'Upcoming Approved Leave (14 Days)', + 'recent_disciplinary_reports' => 'Recent Disciplinary Reports', + 'monthly_hiring' => 'Monthly Hiring (Last 12 Months)', + 'vacation_days_by_month' => 'Vacation Days by Month', + 'employees_by_department' => 'Employees by Department', + 'new_hires' => 'New Hires', + 'vacation_days' => 'Vacation Days', + 'employees' => 'Employees', + ], + + 'stats' => [ + 'total_employees' => 'Total Employees', + 'total_employees_desc' => 'All employees in the system', + 'active' => 'Active', + 'active_desc' => 'Currently active employees', + 'inactive' => 'Inactive', + 'inactive_desc' => 'Inactive employees', + 'on_vacation_today' => 'On Vacation Today', + 'on_vacation_today_desc' => 'Approved vacations in progress', + 'on_sick_leave_today' => 'On Sick Leave Today', + 'on_sick_leave_today_desc' => 'Employees on sick leave', + 'pending_requests' => 'Pending Requests', + 'pending_requests_desc' => 'Vacation requests awaiting approval', + ], + + 'actions' => [ + 'export' => 'Export', + 'export_selected' => 'Export Selected', + 'export_pdf' => 'Export PDF', + 'leave_summary_pdf' => 'Leave Summary PDF', + 'approve' => 'Approve', + 'reject' => 'Reject', + 'change_department' => 'Change Department', + 'download' => 'Download', + ], + + 'relation_managers' => [ + 'sick_leaves' => 'Sick Leaves', + 'vacations' => 'Vacations', + 'unpaid_leaves' => 'Unpaid Leaves', + 'disciplinary_reports' => 'Disciplinary Reports', + 'explanations' => 'Explanations', + 'bonuses' => 'Bonuses', + 'gifts' => 'Gifts', + 'employee_documents' => 'Employee Documents', + ], + + 'import' => [ + 'title' => 'Import Wizard', + 'import_type' => 'Import Type', + 'excel_file' => 'Excel File', + 'preview' => 'Preview', + 'import_results' => 'Import Results', + 'start_import' => 'Start Import', + 'upload' => 'Upload', + 'upload_description' => 'Select import type and upload an Excel file', + 'map_columns' => 'Map Columns', + 'map_columns_description' => 'Match spreadsheet columns to system fields', + 'column_mapping' => 'Column Mapping', + 'preview_step' => 'Preview', + 'preview_description' => 'Review the first 10 rows with validation', + 'import_step' => 'Import', + 'import_description' => 'Run the import and review results', + 'upload_required_title' => 'Upload required', + 'upload_required_body' => 'Please upload an Excel file before importing.', + 'import_queued_title' => 'Import queued', + 'import_queued_body' => 'Your import has been queued and will be processed shortly.', + 'mapping_hint' => 'Upload a file in step 1 to load column headers.', + 'upload_to_preview' => 'Upload a file to preview rows.', + 'no_rows' => 'No rows found in the uploaded file.', + 'submit_to_see_results' => 'Submit the import to see results here after processing completes.', + 'row' => 'Row', + 'validation' => 'Validation', + 'valid' => 'Valid', + 'total_rows' => 'Total rows', + 'imported' => 'Imported', + 'skipped_duplicates' => 'Skipped (duplicates)', + 'failed' => 'Failed', + 'errors' => 'Errors', + ], +]; diff --git a/lang/en/notifications.php b/lang/en/notifications.php new file mode 100644 index 0000000..ecf47a9 --- /dev/null +++ b/lang/en/notifications.php @@ -0,0 +1,35 @@ + [ + 'subject' => 'Vacation Request Approved', + 'line_approved' => 'The vacation request for :name has been approved.', + 'type' => 'Type', + 'dates' => 'Dates', + 'days' => 'Days', + ], + + 'vacation_submitted' => [ + 'subject' => 'New Vacation Request Submitted', + 'line_submitted' => 'A new vacation request has been submitted for :name.', + 'type' => 'Type', + 'dates' => 'Dates', + 'days' => 'Days', + ], + + 'disciplinary_report_created' => [ + 'subject' => 'New Disciplinary Report Created', + 'line_created' => 'A new disciplinary report has been created for :name.', + 'title' => 'Title', + 'severity' => 'Severity', + 'date' => 'Date', + ], + + 'employee_terminated' => [ + 'subject' => 'Employee Terminated', + 'line_terminated' => ':name (:number) has been terminated.', + 'termination_date' => 'Termination date', + ], +]; diff --git a/lang/ru/enums.php b/lang/ru/enums.php new file mode 100644 index 0000000..0808a17 --- /dev/null +++ b/lang/ru/enums.php @@ -0,0 +1,59 @@ + [ + 'male' => 'Мужской', + 'female' => 'Женский', + 'other' => 'Другой', + ], + + 'employment_status' => [ + 'active' => 'Активный', + 'inactive' => 'Неактивный', + 'terminated' => 'Уволен', + 'on_leave' => 'В отпуске', + ], + + 'vacation_type' => [ + 'annual' => 'Ежегодный', + 'marriage' => 'Свадебный', + 'study' => 'Учебный', + 'other' => 'Другой', + ], + + 'approval_status' => [ + 'pending' => 'Ожидает', + 'approved' => 'Одобрено', + 'rejected' => 'Отклонено', + ], + + 'document_type' => [ + 'passport' => 'Паспорт', + 'contract' => 'Договор', + 'medical_certificate' => 'Медицинская справка', + 'education_certificate' => 'Сертификат об образовании', + 'other' => 'Другое', + ], + + 'bonus_type' => [ + 'performance' => 'За результат', + 'holiday' => 'Праздничная', + 'retention' => 'Удержание', + 'other' => 'Другая', + ], + + 'disciplinary_severity' => [ + 'low' => 'Низкая', + 'medium' => 'Средняя', + 'high' => 'Высокая', + ], + + 'import_type' => [ + 'employees' => 'Сотрудники', + 'vacations' => 'Отпуска', + 'bonuses' => 'Премии', + 'reports' => 'Дисциплинарные отчёты', + ], +]; diff --git a/lang/ru/exports.php b/lang/ru/exports.php new file mode 100644 index 0000000..20b38a3 --- /dev/null +++ b/lang/ru/exports.php @@ -0,0 +1,51 @@ + [ + 'title' => 'Список сотрудников', + 'heading' => 'Справочник сотрудников', + 'generated' => 'Создано', + 'number' => '#', + 'name' => 'Имя', + 'department' => 'Отдел', + 'position' => 'Должность', + 'shift' => 'Смена', + 'status' => 'Статус', + 'phone' => 'Телефон', + ], + + 'employee_profile' => [ + 'title' => 'Профиль сотрудника — :name', + 'department' => 'Отдел', + 'position' => 'Должность', + 'shift' => 'Смена', + 'status' => 'Статус', + 'phone' => 'Телефон', + 'hire_date' => 'Дата приёма', + 'termination' => 'Увольнение', + 'vacation_taken' => 'Использовано отпуска', + 'remaining' => 'Остаток', + 'sick_leaves' => 'Больничные', + 'reports' => 'Отчёты', + ], + + 'leave_summary' => [ + 'title' => 'Сводка отпусков — :name', + 'heading' => 'Сводка отпусков', + 'annual_taken' => 'Использовано годовых', + 'remaining' => 'Остаток', + 'sick_leaves' => 'Больничные', + 'vacations' => 'Отпуска', + 'sick_leaves_heading' => 'Больничные', + 'start' => 'Начало', + 'end' => 'Конец', + 'days' => 'Дней', + 'type' => 'Тип', + 'status' => 'Статус', + 'institution' => 'Учреждение', + 'no_vacation_records' => 'Записей об отпусках нет.', + 'no_sick_leave_records' => 'Записей о больничных нет.', + ], +]; diff --git a/lang/ru/hr.php b/lang/ru/hr.php new file mode 100644 index 0000000..b2eb69a --- /dev/null +++ b/lang/ru/hr.php @@ -0,0 +1,248 @@ + [ + 'organization' => 'Организация', + 'employees' => 'Сотрудники', + 'leave_management' => 'Управление отпусками', + 'records' => 'Записи', + 'system' => 'Система', + ], + + 'resources' => [ + 'audit_log' => 'Журнал аудита', + 'activity_log' => 'Журнал активности', + 'activity_logs' => 'Журналы активности', + 'import_wizard' => 'Мастер импорта', + 'department' => 'Отдел', + 'departments' => 'Отделы', + 'position' => 'Должность', + 'positions' => 'Должности', + 'shift' => 'Смена', + 'shifts' => 'Смены', + 'employee' => 'Сотрудник', + 'employees' => 'Сотрудники', + 'vacation' => 'Отпуск', + 'vacations' => 'Отпуска', + 'sick_leave' => 'Больничный', + 'sick_leaves' => 'Больничные', + 'unpaid_leave' => 'Неоплачиваемый отпуск', + 'unpaid_leaves' => 'Неоплачиваемые отпуска', + 'disciplinary_report' => 'Дисциплинарный отчёт', + 'disciplinary_reports' => 'Дисциплинарные отчёты', + 'explanation' => 'Объяснительная', + 'explanations' => 'Объяснительные', + 'bonus' => 'Премия', + 'bonuses' => 'Премии', + 'gift' => 'Подарок', + 'gifts' => 'Подарки', + 'employee_document' => 'Документ сотрудника', + 'employee_documents' => 'Документы сотрудников', + 'user' => 'Пользователь', + 'users' => 'Пользователи', + ], + + 'fields' => [ + 'photo' => 'Фото', + 'employee_number' => 'Табельный номер', + 'full_name' => 'ФИО', + 'national_id' => 'Национальный ID', + 'gender' => 'Пол', + 'birth_date' => 'Дата рождения', + 'phone' => 'Телефон', + 'address' => 'Адрес', + 'department' => 'Отдел', + 'department_for_managers' => 'Отдел (для менеджеров)', + 'position' => 'Должность', + 'shift' => 'Смена', + 'employment_status' => 'Статус занятости', + 'status' => 'Статус', + 'hire_date' => 'Дата приёма', + 'termination_date' => 'Дата увольнения', + 'notes' => 'Примечания', + 'email_address' => 'Email', + 'locale' => 'Язык', + 'number' => 'Номер', + 'name' => 'Имя', + 'employee' => 'Сотрудник', + 'type' => 'Тип', + 'attachment' => 'Вложение', + 'document' => 'Документ', + 'medical_document' => 'Медицинский документ', + 'return_date' => 'Дата возвращения', + 'approved_by' => 'Утвердил', + 'created_by' => 'Создал', + 'gift_name' => 'Название подарка', + 'gift' => 'Подарок', + 'active' => 'Активен', + 'starts_at' => 'Начало', + 'ends_at' => 'Конец', + 'starts' => 'Начало', + 'ends' => 'Конец', + 'days' => 'Дней', + 'birthday' => 'День рождения', + 'download' => 'Скачать', + 'date' => 'Дата', + 'subject_type' => 'Тип объекта', + 'subject_id' => 'ID объекта', + 'causer' => 'Инициатор', + 'log_name' => 'Имя журнала', + 'changes' => 'Изменения', + 'previous_values' => 'Предыдущие значения', + 'date_range' => 'Диапазон дат', + 'start_from' => 'Начало с', + 'start_until' => 'Начало до', + 'from' => 'С', + 'until' => 'До', + 'tenure' => 'Стаж', + 'vacation_taken_days' => 'Использовано отпуска (дней)', + 'vacation_remaining_days' => 'Остаток отпуска (дней)', + 'sick_leave_records' => 'Записи о больничных', + 'disciplinary_reports' => 'Дисциплинарные отчёты', + 'total_bonuses' => 'Всего премий', + 'gifts_received' => 'Получено подарков', + 'days_taken' => 'Использовано дней', + 'days_remaining' => 'Осталось дней', + 'annual_allowance' => 'Годовая норма', + 'scheduled_vacations' => 'Запланированные отпуска', + 'unpaid_leave_records' => 'Записи неоплачиваемого отпуска', + 'explanations' => 'Объяснительные', + 'title' => 'Заголовок', + 'description' => 'Описание', + 'severity' => 'Серьёзность', + 'amount' => 'Сумма', + 'reason' => 'Причина', + 'bonus_date' => 'Дата премии', + 'bonus_type' => 'Тип премии', + 'report_date' => 'Дата отчёта', + 'start_date' => 'Дата начала', + 'end_date' => 'Дата окончания', + 'institution' => 'Учреждение', + ], + + 'tabs' => [ + 'personal' => 'Личные данные', + 'employment' => 'Трудоустройство', + 'employee' => 'Сотрудник', + ], + + 'sections' => [ + 'employee_details' => 'Данные сотрудника', + 'overview' => 'Обзор', + 'profile' => 'Профиль', + 'employment_timeline' => 'История трудоустройства', + 'statistics' => 'Статистика', + 'leave_attendance' => 'Отпуска и посещаемость', + 'hr_records' => 'HR записи', + 'leave_summary' => 'Сводка отпусков', + 'annual_leave_balance' => 'Баланс ежегодного отпуска', + 'upcoming_approved_leave' => 'Предстоящий одобренный отпуск', + 'other_leave_types' => 'Другие типы отпусков', + 'activity_details' => 'Детали активности', + ], + + 'messages' => [ + 'no_upcoming_approved_leave' => 'Нет предстоящих одобренных отпусков', + 'days_suffix' => 'дней', + ], + + 'filters' => [ + 'all_shifts' => 'Все смены', + 'all_departments' => 'Все отделы', + ], + + 'audit' => [ + 'employee' => 'Сотрудник', + 'vacation' => 'Отпуск', + 'bonus' => 'Премия', + 'disciplinary_report' => 'Дисциплинарный отчёт', + 'department' => 'Отдел', + 'user' => 'Пользователь', + ], + + 'widgets' => [ + 'hr_overview' => 'Обзор HR', + 'upcoming_birthdays' => 'Предстоящие дни рождения (30 дней)', + 'upcoming_leave' => 'Предстоящий одобренный отпуск (14 дней)', + 'recent_disciplinary_reports' => 'Недавние дисциплинарные отчёты', + 'monthly_hiring' => 'Ежемесячный найм (последние 12 месяцев)', + 'vacation_days_by_month' => 'Дни отпуска по месяцам', + 'employees_by_department' => 'Сотрудники по отделам', + 'new_hires' => 'Новые сотрудники', + 'vacation_days' => 'Дни отпуска', + 'employees' => 'Сотрудники', + ], + + 'stats' => [ + 'total_employees' => 'Всего сотрудников', + 'total_employees_desc' => 'Все сотрудники в системе', + 'active' => 'Активные', + 'active_desc' => 'Сейчас активные сотрудники', + 'inactive' => 'Неактивные', + 'inactive_desc' => 'Неактивные сотрудники', + 'on_vacation_today' => 'В отпуске сегодня', + 'on_vacation_today_desc' => 'Одобренные отпуска в процессе', + 'on_sick_leave_today' => 'На больничном сегодня', + 'on_sick_leave_today_desc' => 'Сотрудники на больничном', + 'pending_requests' => 'Ожидающие запросы', + 'pending_requests_desc' => 'Запросы на отпуск, ожидающие одобрения', + ], + + 'actions' => [ + 'export' => 'Экспорт', + 'export_selected' => 'Экспорт выбранного', + 'export_pdf' => 'Экспорт PDF', + 'leave_summary_pdf' => 'PDF сводки отпусков', + 'approve' => 'Одобрить', + 'reject' => 'Отклонить', + 'change_department' => 'Изменить отдел', + 'download' => 'Скачать', + ], + + 'relation_managers' => [ + 'sick_leaves' => 'Больничные', + 'vacations' => 'Отпуска', + 'unpaid_leaves' => 'Неоплачиваемые отпуска', + 'disciplinary_reports' => 'Дисциплинарные отчёты', + 'explanations' => 'Объяснительные', + 'bonuses' => 'Премии', + 'gifts' => 'Подарки', + 'employee_documents' => 'Документы сотрудников', + ], + + 'import' => [ + 'title' => 'Мастер импорта', + 'import_type' => 'Тип импорта', + 'excel_file' => 'Файл Excel', + 'preview' => 'Предпросмотр', + 'import_results' => 'Результаты импорта', + 'start_import' => 'Начать импорт', + 'upload' => 'Загрузка', + 'upload_description' => 'Выберите тип импорта и загрузите файл Excel', + 'map_columns' => 'Сопоставление столбцов', + 'map_columns_description' => 'Сопоставьте столбцы таблицы с полями системы', + 'column_mapping' => 'Сопоставление столбцов', + 'preview_step' => 'Предпросмотр', + 'preview_description' => 'Просмотрите первые 10 строк с проверкой', + 'import_step' => 'Импорт', + 'import_description' => 'Запустите импорт и просмотрите результаты', + 'upload_required_title' => 'Требуется загрузка', + 'upload_required_body' => 'Пожалуйста, загрузите файл Excel перед импортом.', + 'import_queued_title' => 'Импорт поставлен в очередь', + 'import_queued_body' => 'Ваш импорт поставлен в очередь и будет обработан в ближайшее время.', + 'mapping_hint' => 'Загрузите файл на шаге 1 для загрузки заголовков столбцов.', + 'upload_to_preview' => 'Загрузите файл для предпросмотра строк.', + 'no_rows' => 'В загруженном файле строк не найдено.', + 'submit_to_see_results' => 'Отправьте импорт, чтобы увидеть результаты после обработки.', + 'row' => 'Строка', + 'validation' => 'Проверка', + 'valid' => 'Действительно', + 'total_rows' => 'Всего строк', + 'imported' => 'Импортировано', + 'skipped_duplicates' => 'Пропущено (дубликаты)', + 'failed' => 'Ошибки', + 'errors' => 'Ошибки', + ], +]; diff --git a/lang/ru/notifications.php b/lang/ru/notifications.php new file mode 100644 index 0000000..f142ca7 --- /dev/null +++ b/lang/ru/notifications.php @@ -0,0 +1,35 @@ + [ + 'subject' => 'Запрос на отпуск одобрен', + 'line_approved' => 'Запрос на отпуск для :name одобрен.', + 'type' => 'Тип', + 'dates' => 'Даты', + 'days' => 'Дней', + ], + + 'vacation_submitted' => [ + 'subject' => 'Новый запрос на отпуск', + 'line_submitted' => 'Новый запрос на отпуск отправлен для :name.', + 'type' => 'Тип', + 'dates' => 'Даты', + 'days' => 'Дней', + ], + + 'disciplinary_report_created' => [ + 'subject' => 'Создан новый дисциплинарный отчёт', + 'line_created' => 'Новый дисциплинарный отчёт создан для :name.', + 'title' => 'Заголовок', + 'severity' => 'Серьёзность', + 'date' => 'Дата', + ], + + 'employee_terminated' => [ + 'subject' => 'Сотрудник уволен', + 'line_terminated' => ':name (:number) уволен.', + 'termination_date' => 'Дата увольнения', + ], +]; diff --git a/lang/tk/enums.php b/lang/tk/enums.php new file mode 100644 index 0000000..b9f851a --- /dev/null +++ b/lang/tk/enums.php @@ -0,0 +1,59 @@ + [ + 'male' => 'Erkek', + 'female' => 'Aýal', + 'other' => 'Beýleki', + ], + + 'employment_status' => [ + 'active' => 'Işjeň', + 'inactive' => 'Işjeň däl', + 'terminated' => 'Işden boşadyldy', + 'on_leave' => 'Rugsatda', + ], + + 'vacation_type' => [ + 'annual' => 'Ýyllyk', + 'marriage' => 'Toý', + 'study' => 'Okuw', + 'other' => 'Beýleki', + ], + + 'approval_status' => [ + 'pending' => 'Garaşylýar', + 'approved' => 'Tassyklandy', + 'rejected' => 'Ret edildi', + ], + + 'document_type' => [ + 'passport' => 'Pasport', + 'contract' => 'Şertnama', + 'medical_certificate' => 'Lukmançylyk kepilnamasy', + 'education_certificate' => 'Bilim kepilnamasy', + 'other' => 'Beýleki', + ], + + 'bonus_type' => [ + 'performance' => 'Netije', + 'holiday' => 'Baýramçylyk', + 'retention' => 'Saklamak', + 'other' => 'Beýleki', + ], + + 'disciplinary_severity' => [ + 'low' => 'Pes', + 'medium' => 'Orta', + 'high' => 'Ýokary', + ], + + 'import_type' => [ + 'employees' => 'Işgärler', + 'vacations' => 'Dynç alyşlar', + 'bonuses' => 'Baýraklar', + 'reports' => 'Terbiýe hasabatlary', + ], +]; diff --git a/lang/tk/exports.php b/lang/tk/exports.php new file mode 100644 index 0000000..d18b5c5 --- /dev/null +++ b/lang/tk/exports.php @@ -0,0 +1,51 @@ + [ + 'title' => 'Işgärler sanawy', + 'heading' => 'Işgärler katalogy', + 'generated' => 'Döredildi', + 'number' => '#', + 'name' => 'Ady', + 'department' => 'Bölüm', + 'position' => 'Wezipesi', + 'shift' => 'Smena', + 'status' => 'Status', + 'phone' => 'Telefon', + ], + + 'employee_profile' => [ + 'title' => 'Işgär profili — :name', + 'department' => 'Bölüm', + 'position' => 'Wezipesi', + 'shift' => 'Smena', + 'status' => 'Status', + 'phone' => 'Telefon', + 'hire_date' => 'Işe kabul senesi', + 'termination' => 'Işden boşatma', + 'vacation_taken' => 'Alnan dynç alyş', + 'remaining' => 'Galan', + 'sick_leaves' => 'Kesel rugsatlary', + 'reports' => 'Hasabatlary', + ], + + 'leave_summary' => [ + 'title' => 'Dynç alyş jemlemesi — :name', + 'heading' => 'Dynç alyş jemlemesi', + 'annual_taken' => 'Alnan ýyllyk', + 'remaining' => 'Galan', + 'sick_leaves' => 'Kesel rugsatlary', + 'vacations' => 'Dynç alyşlar', + 'sick_leaves_heading' => 'Kesel rugsatlary', + 'start' => 'Başlanýar', + 'end' => 'Tamamlanýar', + 'days' => 'Günler', + 'type' => 'Görnüşi', + 'status' => 'Status', + 'institution' => 'Gurama', + 'no_vacation_records' => 'Dynç alyş ýazgylary ýok.', + 'no_sick_leave_records' => 'Kesel rugsat ýazgylary ýok.', + ], +]; diff --git a/lang/tk/hr.php b/lang/tk/hr.php new file mode 100644 index 0000000..0231d1b --- /dev/null +++ b/lang/tk/hr.php @@ -0,0 +1,248 @@ + [ + 'organization' => 'Gurama', + 'employees' => 'Işgärler', + 'leave_management' => 'Dynç alyş dolandyryşy', + 'records' => 'Ýazgylar', + 'system' => 'Ulgam', + ], + + 'resources' => [ + 'audit_log' => 'Audit žurnaly', + 'activity_log' => 'Işjeňlik ýazgy', + 'activity_logs' => 'Işjeňlik ýazgylary', + 'import_wizard' => 'Import soragçy', + 'department' => 'Bölüm', + 'departments' => 'Bölümler', + 'position' => 'Wezipesi', + 'positions' => 'Wezipeler', + 'shift' => 'Smena', + 'shifts' => 'Smenalar', + 'employee' => 'Işgär', + 'employees' => 'Işgärler', + 'vacation' => 'Dynç alyş', + 'vacations' => 'Dynç alyşlar', + 'sick_leave' => 'Kesel rugsady', + 'sick_leaves' => 'Kesel rugsatlary', + 'unpaid_leave' => 'Tölegsiz rugsat', + 'unpaid_leaves' => 'Tölegsiz rugsatlar', + 'disciplinary_report' => 'Terbiýe hasabaty', + 'disciplinary_reports' => 'Terbiýe hasabatlary', + 'explanation' => 'Düşündiriş', + 'explanations' => 'Düşündirişler', + 'bonus' => 'Baýrak', + 'bonuses' => 'Baýraklar', + 'gift' => 'Sowgat', + 'gifts' => 'Sowgatlar', + 'employee_document' => 'Işgär resminamasy', + 'employee_documents' => 'Işgär resminamalary', + 'user' => 'Ulanyjy', + 'users' => 'Ulanyjylar', + ], + + 'fields' => [ + 'photo' => 'Surat', + 'employee_number' => 'Işgär belgisi', + 'full_name' => 'Doly ady', + 'national_id' => 'Milli ID', + 'gender' => 'Jyns', + 'birth_date' => 'Doglan senesi', + 'phone' => 'Telefon', + 'address' => 'Salgy', + 'department' => 'Bölüm', + 'department_for_managers' => 'Bölüm (dolandyryjylar üçin)', + 'position' => 'Wezipesi', + 'shift' => 'Smena', + 'employment_status' => 'Iş statusy', + 'status' => 'Status', + 'hire_date' => 'Işe kabul senesi', + 'termination_date' => 'Işden boşatylan senesi', + 'notes' => 'Bellikler', + 'email_address' => 'Email salgysy', + 'locale' => 'Dil', + 'number' => 'Belgisi', + 'name' => 'Ady', + 'employee' => 'Işgär', + 'type' => 'Görnüşi', + 'attachment' => 'Goşmaça', + 'document' => 'Resminama', + 'medical_document' => 'Lukmançylyk resminamasy', + 'return_date' => 'Yzyna gelen senesi', + 'approved_by' => 'Tassyklady', + 'created_by' => 'Döretdi', + 'gift_name' => 'Sowgat ady', + 'gift' => 'Sowgat', + 'active' => 'Işjeň', + 'starts_at' => 'Başlaýar', + 'ends_at' => 'Tamamlanýar', + 'starts' => 'Başlaýar', + 'ends' => 'Tamamlanýar', + 'days' => 'Günler', + 'birthday' => 'Doglan güni', + 'download' => 'Göçürip al', + 'date' => 'Sene', + 'subject_type' => 'Obýekt görnüşi', + 'subject_id' => 'Obýekt ID', + 'causer' => 'Başlangyç', + 'log_name' => 'Žurnal ady', + 'changes' => 'Üýtgeşmeler', + 'previous_values' => 'Öňki bahalar', + 'date_range' => 'Sene aralygy', + 'start_from' => 'Başlanýan', + 'start_until' => 'Başlanýan çenli', + 'from' => 'Dan', + 'until' => 'Çenli', + 'tenure' => 'Iş tejribesi', + 'vacation_taken_days' => 'Alnan dynç alyş (gün)', + 'vacation_remaining_days' => 'Galan dynç alyş (gün)', + 'sick_leave_records' => 'Kesel rugsat ýazgylary', + 'disciplinary_reports' => 'Terbiýe hasabatlary', + 'total_bonuses' => 'Jemi baýraklar', + 'gifts_received' => 'Alnan sowgatlar', + 'days_taken' => 'Alnan günler', + 'days_remaining' => 'Galan günler', + 'annual_allowance' => 'Ýyllyk norma', + 'scheduled_vacations' => 'Meýilleşdirilen dynç alyşlar', + 'unpaid_leave_records' => 'Tölegsiz rugsat ýazgylary', + 'explanations' => 'Düşündirişler', + 'title' => 'Ady', + 'description' => 'Düşündiriş', + 'severity' => 'Agyrlygy', + 'amount' => 'Mukdary', + 'reason' => 'Sebäbi', + 'bonus_date' => 'Baýrak senesi', + 'bonus_type' => 'Baýrak görnüşi', + 'report_date' => 'Hasabat senesi', + 'start_date' => 'Başlanan senesi', + 'end_date' => 'Tamamlanan senesi', + 'institution' => 'Gurama', + ], + + 'tabs' => [ + 'personal' => 'Şahsy', + 'employment' => 'Iş', + 'employee' => 'Işgär', + ], + + 'sections' => [ + 'employee_details' => 'Işgär maglumatlary', + 'overview' => 'Gysgaça', + 'profile' => 'Profil', + 'employment_timeline' => 'Iş taryhy', + 'statistics' => 'Statistika', + 'leave_attendance' => 'Dynç alyş we gatnaşyk', + 'hr_records' => 'HR ýazgylary', + 'leave_summary' => 'Dynç alyş jemlemesi', + 'annual_leave_balance' => 'Ýyllyk dynç alyş balansy', + 'upcoming_approved_leave' => 'Ýakynlaşýan tassyklanan dynç alyş', + 'other_leave_types' => 'Beýleki rugsat görnüşleri', + 'activity_details' => 'Işjeňlik jikme-jiklikleri', + ], + + 'messages' => [ + 'no_upcoming_approved_leave' => 'Ýakynlaşýan tassyklanan dynç alyş ýok', + 'days_suffix' => 'gün', + ], + + 'filters' => [ + 'all_shifts' => 'Ähli smenalar', + 'all_departments' => 'Ähli bölümler', + ], + + 'audit' => [ + 'employee' => 'Işgär', + 'vacation' => 'Dynç alyş', + 'bonus' => 'Baýrak', + 'disciplinary_report' => 'Terbiýe hasabaty', + 'department' => 'Bölüm', + 'user' => 'Ulanyjy', + ], + + 'widgets' => [ + 'hr_overview' => 'HR syn', + 'upcoming_birthdays' => 'Ýakynlaşýan doglan günler (30 gün)', + 'upcoming_leave' => 'Ýakynlaşýan tassyklanan dynç alyş (14 gün)', + 'recent_disciplinary_reports' => 'Soňky terbiýe hasabatlary', + 'monthly_hiring' => 'Aýlyk işe kabul (soňky 12 aý)', + 'vacation_days_by_month' => 'Aýlar boýunça dynç alyş günleri', + 'employees_by_department' => 'Bölümler boýunça işgärler', + 'new_hires' => 'Täze işgärler', + 'vacation_days' => 'Dynç alyş günleri', + 'employees' => 'Işgärler', + ], + + 'stats' => [ + 'total_employees' => 'Jemi işgärler', + 'total_employees_desc' => 'Ulgamdaky ähli işgärler', + 'active' => 'Işjeň', + 'active_desc' => 'Häzirki işjeň işgärler', + 'inactive' => 'Işjeň däl', + 'inactive_desc' => 'Işjeň däl işgärler', + 'on_vacation_today' => 'Şu gün dynç alyşda', + 'on_vacation_today_desc' => 'Tassyklanan dynç alyşlar dowam edýär', + 'on_sick_leave_today' => 'Şu gün kesel rugsadynda', + 'on_sick_leave_today_desc' => 'Kesel rugsadyndaky işgärler', + 'pending_requests' => 'Garaşylýan soraglar', + 'pending_requests_desc' => 'Tassyklamagy garaşylýan dynç alyş soraglary', + ], + + 'actions' => [ + 'export' => 'Eksport', + 'export_selected' => 'Saýlanany eksport et', + 'export_pdf' => 'PDF eksport', + 'leave_summary_pdf' => 'Dynç alyş jemlemesi PDF', + 'approve' => 'Tassykla', + 'reject' => 'Ret et', + 'change_department' => 'Bölümi üýtget', + 'download' => 'Göçürip al', + ], + + 'relation_managers' => [ + 'sick_leaves' => 'Kesel rugsatlary', + 'vacations' => 'Dynç alyşlar', + 'unpaid_leaves' => 'Tölegsiz rugsatlar', + 'disciplinary_reports' => 'Terbiýe hasabatlary', + 'explanations' => 'Düşündirişler', + 'bonuses' => 'Baýraklar', + 'gifts' => 'Sowgatlar', + 'employee_documents' => 'Işgär resminamalary', + ], + + 'import' => [ + 'title' => 'Import soragçy', + 'import_type' => 'Import görnüşi', + 'excel_file' => 'Excel faýl', + 'preview' => 'Deslapky syn', + 'import_results' => 'Import netijeleri', + 'start_import' => 'Importy başlat', + 'upload' => 'Ýüklemek', + 'upload_description' => 'Import görnüşini saýlaň we Excel faýl ýükläň', + 'map_columns' => 'Sütünleri deňleşdir', + 'map_columns_description' => 'Tablisanyň sütünlerini ulgam meýdanlary bilen deňleşdiriň', + 'column_mapping' => 'Sütün deňleşdirmesi', + 'preview_step' => 'Deslapky syn', + 'preview_description' => 'Barlag bilen ilkinji 10 setiri gözden geçiriň', + 'import_step' => 'Import', + 'import_description' => 'Importy işlediň we netijeleri gözden geçiriň', + 'upload_required_title' => 'Ýüklemek zerur', + 'upload_required_body' => 'Importdan öň Excel faýl ýükläň.', + 'import_queued_title' => 'Import nobatda', + 'import_queued_body' => 'Importyňyz nobata goýuldy we ýakyn wagtda işleniler.', + 'mapping_hint' => 'Sütün başlyklaryny ýüklemek üçin 1-nji ädimde faýl ýükläň.', + 'upload_to_preview' => 'Setirleri görmek üçin faýl ýükläň.', + 'no_rows' => 'Ýüklenen faýlda setir tapylmady.', + 'submit_to_see_results' => 'Işlenenden soň netijeleri görmek üçin importy iberiň.', + 'row' => 'Setir', + 'validation' => 'Barlag', + 'valid' => 'Dogry', + 'total_rows' => 'Jemi setirler', + 'imported' => 'Import edildi', + 'skipped_duplicates' => 'Geçildi (dublikatlar)', + 'failed' => 'Şowsuz', + 'errors' => 'Ýalňyşlyklar', + ], +]; diff --git a/lang/tk/notifications.php b/lang/tk/notifications.php new file mode 100644 index 0000000..4cb9b68 --- /dev/null +++ b/lang/tk/notifications.php @@ -0,0 +1,35 @@ + [ + 'subject' => 'Dynç alyş soragy tassyklandy', + 'line_approved' => ':name üçin dynç alyş soragy tassyklandy.', + 'type' => 'Görnüşi', + 'dates' => 'Seneler', + 'days' => 'Günler', + ], + + 'vacation_submitted' => [ + 'subject' => 'Täze dynç alyş soragy', + 'line_submitted' => ':name üçin täze dynç alyş soragy iberildi.', + 'type' => 'Görnüşi', + 'dates' => 'Seneler', + 'days' => 'Günler', + ], + + 'disciplinary_report_created' => [ + 'subject' => 'Täze terbiýe hasabaty döredildi', + 'line_created' => ':name üçin täze terbiýe hasabaty döredildi.', + 'title' => 'Ady', + 'severity' => 'Agyrlygy', + 'date' => 'Sene', + ], + + 'employee_terminated' => [ + 'subject' => 'Işgär işden boşadyldy', + 'line_terminated' => ':name (:number) işden boşadyldy.', + 'termination_date' => 'Işden boşatylan senesi', + ], +]; diff --git a/lang/vendor/filament/am/components/button.php b/lang/vendor/filament/am/components/button.php new file mode 100644 index 0000000..8ca8576 --- /dev/null +++ b/lang/vendor/filament/am/components/button.php @@ -0,0 +1,9 @@ + [ + + 'uploading_file' => 'በመጫን ላይ...', + ], +]; diff --git a/lang/vendor/filament/am/components/copyable.php b/lang/vendor/filament/am/components/copyable.php new file mode 100644 index 0000000..2814996 --- /dev/null +++ b/lang/vendor/filament/am/components/copyable.php @@ -0,0 +1,9 @@ + [ + + 'copied' => 'ተቀድቶዋል', + ], +]; diff --git a/lang/vendor/filament/am/components/modal.php b/lang/vendor/filament/am/components/modal.php new file mode 100644 index 0000000..847172a --- /dev/null +++ b/lang/vendor/filament/am/components/modal.php @@ -0,0 +1,12 @@ + [ + + 'close' => [ + + 'label' => 'ዝጋ', + ], + ], +]; diff --git a/lang/vendor/filament/am/components/pagination.php b/lang/vendor/filament/am/components/pagination.php new file mode 100644 index 0000000..c1a2719 --- /dev/null +++ b/lang/vendor/filament/am/components/pagination.php @@ -0,0 +1,41 @@ + 'የገጽታ አሰሳ', + 'overview' => '{1} ከ1 መዝገብ 1 በማሳየት ላይ |[2,*] ከጠቅላላ :total መዝገቦች ከ:first እስከ :last በማሳየት ላይ::', + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'በየ ገጽ', + 'options' => [ + + 'all' => 'ሁሉም', + ], + ], + ], + 'actions' => [ + + 'first' => [ + + 'label' => 'መጀመርያ', + ], + 'go_to_page' => [ + + 'label' => 'ወደ ገጽ :page ሂድ', + ], + 'last' => [ + + 'label' => 'መጨረሻ', + ], + 'next' => [ + + 'label' => 'ቀጣይ', + ], + 'previous' => [ + + 'label' => 'ያለፈው', + ], + ], +]; diff --git a/lang/vendor/filament/ar/components/button.php b/lang/vendor/filament/ar/components/button.php new file mode 100644 index 0000000..af3285e --- /dev/null +++ b/lang/vendor/filament/ar/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'جارٍ رفع الملف...', + ], + +]; diff --git a/lang/vendor/filament/ar/components/copyable.php b/lang/vendor/filament/ar/components/copyable.php new file mode 100644 index 0000000..b9b2e69 --- /dev/null +++ b/lang/vendor/filament/ar/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'تم النسخ', + ], + +]; diff --git a/lang/vendor/filament/ar/components/modal.php b/lang/vendor/filament/ar/components/modal.php new file mode 100644 index 0000000..9bd2463 --- /dev/null +++ b/lang/vendor/filament/ar/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'إغلاق', + ], + + ], + +]; diff --git a/lang/vendor/filament/ar/components/pagination.php b/lang/vendor/filament/ar/components/pagination.php new file mode 100644 index 0000000..0276c6c --- /dev/null +++ b/lang/vendor/filament/ar/components/pagination.php @@ -0,0 +1,47 @@ + 'التنقل بين الصفحات', + + 'overview' => '{1} عرض نتيجة واحدة|{2} عرض :first إلى :last من نتيجتين|[3,10] عرض :first إلى :last من :total نتائج|[11,*] عرض :first إلى :last من :total نتيجة', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'لكل صفحة', + + 'options' => [ + 'all' => 'الكل', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'الأولى', + ], + + 'go_to_page' => [ + 'label' => 'انتقل إلى صفحة :page', + ], + + 'last' => [ + 'label' => 'الأخيرة', + ], + + 'next' => [ + 'label' => 'التالي', + ], + + 'previous' => [ + 'label' => 'السابق', + ], + + ], + +]; diff --git a/lang/vendor/filament/az/components/button.php b/lang/vendor/filament/az/components/button.php new file mode 100644 index 0000000..878f74c --- /dev/null +++ b/lang/vendor/filament/az/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Fayl yüklənir...', + ], + +]; diff --git a/lang/vendor/filament/az/components/copyable.php b/lang/vendor/filament/az/components/copyable.php new file mode 100644 index 0000000..4b0c3ea --- /dev/null +++ b/lang/vendor/filament/az/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopyalandı', + ], + +]; diff --git a/lang/vendor/filament/az/components/modal.php b/lang/vendor/filament/az/components/modal.php new file mode 100644 index 0000000..c515b80 --- /dev/null +++ b/lang/vendor/filament/az/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Bağla', + ], + + ], + +]; diff --git a/lang/vendor/filament/az/components/pagination.php b/lang/vendor/filament/az/components/pagination.php new file mode 100644 index 0000000..72a7f81 --- /dev/null +++ b/lang/vendor/filament/az/components/pagination.php @@ -0,0 +1,45 @@ + 'Səhifələndirmə Naviqasiyası', + + 'overview' => 'Toplam :total nəticədən :first ile :last arası göstərilir', + + 'fields' => [ + + 'records_per_page' => [ + 'label' => 'səhifə başına', + + 'options' => [ + 'all' => 'Hamısı', + ], + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Birinci', + ], + + 'go_to_page' => [ + 'label' => ':page. səhifəyə get', + ], + + 'next' => [ + 'label' => 'Sonrakı', + ], + + 'last' => [ + 'label' => 'Son', + ], + + 'previous' => [ + 'label' => 'Əvvəlki', + ], + + ], + +]; diff --git a/lang/vendor/filament/bg/components/button.php b/lang/vendor/filament/bg/components/button.php new file mode 100644 index 0000000..a732754 --- /dev/null +++ b/lang/vendor/filament/bg/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Качване на файл...', + ], + +]; diff --git a/lang/vendor/filament/bg/components/copyable.php b/lang/vendor/filament/bg/components/copyable.php new file mode 100644 index 0000000..7753fd7 --- /dev/null +++ b/lang/vendor/filament/bg/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Копирано', + ], + +]; diff --git a/lang/vendor/filament/bg/components/modal.php b/lang/vendor/filament/bg/components/modal.php new file mode 100644 index 0000000..8ca951f --- /dev/null +++ b/lang/vendor/filament/bg/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Затвори', + ], + + ], + +]; diff --git a/lang/vendor/filament/bg/components/pagination.php b/lang/vendor/filament/bg/components/pagination.php new file mode 100644 index 0000000..7a2df50 --- /dev/null +++ b/lang/vendor/filament/bg/components/pagination.php @@ -0,0 +1,47 @@ + 'Наигация на странициране', + + 'overview' => '{1} Показване на 1 резултат|[2,*] Показване на :first до :last от общо :total резултата', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Резултати на страница', + + 'options' => [ + 'all' => 'Всички', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Първа', + ], + + 'go_to_page' => [ + 'label' => 'Отиди на страница :page', + ], + + 'last' => [ + 'label' => 'Последна', + ], + + 'next' => [ + 'label' => 'Следваща', + ], + + 'previous' => [ + 'label' => 'Предишна', + ], + + ], + +]; diff --git a/lang/vendor/filament/bn/components/button.php b/lang/vendor/filament/bn/components/button.php new file mode 100644 index 0000000..6869f2f --- /dev/null +++ b/lang/vendor/filament/bn/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'নথি আপলোড হচ্ছে...', + ], + +]; diff --git a/lang/vendor/filament/bn/components/copyable.php b/lang/vendor/filament/bn/components/copyable.php new file mode 100644 index 0000000..4cf5ce9 --- /dev/null +++ b/lang/vendor/filament/bn/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'অনুকৃত', + ], + +]; diff --git a/lang/vendor/filament/bn/components/modal.php b/lang/vendor/filament/bn/components/modal.php new file mode 100644 index 0000000..2471549 --- /dev/null +++ b/lang/vendor/filament/bn/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'বন্ধ করুন', + ], + + ], + +]; diff --git a/lang/vendor/filament/bn/components/pagination.php b/lang/vendor/filament/bn/components/pagination.php new file mode 100644 index 0000000..fdf351a --- /dev/null +++ b/lang/vendor/filament/bn/components/pagination.php @@ -0,0 +1,47 @@ + 'পৃষ্ঠা নেভিগেশন', + + 'overview' => '{1} ১টি ফলাফল দেখানো হচ্ছে|[2,*] :total এর মধ্যে :first থেকে :last পর্যন্ত দেখানো হচ্ছে', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'প্রতি পৃষ্ঠা', + + 'options' => [ + 'all' => 'সব', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'প্রথম', + ], + + 'go_to_page' => [ + 'label' => ':page পৃষ্ঠায় যান', + ], + + 'last' => [ + 'label' => 'শেষ', + ], + + 'next' => [ + 'label' => 'পরবর্তী', + ], + + 'previous' => [ + 'label' => 'পূর্ববর্তী', + ], + + ], + +]; diff --git a/lang/vendor/filament/bs/components/button.php b/lang/vendor/filament/bs/components/button.php new file mode 100644 index 0000000..2d28427 --- /dev/null +++ b/lang/vendor/filament/bs/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Učitavanje fajlova...', + ], + +]; diff --git a/lang/vendor/filament/bs/components/copyable.php b/lang/vendor/filament/bs/components/copyable.php new file mode 100644 index 0000000..0741c30 --- /dev/null +++ b/lang/vendor/filament/bs/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopirano', + ], + +]; diff --git a/lang/vendor/filament/bs/components/modal.php b/lang/vendor/filament/bs/components/modal.php new file mode 100644 index 0000000..99e56d0 --- /dev/null +++ b/lang/vendor/filament/bs/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zatvoriti', + ], + + ], + +]; diff --git a/lang/vendor/filament/bs/components/pagination.php b/lang/vendor/filament/bs/components/pagination.php new file mode 100644 index 0000000..a70f29e --- /dev/null +++ b/lang/vendor/filament/bs/components/pagination.php @@ -0,0 +1,39 @@ + 'Navigacija po stranicama', + + 'overview' => '{1} Prikazuje 1 rezultat|[2,*]Prikazivanje :first od :last od ukupno :total rezultata', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'po stranici', + + 'options' => [ + 'all' => 'Svi', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Idite na stranicu :page', + ], + + 'next' => [ + 'label' => 'Dalje', + ], + + 'previous' => [ + 'label' => 'Nazad', + ], + + ], + +]; diff --git a/lang/vendor/filament/ca/components/button.php b/lang/vendor/filament/ca/components/button.php new file mode 100644 index 0000000..a7e0eb5 --- /dev/null +++ b/lang/vendor/filament/ca/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Pujant arxiu...', + ], + +]; diff --git a/lang/vendor/filament/ca/components/copyable.php b/lang/vendor/filament/ca/components/copyable.php new file mode 100644 index 0000000..4311f32 --- /dev/null +++ b/lang/vendor/filament/ca/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiat', + ], + +]; diff --git a/lang/vendor/filament/ca/components/modal.php b/lang/vendor/filament/ca/components/modal.php new file mode 100644 index 0000000..8edca02 --- /dev/null +++ b/lang/vendor/filament/ca/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Tancar', + ], + + ], + +]; diff --git a/lang/vendor/filament/ca/components/pagination.php b/lang/vendor/filament/ca/components/pagination.php new file mode 100644 index 0000000..5778231 --- /dev/null +++ b/lang/vendor/filament/ca/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginació', + + 'overview' => '{1} Mostrant 1 resultat|[2,*] Mostrant :first a :last de :total resultats', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Per pàgina', + + 'options' => [ + 'all' => 'Tots', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Primera', + ], + + 'go_to_page' => [ + 'label' => 'Anar a la pàgina :page', + ], + + 'last' => [ + 'label' => 'Última', + ], + + 'next' => [ + 'label' => 'Següent', + ], + + 'previous' => [ + 'label' => 'Anterior', + ], + + ], + +]; diff --git a/lang/vendor/filament/ckb/components/button.php b/lang/vendor/filament/ckb/components/button.php new file mode 100644 index 0000000..c25b7c5 --- /dev/null +++ b/lang/vendor/filament/ckb/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'بارکردنی پەڕگە...', + ], + +]; diff --git a/lang/vendor/filament/ckb/components/copyable.php b/lang/vendor/filament/ckb/components/copyable.php new file mode 100644 index 0000000..0f42ce1 --- /dev/null +++ b/lang/vendor/filament/ckb/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'لەبەرگیرایەوە', + ], + +]; diff --git a/lang/vendor/filament/ckb/components/modal.php b/lang/vendor/filament/ckb/components/modal.php new file mode 100644 index 0000000..e731d06 --- /dev/null +++ b/lang/vendor/filament/ckb/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'داخستن', + ], + + ], + +]; diff --git a/lang/vendor/filament/ckb/components/pagination.php b/lang/vendor/filament/ckb/components/pagination.php new file mode 100644 index 0000000..005d40d --- /dev/null +++ b/lang/vendor/filament/ckb/components/pagination.php @@ -0,0 +1,47 @@ + 'ڕێنوێیی پەڕەکردن', + + 'overview' => '{1} پشاندانی ئەنجامێک|[2,*] پیشاندانی :first بۆ :last لە :total ئەنجام', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'بۆ هەر پەڕەیەک', + + 'options' => [ + 'all' => 'هەموو', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'یەکەم', + ], + + 'go_to_page' => [ + 'label' => 'بڕۆ بۆ پەڕەی :page', + ], + + 'last' => [ + 'label' => 'دوایین', + ], + + 'next' => [ + 'label' => 'دواتر', + ], + + 'previous' => [ + 'label' => 'پێشتر', + ], + + ], + +]; diff --git a/lang/vendor/filament/cs/components/badge.php b/lang/vendor/filament/cs/components/badge.php new file mode 100644 index 0000000..930cf2a --- /dev/null +++ b/lang/vendor/filament/cs/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Odstranit', + ], + + ], + +]; diff --git a/lang/vendor/filament/cs/components/breadcrumbs.php b/lang/vendor/filament/cs/components/breadcrumbs.php new file mode 100644 index 0000000..1506ba8 --- /dev/null +++ b/lang/vendor/filament/cs/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Navigační cesta', + +]; diff --git a/lang/vendor/filament/cs/components/button.php b/lang/vendor/filament/cs/components/button.php new file mode 100644 index 0000000..b6f054b --- /dev/null +++ b/lang/vendor/filament/cs/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'Nahrávání souboru...', + + ], + +]; diff --git a/lang/vendor/filament/cs/components/copyable.php b/lang/vendor/filament/cs/components/copyable.php new file mode 100644 index 0000000..c6b1042 --- /dev/null +++ b/lang/vendor/filament/cs/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Zkopírováno', + ], + +]; diff --git a/lang/vendor/filament/cs/components/input/one-time-code.php b/lang/vendor/filament/cs/components/input/one-time-code.php new file mode 100644 index 0000000..4ea1ae1 --- /dev/null +++ b/lang/vendor/filament/cs/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Znak :position z :count', + +]; diff --git a/lang/vendor/filament/cs/components/loading-section.php b/lang/vendor/filament/cs/components/loading-section.php new file mode 100644 index 0000000..4542e61 --- /dev/null +++ b/lang/vendor/filament/cs/components/loading-section.php @@ -0,0 +1,7 @@ + 'Načítává se...', + +]; diff --git a/lang/vendor/filament/cs/components/modal.php b/lang/vendor/filament/cs/components/modal.php new file mode 100644 index 0000000..47a8e24 --- /dev/null +++ b/lang/vendor/filament/cs/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zavřít', + ], + + ], + +]; diff --git a/lang/vendor/filament/cs/components/pagination.php b/lang/vendor/filament/cs/components/pagination.php new file mode 100644 index 0000000..7c7d331 --- /dev/null +++ b/lang/vendor/filament/cs/components/pagination.php @@ -0,0 +1,45 @@ + 'Stránkování', + + 'overview' => '{1} Zobrazuji 1 výsledek|[2,*] Zobrazuji :first až :last z :total výsledků', + + 'fields' => [ + + 'records_per_page' => [ + 'label' => 'na stránku', + + 'options' => [ + 'all' => 'Vše', + ], + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'První', + ], + + 'go_to_page' => [ + 'label' => 'Jít na stránku :page', + ], + + 'last' => [ + 'label' => 'Poslední', + ], + + 'next' => [ + 'label' => 'Další', + ], + + 'previous' => [ + 'label' => 'Předchozí', + ], + + ], + +]; diff --git a/lang/vendor/filament/cs/components/section.php b/lang/vendor/filament/cs/components/section.php new file mode 100644 index 0000000..d7da619 --- /dev/null +++ b/lang/vendor/filament/cs/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Sbalit sekci', + ], + + 'expand' => [ + 'label' => 'Rozbalit sekci', + ], + + ], + +]; diff --git a/lang/vendor/filament/cs/components/tabs.php b/lang/vendor/filament/cs/components/tabs.php new file mode 100644 index 0000000..abecc35 --- /dev/null +++ b/lang/vendor/filament/cs/components/tabs.php @@ -0,0 +1,7 @@ + 'Záložky', + +]; diff --git a/lang/vendor/filament/cy/components/copyable.php b/lang/vendor/filament/cy/components/copyable.php new file mode 100644 index 0000000..282c992 --- /dev/null +++ b/lang/vendor/filament/cy/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Wedi Copïo', + ], + +]; diff --git a/lang/vendor/filament/cy/components/pagination.php b/lang/vendor/filament/cy/components/pagination.php new file mode 100644 index 0000000..33b44aa --- /dev/null +++ b/lang/vendor/filament/cy/components/pagination.php @@ -0,0 +1,39 @@ + 'Gwe-lywio tudalennau', + + 'overview' => '{1} Dangos 1 canlyniad|[2,*] Yn dangos :first i :last o :total canlyniadau', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'fesul tudalen', + + 'options' => [ + 'all' => 'Pawb', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Ewch i dudalen :page', + ], + + 'next' => [ + 'label' => 'Nesaf', + ], + + 'previous' => [ + 'label' => 'Blaenorol', + ], + + ], + +]; diff --git a/lang/vendor/filament/da/components/button.php b/lang/vendor/filament/da/components/button.php new file mode 100644 index 0000000..ed9ffe6 --- /dev/null +++ b/lang/vendor/filament/da/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Uploader fil...', + ], + +]; diff --git a/lang/vendor/filament/da/components/copyable.php b/lang/vendor/filament/da/components/copyable.php new file mode 100644 index 0000000..47492bd --- /dev/null +++ b/lang/vendor/filament/da/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopieret', + ], + +]; diff --git a/lang/vendor/filament/da/components/modal.php b/lang/vendor/filament/da/components/modal.php new file mode 100644 index 0000000..fece422 --- /dev/null +++ b/lang/vendor/filament/da/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Luk', + ], + + ], + +]; diff --git a/lang/vendor/filament/da/components/pagination.php b/lang/vendor/filament/da/components/pagination.php new file mode 100644 index 0000000..fee1068 --- /dev/null +++ b/lang/vendor/filament/da/components/pagination.php @@ -0,0 +1,39 @@ + 'Paginering Navigation', + + 'overview' => 'Viser :first til :last af :total resultater', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'per side', + + 'options' => [ + 'all' => 'Alle', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Gå til side :page', + ], + + 'next' => [ + 'label' => 'Næste', + ], + + 'previous' => [ + 'label' => 'Forrige', + ], + + ], + +]; diff --git a/lang/vendor/filament/de/components/badge.php b/lang/vendor/filament/de/components/badge.php new file mode 100644 index 0000000..58a4696 --- /dev/null +++ b/lang/vendor/filament/de/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Entfernen', + ], + + ], + +]; diff --git a/lang/vendor/filament/de/components/breadcrumbs.php b/lang/vendor/filament/de/components/breadcrumbs.php new file mode 100644 index 0000000..daa22d2 --- /dev/null +++ b/lang/vendor/filament/de/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Breadcrumb', + +]; diff --git a/lang/vendor/filament/de/components/button.php b/lang/vendor/filament/de/components/button.php new file mode 100644 index 0000000..3586998 --- /dev/null +++ b/lang/vendor/filament/de/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Datei wird hochgeladen...', + ], + +]; diff --git a/lang/vendor/filament/de/components/copyable.php b/lang/vendor/filament/de/components/copyable.php new file mode 100644 index 0000000..0d89569 --- /dev/null +++ b/lang/vendor/filament/de/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopiert', + ], + +]; diff --git a/lang/vendor/filament/de/components/input/one-time-code.php b/lang/vendor/filament/de/components/input/one-time-code.php new file mode 100644 index 0000000..914febe --- /dev/null +++ b/lang/vendor/filament/de/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Zeichen :position von :count', + +]; diff --git a/lang/vendor/filament/de/components/loading-section.php b/lang/vendor/filament/de/components/loading-section.php new file mode 100644 index 0000000..fe6f5a6 --- /dev/null +++ b/lang/vendor/filament/de/components/loading-section.php @@ -0,0 +1,7 @@ + 'Lädt...', + +]; diff --git a/lang/vendor/filament/de/components/modal.php b/lang/vendor/filament/de/components/modal.php new file mode 100644 index 0000000..dfaa393 --- /dev/null +++ b/lang/vendor/filament/de/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Schließen', + ], + + ], + +]; diff --git a/lang/vendor/filament/de/components/pagination.php b/lang/vendor/filament/de/components/pagination.php new file mode 100644 index 0000000..64301da --- /dev/null +++ b/lang/vendor/filament/de/components/pagination.php @@ -0,0 +1,47 @@ + 'Seitennavigation', + + 'overview' => '{1} Zeige 1 Ergebnis|[2,*] Zeige :first bis :last von :total Ergebnissen', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'pro Seite', + + 'options' => [ + 'all' => 'Alle', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Erste', + ], + + 'go_to_page' => [ + 'label' => 'Weiter zur Seite :page', + ], + + 'last' => [ + 'label' => 'Letzte', + ], + + 'next' => [ + 'label' => 'Nächste', + ], + + 'previous' => [ + 'label' => 'Vorherige', + ], + + ], + +]; diff --git a/lang/vendor/filament/de/components/section.php b/lang/vendor/filament/de/components/section.php new file mode 100644 index 0000000..279aa75 --- /dev/null +++ b/lang/vendor/filament/de/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Abschnitt einklappen', + ], + + 'expand' => [ + 'label' => 'Abschnitt ausklappen', + ], + + ], + +]; diff --git a/lang/vendor/filament/de/components/tabs.php b/lang/vendor/filament/de/components/tabs.php new file mode 100644 index 0000000..accfad9 --- /dev/null +++ b/lang/vendor/filament/de/components/tabs.php @@ -0,0 +1,7 @@ + 'Registerkarten', + +]; diff --git a/lang/vendor/filament/el/components/button.php b/lang/vendor/filament/el/components/button.php new file mode 100644 index 0000000..6329cc1 --- /dev/null +++ b/lang/vendor/filament/el/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Uploading file...', + ], + +]; diff --git a/lang/vendor/filament/el/components/copyable.php b/lang/vendor/filament/el/components/copyable.php new file mode 100644 index 0000000..683a0c7 --- /dev/null +++ b/lang/vendor/filament/el/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Αντιγράφηκε', + ], + +]; diff --git a/lang/vendor/filament/el/components/modal.php b/lang/vendor/filament/el/components/modal.php new file mode 100644 index 0000000..d6a944f --- /dev/null +++ b/lang/vendor/filament/el/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Άκυρο', + ], + + ], + +]; diff --git a/lang/vendor/filament/el/components/pagination.php b/lang/vendor/filament/el/components/pagination.php new file mode 100644 index 0000000..e6b488f --- /dev/null +++ b/lang/vendor/filament/el/components/pagination.php @@ -0,0 +1,47 @@ + 'Pagination navigation', + + 'overview' => '{1} Προβολή 1 αποτελέσματος|[2,*] Προβολή :first έως :last (από :total αποτελέσματα)', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Ανά σελίδα', + + 'options' => [ + 'all' => 'Όλα', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Πρώτη σελίδα', + ], + + 'go_to_page' => [ + 'label' => 'Πήγαινε στη σελίδα :page', + ], + + 'last' => [ + 'label' => 'Τελευταία σελίδα', + ], + + 'next' => [ + 'label' => 'Επόμενη', + ], + + 'previous' => [ + 'label' => 'Προηγούμενη', + ], + + ], + +]; diff --git a/lang/vendor/filament/en/components/badge.php b/lang/vendor/filament/en/components/badge.php new file mode 100644 index 0000000..a0ebecd --- /dev/null +++ b/lang/vendor/filament/en/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Remove', + ], + + ], + +]; diff --git a/lang/vendor/filament/en/components/breadcrumbs.php b/lang/vendor/filament/en/components/breadcrumbs.php new file mode 100644 index 0000000..daa22d2 --- /dev/null +++ b/lang/vendor/filament/en/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Breadcrumb', + +]; diff --git a/lang/vendor/filament/en/components/button.php b/lang/vendor/filament/en/components/button.php new file mode 100644 index 0000000..6329cc1 --- /dev/null +++ b/lang/vendor/filament/en/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Uploading file...', + ], + +]; diff --git a/lang/vendor/filament/en/components/copyable.php b/lang/vendor/filament/en/components/copyable.php new file mode 100644 index 0000000..8c73673 --- /dev/null +++ b/lang/vendor/filament/en/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copied', + ], + +]; diff --git a/lang/vendor/filament/en/components/input/one-time-code.php b/lang/vendor/filament/en/components/input/one-time-code.php new file mode 100644 index 0000000..0ba9cc7 --- /dev/null +++ b/lang/vendor/filament/en/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Character :position of :count', + +]; diff --git a/lang/vendor/filament/en/components/loading-section.php b/lang/vendor/filament/en/components/loading-section.php new file mode 100644 index 0000000..8941893 --- /dev/null +++ b/lang/vendor/filament/en/components/loading-section.php @@ -0,0 +1,7 @@ + 'Loading...', + +]; diff --git a/lang/vendor/filament/en/components/modal.php b/lang/vendor/filament/en/components/modal.php new file mode 100644 index 0000000..5321407 --- /dev/null +++ b/lang/vendor/filament/en/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Close', + ], + + ], + +]; diff --git a/lang/vendor/filament/en/components/pagination.php b/lang/vendor/filament/en/components/pagination.php new file mode 100644 index 0000000..6c51acd --- /dev/null +++ b/lang/vendor/filament/en/components/pagination.php @@ -0,0 +1,47 @@ + 'Pagination navigation', + + 'overview' => '{1} Showing 1 result|[2,*] Showing :first to :last of :total results', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Per page', + + 'options' => [ + 'all' => 'All', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'First', + ], + + 'go_to_page' => [ + 'label' => 'Go to page :page', + ], + + 'last' => [ + 'label' => 'Last', + ], + + 'next' => [ + 'label' => 'Next', + ], + + 'previous' => [ + 'label' => 'Previous', + ], + + ], + +]; diff --git a/lang/vendor/filament/en/components/section.php b/lang/vendor/filament/en/components/section.php new file mode 100644 index 0000000..8c1bc6b --- /dev/null +++ b/lang/vendor/filament/en/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Collapse section', + ], + + 'expand' => [ + 'label' => 'Expand section', + ], + + ], + +]; diff --git a/lang/vendor/filament/en/components/tabs.php b/lang/vendor/filament/en/components/tabs.php new file mode 100644 index 0000000..13981e5 --- /dev/null +++ b/lang/vendor/filament/en/components/tabs.php @@ -0,0 +1,7 @@ + 'Tabs', + +]; diff --git a/lang/vendor/filament/es/components/badge.php b/lang/vendor/filament/es/components/badge.php new file mode 100644 index 0000000..17aa9db --- /dev/null +++ b/lang/vendor/filament/es/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Remover', + ], + + ], + +]; diff --git a/lang/vendor/filament/es/components/breadcrumbs.php b/lang/vendor/filament/es/components/breadcrumbs.php new file mode 100644 index 0000000..242c061 --- /dev/null +++ b/lang/vendor/filament/es/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Ruta de navegación', + +]; diff --git a/lang/vendor/filament/es/components/button.php b/lang/vendor/filament/es/components/button.php new file mode 100644 index 0000000..1411349 --- /dev/null +++ b/lang/vendor/filament/es/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'Subiendo archivo...', + + ], + +]; diff --git a/lang/vendor/filament/es/components/copyable.php b/lang/vendor/filament/es/components/copyable.php new file mode 100644 index 0000000..2aadb0b --- /dev/null +++ b/lang/vendor/filament/es/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiado', + ], + +]; diff --git a/lang/vendor/filament/es/components/input/one-time-code.php b/lang/vendor/filament/es/components/input/one-time-code.php new file mode 100644 index 0000000..7724092 --- /dev/null +++ b/lang/vendor/filament/es/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Carácter :position de :count', + +]; diff --git a/lang/vendor/filament/es/components/loading-section.php b/lang/vendor/filament/es/components/loading-section.php new file mode 100644 index 0000000..d107b95 --- /dev/null +++ b/lang/vendor/filament/es/components/loading-section.php @@ -0,0 +1,7 @@ + 'Cargando...', + +]; diff --git a/lang/vendor/filament/es/components/modal.php b/lang/vendor/filament/es/components/modal.php new file mode 100644 index 0000000..b679fc7 --- /dev/null +++ b/lang/vendor/filament/es/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Cerrar', + ], + + ], + +]; diff --git a/lang/vendor/filament/es/components/pagination.php b/lang/vendor/filament/es/components/pagination.php new file mode 100644 index 0000000..b8e9377 --- /dev/null +++ b/lang/vendor/filament/es/components/pagination.php @@ -0,0 +1,47 @@ + 'Navegación de paginación', + + 'overview' => '{1} Se muestra un resultado|[2,*] Se muestran de :first a :last de :total resultados', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'por página', + + 'options' => [ + 'all' => 'Todos', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Primera', + ], + + 'go_to_page' => [ + 'label' => 'Ir a la página :page', + ], + + 'last' => [ + 'label' => 'Última', + ], + + 'next' => [ + 'label' => 'Siguiente', + ], + + 'previous' => [ + 'label' => 'Anterior', + ], + + ], + +]; diff --git a/lang/vendor/filament/es/components/section.php b/lang/vendor/filament/es/components/section.php new file mode 100644 index 0000000..65231d2 --- /dev/null +++ b/lang/vendor/filament/es/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Contraer sección', + ], + + 'expand' => [ + 'label' => 'Expandir sección', + ], + + ], + +]; diff --git a/lang/vendor/filament/es/components/tabs.php b/lang/vendor/filament/es/components/tabs.php new file mode 100644 index 0000000..0f78f0f --- /dev/null +++ b/lang/vendor/filament/es/components/tabs.php @@ -0,0 +1,7 @@ + 'Pestañas', + +]; diff --git a/lang/vendor/filament/et/components/button.php b/lang/vendor/filament/et/components/button.php new file mode 100644 index 0000000..17985a2 --- /dev/null +++ b/lang/vendor/filament/et/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Faili üleslaadimine...', + ], + +]; diff --git a/lang/vendor/filament/et/components/copyable.php b/lang/vendor/filament/et/components/copyable.php new file mode 100644 index 0000000..93d08f8 --- /dev/null +++ b/lang/vendor/filament/et/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopeeritud', + ], + +]; diff --git a/lang/vendor/filament/et/components/modal.php b/lang/vendor/filament/et/components/modal.php new file mode 100644 index 0000000..5953764 --- /dev/null +++ b/lang/vendor/filament/et/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Sulge', + ], + + ], + +]; diff --git a/lang/vendor/filament/et/components/pagination.php b/lang/vendor/filament/et/components/pagination.php new file mode 100644 index 0000000..b1e850f --- /dev/null +++ b/lang/vendor/filament/et/components/pagination.php @@ -0,0 +1,47 @@ + 'Lehe navigeerimine', + + 'overview' => '{1} Kuvatakse 1 tulemus|[2,*] Kuvatakse :first – :last kokku :total tulemusest', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Lehel', + + 'options' => [ + 'all' => 'Kõik', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Esimene', + ], + + 'go_to_page' => [ + 'label' => 'Mine lehele :page', + ], + + 'last' => [ + 'label' => 'Viimane', + ], + + 'next' => [ + 'label' => 'Järgmine', + ], + + 'previous' => [ + 'label' => 'Eelmine', + ], + + ], + +]; diff --git a/lang/vendor/filament/eu/components/button.php b/lang/vendor/filament/eu/components/button.php new file mode 100644 index 0000000..8af7f16 --- /dev/null +++ b/lang/vendor/filament/eu/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'Artxiboa igotzen...', + + ], + +]; diff --git a/lang/vendor/filament/eu/components/copyable.php b/lang/vendor/filament/eu/components/copyable.php new file mode 100644 index 0000000..3e35961 --- /dev/null +++ b/lang/vendor/filament/eu/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopiatuta', + ], + +]; diff --git a/lang/vendor/filament/eu/components/modal.php b/lang/vendor/filament/eu/components/modal.php new file mode 100644 index 0000000..ce784f0 --- /dev/null +++ b/lang/vendor/filament/eu/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Itxi', + ], + + ], + +]; diff --git a/lang/vendor/filament/eu/components/pagination.php b/lang/vendor/filament/eu/components/pagination.php new file mode 100644 index 0000000..6fc1c67 --- /dev/null +++ b/lang/vendor/filament/eu/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginazioaren nabigazioa', + + 'overview' => '{1} Emaitza bat erakusten da|[2,*] :total emaitzatik :firstetik :lastera erakusten dira', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'orriko', + + 'options' => [ + 'all' => 'Denak', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Lehena', + ], + + 'go_to_page' => [ + 'label' => 'Joan :page orrira', + ], + + 'last' => [ + 'label' => 'Azkena', + ], + + 'next' => [ + 'label' => 'Hurrengoa', + ], + + 'previous' => [ + 'label' => 'Aurrekoa', + ], + + ], + +]; diff --git a/lang/vendor/filament/fa/components/button.php b/lang/vendor/filament/fa/components/button.php new file mode 100644 index 0000000..289a81d --- /dev/null +++ b/lang/vendor/filament/fa/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'درحال آپلود فایل...', + + ], + +]; diff --git a/lang/vendor/filament/fa/components/copyable.php b/lang/vendor/filament/fa/components/copyable.php new file mode 100644 index 0000000..c5a2eb5 --- /dev/null +++ b/lang/vendor/filament/fa/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'کپی شد', + ], + +]; diff --git a/lang/vendor/filament/fa/components/modal.php b/lang/vendor/filament/fa/components/modal.php new file mode 100644 index 0000000..cc0779a --- /dev/null +++ b/lang/vendor/filament/fa/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'بستن', + ], + + ], + +]; diff --git a/lang/vendor/filament/fa/components/pagination.php b/lang/vendor/filament/fa/components/pagination.php new file mode 100644 index 0000000..385a211 --- /dev/null +++ b/lang/vendor/filament/fa/components/pagination.php @@ -0,0 +1,47 @@ + 'صفحه بندی', + + 'overview' => 'در حال نمایش :first به :last از :total نتیجه', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'در هر صفحه', + + 'options' => [ + 'all' => 'همه', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'اولین', + ], + + 'go_to_page' => [ + 'label' => 'برو به صفحه :page', + ], + + 'last' => [ + 'label' => 'آخرین', + ], + + 'next' => [ + 'label' => 'بعدی', + ], + + 'previous' => [ + 'label' => 'قبلی', + ], + + ], + +]; diff --git a/lang/vendor/filament/fi/components/badge.php b/lang/vendor/filament/fi/components/badge.php new file mode 100644 index 0000000..d03673b --- /dev/null +++ b/lang/vendor/filament/fi/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Poista', + ], + + ], + +]; diff --git a/lang/vendor/filament/fi/components/breadcrumbs.php b/lang/vendor/filament/fi/components/breadcrumbs.php new file mode 100644 index 0000000..9fff4a3 --- /dev/null +++ b/lang/vendor/filament/fi/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Murupolku', + +]; diff --git a/lang/vendor/filament/fi/components/button.php b/lang/vendor/filament/fi/components/button.php new file mode 100644 index 0000000..08ab89b --- /dev/null +++ b/lang/vendor/filament/fi/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Siirretään tiedostoa...', + ], + +]; diff --git a/lang/vendor/filament/fi/components/copyable.php b/lang/vendor/filament/fi/components/copyable.php new file mode 100644 index 0000000..9b21276 --- /dev/null +++ b/lang/vendor/filament/fi/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopioitu', + ], + +]; diff --git a/lang/vendor/filament/fi/components/input/one-time-code.php b/lang/vendor/filament/fi/components/input/one-time-code.php new file mode 100644 index 0000000..09d69c1 --- /dev/null +++ b/lang/vendor/filament/fi/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Merkki :position / :count', + +]; diff --git a/lang/vendor/filament/fi/components/loading-section.php b/lang/vendor/filament/fi/components/loading-section.php new file mode 100644 index 0000000..6a36eb6 --- /dev/null +++ b/lang/vendor/filament/fi/components/loading-section.php @@ -0,0 +1,7 @@ + 'Ladataan...', + +]; diff --git a/lang/vendor/filament/fi/components/modal.php b/lang/vendor/filament/fi/components/modal.php new file mode 100644 index 0000000..999d1cb --- /dev/null +++ b/lang/vendor/filament/fi/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Sulje', + ], + + ], + +]; diff --git a/lang/vendor/filament/fi/components/pagination.php b/lang/vendor/filament/fi/components/pagination.php new file mode 100644 index 0000000..859ba14 --- /dev/null +++ b/lang/vendor/filament/fi/components/pagination.php @@ -0,0 +1,47 @@ + 'Sivujen navigointi', + + 'overview' => '{1} Näytetään 1 tulos|[2,*] Näytetään :first - :last / :total tulosta', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'per sivu', + + 'options' => [ + 'all' => 'Kaikki', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Ensimmäinen', + ], + + 'go_to_page' => [ + 'label' => 'Mene sivulle :page', + ], + + 'last' => [ + 'label' => 'Viimeinen', + ], + + 'next' => [ + 'label' => 'Seuraava', + ], + + 'previous' => [ + 'label' => 'Edellinen', + ], + + ], + +]; diff --git a/lang/vendor/filament/fi/components/section.php b/lang/vendor/filament/fi/components/section.php new file mode 100644 index 0000000..4645cac --- /dev/null +++ b/lang/vendor/filament/fi/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Kutista osio', + ], + + 'expand' => [ + 'label' => 'Laajenna osio', + ], + + ], + +]; diff --git a/lang/vendor/filament/fi/components/tabs.php b/lang/vendor/filament/fi/components/tabs.php new file mode 100644 index 0000000..94f952c --- /dev/null +++ b/lang/vendor/filament/fi/components/tabs.php @@ -0,0 +1,7 @@ + 'Välilehdet', + +]; diff --git a/lang/vendor/filament/fr/components/button.php b/lang/vendor/filament/fr/components/button.php new file mode 100644 index 0000000..68afd72 --- /dev/null +++ b/lang/vendor/filament/fr/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Chargement du fichier...', + ], + +]; diff --git a/lang/vendor/filament/fr/components/copyable.php b/lang/vendor/filament/fr/components/copyable.php new file mode 100644 index 0000000..e4c1897 --- /dev/null +++ b/lang/vendor/filament/fr/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copié', + ], + +]; diff --git a/lang/vendor/filament/fr/components/modal.php b/lang/vendor/filament/fr/components/modal.php new file mode 100644 index 0000000..22ddd7f --- /dev/null +++ b/lang/vendor/filament/fr/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Fermer', + ], + + ], + +]; diff --git a/lang/vendor/filament/fr/components/pagination.php b/lang/vendor/filament/fr/components/pagination.php new file mode 100644 index 0000000..e6ddbf6 --- /dev/null +++ b/lang/vendor/filament/fr/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigation par pagination', + + 'overview' => '{1} Affichage de 1 résultat|[2,*] Affichage de :first à :last sur :total résultats', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'par page', + + 'options' => [ + 'all' => 'Tous', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Aller à la page :page', + ], + + 'next' => [ + 'label' => 'Suivant', + ], + + 'previous' => [ + 'label' => 'Précédent', + ], + + 'first' => [ + 'label' => 'Première', + ], + + 'last' => [ + 'label' => 'Dernière', + ], + + ], + +]; diff --git a/lang/vendor/filament/he/components/button.php b/lang/vendor/filament/he/components/button.php new file mode 100644 index 0000000..5919b5d --- /dev/null +++ b/lang/vendor/filament/he/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'מעלה קבצים...', + ], + +]; diff --git a/lang/vendor/filament/he/components/copyable.php b/lang/vendor/filament/he/components/copyable.php new file mode 100644 index 0000000..a36d5b9 --- /dev/null +++ b/lang/vendor/filament/he/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'הועתק', + ], + +]; diff --git a/lang/vendor/filament/he/components/modal.php b/lang/vendor/filament/he/components/modal.php new file mode 100644 index 0000000..517d823 --- /dev/null +++ b/lang/vendor/filament/he/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'סגור', + ], + + ], + +]; diff --git a/lang/vendor/filament/he/components/pagination.php b/lang/vendor/filament/he/components/pagination.php new file mode 100644 index 0000000..8fc8eb3 --- /dev/null +++ b/lang/vendor/filament/he/components/pagination.php @@ -0,0 +1,47 @@ + 'הצגת רשומות', + + 'overview' => 'מציג :first - :last מתוך :total תוצאות', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'בעמוד', + + 'options' => [ + 'all' => 'הכל', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'ראשון', + ], + + 'go_to_page' => [ + 'label' => 'נווט לעמוד :page', + ], + + 'last' => [ + 'label' => 'אחרון', + ], + + 'next' => [ + 'label' => 'הבא', + ], + + 'previous' => [ + 'label' => 'הקודם', + ], + + ], + +]; diff --git a/lang/vendor/filament/hi/components/pagination.php b/lang/vendor/filament/hi/components/pagination.php new file mode 100644 index 0000000..4ee8822 --- /dev/null +++ b/lang/vendor/filament/hi/components/pagination.php @@ -0,0 +1,33 @@ + 'पृष्ठ मार्गदर्शन', + + 'overview' => ':first से :last प्रविष्टियां :total में से', + + 'fields' => [ + + 'records_per_page' => [ + 'label' => 'प्रति पृष्ठ', + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'पृष्ठ :page पर जाएं', + ], + + 'next' => [ + 'label' => 'अगला', + ], + + 'previous' => [ + 'label' => 'पिछला', + ], + + ], + +]; diff --git a/lang/vendor/filament/hr/components/button.php b/lang/vendor/filament/hr/components/button.php new file mode 100644 index 0000000..8f22854 --- /dev/null +++ b/lang/vendor/filament/hr/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Prenosim datoteku...', + ], + +]; diff --git a/lang/vendor/filament/hr/components/copyable.php b/lang/vendor/filament/hr/components/copyable.php new file mode 100644 index 0000000..0741c30 --- /dev/null +++ b/lang/vendor/filament/hr/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopirano', + ], + +]; diff --git a/lang/vendor/filament/hr/components/modal.php b/lang/vendor/filament/hr/components/modal.php new file mode 100644 index 0000000..3f49931 --- /dev/null +++ b/lang/vendor/filament/hr/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zatvori', + ], + + ], + +]; diff --git a/lang/vendor/filament/hr/components/pagination.php b/lang/vendor/filament/hr/components/pagination.php new file mode 100644 index 0000000..6744807 --- /dev/null +++ b/lang/vendor/filament/hr/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigacija stranicama', + + 'overview' => '{1} Prikazuje se 1 rezultat|[2,*] Prikazuje se :first do :last od ukupno :total rezultata', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Po stranici', + + 'options' => [ + 'all' => 'Sve', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prva', + ], + + 'go_to_page' => [ + 'label' => 'Idi na stranicu :page', + ], + + 'last' => [ + 'label' => 'Zadnja', + ], + + 'next' => [ + 'label' => 'Naprijed', + ], + + 'previous' => [ + 'label' => 'Natrag', + ], + + ], + +]; diff --git a/lang/vendor/filament/hu/components/button.php b/lang/vendor/filament/hu/components/button.php new file mode 100644 index 0000000..840c392 --- /dev/null +++ b/lang/vendor/filament/hu/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Fájl feltöltése...', + ], + +]; diff --git a/lang/vendor/filament/hu/components/copyable.php b/lang/vendor/filament/hu/components/copyable.php new file mode 100644 index 0000000..680fa07 --- /dev/null +++ b/lang/vendor/filament/hu/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kimásolva', + ], + +]; diff --git a/lang/vendor/filament/hu/components/modal.php b/lang/vendor/filament/hu/components/modal.php new file mode 100644 index 0000000..64eb231 --- /dev/null +++ b/lang/vendor/filament/hu/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Bezárás', + ], + + ], + +]; diff --git a/lang/vendor/filament/hu/components/pagination.php b/lang/vendor/filament/hu/components/pagination.php new file mode 100644 index 0000000..be6a258 --- /dev/null +++ b/lang/vendor/filament/hu/components/pagination.php @@ -0,0 +1,47 @@ + 'Lapozás', + + 'overview' => '{1} 1 találat|[2,*] :first - :last megjelenítve a(z) :total találatból', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Sorok száma:', + + 'options' => [ + 'all' => 'Összes', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Első', + ], + + 'go_to_page' => [ + 'label' => 'Ugrás az oldalra: :page', + ], + + 'last' => [ + 'label' => 'Utolsó', + ], + + 'next' => [ + 'label' => 'Következő', + ], + + 'previous' => [ + 'label' => 'Előző', + ], + + ], + +]; diff --git a/lang/vendor/filament/hy/components/button.php b/lang/vendor/filament/hy/components/button.php new file mode 100644 index 0000000..c470508 --- /dev/null +++ b/lang/vendor/filament/hy/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Ֆայլի վերբեռնում...', + ], + +]; diff --git a/lang/vendor/filament/hy/components/copyable.php b/lang/vendor/filament/hy/components/copyable.php new file mode 100644 index 0000000..1d22117 --- /dev/null +++ b/lang/vendor/filament/hy/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Պատճենված է', + ], + +]; diff --git a/lang/vendor/filament/hy/components/modal.php b/lang/vendor/filament/hy/components/modal.php new file mode 100644 index 0000000..f275697 --- /dev/null +++ b/lang/vendor/filament/hy/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Փակել', + ], + + ], + +]; diff --git a/lang/vendor/filament/hy/components/pagination.php b/lang/vendor/filament/hy/components/pagination.php new file mode 100644 index 0000000..e6cfad6 --- /dev/null +++ b/lang/vendor/filament/hy/components/pagination.php @@ -0,0 +1,47 @@ + 'Էջավորման նավիգացիա', + + 'overview' => 'Ցուցադրվում են :total արդյունքներից :first-ից :last-ը', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Մեկ էջում', + + 'options' => [ + 'all' => 'Բոլորը', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Առաջինը', + ], + + 'go_to_page' => [ + 'label' => 'Գնալ էջ :page', + ], + + 'last' => [ + 'label' => 'Վերջինը', + ], + + 'next' => [ + 'label' => 'Հաջորդը', + ], + + 'previous' => [ + 'label' => 'Նախորդը', + ], + + ], + +]; diff --git a/lang/vendor/filament/id/components/button.php b/lang/vendor/filament/id/components/button.php new file mode 100644 index 0000000..8d03da9 --- /dev/null +++ b/lang/vendor/filament/id/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'Mengunggah berkas...', + + ], + +]; diff --git a/lang/vendor/filament/id/components/copyable.php b/lang/vendor/filament/id/components/copyable.php new file mode 100644 index 0000000..a6d8074 --- /dev/null +++ b/lang/vendor/filament/id/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Berhasil disalin', + ], + +]; diff --git a/lang/vendor/filament/id/components/modal.php b/lang/vendor/filament/id/components/modal.php new file mode 100644 index 0000000..736df38 --- /dev/null +++ b/lang/vendor/filament/id/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Tutup', + ], + + ], + +]; diff --git a/lang/vendor/filament/id/components/pagination.php b/lang/vendor/filament/id/components/pagination.php new file mode 100644 index 0000000..a5e9e15 --- /dev/null +++ b/lang/vendor/filament/id/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigasi halaman', + + 'overview' => '{1} Menampilkan 1 hasil|[2,*] Menampilkan :first sampai :last dari :total hasil', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'per halaman', + + 'options' => [ + 'all' => 'Semua', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Pertama', + ], + + 'go_to_page' => [ + 'label' => 'Ke halaman :page', + ], + + 'last' => [ + 'label' => 'Terakhir', + ], + + 'next' => [ + 'label' => 'Selanjutnya', + ], + + 'previous' => [ + 'label' => 'Sebelumnya', + ], + + ], + +]; diff --git a/lang/vendor/filament/it/components/button.php b/lang/vendor/filament/it/components/button.php new file mode 100644 index 0000000..0e0fe5a --- /dev/null +++ b/lang/vendor/filament/it/components/button.php @@ -0,0 +1,11 @@ + [ + + 'uploading_file' => 'Caricamento file...', + + ], + +]; diff --git a/lang/vendor/filament/it/components/copyable.php b/lang/vendor/filament/it/components/copyable.php new file mode 100644 index 0000000..8ac0842 --- /dev/null +++ b/lang/vendor/filament/it/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiato', + ], + +]; diff --git a/lang/vendor/filament/it/components/modal.php b/lang/vendor/filament/it/components/modal.php new file mode 100644 index 0000000..cff4e7e --- /dev/null +++ b/lang/vendor/filament/it/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Chiudi', + ], + + ], + +]; diff --git a/lang/vendor/filament/it/components/pagination.php b/lang/vendor/filament/it/components/pagination.php new file mode 100644 index 0000000..b1e1576 --- /dev/null +++ b/lang/vendor/filament/it/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigazione paginazione', + + 'overview' => '{1} Mostrato 1 risultato|[2,*] Mostrati da :first a :last di :total risultati', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'per pagina', + + 'options' => [ + 'all' => 'Tutti', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prima', + ], + + 'go_to_page' => [ + 'label' => 'Vai a pagina :page', + ], + + 'last' => [ + 'label' => 'Ultima', + ], + + 'next' => [ + 'label' => 'Successivo', + ], + + 'previous' => [ + 'label' => 'Precedente', + ], + + ], + +]; diff --git a/lang/vendor/filament/ja/components/button.php b/lang/vendor/filament/ja/components/button.php new file mode 100644 index 0000000..7a0d282 --- /dev/null +++ b/lang/vendor/filament/ja/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'ファイルをアップロード中...', + ], + +]; diff --git a/lang/vendor/filament/ja/components/copyable.php b/lang/vendor/filament/ja/components/copyable.php new file mode 100644 index 0000000..653cc85 --- /dev/null +++ b/lang/vendor/filament/ja/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'コピーしました', + ], + +]; diff --git a/lang/vendor/filament/ja/components/input/one-time-code.php b/lang/vendor/filament/ja/components/input/one-time-code.php new file mode 100644 index 0000000..67f4c10 --- /dev/null +++ b/lang/vendor/filament/ja/components/input/one-time-code.php @@ -0,0 +1,7 @@ + ':count文字中:position文字目', + +]; diff --git a/lang/vendor/filament/ja/components/modal.php b/lang/vendor/filament/ja/components/modal.php new file mode 100644 index 0000000..beb37a5 --- /dev/null +++ b/lang/vendor/filament/ja/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => '閉じる', + ], + + ], + +]; diff --git a/lang/vendor/filament/ja/components/pagination.php b/lang/vendor/filament/ja/components/pagination.php new file mode 100644 index 0000000..e4b5401 --- /dev/null +++ b/lang/vendor/filament/ja/components/pagination.php @@ -0,0 +1,47 @@ + 'ページネーション', + + 'overview' => ':total件中:first件目から:last件目を表示', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => '表示件数', + + 'options' => [ + 'all' => 'すべて', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => '最初', + ], + + 'go_to_page' => [ + 'label' => ':pageページへ移動', + ], + + 'last' => [ + 'label' => '最後', + ], + + 'next' => [ + 'label' => '次', + ], + + 'previous' => [ + 'label' => '前', + ], + + ], + +]; diff --git a/lang/vendor/filament/ka/components/button.php b/lang/vendor/filament/ka/components/button.php new file mode 100644 index 0000000..bf87b0a --- /dev/null +++ b/lang/vendor/filament/ka/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'ფაილის ატვირთვა...', + ], + +]; diff --git a/lang/vendor/filament/ka/components/copyable.php b/lang/vendor/filament/ka/components/copyable.php new file mode 100644 index 0000000..69e5ec8 --- /dev/null +++ b/lang/vendor/filament/ka/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'დაკოპირდა', + ], + +]; diff --git a/lang/vendor/filament/ka/components/modal.php b/lang/vendor/filament/ka/components/modal.php new file mode 100644 index 0000000..23f2ccf --- /dev/null +++ b/lang/vendor/filament/ka/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'დახურვა', + ], + + ], + +]; diff --git a/lang/vendor/filament/ka/components/pagination.php b/lang/vendor/filament/ka/components/pagination.php new file mode 100644 index 0000000..dceb805 --- /dev/null +++ b/lang/vendor/filament/ka/components/pagination.php @@ -0,0 +1,47 @@ + 'გვერდების ნავიგაცია', + + 'overview' => '{1} ნაჩვენებია 1 შედეგი|[2,*] ნაჩვენებია :first-დან :last-მდე :total შედეგიდან', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'გვერდზე', + + 'options' => [ + 'all' => 'ყველა', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'პირველი', + ], + + 'go_to_page' => [ + 'label' => 'გადადით გვერდზე :page', + ], + + 'last' => [ + 'label' => 'ბოლო', + ], + + 'next' => [ + 'label' => 'შემდეგი', + ], + + 'previous' => [ + 'label' => 'წინა', + ], + + ], + +]; diff --git a/lang/vendor/filament/km/components/button.php b/lang/vendor/filament/km/components/button.php new file mode 100644 index 0000000..ace6b69 --- /dev/null +++ b/lang/vendor/filament/km/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'កំពុងបង្ហោះឯកសារ...', + ], + +]; diff --git a/lang/vendor/filament/km/components/copyable.php b/lang/vendor/filament/km/components/copyable.php new file mode 100644 index 0000000..d0ef0c5 --- /dev/null +++ b/lang/vendor/filament/km/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'ចម្លង', + ], + +]; diff --git a/lang/vendor/filament/km/components/modal.php b/lang/vendor/filament/km/components/modal.php new file mode 100644 index 0000000..3403477 --- /dev/null +++ b/lang/vendor/filament/km/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'បិទ', + ], + + ], + +]; diff --git a/lang/vendor/filament/km/components/pagination.php b/lang/vendor/filament/km/components/pagination.php new file mode 100644 index 0000000..32b69cb --- /dev/null +++ b/lang/vendor/filament/km/components/pagination.php @@ -0,0 +1,47 @@ + 'ការរុករក Pagination', + + 'overview' => '{1} ការបង្កាញលទ្ធផល ១ |[2,*] ការបង្ហាញ :first ដល់ :last នៃ :total លទ្ធផល', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'ក្នុងមួយទំព័រ', + + 'options' => [ + 'all' => 'ទាំងអស់', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'ទីមួយ', + ], + + 'go_to_page' => [ + 'label' => 'ទៅកាន់​ទំព័រ :page', + ], + + 'last' => [ + 'label' => 'ចុងក្រោយ', + ], + + 'next' => [ + 'label' => 'បន្ទាប់', + ], + + 'previous' => [ + 'label' => 'មុន', + ], + + ], + +]; diff --git a/lang/vendor/filament/ko/components/button.php b/lang/vendor/filament/ko/components/button.php new file mode 100644 index 0000000..33c38b9 --- /dev/null +++ b/lang/vendor/filament/ko/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => '파일 업로드 ...', + ], + +]; diff --git a/lang/vendor/filament/ko/components/copyable.php b/lang/vendor/filament/ko/components/copyable.php new file mode 100644 index 0000000..e5715bc --- /dev/null +++ b/lang/vendor/filament/ko/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => '복사 완료', + ], + +]; diff --git a/lang/vendor/filament/ko/components/modal.php b/lang/vendor/filament/ko/components/modal.php new file mode 100644 index 0000000..1c7314f --- /dev/null +++ b/lang/vendor/filament/ko/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => '닫기', + ], + + ], + +]; diff --git a/lang/vendor/filament/ko/components/pagination.php b/lang/vendor/filament/ko/components/pagination.php new file mode 100644 index 0000000..466bd68 --- /dev/null +++ b/lang/vendor/filament/ko/components/pagination.php @@ -0,0 +1,47 @@ + '페이지 탐색', + + 'overview' => ':total 건 중 :first 건부터 :last 건까지 보기', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => '페이지 당', + + 'options' => [ + 'all' => '전체', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => '첫 페이지', + ], + + 'go_to_page' => [ + 'label' => ':page 페이지로 이동', + ], + + 'last' => [ + 'label' => '마지막 페이지', + ], + + 'next' => [ + 'label' => '다음', + ], + + 'previous' => [ + 'label' => '이전', + ], + + ], + +]; diff --git a/lang/vendor/filament/ku/components/button.php b/lang/vendor/filament/ku/components/button.php new file mode 100644 index 0000000..9283409 --- /dev/null +++ b/lang/vendor/filament/ku/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'بارکردنی فایل...', + ], + +]; diff --git a/lang/vendor/filament/ku/components/copyable.php b/lang/vendor/filament/ku/components/copyable.php new file mode 100644 index 0000000..3dad527 --- /dev/null +++ b/lang/vendor/filament/ku/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'لەبەرگیرا', + ], + +]; diff --git a/lang/vendor/filament/ku/components/modal.php b/lang/vendor/filament/ku/components/modal.php new file mode 100644 index 0000000..e731d06 --- /dev/null +++ b/lang/vendor/filament/ku/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'داخستن', + ], + + ], + +]; diff --git a/lang/vendor/filament/ku/components/pagination.php b/lang/vendor/filament/ku/components/pagination.php new file mode 100644 index 0000000..29a3bd6 --- /dev/null +++ b/lang/vendor/filament/ku/components/pagination.php @@ -0,0 +1,39 @@ + 'ڕێنوێیی پەڕەکردن', + + 'overview' => '{1} پشاندانی ئەنجامێک|[2,*] پیشاندانی :first بۆ :last لە :total ئەنجام', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'بۆ هەر پەڕەیەک', + + 'options' => [ + 'all' => 'هەموو', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'بڕۆ بۆ پەڕەی :page', + ], + + 'next' => [ + 'label' => 'دواتر', + ], + + 'previous' => [ + 'label' => 'پێشوو', + ], + + ], + +]; diff --git a/lang/vendor/filament/lt/components/button.php b/lang/vendor/filament/lt/components/button.php new file mode 100644 index 0000000..013b0f9 --- /dev/null +++ b/lang/vendor/filament/lt/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Įkeliamas failas...', + ], + +]; diff --git a/lang/vendor/filament/lt/components/copyable.php b/lang/vendor/filament/lt/components/copyable.php new file mode 100644 index 0000000..4aab22f --- /dev/null +++ b/lang/vendor/filament/lt/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Nukopijuota', + ], + +]; diff --git a/lang/vendor/filament/lt/components/modal.php b/lang/vendor/filament/lt/components/modal.php new file mode 100644 index 0000000..1c2ea3d --- /dev/null +++ b/lang/vendor/filament/lt/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Uždaryti', + ], + + ], + +]; diff --git a/lang/vendor/filament/lt/components/pagination.php b/lang/vendor/filament/lt/components/pagination.php new file mode 100644 index 0000000..4a243cd --- /dev/null +++ b/lang/vendor/filament/lt/components/pagination.php @@ -0,0 +1,47 @@ + 'Puslapiavimo navigacija', + + 'overview' => 'Rodomi nuo :first iki :last rezultatai iš :total', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'puslapyje', + + 'options' => [ + 'all' => 'Viską', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Pirmas', + ], + + 'go_to_page' => [ + 'label' => 'Eiti į puslapį :page', + ], + + 'last' => [ + 'label' => 'Paskutinis', + ], + + 'next' => [ + 'label' => 'Kitas', + ], + + 'previous' => [ + 'label' => 'Buvęs', + ], + + ], + +]; diff --git a/lang/vendor/filament/lus/components/button.php b/lang/vendor/filament/lus/components/button.php new file mode 100644 index 0000000..6329cc1 --- /dev/null +++ b/lang/vendor/filament/lus/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Uploading file...', + ], + +]; diff --git a/lang/vendor/filament/lus/components/copyable.php b/lang/vendor/filament/lus/components/copyable.php new file mode 100644 index 0000000..86142d9 --- /dev/null +++ b/lang/vendor/filament/lus/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Lâk chhâwn ani e', + ], + +]; diff --git a/lang/vendor/filament/lus/components/modal.php b/lang/vendor/filament/lus/components/modal.php new file mode 100644 index 0000000..b17fc51 --- /dev/null +++ b/lang/vendor/filament/lus/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Khârna', + ], + + ], + +]; diff --git a/lang/vendor/filament/lus/components/pagination.php b/lang/vendor/filament/lus/components/pagination.php new file mode 100644 index 0000000..7593450 --- /dev/null +++ b/lang/vendor/filament/lus/components/pagination.php @@ -0,0 +1,47 @@ + 'Pagination navigation', + + 'overview' => '{1} Result 1 tihlan|[2,*] Result :first atang :last lanna, :total atangin', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Phêk tinah', + + 'options' => [ + 'all' => 'A vaiin', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'A hmasa ber', + ], + + 'go_to_page' => [ + 'label' => 'Phêk :page naa kalna', + ], + + 'last' => [ + 'label' => 'A tawpna', + ], + + 'next' => [ + 'label' => 'A dawttu', + ], + + 'previous' => [ + 'label' => 'A hmasa', + ], + + ], + +]; diff --git a/lang/vendor/filament/lv/components/button.php b/lang/vendor/filament/lv/components/button.php new file mode 100644 index 0000000..d61aad9 --- /dev/null +++ b/lang/vendor/filament/lv/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Notiek faila augšupielāde...', + ], + +]; diff --git a/lang/vendor/filament/lv/components/copyable.php b/lang/vendor/filament/lv/components/copyable.php new file mode 100644 index 0000000..9cf15fc --- /dev/null +++ b/lang/vendor/filament/lv/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopēts', + ], + +]; diff --git a/lang/vendor/filament/lv/components/modal.php b/lang/vendor/filament/lv/components/modal.php new file mode 100644 index 0000000..54b6fc2 --- /dev/null +++ b/lang/vendor/filament/lv/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Aizvērt', + ], + + ], + +]; diff --git a/lang/vendor/filament/lv/components/pagination.php b/lang/vendor/filament/lv/components/pagination.php new file mode 100644 index 0000000..398cfad --- /dev/null +++ b/lang/vendor/filament/lv/components/pagination.php @@ -0,0 +1,39 @@ + 'Lapdales navigācija', + + 'overview' => '{1} Rāda 1 rezultātu|[2,*] Rāda :first līdz :last no :total rezultātiem', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'vienā lappusē', + + 'options' => [ + 'all' => 'Visi', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Doties uz lapu :page', + ], + + 'next' => [ + 'label' => 'Nākamais', + ], + + 'previous' => [ + 'label' => 'Iepriekšējais', + ], + + ], + +]; diff --git a/lang/vendor/filament/mk/components/button.php b/lang/vendor/filament/mk/components/button.php new file mode 100644 index 0000000..654d27d --- /dev/null +++ b/lang/vendor/filament/mk/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Се прикачува датотека...', + ], + +]; diff --git a/lang/vendor/filament/mk/components/copyable.php b/lang/vendor/filament/mk/components/copyable.php new file mode 100644 index 0000000..7753fd7 --- /dev/null +++ b/lang/vendor/filament/mk/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Копирано', + ], + +]; diff --git a/lang/vendor/filament/mk/components/modal.php b/lang/vendor/filament/mk/components/modal.php new file mode 100644 index 0000000..8ca951f --- /dev/null +++ b/lang/vendor/filament/mk/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Затвори', + ], + + ], + +]; diff --git a/lang/vendor/filament/mk/components/pagination.php b/lang/vendor/filament/mk/components/pagination.php new file mode 100644 index 0000000..17cf380 --- /dev/null +++ b/lang/vendor/filament/mk/components/pagination.php @@ -0,0 +1,47 @@ + 'Навигација по страници', + + 'overview' => '{1} Прикажано 1 резултат|[2,*] Прикажано :first до :last од :total резултати', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'По страница', + + 'options' => [ + 'all' => 'Сите', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Прва', + ], + + 'go_to_page' => [ + 'label' => 'Оди на страница :page', + ], + + 'last' => [ + 'label' => 'Последна', + ], + + 'next' => [ + 'label' => 'Следна', + ], + + 'previous' => [ + 'label' => 'Претходна', + ], + + ], + +]; diff --git a/lang/vendor/filament/mn/components/button.php b/lang/vendor/filament/mn/components/button.php new file mode 100644 index 0000000..3c4b3ca --- /dev/null +++ b/lang/vendor/filament/mn/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Хуулж байна...', + ], + +]; diff --git a/lang/vendor/filament/mn/components/copyable.php b/lang/vendor/filament/mn/components/copyable.php new file mode 100644 index 0000000..7ae290c --- /dev/null +++ b/lang/vendor/filament/mn/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Хуулав', + ], + +]; diff --git a/lang/vendor/filament/mn/components/modal.php b/lang/vendor/filament/mn/components/modal.php new file mode 100644 index 0000000..feb94d0 --- /dev/null +++ b/lang/vendor/filament/mn/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Хаах', + ], + + ], + +]; diff --git a/lang/vendor/filament/mn/components/pagination.php b/lang/vendor/filament/mn/components/pagination.php new file mode 100644 index 0000000..c4c246b --- /dev/null +++ b/lang/vendor/filament/mn/components/pagination.php @@ -0,0 +1,47 @@ + 'Хуудас', + + 'overview' => '{1} Нийт 1 |[2,*] Нийт :total бичлэг :first - :last', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'хуудас бүр', + + 'options' => [ + 'all' => 'Бүгд', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Эхний', + ], + + 'go_to_page' => [ + 'label' => 'Хуудас руу очих :page', + ], + + 'last' => [ + 'label' => 'Сүүлийн', + ], + + 'next' => [ + 'label' => 'Дараах', + ], + + 'previous' => [ + 'label' => 'Өмнөх', + ], + + ], + +]; diff --git a/lang/vendor/filament/ms/components/button.php b/lang/vendor/filament/ms/components/button.php new file mode 100644 index 0000000..da857fb --- /dev/null +++ b/lang/vendor/filament/ms/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Memuat naik fail...', + ], + +]; diff --git a/lang/vendor/filament/ms/components/copyable.php b/lang/vendor/filament/ms/components/copyable.php new file mode 100644 index 0000000..4530fd5 --- /dev/null +++ b/lang/vendor/filament/ms/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Disalin', + ], + +]; diff --git a/lang/vendor/filament/ms/components/modal.php b/lang/vendor/filament/ms/components/modal.php new file mode 100644 index 0000000..736df38 --- /dev/null +++ b/lang/vendor/filament/ms/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Tutup', + ], + + ], + +]; diff --git a/lang/vendor/filament/ms/components/pagination.php b/lang/vendor/filament/ms/components/pagination.php new file mode 100644 index 0000000..bf210dc --- /dev/null +++ b/lang/vendor/filament/ms/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigasi penomboran', + + 'overview' => '{1} Memaparkan 1 rekod|[2,*] Memaparkan :first hingga :last daripada :total rekod', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'per halaman', + + 'options' => [ + 'all' => 'Semua', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Pertama', + ], + + 'go_to_page' => [ + 'label' => 'Pergi ke halaman :page', + ], + + 'last' => [ + 'label' => 'Akhir', + ], + + 'next' => [ + 'label' => 'Seterusnya', + ], + + 'previous' => [ + 'label' => 'Sebelumnya', + ], + + ], + +]; diff --git a/lang/vendor/filament/nb/components/button.php b/lang/vendor/filament/nb/components/button.php new file mode 100644 index 0000000..1eff00e --- /dev/null +++ b/lang/vendor/filament/nb/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Laster opp fil...', + ], + +]; diff --git a/lang/vendor/filament/nb/components/copyable.php b/lang/vendor/filament/nb/components/copyable.php new file mode 100644 index 0000000..0d89569 --- /dev/null +++ b/lang/vendor/filament/nb/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopiert', + ], + +]; diff --git a/lang/vendor/filament/nb/components/modal.php b/lang/vendor/filament/nb/components/modal.php new file mode 100644 index 0000000..1bc9323 --- /dev/null +++ b/lang/vendor/filament/nb/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Lukk', + ], + + ], + +]; diff --git a/lang/vendor/filament/nb/components/pagination.php b/lang/vendor/filament/nb/components/pagination.php new file mode 100644 index 0000000..ecab6ec --- /dev/null +++ b/lang/vendor/filament/nb/components/pagination.php @@ -0,0 +1,47 @@ + 'Sidenavigering', + + 'overview' => '{1} Viser 1 resultat|[2,*] Viser :first til :last av :total resultater', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Pr. side', + + 'options' => [ + 'all' => 'Alle', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Første', + ], + + 'go_to_page' => [ + 'label' => 'Gå til side :page', + ], + + 'last' => [ + 'label' => 'Siste', + ], + + 'next' => [ + 'label' => 'Neste', + ], + + 'previous' => [ + 'label' => 'Forrige', + ], + + ], + +]; diff --git a/lang/vendor/filament/ne/components/button.php b/lang/vendor/filament/ne/components/button.php new file mode 100644 index 0000000..ba18ccd --- /dev/null +++ b/lang/vendor/filament/ne/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'फाइल अपलोड गर्दै...', + ], + +]; diff --git a/lang/vendor/filament/ne/components/copyable.php b/lang/vendor/filament/ne/components/copyable.php new file mode 100644 index 0000000..fab3e53 --- /dev/null +++ b/lang/vendor/filament/ne/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'प्रतिलिपि गरियो', + ], + +]; diff --git a/lang/vendor/filament/ne/components/modal.php b/lang/vendor/filament/ne/components/modal.php new file mode 100644 index 0000000..e2cef93 --- /dev/null +++ b/lang/vendor/filament/ne/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'बन्द गर्नुहोस्', + ], + + ], + +]; diff --git a/lang/vendor/filament/ne/components/pagination.php b/lang/vendor/filament/ne/components/pagination.php new file mode 100644 index 0000000..9ff65e7 --- /dev/null +++ b/lang/vendor/filament/ne/components/pagination.php @@ -0,0 +1,39 @@ + 'पृष्ठांकन नेभिगेसन', + + 'overview' => '{1} एउटा परिणाम देखाउँदै|[2,*] :total नतिजा मध्ये :first देखि :last देखाउँदै', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'प्रति पृष्ठ', + + 'options' => [ + 'all' => 'सबै', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'पृष्ठ :page मा जानुहोस्', + ], + + 'next' => [ + 'label' => 'अर्को', + ], + + 'previous' => [ + 'label' => 'अघिल्लो', + ], + + ], + +]; diff --git a/lang/vendor/filament/nl/components/button.php b/lang/vendor/filament/nl/components/button.php new file mode 100644 index 0000000..c02840c --- /dev/null +++ b/lang/vendor/filament/nl/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Bestand uploaden...', + ], + +]; diff --git a/lang/vendor/filament/nl/components/copyable.php b/lang/vendor/filament/nl/components/copyable.php new file mode 100644 index 0000000..a86f399 --- /dev/null +++ b/lang/vendor/filament/nl/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Gekopieerd', + ], + +]; diff --git a/lang/vendor/filament/nl/components/modal.php b/lang/vendor/filament/nl/components/modal.php new file mode 100644 index 0000000..b0c5728 --- /dev/null +++ b/lang/vendor/filament/nl/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Sluiten', + ], + + ], + +]; diff --git a/lang/vendor/filament/nl/components/pagination.php b/lang/vendor/filament/nl/components/pagination.php new file mode 100644 index 0000000..75215f5 --- /dev/null +++ b/lang/vendor/filament/nl/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginering navigatie', + + 'overview' => '{1} Toont 1 resultaat|[2,*] Toont :first tot :last van :total resultaten', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Per pagina', + + 'options' => [ + 'all' => 'Alles', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Eerste', + ], + + 'go_to_page' => [ + 'label' => 'Ga naar pagina :page', + ], + + 'last' => [ + 'label' => 'Laatste', + ], + + 'next' => [ + 'label' => 'Volgende', + ], + + 'previous' => [ + 'label' => 'Vorige', + ], + + ], + +]; diff --git a/lang/vendor/filament/pl/components/badge.php b/lang/vendor/filament/pl/components/badge.php new file mode 100644 index 0000000..e9f0a22 --- /dev/null +++ b/lang/vendor/filament/pl/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Usuń', + ], + + ], + +]; diff --git a/lang/vendor/filament/pl/components/breadcrumbs.php b/lang/vendor/filament/pl/components/breadcrumbs.php new file mode 100644 index 0000000..a445c6e --- /dev/null +++ b/lang/vendor/filament/pl/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Nawigacja okruszkowa', + +]; diff --git a/lang/vendor/filament/pl/components/button.php b/lang/vendor/filament/pl/components/button.php new file mode 100644 index 0000000..a8ae3de --- /dev/null +++ b/lang/vendor/filament/pl/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Wysyłanie pliku...', + ], + +]; diff --git a/lang/vendor/filament/pl/components/copyable.php b/lang/vendor/filament/pl/components/copyable.php new file mode 100644 index 0000000..8e3875c --- /dev/null +++ b/lang/vendor/filament/pl/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Skopiowano', + ], + +]; diff --git a/lang/vendor/filament/pl/components/input/one-time-code.php b/lang/vendor/filament/pl/components/input/one-time-code.php new file mode 100644 index 0000000..4ea1ae1 --- /dev/null +++ b/lang/vendor/filament/pl/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Znak :position z :count', + +]; diff --git a/lang/vendor/filament/pl/components/loading-section.php b/lang/vendor/filament/pl/components/loading-section.php new file mode 100644 index 0000000..233ffcf --- /dev/null +++ b/lang/vendor/filament/pl/components/loading-section.php @@ -0,0 +1,7 @@ + 'Ładowanie...', + +]; diff --git a/lang/vendor/filament/pl/components/modal.php b/lang/vendor/filament/pl/components/modal.php new file mode 100644 index 0000000..008c639 --- /dev/null +++ b/lang/vendor/filament/pl/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zamknij', + ], + + ], + +]; diff --git a/lang/vendor/filament/pl/components/pagination.php b/lang/vendor/filament/pl/components/pagination.php new file mode 100644 index 0000000..9e13f0f --- /dev/null +++ b/lang/vendor/filament/pl/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginacja', + + 'overview' => 'Pozycje od :first do :last z :total łącznie', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'na stronę', + + 'options' => [ + 'all' => 'Wszystkie', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Pierwsza', + ], + + 'go_to_page' => [ + 'label' => 'Przejdź do strony :page', + ], + + 'last' => [ + 'label' => 'Osatnia', + ], + + 'next' => [ + 'label' => 'Następna', + ], + + 'previous' => [ + 'label' => 'Poprzednia', + ], + + ], + +]; diff --git a/lang/vendor/filament/pl/components/section.php b/lang/vendor/filament/pl/components/section.php new file mode 100644 index 0000000..381b5c9 --- /dev/null +++ b/lang/vendor/filament/pl/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Zwiń sekcję', + ], + + 'expand' => [ + 'label' => 'Rozwiń sekcję', + ], + + ], + +]; diff --git a/lang/vendor/filament/pl/components/tabs.php b/lang/vendor/filament/pl/components/tabs.php new file mode 100644 index 0000000..24ba8d3 --- /dev/null +++ b/lang/vendor/filament/pl/components/tabs.php @@ -0,0 +1,7 @@ + 'Zakładki', + +]; diff --git a/lang/vendor/filament/pt/components/button.php b/lang/vendor/filament/pt/components/button.php new file mode 100644 index 0000000..c54934d --- /dev/null +++ b/lang/vendor/filament/pt/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'A carregar ficheiro...', + ], + +]; diff --git a/lang/vendor/filament/pt/components/copyable.php b/lang/vendor/filament/pt/components/copyable.php new file mode 100644 index 0000000..2aadb0b --- /dev/null +++ b/lang/vendor/filament/pt/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiado', + ], + +]; diff --git a/lang/vendor/filament/pt/components/modal.php b/lang/vendor/filament/pt/components/modal.php new file mode 100644 index 0000000..6759dad --- /dev/null +++ b/lang/vendor/filament/pt/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Fechar', + ], + + ], + +]; diff --git a/lang/vendor/filament/pt/components/pagination.php b/lang/vendor/filament/pt/components/pagination.php new file mode 100644 index 0000000..5989b59 --- /dev/null +++ b/lang/vendor/filament/pt/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginação', + + 'overview' => '{1} A mostrar 1 resultado|[2,*] A mostrar :first a :last de :total resultados', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Por página', + + 'options' => [ + 'all' => 'Todos', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Primeira', + ], + + 'go_to_page' => [ + 'label' => 'Ir para a página :page', + ], + + 'last' => [ + 'label' => 'Última', + ], + + 'next' => [ + 'label' => 'Próxima', + ], + + 'previous' => [ + 'label' => 'Anterior', + ], + + ], + +]; diff --git a/lang/vendor/filament/pt_BR/components/button.php b/lang/vendor/filament/pt_BR/components/button.php new file mode 100644 index 0000000..bfd0a52 --- /dev/null +++ b/lang/vendor/filament/pt_BR/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Enviando arquivo...', + ], + +]; diff --git a/lang/vendor/filament/pt_BR/components/copyable.php b/lang/vendor/filament/pt_BR/components/copyable.php new file mode 100644 index 0000000..2aadb0b --- /dev/null +++ b/lang/vendor/filament/pt_BR/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiado', + ], + +]; diff --git a/lang/vendor/filament/pt_BR/components/modal.php b/lang/vendor/filament/pt_BR/components/modal.php new file mode 100644 index 0000000..6759dad --- /dev/null +++ b/lang/vendor/filament/pt_BR/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Fechar', + ], + + ], + +]; diff --git a/lang/vendor/filament/pt_BR/components/pagination.php b/lang/vendor/filament/pt_BR/components/pagination.php new file mode 100644 index 0000000..ba5ddc7 --- /dev/null +++ b/lang/vendor/filament/pt_BR/components/pagination.php @@ -0,0 +1,47 @@ + 'Paginação', + + 'overview' => '{1} Exibindo 1 resultado|[2,*] Exibindo :first a :last de :total resultados', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'por página', + + 'options' => [ + 'all' => 'Todas', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Primeira', + ], + + 'go_to_page' => [ + 'label' => 'Ir para página :page', + ], + + 'last' => [ + 'label' => 'Última', + ], + + 'next' => [ + 'label' => 'Próxima', + ], + + 'previous' => [ + 'label' => 'Anterior', + ], + + ], + +]; diff --git a/lang/vendor/filament/ro/components/button.php b/lang/vendor/filament/ro/components/button.php new file mode 100644 index 0000000..d58a83f --- /dev/null +++ b/lang/vendor/filament/ro/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Se încarcă fișierul...', + ], + +]; diff --git a/lang/vendor/filament/ro/components/copyable.php b/lang/vendor/filament/ro/components/copyable.php new file mode 100644 index 0000000..4311f32 --- /dev/null +++ b/lang/vendor/filament/ro/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Copiat', + ], + +]; diff --git a/lang/vendor/filament/ro/components/modal.php b/lang/vendor/filament/ro/components/modal.php new file mode 100644 index 0000000..4d53d97 --- /dev/null +++ b/lang/vendor/filament/ro/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Închide', + ], + + ], + +]; diff --git a/lang/vendor/filament/ro/components/pagination.php b/lang/vendor/filament/ro/components/pagination.php new file mode 100644 index 0000000..090b9be --- /dev/null +++ b/lang/vendor/filament/ro/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigare', + + 'overview' => 'Afișare :first-:last din :total rezultate', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Pe pagină', + + 'options' => [ + 'all' => 'Toate', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prima pagină', + ], + + 'go_to_page' => [ + 'label' => 'Mergi la pagina :page', + ], + + 'last' => [ + 'label' => 'Ultima pagină', + ], + + 'next' => [ + 'label' => 'Pagina următoare', + ], + + 'previous' => [ + 'label' => 'Pagina precedentă', + ], + + ], + +]; diff --git a/lang/vendor/filament/ru/components/button.php b/lang/vendor/filament/ru/components/button.php new file mode 100644 index 0000000..f99b5d9 --- /dev/null +++ b/lang/vendor/filament/ru/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Загрузка файла...', + ], + +]; diff --git a/lang/vendor/filament/ru/components/copyable.php b/lang/vendor/filament/ru/components/copyable.php new file mode 100644 index 0000000..9bea728 --- /dev/null +++ b/lang/vendor/filament/ru/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Скопировано', + ], + +]; diff --git a/lang/vendor/filament/ru/components/modal.php b/lang/vendor/filament/ru/components/modal.php new file mode 100644 index 0000000..def7faf --- /dev/null +++ b/lang/vendor/filament/ru/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Закрыть', + ], + + ], + +]; diff --git a/lang/vendor/filament/ru/components/pagination.php b/lang/vendor/filament/ru/components/pagination.php new file mode 100644 index 0000000..3968468 --- /dev/null +++ b/lang/vendor/filament/ru/components/pagination.php @@ -0,0 +1,47 @@ + 'Пагинация', + + 'overview' => 'Показано с :first по :last из :total', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'на страницу', + + 'options' => [ + 'all' => 'Все', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Первая', + ], + + 'go_to_page' => [ + 'label' => 'Перейти к странице :page', + ], + + 'last' => [ + 'label' => 'Последняя', + ], + + 'next' => [ + 'label' => 'Следующая', + ], + + 'previous' => [ + 'label' => 'Предыдущая', + ], + + ], + +]; diff --git a/lang/vendor/filament/sk/components/badge.php b/lang/vendor/filament/sk/components/badge.php new file mode 100644 index 0000000..28206be --- /dev/null +++ b/lang/vendor/filament/sk/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Odstrániť', + ], + + ], + +]; diff --git a/lang/vendor/filament/sk/components/breadcrumbs.php b/lang/vendor/filament/sk/components/breadcrumbs.php new file mode 100644 index 0000000..cfa0f1a --- /dev/null +++ b/lang/vendor/filament/sk/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Navigačná cesta', + +]; diff --git a/lang/vendor/filament/sk/components/button.php b/lang/vendor/filament/sk/components/button.php new file mode 100644 index 0000000..701b360 --- /dev/null +++ b/lang/vendor/filament/sk/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Nahrávam súbor...', + ], + +]; diff --git a/lang/vendor/filament/sk/components/copyable.php b/lang/vendor/filament/sk/components/copyable.php new file mode 100644 index 0000000..f41d39f --- /dev/null +++ b/lang/vendor/filament/sk/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Skopírované', + ], + +]; diff --git a/lang/vendor/filament/sk/components/input/one-time-code.php b/lang/vendor/filament/sk/components/input/one-time-code.php new file mode 100644 index 0000000..4ea1ae1 --- /dev/null +++ b/lang/vendor/filament/sk/components/input/one-time-code.php @@ -0,0 +1,7 @@ + 'Znak :position z :count', + +]; diff --git a/lang/vendor/filament/sk/components/loading-section.php b/lang/vendor/filament/sk/components/loading-section.php new file mode 100644 index 0000000..049b172 --- /dev/null +++ b/lang/vendor/filament/sk/components/loading-section.php @@ -0,0 +1,7 @@ + 'Načítava sa...', + +]; diff --git a/lang/vendor/filament/sk/components/modal.php b/lang/vendor/filament/sk/components/modal.php new file mode 100644 index 0000000..de79c90 --- /dev/null +++ b/lang/vendor/filament/sk/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zavrieť', + ], + + ], + +]; diff --git a/lang/vendor/filament/sk/components/pagination.php b/lang/vendor/filament/sk/components/pagination.php new file mode 100644 index 0000000..3404ca5 --- /dev/null +++ b/lang/vendor/filament/sk/components/pagination.php @@ -0,0 +1,47 @@ + 'Stránkovanie', + + 'overview' => '{1} Zobrazuje sa jeden výsledok|[2,*] Zobrazuje sa :first až :last z celkových :total výsledkov', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Počet na stranu', + + 'options' => [ + 'all' => 'Všetky', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prvá', + ], + + 'go_to_page' => [ + 'label' => 'Prejsť na stranu :page', + ], + + 'last' => [ + 'label' => 'Posledná', + ], + + 'next' => [ + 'label' => 'Ďalšia', + ], + + 'previous' => [ + 'label' => 'Predošlá', + ], + + ], + +]; diff --git a/lang/vendor/filament/sk/components/section.php b/lang/vendor/filament/sk/components/section.php new file mode 100644 index 0000000..f1266fa --- /dev/null +++ b/lang/vendor/filament/sk/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Zbaliť sekciu', + ], + + 'expand' => [ + 'label' => 'Rozbaliť sekciu', + ], + + ], + +]; diff --git a/lang/vendor/filament/sk/components/tabs.php b/lang/vendor/filament/sk/components/tabs.php new file mode 100644 index 0000000..abecc35 --- /dev/null +++ b/lang/vendor/filament/sk/components/tabs.php @@ -0,0 +1,7 @@ + 'Záložky', + +]; diff --git a/lang/vendor/filament/sl/components/button.php b/lang/vendor/filament/sl/components/button.php new file mode 100644 index 0000000..a8ecafd --- /dev/null +++ b/lang/vendor/filament/sl/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Nalaganje datoteke...', + ], + +]; diff --git a/lang/vendor/filament/sl/components/copyable.php b/lang/vendor/filament/sl/components/copyable.php new file mode 100644 index 0000000..0741c30 --- /dev/null +++ b/lang/vendor/filament/sl/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopirano', + ], + +]; diff --git a/lang/vendor/filament/sl/components/modal.php b/lang/vendor/filament/sl/components/modal.php new file mode 100644 index 0000000..2965296 --- /dev/null +++ b/lang/vendor/filament/sl/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zapri', + ], + + ], + +]; diff --git a/lang/vendor/filament/sl/components/pagination.php b/lang/vendor/filament/sl/components/pagination.php new file mode 100644 index 0000000..d5e7265 --- /dev/null +++ b/lang/vendor/filament/sl/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigacija', + + 'overview' => '{1} Prikazan je 1 rezultat|[2,*] Prikazanih je :first do :last od skupno :total rezultatov', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Na stran', + + 'options' => [ + 'all' => 'Vse', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prva', + ], + + 'go_to_page' => [ + 'label' => 'Pojdi na stran :page', + ], + + 'last' => [ + 'label' => 'Zadnja', + ], + + 'next' => [ + 'label' => 'Naslednja', + ], + + 'previous' => [ + 'label' => 'Prejšnja', + ], + + ], + +]; diff --git a/lang/vendor/filament/sq/components/button.php b/lang/vendor/filament/sq/components/button.php new file mode 100644 index 0000000..18be013 --- /dev/null +++ b/lang/vendor/filament/sq/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Duke ngarkuar skedarin...', + ], + +]; diff --git a/lang/vendor/filament/sq/components/copyable.php b/lang/vendor/filament/sq/components/copyable.php new file mode 100644 index 0000000..c3461c8 --- /dev/null +++ b/lang/vendor/filament/sq/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'U kopjua', + ], + +]; diff --git a/lang/vendor/filament/sq/components/modal.php b/lang/vendor/filament/sq/components/modal.php new file mode 100644 index 0000000..6a8eca7 --- /dev/null +++ b/lang/vendor/filament/sq/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Mbyll', + ], + + ], + +]; diff --git a/lang/vendor/filament/sq/components/pagination.php b/lang/vendor/filament/sq/components/pagination.php new file mode 100644 index 0000000..afecb09 --- /dev/null +++ b/lang/vendor/filament/sq/components/pagination.php @@ -0,0 +1,39 @@ + 'Pagination navigation', + + 'overview' => '{1} Duke shfaqur 1 rezultat|[2,*] Duke shfaqur :first deri në :last rezultate nga :total ne total', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Për faqe', + + 'options' => [ + 'all' => 'Të gjithë', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Shko te faqja :page', + ], + + 'next' => [ + 'label' => 'Pasardhësi', + ], + + 'previous' => [ + 'label' => 'Paraardhësi', + ], + + ], + +]; diff --git a/lang/vendor/filament/sr_Cyrl/components/button.php b/lang/vendor/filament/sr_Cyrl/components/button.php new file mode 100644 index 0000000..decbbf9 --- /dev/null +++ b/lang/vendor/filament/sr_Cyrl/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Шаљем датотеку...', + ], + +]; diff --git a/lang/vendor/filament/sr_Cyrl/components/copyable.php b/lang/vendor/filament/sr_Cyrl/components/copyable.php new file mode 100644 index 0000000..7753fd7 --- /dev/null +++ b/lang/vendor/filament/sr_Cyrl/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Копирано', + ], + +]; diff --git a/lang/vendor/filament/sr_Cyrl/components/modal.php b/lang/vendor/filament/sr_Cyrl/components/modal.php new file mode 100644 index 0000000..8ca951f --- /dev/null +++ b/lang/vendor/filament/sr_Cyrl/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Затвори', + ], + + ], + +]; diff --git a/lang/vendor/filament/sr_Cyrl/components/pagination.php b/lang/vendor/filament/sr_Cyrl/components/pagination.php new file mode 100644 index 0000000..185c750 --- /dev/null +++ b/lang/vendor/filament/sr_Cyrl/components/pagination.php @@ -0,0 +1,47 @@ + 'Навигација страницама', + + 'overview' => '{1} Приказан је 1 резултат|[2,*] Приказано је :first до :last од укупно :total резултата', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'По страници', + + 'options' => [ + 'all' => 'Све', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Прва', + ], + + 'go_to_page' => [ + 'label' => 'Иди на страницу :page', + ], + + 'last' => [ + 'label' => 'Последња', + ], + + 'next' => [ + 'label' => 'Напред', + ], + + 'previous' => [ + 'label' => 'Назад', + ], + + ], + +]; diff --git a/lang/vendor/filament/sr_Latn/components/button.php b/lang/vendor/filament/sr_Latn/components/button.php new file mode 100644 index 0000000..f898557 --- /dev/null +++ b/lang/vendor/filament/sr_Latn/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Šaljem datoteku...', + ], + +]; diff --git a/lang/vendor/filament/sr_Latn/components/copyable.php b/lang/vendor/filament/sr_Latn/components/copyable.php new file mode 100644 index 0000000..0741c30 --- /dev/null +++ b/lang/vendor/filament/sr_Latn/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopirano', + ], + +]; diff --git a/lang/vendor/filament/sr_Latn/components/modal.php b/lang/vendor/filament/sr_Latn/components/modal.php new file mode 100644 index 0000000..3f49931 --- /dev/null +++ b/lang/vendor/filament/sr_Latn/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Zatvori', + ], + + ], + +]; diff --git a/lang/vendor/filament/sr_Latn/components/pagination.php b/lang/vendor/filament/sr_Latn/components/pagination.php new file mode 100644 index 0000000..8e70d15 --- /dev/null +++ b/lang/vendor/filament/sr_Latn/components/pagination.php @@ -0,0 +1,47 @@ + 'Navigacija stranicama', + + 'overview' => '{1} Prikazan je 1 rezultat|[2,*] Prikazano je :first do :last od ukupno :total rezultata', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Po stranici', + + 'options' => [ + 'all' => 'Sve', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Prva', + ], + + 'go_to_page' => [ + 'label' => 'Idi na stranicu :page', + ], + + 'last' => [ + 'label' => 'Poslednja', + ], + + 'next' => [ + 'label' => 'Napred', + ], + + 'previous' => [ + 'label' => 'Nazad', + ], + + ], + +]; diff --git a/lang/vendor/filament/sv/components/button.php b/lang/vendor/filament/sv/components/button.php new file mode 100644 index 0000000..0ed409f --- /dev/null +++ b/lang/vendor/filament/sv/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Laddar upp fil...', + ], + +]; diff --git a/lang/vendor/filament/sv/components/copyable.php b/lang/vendor/filament/sv/components/copyable.php new file mode 100644 index 0000000..5f53e48 --- /dev/null +++ b/lang/vendor/filament/sv/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopierades', + ], + +]; diff --git a/lang/vendor/filament/sv/components/modal.php b/lang/vendor/filament/sv/components/modal.php new file mode 100644 index 0000000..80ef73d --- /dev/null +++ b/lang/vendor/filament/sv/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Stäng', + ], + + ], + +]; diff --git a/lang/vendor/filament/sv/components/pagination.php b/lang/vendor/filament/sv/components/pagination.php new file mode 100644 index 0000000..2b96690 --- /dev/null +++ b/lang/vendor/filament/sv/components/pagination.php @@ -0,0 +1,47 @@ + 'Sidnavigering', + + 'overview' => '{1} Visar 1 resultat|[2,*] Visar :first till :last av :total resultat', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Per sida', + + 'options' => [ + 'all' => 'Alla', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Första', + ], + + 'go_to_page' => [ + 'label' => 'Gå till sida :page', + ], + + 'last' => [ + 'label' => 'Sista', + ], + + 'next' => [ + 'label' => 'Nästa', + ], + + 'previous' => [ + 'label' => 'Föregående', + ], + + ], + +]; diff --git a/lang/vendor/filament/sw/components/button.php b/lang/vendor/filament/sw/components/button.php new file mode 100644 index 0000000..bd5bc92 --- /dev/null +++ b/lang/vendor/filament/sw/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Inapakia faili...', + ], + +]; diff --git a/lang/vendor/filament/sw/components/copyable.php b/lang/vendor/filament/sw/components/copyable.php new file mode 100644 index 0000000..0ac96d5 --- /dev/null +++ b/lang/vendor/filament/sw/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Imeigwa', + ], + +]; diff --git a/lang/vendor/filament/sw/components/modal.php b/lang/vendor/filament/sw/components/modal.php new file mode 100644 index 0000000..71666e1 --- /dev/null +++ b/lang/vendor/filament/sw/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Funga', + ], + + ], + +]; diff --git a/lang/vendor/filament/sw/components/pagination.php b/lang/vendor/filament/sw/components/pagination.php new file mode 100644 index 0000000..50e231b --- /dev/null +++ b/lang/vendor/filament/sw/components/pagination.php @@ -0,0 +1,39 @@ + 'Urambazaji wa kurasa', + + 'overview' => 'Onesha :first mpaka :last ya :total ya matokeo', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'kwa kurasa', + + 'options' => [ + 'all' => 'Zote', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => 'Nenda kwenye kurasa :page', + ], + + 'next' => [ + 'label' => 'Mbele', + ], + + 'previous' => [ + 'label' => 'Nyuma', + ], + + ], + +]; diff --git a/lang/vendor/filament/th/components/button.php b/lang/vendor/filament/th/components/button.php new file mode 100644 index 0000000..30a0123 --- /dev/null +++ b/lang/vendor/filament/th/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'กำลังอัปโหลดไฟล์...', + ], + +]; diff --git a/lang/vendor/filament/th/components/copyable.php b/lang/vendor/filament/th/components/copyable.php new file mode 100644 index 0000000..073ea81 --- /dev/null +++ b/lang/vendor/filament/th/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'คัดลอกเรียบร้อย', + ], + +]; diff --git a/lang/vendor/filament/th/components/modal.php b/lang/vendor/filament/th/components/modal.php new file mode 100644 index 0000000..b30b173 --- /dev/null +++ b/lang/vendor/filament/th/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'ปิด', + ], + + ], + +]; diff --git a/lang/vendor/filament/th/components/pagination.php b/lang/vendor/filament/th/components/pagination.php new file mode 100644 index 0000000..8213579 --- /dev/null +++ b/lang/vendor/filament/th/components/pagination.php @@ -0,0 +1,47 @@ + 'การนำทางการแบ่งหน้า', + + 'overview' => '{1} แสดง 1 รายการ|[2,*] แสดง :first ถึง :last จาก :total รายการ', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'รายการต่อหน้า', + + 'options' => [ + 'all' => 'ทั้งหมด', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'หน้าแรก', + ], + + 'go_to_page' => [ + 'label' => 'ไปหน้า :page', + ], + + 'last' => [ + 'label' => 'หน้าสุดท้าย', + ], + + 'next' => [ + 'label' => 'ถัดไป', + ], + + 'previous' => [ + 'label' => 'หน้าก่อน', + ], + + ], + +]; diff --git a/lang/vendor/filament/tk/components/badge.php b/lang/vendor/filament/tk/components/badge.php new file mode 100644 index 0000000..22f17d8 --- /dev/null +++ b/lang/vendor/filament/tk/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Aýyr', + ], + + ], + +]; diff --git a/lang/vendor/filament/tk/components/breadcrumbs.php b/lang/vendor/filament/tk/components/breadcrumbs.php new file mode 100644 index 0000000..fd55f9b --- /dev/null +++ b/lang/vendor/filament/tk/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Navigasiýa', + +]; diff --git a/lang/vendor/filament/tk/components/button.php b/lang/vendor/filament/tk/components/button.php new file mode 100644 index 0000000..22f8be5 --- /dev/null +++ b/lang/vendor/filament/tk/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Faýl ýüklenýär...', + ], + +]; diff --git a/lang/vendor/filament/tk/components/copyable.php b/lang/vendor/filament/tk/components/copyable.php new file mode 100644 index 0000000..6146824 --- /dev/null +++ b/lang/vendor/filament/tk/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Göçürildi', + ], + +]; diff --git a/lang/vendor/filament/tk/components/input/one-time-code.php b/lang/vendor/filament/tk/components/input/one-time-code.php new file mode 100644 index 0000000..19b802d --- /dev/null +++ b/lang/vendor/filament/tk/components/input/one-time-code.php @@ -0,0 +1,7 @@ + ':count simwoldan :position', + +]; diff --git a/lang/vendor/filament/tk/components/loading-section.php b/lang/vendor/filament/tk/components/loading-section.php new file mode 100644 index 0000000..7f54d79 --- /dev/null +++ b/lang/vendor/filament/tk/components/loading-section.php @@ -0,0 +1,7 @@ + 'Ýüklenýär...', + +]; diff --git a/lang/vendor/filament/tk/components/modal.php b/lang/vendor/filament/tk/components/modal.php new file mode 100644 index 0000000..bede10b --- /dev/null +++ b/lang/vendor/filament/tk/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Ýap', + ], + + ], + +]; diff --git a/lang/vendor/filament/tk/components/pagination.php b/lang/vendor/filament/tk/components/pagination.php new file mode 100644 index 0000000..f2bde34 --- /dev/null +++ b/lang/vendor/filament/tk/components/pagination.php @@ -0,0 +1,47 @@ + 'Sahypalama', + + 'overview' => '{1} 1 netije görkezilýär|[2,*] :first–:last / :total netije', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Sahypada', + + 'options' => [ + 'all' => 'Hemmesi', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Ilkinji', + ], + + 'go_to_page' => [ + 'label' => ':page sahypa geç', + ], + + 'last' => [ + 'label' => 'Soňky', + ], + + 'next' => [ + 'label' => 'Indiki', + ], + + 'previous' => [ + 'label' => 'Öňki', + ], + + ], + +]; diff --git a/lang/vendor/filament/tk/components/section.php b/lang/vendor/filament/tk/components/section.php new file mode 100644 index 0000000..92c4c5f --- /dev/null +++ b/lang/vendor/filament/tk/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Bölümi ýygna', + ], + + 'expand' => [ + 'label' => 'Bölümi giňelt', + ], + + ], + +]; diff --git a/lang/vendor/filament/tk/components/tabs.php b/lang/vendor/filament/tk/components/tabs.php new file mode 100644 index 0000000..2b0ba2e --- /dev/null +++ b/lang/vendor/filament/tk/components/tabs.php @@ -0,0 +1,7 @@ + 'Goýmaltyklar', + +]; diff --git a/lang/vendor/filament/tr/components/badge.php b/lang/vendor/filament/tr/components/badge.php new file mode 100644 index 0000000..82938e5 --- /dev/null +++ b/lang/vendor/filament/tr/components/badge.php @@ -0,0 +1,13 @@ + [ + + 'delete' => [ + 'label' => 'Kaldır', + ], + + ], + +]; diff --git a/lang/vendor/filament/tr/components/breadcrumbs.php b/lang/vendor/filament/tr/components/breadcrumbs.php new file mode 100644 index 0000000..daa22d2 --- /dev/null +++ b/lang/vendor/filament/tr/components/breadcrumbs.php @@ -0,0 +1,7 @@ + 'Breadcrumb', + +]; diff --git a/lang/vendor/filament/tr/components/button.php b/lang/vendor/filament/tr/components/button.php new file mode 100644 index 0000000..a7ae994 --- /dev/null +++ b/lang/vendor/filament/tr/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Dosya yükleniyor...', + ], + +]; diff --git a/lang/vendor/filament/tr/components/copyable.php b/lang/vendor/filament/tr/components/copyable.php new file mode 100644 index 0000000..4b0c3ea --- /dev/null +++ b/lang/vendor/filament/tr/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Kopyalandı', + ], + +]; diff --git a/lang/vendor/filament/tr/components/input/one-time-code.php b/lang/vendor/filament/tr/components/input/one-time-code.php new file mode 100644 index 0000000..ba22ff5 --- /dev/null +++ b/lang/vendor/filament/tr/components/input/one-time-code.php @@ -0,0 +1,7 @@ + ':count karakterden :position. karakter', + +]; diff --git a/lang/vendor/filament/tr/components/loading-section.php b/lang/vendor/filament/tr/components/loading-section.php new file mode 100644 index 0000000..c4efe64 --- /dev/null +++ b/lang/vendor/filament/tr/components/loading-section.php @@ -0,0 +1,7 @@ + 'Yükleniyor...', + +]; diff --git a/lang/vendor/filament/tr/components/modal.php b/lang/vendor/filament/tr/components/modal.php new file mode 100644 index 0000000..4af5ffb --- /dev/null +++ b/lang/vendor/filament/tr/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Kapat', + ], + + ], + +]; diff --git a/lang/vendor/filament/tr/components/pagination.php b/lang/vendor/filament/tr/components/pagination.php new file mode 100644 index 0000000..35a273c --- /dev/null +++ b/lang/vendor/filament/tr/components/pagination.php @@ -0,0 +1,47 @@ + 'Sayfalandırma Navigasyonu', + + 'overview' => 'Toplam :total sonuçtan :first ile :last arası görüntüleniyor', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'sayfa başına', + + 'options' => [ + 'all' => 'Tümü', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'İlk', + ], + + 'go_to_page' => [ + 'label' => ':page. sayfaya git', + ], + + 'last' => [ + 'label' => 'Son', + ], + + 'next' => [ + 'label' => 'Sonraki', + ], + + 'previous' => [ + 'label' => 'Önceki', + ], + + ], + +]; diff --git a/lang/vendor/filament/tr/components/section.php b/lang/vendor/filament/tr/components/section.php new file mode 100644 index 0000000..ee93b3f --- /dev/null +++ b/lang/vendor/filament/tr/components/section.php @@ -0,0 +1,17 @@ + [ + + 'collapse' => [ + 'label' => 'Bölümü daralt', + ], + + 'expand' => [ + 'label' => 'Bölümü genişlet', + ], + + ], + +]; diff --git a/lang/vendor/filament/tr/components/tabs.php b/lang/vendor/filament/tr/components/tabs.php new file mode 100644 index 0000000..0d2c654 --- /dev/null +++ b/lang/vendor/filament/tr/components/tabs.php @@ -0,0 +1,7 @@ + 'Sekmeler', + +]; diff --git a/lang/vendor/filament/uk/components/button.php b/lang/vendor/filament/uk/components/button.php new file mode 100644 index 0000000..350ea6b --- /dev/null +++ b/lang/vendor/filament/uk/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Завантаження файлу...', + ], + +]; diff --git a/lang/vendor/filament/uk/components/copyable.php b/lang/vendor/filament/uk/components/copyable.php new file mode 100644 index 0000000..d4bd7b3 --- /dev/null +++ b/lang/vendor/filament/uk/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Скопійовано', + ], + +]; diff --git a/lang/vendor/filament/uk/components/modal.php b/lang/vendor/filament/uk/components/modal.php new file mode 100644 index 0000000..e03448b --- /dev/null +++ b/lang/vendor/filament/uk/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Закрити', + ], + + ], + +]; diff --git a/lang/vendor/filament/uk/components/pagination.php b/lang/vendor/filament/uk/components/pagination.php new file mode 100644 index 0000000..c71e82d --- /dev/null +++ b/lang/vendor/filament/uk/components/pagination.php @@ -0,0 +1,47 @@ + 'Пагінація', + + 'overview' => 'Показано з :first по :last з :total', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'на сторінку', + + 'options' => [ + 'all' => 'Всі', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Перша', + ], + + 'go_to_page' => [ + 'label' => 'Перейти до сторінки :page', + ], + + 'last' => [ + 'label' => 'Остання', + ], + + 'next' => [ + 'label' => 'Наступна', + ], + + 'previous' => [ + 'label' => 'Попередня', + ], + + ], + +]; diff --git a/lang/vendor/filament/ur/components/button.php b/lang/vendor/filament/ur/components/button.php new file mode 100644 index 0000000..40fa03b --- /dev/null +++ b/lang/vendor/filament/ur/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'فائل اپلوڈ ہو رہی ہے...', + ], + +]; diff --git a/lang/vendor/filament/ur/components/copyable.php b/lang/vendor/filament/ur/components/copyable.php new file mode 100644 index 0000000..e5dc6cc --- /dev/null +++ b/lang/vendor/filament/ur/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'کاپی ہو گیا', + ], + +]; diff --git a/lang/vendor/filament/ur/components/modal.php b/lang/vendor/filament/ur/components/modal.php new file mode 100644 index 0000000..b7d9fc0 --- /dev/null +++ b/lang/vendor/filament/ur/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'بند کریں', + ], + + ], + +]; diff --git a/lang/vendor/filament/ur/components/pagination.php b/lang/vendor/filament/ur/components/pagination.php new file mode 100644 index 0000000..fdded0b --- /dev/null +++ b/lang/vendor/filament/ur/components/pagination.php @@ -0,0 +1,47 @@ + 'صفحہ بندی', + + 'overview' => '{1} 1 نتیجہ دکھایا جا رہا ہے|[2,*] :first سے :last تک کے :total نتائج دکھا رہے ہیں', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'فی صفحہ', + + 'options' => [ + 'all' => 'سب', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'پہلا', + ], + + 'go_to_page' => [ + 'label' => 'صفحہ :page پر جائیں', + ], + + 'last' => [ + 'label' => 'آخری', + ], + + 'next' => [ + 'label' => 'اگلا', + ], + + 'previous' => [ + 'label' => 'پچھلا', + ], + + ], + +]; diff --git a/lang/vendor/filament/uz/components/button.php b/lang/vendor/filament/uz/components/button.php new file mode 100644 index 0000000..36b1a2d --- /dev/null +++ b/lang/vendor/filament/uz/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Fayl yuklanmoqda...', + ], + +]; diff --git a/lang/vendor/filament/uz/components/copyable.php b/lang/vendor/filament/uz/components/copyable.php new file mode 100644 index 0000000..9277d5a --- /dev/null +++ b/lang/vendor/filament/uz/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Nusxalandi', + ], + +]; diff --git a/lang/vendor/filament/uz/components/modal.php b/lang/vendor/filament/uz/components/modal.php new file mode 100644 index 0000000..0c026cb --- /dev/null +++ b/lang/vendor/filament/uz/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Yopish', + ], + + ], + +]; diff --git a/lang/vendor/filament/uz/components/pagination.php b/lang/vendor/filament/uz/components/pagination.php new file mode 100644 index 0000000..e0709ed --- /dev/null +++ b/lang/vendor/filament/uz/components/pagination.php @@ -0,0 +1,39 @@ + 'Sahifalar navigatsiyasi', + + 'overview' => '{1} 1 natija ko\'rsatilmoqda |[2,*] :firstdan :lastgacha jami natijalar :totalta', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Har bir sahifaga', + + 'options' => [ + 'all' => 'Barchasi', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => ':pagechi sahifaga o\'tish', + ], + + 'next' => [ + 'label' => 'Keyingi', + ], + + 'previous' => [ + 'label' => 'Oldingi', + ], + + ], + +]; diff --git a/lang/vendor/filament/vi/components/button.php b/lang/vendor/filament/vi/components/button.php new file mode 100644 index 0000000..2a0183b --- /dev/null +++ b/lang/vendor/filament/vi/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => 'Đang tải tệp lên...', + ], + +]; diff --git a/lang/vendor/filament/vi/components/copyable.php b/lang/vendor/filament/vi/components/copyable.php new file mode 100644 index 0000000..baed251 --- /dev/null +++ b/lang/vendor/filament/vi/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => 'Đã sao chép', + ], + +]; diff --git a/lang/vendor/filament/vi/components/modal.php b/lang/vendor/filament/vi/components/modal.php new file mode 100644 index 0000000..968d15c --- /dev/null +++ b/lang/vendor/filament/vi/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => 'Đóng', + ], + + ], + +]; diff --git a/lang/vendor/filament/vi/components/pagination.php b/lang/vendor/filament/vi/components/pagination.php new file mode 100644 index 0000000..ec92087 --- /dev/null +++ b/lang/vendor/filament/vi/components/pagination.php @@ -0,0 +1,47 @@ + 'Điều hướng phân trang', + + 'overview' => '{1} Đang hiện 1 kết quả|[2,*] Đang hiện từ :first đến :last của :total kết quả', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => 'Mỗi trang', + + 'options' => [ + 'all' => 'Tất cả', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => 'Đầu tiên', + ], + + 'go_to_page' => [ + 'label' => 'Đi tới trang :page', + ], + + 'last' => [ + 'label' => 'Cuối cùng', + ], + + 'next' => [ + 'label' => 'Tiếp theo', + ], + + 'previous' => [ + 'label' => 'Trước đó', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_CN/components/button.php b/lang/vendor/filament/zh_CN/components/button.php new file mode 100644 index 0000000..ced2342 --- /dev/null +++ b/lang/vendor/filament/zh_CN/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => '文件上传中...', + ], + +]; diff --git a/lang/vendor/filament/zh_CN/components/copyable.php b/lang/vendor/filament/zh_CN/components/copyable.php new file mode 100644 index 0000000..309cf52 --- /dev/null +++ b/lang/vendor/filament/zh_CN/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => '已复制', + ], + +]; diff --git a/lang/vendor/filament/zh_CN/components/modal.php b/lang/vendor/filament/zh_CN/components/modal.php new file mode 100644 index 0000000..ef0574a --- /dev/null +++ b/lang/vendor/filament/zh_CN/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => '关闭', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_CN/components/pagination.php b/lang/vendor/filament/zh_CN/components/pagination.php new file mode 100644 index 0000000..0848381 --- /dev/null +++ b/lang/vendor/filament/zh_CN/components/pagination.php @@ -0,0 +1,39 @@ + '分页', + + 'overview' => '{1} 只有 1 条记录|[2,*] 当前显示第 :first 条到第 :last 条,共 :total 条', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => '每页', + + 'options' => [ + 'all' => '所有', + ], + + ], + + ], + + 'actions' => [ + + 'go_to_page' => [ + 'label' => '跳转到 :page', + ], + + 'next' => [ + 'label' => '下一页', + ], + + 'previous' => [ + 'label' => '上一页', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_HK/components/button.php b/lang/vendor/filament/zh_HK/components/button.php new file mode 100644 index 0000000..503e81a --- /dev/null +++ b/lang/vendor/filament/zh_HK/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => '正在上傳檔案...', + ], + +]; diff --git a/lang/vendor/filament/zh_HK/components/copyable.php b/lang/vendor/filament/zh_HK/components/copyable.php new file mode 100644 index 0000000..4534920 --- /dev/null +++ b/lang/vendor/filament/zh_HK/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => '已複製', + ], + +]; diff --git a/lang/vendor/filament/zh_HK/components/modal.php b/lang/vendor/filament/zh_HK/components/modal.php new file mode 100644 index 0000000..5e1471e --- /dev/null +++ b/lang/vendor/filament/zh_HK/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => '關閉', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_HK/components/pagination.php b/lang/vendor/filament/zh_HK/components/pagination.php new file mode 100644 index 0000000..949229c --- /dev/null +++ b/lang/vendor/filament/zh_HK/components/pagination.php @@ -0,0 +1,47 @@ + '分頁導航', + + 'overview' => '正在顯示第 :first 至 :last 項結果,共 :total 項', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => '每頁顯示', + + 'options' => [ + 'all' => '全部', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => '第一頁', + ], + + 'go_to_page' => [ + 'label' => '前往第 :page 頁', + ], + + 'last' => [ + 'label' => '最後一頁', + ], + + 'next' => [ + 'label' => '下一頁', + ], + + 'previous' => [ + 'label' => '上一頁', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_TW/components/button.php b/lang/vendor/filament/zh_TW/components/button.php new file mode 100644 index 0000000..503e81a --- /dev/null +++ b/lang/vendor/filament/zh_TW/components/button.php @@ -0,0 +1,9 @@ + [ + 'uploading_file' => '正在上傳檔案...', + ], + +]; diff --git a/lang/vendor/filament/zh_TW/components/copyable.php b/lang/vendor/filament/zh_TW/components/copyable.php new file mode 100644 index 0000000..4534920 --- /dev/null +++ b/lang/vendor/filament/zh_TW/components/copyable.php @@ -0,0 +1,9 @@ + [ + 'copied' => '已複製', + ], + +]; diff --git a/lang/vendor/filament/zh_TW/components/modal.php b/lang/vendor/filament/zh_TW/components/modal.php new file mode 100644 index 0000000..5e1471e --- /dev/null +++ b/lang/vendor/filament/zh_TW/components/modal.php @@ -0,0 +1,13 @@ + [ + + 'close' => [ + 'label' => '關閉', + ], + + ], + +]; diff --git a/lang/vendor/filament/zh_TW/components/pagination.php b/lang/vendor/filament/zh_TW/components/pagination.php new file mode 100644 index 0000000..949229c --- /dev/null +++ b/lang/vendor/filament/zh_TW/components/pagination.php @@ -0,0 +1,47 @@ + '分頁導航', + + 'overview' => '正在顯示第 :first 至 :last 項結果,共 :total 項', + + 'fields' => [ + + 'records_per_page' => [ + + 'label' => '每頁顯示', + + 'options' => [ + 'all' => '全部', + ], + + ], + + ], + + 'actions' => [ + + 'first' => [ + 'label' => '第一頁', + ], + + 'go_to_page' => [ + 'label' => '前往第 :page 頁', + ], + + 'last' => [ + 'label' => '最後一頁', + ], + + 'next' => [ + 'label' => '下一頁', + ], + + 'previous' => [ + 'label' => '上一頁', + ], + + ], + +]; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..eb3c379 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1875 @@ +{ + "name": "hr", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "@tailwindcss/vite": "^4.3.3", + "concurrently": "^9.0.1", + "laravel-vite-plugin": "^3.1", + "tailwindcss": "^4.3.3", + "vite": "^8.0.0" + } + }, + "node_modules/@emnapi/core": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-2.0.0-alpha.3.tgz", + "integrity": "sha512-AZypUeJ/yByuxyS7BlSNRDOMLMlROYtjYdIAuBmJssVz1UJDSeYxLrdizhXCFYhedC5bqd/ASy8EuNXbVVXp9g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "2.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "2.0.0-alpha.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-2.0.0-alpha.3.tgz", + "integrity": "sha512-hFPAhMUjJD9BSyCANEISPOogeXC9Zo9ZQl7L6vKnaVsMkCtzznaW/naYypeyl0Gv5rYfWYsZbpixTMpjDJzQeA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-2.0.1.tgz", + "integrity": "sha512-9DsSk+o5NBX0CCJT8s0EROGSGxjR/tKu6aBTaVyq+SjAEQH4XcdcRxPBRzsBLizTTJ49MJjF+jgu3qnO9GLQcQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.2.tgz", + "integrity": "sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.3" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.3", + "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.3" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.142.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.142.0.tgz", + "integrity": "sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.1.tgz", + "integrity": "sha512-02hOeOSryYxVrOIphmLAsqnCJWxwlzFk+pEt/N/i6OgT3lShHO7xGCU5cpgchRDHboAEbSjzgGh+O/u1GswQmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-fMsTOnN0OjFm3CyppWPitKnc8UlliVARUULW6cfU6AIqjdtgmSFWSk9vecHzZduv/yMWIHDlRhM1e8Iff9uAfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-1wjKdz/XLGKHaTNHjQveQ/B23TKx4ItAqm1JbyVuvNPc4Ze0Fb48s49TAd/2zcplPl8okE/UbTgmlVfwT7eFeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-Fa0jHR07E7YBN4vOEsbVf2briYNsuOowfLJaXULZM0ldMlaCaj2LJgLMbMe4iacRyZmvR8efFhgR9wKuGclQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-pzkgu1SSHGgRRyRZ4fbmSgmajbVt+epaLP99NDjFft69v/ypfTi6swBMiVdh2EkQ0OSnHE1lZDM7DRGkyAzUpA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-QI5SEDY8cbiYWHx0VO4vIc3UlS6a32vXHjU8Qy/17adEmZIPuByJg13UEvo9c/UCiUkdcVWY83C+b+JrwnNyUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-Sm41FyCeXqmYcERoYOCbGIL5hNfd8w9LQ7Y61Bev48HkcjaJqV/iiVOaiDxjVTRMS+QKrZmD8cfPt4uMVnvM+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.1.tgz", + "integrity": "sha512-2x+WhXTGl9yJYPbltW/BSEPTVz9OIWQyER4N+gJEDWkkn904eRcBzELqh/Hf7K0w/ubGbKNMv0ZC+94QK/IFEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.1.tgz", + "integrity": "sha512-eEjmQpuRQayHPWWnywaWHkFT3ToPbP3RYy42VVd/B9aBGDA+Ol25EIWHxKQST3IiWJjikCWUF7KtbfqwZrzVwQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-/Orga1fZYkLc/56jBICcHrKchl8Z2UKdDSr3LG9ToWO1lQ6a4Livk9Xz+9WN91zsz5QR3XQz2NNoSDEvP6qadw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-xxBJRL+0q0Kce7orznGWLuylHDY65vuARXZRpX+hPdv+DqK2c3NlCsVA98tlWzWNEE7yPqA/1NQ5nnCrj49Y5A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.1.tgz", + "integrity": "sha512-M6AdXIXw3s+/8XpKMzdGDEXGS1S7kwUsy+rcTIUIOx5Ge4nXKCtAFHFV9YKkXvGcC5WMoTjAteLzlsQROVI0Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-/TX0SoRGojHzSAHpfVBbavRVSazg5U3h3Y3VXfcc0cdugq6kxdqw8LPGFiPr+/7gE/60zRcsOY2Vi9b9eT0jww==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "2.0.0-alpha.3", + "@emnapi/runtime": "2.0.0-alpha.3", + "@napi-rs/wasm-runtime": "^1.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=23.5.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-EvRrivJieyHG+AO9lleZWgq+g0+S7oV2C51yuqlcyU/R9net+sI4Pj0F+lUoP2bEr6TWX3SqFaaS0SzfLxSzkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-Z4eCmn5QJ/5+azF9knpLWKfVd9aidn0mAe9TpJgvBLId9Ax3t0+JVxBmT25Bv7NBbVW1TZyKjQjQReouMeH5UQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tailwindcss/node": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "enhanced-resolve": "^5.24.1", + "jiti": "^2.7.0", + "lightningcss": "1.32.0", + "magic-string": "^0.30.21", + "source-map-js": "^1.2.1", + "tailwindcss": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", + "@napi-rs/wasm-runtime": "^1.1.4", + "@tybys/wasm-util": "^0.10.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 20" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7 || ^8" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concurrently": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-9.2.4.tgz", + "integrity": "sha512-TZ0CEhyzvFjgtAvHTusDMgj7wNdihCh7LLLrzdUOXIhdlnL2JBBGA9eJxR24rtqgmdjh3OA3hrN1rCHj6HM8qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "4.1.2", + "rxjs": "7.8.2", + "shell-quote": "1.9.0", + "supports-color": "8.1.1", + "tree-kill": "1.2.2", + "yargs": "17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.24.5", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", + "integrity": "sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jiti": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", + "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/laravel-vite-plugin": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-3.1.3.tgz", + "integrity": "sha512-cI5Anw4QHY+UzvZczFaj+j8NhwT2FtyEN8aqS/hOdt6DpEFBsn6x3GENxALem3cc+TsGvd9MacneimEvShvKMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "tinyglobby": "^0.2.12", + "vite-plugin-full-reload": "^1.1.0" + }, + "bin": { + "clean-orphaned-assets": "bin/clean.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "fontaine": "^0.8.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "fontaine": { + "optional": true + } + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rolldown": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.1.tgz", + "integrity": "sha512-4FKJhg8d3OiyQOA6Q1Q0hoFFpW9/OoX+VsHzpECsdsIZoOArrAK90gl59YK/Z+gnDel45bgJZK03ozH/9bCqEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.142.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.2.1", + "@rolldown/binding-darwin-arm64": "1.2.1", + "@rolldown/binding-darwin-x64": "1.2.1", + "@rolldown/binding-freebsd-x64": "1.2.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.1", + "@rolldown/binding-linux-arm64-gnu": "1.2.1", + "@rolldown/binding-linux-arm64-musl": "1.2.1", + "@rolldown/binding-linux-ppc64-gnu": "1.2.1", + "@rolldown/binding-linux-s390x-gnu": "1.2.1", + "@rolldown/binding-linux-x64-gnu": "1.2.1", + "@rolldown/binding-linux-x64-musl": "1.2.1", + "@rolldown/binding-openharmony-arm64": "1.2.1", + "@rolldown/binding-wasm32-wasi": "1.2.1", + "@rolldown/binding-win32-arm64-msvc": "1.2.1", + "@rolldown/binding-win32-x64-msvc": "1.2.1" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/shell-quote": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.9.0.tgz", + "integrity": "sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tailwindcss": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/vite": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.2.0.tgz", + "integrity": "sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.23", + "rolldown": "~1.2.0", + "tinyglobby": "^0.2.17" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.4.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.2.0.tgz", + "integrity": "sha512-kz18NW79x0IHbxRSHm0jttP4zoO9P9gXh+n6UTwlNKnviTTEpOlum6oS9SmecrTtSr+muHEn5TUuC75UovQzcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/vite-plugin-full-reload/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/package.json b/package.json index 49c869e..e872cff 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,10 @@ "dev": "vite" }, "devDependencies": { - "@tailwindcss/vite": "^4.0.0", + "@tailwindcss/vite": "^4.3.3", "concurrently": "^9.0.1", "laravel-vite-plugin": "^3.1", - "tailwindcss": "^4.0.0", + "tailwindcss": "^4.3.3", "vite": "^8.0.0" } } diff --git a/resources/css/filament/admin/theme.css b/resources/css/filament/admin/theme.css new file mode 100644 index 0000000..68bf707 --- /dev/null +++ b/resources/css/filament/admin/theme.css @@ -0,0 +1,5 @@ +@import '../../../../vendor/filament/filament/resources/css/theme.css'; + +@source '../../../../app/Filament/**/*'; +@source '../../../../resources/views/filament/**/*'; +@source '../../../../vendor/bezhansalleh/filament-language-switch/**'; diff --git a/resources/views/exports/employee-list.blade.php b/resources/views/exports/employee-list.blade.php index e4a4d69..0f38231 100644 --- a/resources/views/exports/employee-list.blade.php +++ b/resources/views/exports/employee-list.blade.php @@ -1,8 +1,8 @@ - + - Employee List + @lang('exports.employee_list.title') -

      Employee Directory

      -

      Generated {{ $generatedAt->format('Y-m-d H:i') }} · {{ config('hr.company_name') }}

      +

      @lang('exports.employee_list.heading')

      +

      @lang('exports.employee_list.generated') {{ $generatedAt->format('Y-m-d H:i') }} · {{ config('hr.company_name') }}

      - - - - - - - + + + + + + + diff --git a/resources/views/exports/employee-profile.blade.php b/resources/views/exports/employee-profile.blade.php index 28fb212..0d56152 100644 --- a/resources/views/exports/employee-profile.blade.php +++ b/resources/views/exports/employee-profile.blade.php @@ -1,8 +1,8 @@ - + - Employee Profile — {{ $employee->full_name }} + {{ __('exports.employee_profile.title', ['name' => $employee->full_name]) }} -

      Leave Summary

      +

      @lang('exports.leave_summary.heading')

      {{ $employee->full_name }} (#{{ $employee->employee_number }})

      -

      Annual taken: {{ $summary->vacationTaken }} · Remaining: {{ $summary->vacationRemaining }} · Sick leaves: {{ $summary->sickLeaveCount }}

      +

      @lang('exports.leave_summary.annual_taken'): {{ $summary->vacationTaken }} · @lang('exports.leave_summary.remaining'): {{ $summary->vacationRemaining }} · @lang('exports.leave_summary.sick_leaves'): {{ $summary->sickLeaveCount }}

      -

      Vacations

      +

      @lang('exports.leave_summary.vacations')

      #NameDepartmentPositionShiftStatusPhone@lang('exports.employee_list.number')@lang('exports.employee_list.name')@lang('exports.employee_list.department')@lang('exports.employee_list.position')@lang('exports.employee_list.shift')@lang('exports.employee_list.status')@lang('exports.employee_list.phone')
      - + @forelse ($employee->vacations as $vacation) @@ -29,14 +29,14 @@ @empty - + @endforelse
      StartEndDaysTypeStatus
      @lang('exports.leave_summary.start')@lang('exports.leave_summary.end')@lang('exports.leave_summary.days')@lang('exports.leave_summary.type')@lang('exports.leave_summary.status')
      {{ $vacation->status->label() }}
      No vacation records.
      @lang('exports.leave_summary.no_vacation_records')
      -

      Sick Leaves

      +

      @lang('exports.leave_summary.sick_leaves_heading')

      - + @forelse ($employee->sickLeaves as $leave) @@ -46,7 +46,7 @@ @empty - + @endforelse
      StartEndDaysInstitution
      @lang('exports.leave_summary.start')@lang('exports.leave_summary.end')@lang('exports.leave_summary.days')@lang('exports.leave_summary.institution')
      {{ $leave->medical_institution }}
      No sick leave records.
      @lang('exports.leave_summary.no_sick_leave_records')
      diff --git a/tests/Feature/LocalizationTest.php b/tests/Feature/LocalizationTest.php new file mode 100644 index 0000000..bf82a7d --- /dev/null +++ b/tests/Feature/LocalizationTest.php @@ -0,0 +1,61 @@ +label())->toBe('Мужской'); + + App::setLocale('tk'); + + expect(Gender::Male->label())->toBe('Erkek'); + + App::setLocale('en'); + + expect(Gender::Male->label())->toBe('Male'); +}); + +it('returns translated navigation group labels', function (): void { + App::setLocale('ru'); + + expect(NavigationGroup::Employees->getLabel())->toBe('Сотрудники'); + + App::setLocale('tk'); + + expect(NavigationGroup::LeaveManagement->getLabel())->toBe('Dynç alyş dolandyryşy'); +}); + +it('returns translated filament resource navigation labels', function (): void { + App::setLocale('tk'); + + expect(ActivityLogResource::getNavigationLabel())->toBe('Audit žurnaly'); + + App::setLocale('ru'); + + expect(ActivityLogResource::getNavigationLabel())->toBe('Журнал аудита'); +}); + +it('persists locale when locale changed event fires', function (): void { + $user = User::factory()->create(['locale' => 'en']); + + $this->actingAs($user); + + Event::dispatch(new LocaleChanged('ru')); + + expect($user->fresh()->locale)->toBe('ru'); +}); + +it('defaults new users to english locale', function (): void { + $user = User::factory()->create(); + + expect($user->locale)->toBe('en'); +}); diff --git a/vite.config.js b/vite.config.js index 1fd66d5..cf64d9f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -6,7 +6,7 @@ import tailwindcss from '@tailwindcss/vite'; export default defineConfig({ plugins: [ laravel({ - input: ['resources/css/app.css', 'resources/js/app.js'], + input: ['resources/css/app.css', 'resources/js/app.js', 'resources/css/filament/admin/theme.css'], refresh: true, fonts: [ bunny('Instrument Sans', {