feat: implement i18n localization for exam components and detail page commit

This commit is contained in:
mengstabketemaw
2026-06-30 16:46:19 +03:00
parent 9fd59f52ed
commit 7f76c862fb
9 changed files with 721 additions and 243 deletions

View File

@@ -28,21 +28,21 @@ import { SUPPORTED_LANGUAGES } from '../i18n/config';
import { useAppDispatch, useAppSelector } from '../store/hooks';
const NAV_ITEMS: NavItem[] = [
{ to: '/dashboard', label: 'Dashboard', icon: IconLayoutDashboard },
{ to: '/um/user-management/dashboard', label: 'User Management', icon: IconUserShield },
{ to: '/seaman-book-queue', label: 'Seaman Book Queue', icon: IconBook2 },
{ to: '/coc-queue', label: 'CoC / CoP Queue', icon: IconShieldCheck },
{ to: '/endorsement-queue', label: 'Endorsement Queue', icon: IconRubberStamp },
{ to: '/seafarer-registry', label: 'Seafarer Registry', icon: IconUsers },
{ to: '/applications', label: 'Applications', icon: IconFileDescription },
{ to: '/payment-config', label: 'Payment Config', icon: IconCreditCard },
{ to: '/analytics', label: 'Analytics', icon: IconChartBar },
{ to: '/medical-verification', label: 'Medical Verification', icon: IconHeart },
{ to: '/questions', label: 'Questions', icon: IconQuestionMark },
{ to: '/exams', label: 'Examinations', icon: IconClipboardList },
{ to: '/exam-results', label: 'Exam Results', icon: IconReport },
{ to: '/configuration', label: 'Configuration', icon: IconSettings },
{ to: '/profile', label: 'Profile', icon: IconUser },
{ to: '/dashboard', label: 'nav.dashboard', icon: IconLayoutDashboard },
{ to: '/um/user-management/dashboard', label: 'nav.userManagement', icon: IconUserShield },
{ to: '/seaman-book-queue', label: 'nav.seamanBookQueue', icon: IconBook2 },
{ to: '/coc-queue', label: 'nav.cocQueue', icon: IconShieldCheck },
{ to: '/endorsement-queue', label: 'nav.endorsementQueue', icon: IconRubberStamp },
{ to: '/seafarer-registry', label: 'nav.seafarerRegistry', icon: IconUsers },
{ to: '/applications', label: 'nav.applications', icon: IconFileDescription },
{ to: '/payment-config', label: 'nav.paymentConfig', icon: IconCreditCard },
{ to: '/analytics', label: 'nav.analytics', icon: IconChartBar },
{ to: '/medical-verification', label: 'nav.medicalVerification', icon: IconHeart },
{ to: '/questions', label: 'nav.questions', icon: IconQuestionMark },
{ to: '/exams', label: 'nav.exams', icon: IconClipboardList },
{ to: '/exam-results', label: 'nav.examResults', icon: IconReport },
{ to: '/configuration', label: 'nav.configuration', icon: IconSettings },
{ to: '/profile', label: 'nav.profile', icon: IconUser },
];
const HEADER_HEIGHT = 116;
@@ -79,7 +79,7 @@ export function BackofficeLayout() {
const go = (item: NavItem) => {
if (item.soon) {
notify.info(`${item.label} — coming soon.`);
notify.info(`${t(item.label)} — coming soon.`);
return;
}
if (item.to) {
@@ -176,7 +176,7 @@ export function BackofficeLayout() {
}}
>
<ItemIcon size={18} stroke={1.6} />
<span>{item.label}</span>
<span>{t(item.label)}</span>
</button>
);
})}