mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-26 13:02:50 +00:00
406 lines
13 KiB
TypeScript
406 lines
13 KiB
TypeScript
// English translations for the EMA portal (user side).
|
||
// Enum keys (licenseType.*, applicationStatus.*, etc.) match the union values
|
||
// in features/licenses/types so components can resolve labels with
|
||
// t(`licenseType.${value}`).
|
||
|
||
export const en = {
|
||
app: {
|
||
name: 'EMA Portal',
|
||
authority: 'Ethiopian Maritime Authority',
|
||
tagline: 'Maritime licensing & certification services',
|
||
},
|
||
|
||
language: {
|
||
label: 'Language',
|
||
en: 'English',
|
||
am: 'አማርኛ',
|
||
},
|
||
|
||
nav: {
|
||
dashboard: 'Dashboard',
|
||
services: 'Services',
|
||
apply: 'New Application',
|
||
applications: 'My Applications',
|
||
licenses: 'My Licences',
|
||
profile: 'Profile',
|
||
support: 'Help & Support',
|
||
},
|
||
|
||
common: {
|
||
back: 'Back',
|
||
continue: 'Continue',
|
||
submit: 'Submit',
|
||
cancel: 'Cancel',
|
||
save: 'Save changes',
|
||
saved: 'Changes saved',
|
||
viewAll: 'View all',
|
||
viewDetails: 'View details',
|
||
search: 'Search',
|
||
download: 'Download',
|
||
print: 'Print',
|
||
renew: 'Renew',
|
||
apply: 'Apply',
|
||
applyNow: 'Apply now',
|
||
filter: 'Filter',
|
||
all: 'All',
|
||
status: 'Status',
|
||
date: 'Date',
|
||
actions: 'Actions',
|
||
loading: 'Loading…',
|
||
none: 'None',
|
||
optional: 'optional',
|
||
required: 'Required',
|
||
of: 'of',
|
||
backToList: 'Back to list',
|
||
notFound: 'Not found',
|
||
learnMore: 'Learn more',
|
||
toggleTheme: 'Toggle light / dark mode',
|
||
welcome: 'Welcome back',
|
||
},
|
||
|
||
auth: {
|
||
login: 'Log in',
|
||
logout: 'Log out',
|
||
signup: 'Sign up',
|
||
account: 'Account',
|
||
guest: 'Guest user',
|
||
},
|
||
|
||
dashboard: {
|
||
title: 'My Dashboard',
|
||
subtitle: 'Overview of your licences, applications and compliance status.',
|
||
newApplication: 'New Application',
|
||
recentApplications: 'Recent Applications',
|
||
applicationsByStatus: 'Applications by status',
|
||
quickActions: 'Quick actions',
|
||
stats: {
|
||
activeLicenses: 'Active Licences',
|
||
pendingApplications: 'Pending Applications',
|
||
expiringSoon: 'Expiring Soon',
|
||
actionRequired: 'Action Required',
|
||
},
|
||
quick: {
|
||
apply: 'Apply for a licence',
|
||
applyDesc: 'Start a new application',
|
||
renew: 'Renew a licence',
|
||
renewDesc: 'Keep your certificates valid',
|
||
track: 'Track an application',
|
||
trackDesc: 'See where your request stands',
|
||
},
|
||
hero: {
|
||
greeting: 'Welcome back',
|
||
subtitle:
|
||
'Apply for maritime licences, track your applications and manage your certificates — all in one place.',
|
||
browse: 'Browse services',
|
||
},
|
||
charts: {
|
||
trend: 'Applications over time',
|
||
trendPeriod: 'Last 6 months',
|
||
distribution: 'Status distribution',
|
||
noData: 'No data to display yet',
|
||
total: 'Total',
|
||
},
|
||
},
|
||
|
||
services: {
|
||
title: 'Maritime Services',
|
||
subtitle:
|
||
'Browse the licences and certificates issued by the Ethiopian Maritime Authority and start an application.',
|
||
seafarer: 'Seafarer certification',
|
||
vessel: 'Vessel & ship services',
|
||
facility: 'Port & facility',
|
||
requiredDocuments: 'Required documents',
|
||
processingTime: 'Typical processing time',
|
||
validity: 'Validity',
|
||
apply: 'Apply',
|
||
processingDays: '{{min}}–{{max}} working days',
|
||
validityYears_one: '{{count}} year',
|
||
validityYears_other: '{{count}} years',
|
||
categoryLabel: {
|
||
seafarer: 'Seafarer certification',
|
||
vessel: 'Vessel & ship services',
|
||
facility: 'Port & facility',
|
||
},
|
||
},
|
||
|
||
apply: {
|
||
title: 'Apply for a Licence',
|
||
subtitle:
|
||
'Complete the steps below to submit your application to the Ethiopian Maritime Authority.',
|
||
steps: {
|
||
license: 'Licence',
|
||
licenseDesc: 'Type & request',
|
||
details: 'Details',
|
||
detailsDesc: 'Applicant info',
|
||
documents: 'Documents',
|
||
documentsDesc: 'Required uploads',
|
||
review: 'Review',
|
||
},
|
||
fields: {
|
||
requestType: 'Request type',
|
||
licenseType: 'Licence type',
|
||
licenseTypePlaceholder: 'Select the licence you need',
|
||
applicantName: 'Applicant / Company name',
|
||
applicantPlaceholder: 'e.g. Blue Nile Shipping PLC',
|
||
notes: 'Additional notes',
|
||
notesPlaceholder: 'Anything the reviewing officer should know',
|
||
relatedLicense: 'Existing licence number',
|
||
},
|
||
docs: {
|
||
hint: 'Tick each document once you have attached it. All required documents must be provided before submitting.',
|
||
attached: 'Documents attached',
|
||
attachedCount: '{{count}} of {{total}} required documents',
|
||
},
|
||
review: {
|
||
title: 'Review your application',
|
||
hint: 'Confirm the details below, then submit to EMA.',
|
||
missingDocs:
|
||
'Some required documents are still missing. You can still submit, but review may be delayed.',
|
||
},
|
||
submitted: 'Your application has been submitted to EMA.',
|
||
submitAction: 'Submit application',
|
||
},
|
||
|
||
applications: {
|
||
title: 'My Applications',
|
||
subtitle: 'Track the status of every request you have submitted to EMA.',
|
||
empty: 'No applications yet. Start by applying for a licence.',
|
||
searchPlaceholder: 'Search by reference, subject or applicant',
|
||
columns: {
|
||
reference: 'Reference No.',
|
||
licenseType: 'Licence Type',
|
||
request: 'Request',
|
||
subject: 'Subject',
|
||
submitted: 'Submitted',
|
||
status: 'Status',
|
||
},
|
||
},
|
||
|
||
applicationDetail: {
|
||
title: 'Application',
|
||
reference: 'Reference number',
|
||
overview: 'Overview',
|
||
progress: 'Progress',
|
||
documents: 'Documents',
|
||
history: 'History',
|
||
applicant: 'Applicant',
|
||
subject: 'Subject',
|
||
requestType: 'Request type',
|
||
licenseType: 'Licence type',
|
||
submittedOn: 'Submitted on',
|
||
lastUpdated: 'Last updated',
|
||
officerNote: 'Note from EMA',
|
||
relatedLicense: 'Related licence',
|
||
actionRequired: 'Action required',
|
||
actionRequiredDesc:
|
||
'EMA has requested more information before your application can proceed.',
|
||
respond: 'Respond to request',
|
||
},
|
||
|
||
licenses: {
|
||
title: 'My Licences',
|
||
subtitle: 'All certificates and licences issued to you by EMA.',
|
||
empty: 'You have no issued licences yet.',
|
||
columns: {
|
||
licenseNo: 'Licence No.',
|
||
type: 'Type',
|
||
subject: 'Subject',
|
||
issued: 'Issued',
|
||
expires: 'Expires',
|
||
status: 'Status',
|
||
},
|
||
detail: {
|
||
holder: 'Licence holder',
|
||
subject: 'Subject',
|
||
issuedOn: 'Issued on',
|
||
expiresOn: 'Expires on',
|
||
daysLeft: '{{count}} days remaining',
|
||
expired: 'This licence has expired.',
|
||
expiringSoon: 'This licence is expiring soon. Renew to stay compliant.',
|
||
download: 'Download certificate',
|
||
renew: 'Renew licence',
|
||
},
|
||
},
|
||
|
||
profile: {
|
||
title: 'My Profile',
|
||
subtitle: 'Manage your account details and preferences.',
|
||
personal: 'Personal information',
|
||
contact: 'Contact',
|
||
preferences: 'Preferences',
|
||
security: 'Security',
|
||
securityHint: 'Choose a strong password you do not use anywhere else.',
|
||
changePassword: 'Change password',
|
||
updatePassword: 'Update password',
|
||
updateProfile: 'Save changes',
|
||
savePreferences: 'Save preferences',
|
||
cancel: 'Cancel',
|
||
verified: 'Verified',
|
||
unverified: 'Unverified',
|
||
tabs: {
|
||
profile: 'Profile',
|
||
security: 'Security',
|
||
preferences: 'Preferences',
|
||
},
|
||
personalHint: 'Your name as it appears on official EMA documents.',
|
||
languageTitle: 'Language',
|
||
languageHint: 'Choose the language used across the EMA portal.',
|
||
appearance: {
|
||
title: 'Appearance',
|
||
subtitle: 'Select how the portal looks on your device.',
|
||
light: 'Light',
|
||
dark: 'Dark',
|
||
system: 'System',
|
||
},
|
||
twoStep: {
|
||
title: 'Two-step verification',
|
||
desc: 'Require a one-time code from your phone each time you sign in.',
|
||
},
|
||
notifications: {
|
||
title: 'Email notifications',
|
||
desc: 'Receive updates about your license applications and account activity by email.',
|
||
},
|
||
strength: {
|
||
label: 'Password strength',
|
||
weak: 'Weak',
|
||
fair: 'Fair',
|
||
good: 'Good',
|
||
strong: 'Strong',
|
||
},
|
||
profileUpdated: 'Profile updated successfully',
|
||
passwordChanged: 'Password changed successfully',
|
||
updateFailed: 'Could not update profile. Please try again.',
|
||
passwordFailed:
|
||
'Could not change password. Check your current password and try again.',
|
||
fields: {
|
||
fullNameEn: 'Full name (English)',
|
||
fullNameAm: 'Full name (Amharic)',
|
||
username: 'Username',
|
||
usernameHint: 'Username cannot be changed',
|
||
organization: 'Organization',
|
||
email: 'Email address',
|
||
phone: 'Phone number',
|
||
address: 'Address',
|
||
language: 'Preferred language',
|
||
currentPassword: 'Current password',
|
||
newPassword: 'New password',
|
||
confirmPassword: 'Confirm new password',
|
||
},
|
||
validation: {
|
||
nameRequired: 'Name is required',
|
||
emailInvalid: 'Enter a valid email',
|
||
usernameRequired: 'Username is required',
|
||
phoneRequired: 'Phone number is required',
|
||
passwordMin: 'Password must be at least 8 characters',
|
||
passwordMismatch: 'Passwords do not match',
|
||
},
|
||
},
|
||
|
||
support: {
|
||
title: 'Help & Support',
|
||
subtitle: 'Guidance, contact channels and answers to common questions.',
|
||
contact: 'Contact the Authority',
|
||
phone: 'Phone',
|
||
email: 'Email',
|
||
office: 'Head office',
|
||
officeValue: 'Addis Ababa, Ethiopia',
|
||
hours: 'Working hours',
|
||
hoursValue: 'Mon–Fri, 8:30 AM – 5:00 PM',
|
||
faq: 'Frequently asked questions',
|
||
faqs: {
|
||
q1: 'How long does licence processing take?',
|
||
a1: 'Most applications are reviewed within 5–15 working days, depending on the licence type and completeness of your documents.',
|
||
q2: 'What happens after I submit an application?',
|
||
a2: 'Your application is assigned to a licensing officer who verifies your documents. You can track every status change from the My Applications page.',
|
||
q3: 'How do I renew an expiring licence?',
|
||
a3: 'Open the licence from My Licences and choose Renew, or start a new application and select the Renewal request type.',
|
||
q4: 'What if EMA requests more information?',
|
||
a4: 'You will see an "Action required" notice on the application. Provide the requested document or detail to resume the review.',
|
||
},
|
||
},
|
||
|
||
// ---- Domain enums (keys match the type unions) ----
|
||
licenseType: {
|
||
SEAFARER_COC: 'Certificate of Competency (CoC)',
|
||
SEAFARER_COP: 'Certificate of Proficiency (CoP)',
|
||
SEAMAN_BOOK: "Seafarer's Identity & Record Book",
|
||
VESSEL_REGISTRATION: 'Vessel Registration Certificate',
|
||
SHIP_RADIO: 'Ship Station Radio Licence',
|
||
TONNAGE_CERTIFICATE: 'International Tonnage Certificate',
|
||
SAFETY_MANAGEMENT: 'Safety Management Certificate',
|
||
PORT_FACILITY: 'Port Facility Operation Licence',
|
||
BOAT_OPERATOR: 'Inland Boat Operator Licence',
|
||
},
|
||
|
||
subjectLabel: {
|
||
SEAFARER_COC: 'Seafarer full name',
|
||
SEAFARER_COP: 'Seafarer full name',
|
||
SEAMAN_BOOK: 'Seafarer full name',
|
||
VESSEL_REGISTRATION: 'Vessel name',
|
||
SHIP_RADIO: 'Vessel name',
|
||
TONNAGE_CERTIFICATE: 'Vessel name',
|
||
SAFETY_MANAGEMENT: 'Vessel name',
|
||
PORT_FACILITY: 'Facility name',
|
||
BOAT_OPERATOR: 'Operator full name',
|
||
},
|
||
|
||
requestType: {
|
||
NEW: 'New Application',
|
||
RENEWAL: 'Renewal',
|
||
AMENDMENT: 'Amendment',
|
||
COMPLIANCE: 'Compliance Submission',
|
||
},
|
||
|
||
applicationStatus: {
|
||
DRAFT: 'Draft',
|
||
SUBMITTED: 'Submitted',
|
||
UNDER_REVIEW: 'Under Review',
|
||
INFO_REQUESTED: 'Information Requested',
|
||
PAYMENT_PENDING: 'Payment Pending',
|
||
APPROVED: 'Approved',
|
||
REJECTED: 'Rejected',
|
||
ISSUED: 'Issued',
|
||
},
|
||
|
||
licenseStatus: {
|
||
ACTIVE: 'Active',
|
||
EXPIRING_SOON: 'Expiring Soon',
|
||
EXPIRED: 'Expired',
|
||
SUSPENDED: 'Suspended',
|
||
},
|
||
|
||
documentStatus: {
|
||
PENDING: 'Pending',
|
||
UPLOADED: 'Uploaded',
|
||
VERIFIED: 'Verified',
|
||
REJECTED: 'Rejected',
|
||
},
|
||
|
||
documents: {
|
||
'Passport copy': 'Passport copy',
|
||
'Passport photo': 'Passport photo',
|
||
'Training certificate': 'Training certificate',
|
||
'Course completion certificate': 'Course completion certificate',
|
||
'Medical fitness certificate': 'Medical fitness certificate',
|
||
'Sea service record': 'Sea service record',
|
||
'Police clearance': 'Police clearance',
|
||
'ID copy': 'ID copy',
|
||
'Bill of sale': 'Bill of sale',
|
||
'Builder certificate': 'Builder certificate',
|
||
'Tonnage measurement': 'Tonnage measurement',
|
||
'Insurance certificate': 'Insurance certificate',
|
||
'Vessel registration': 'Vessel registration',
|
||
'Equipment specification': 'Equipment specification',
|
||
'Operator certificate': 'Operator certificate',
|
||
'Survey report': 'Survey report',
|
||
'General arrangement plan': 'General arrangement plan',
|
||
'Safety management manual': 'Safety management manual',
|
||
'Audit report': 'Audit report',
|
||
'Business licence': 'Business licence',
|
||
'Facility security assessment': 'Facility security assessment',
|
||
'Site plan': 'Site plan',
|
||
},
|
||
};
|
||
|
||
export type Translations = typeof en;
|