Files
emaui/apps/portal/src/app/i18n/locales/en.ts
2026-06-11 12:04:21 +00:00

406 lines
13 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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: 'MonFri, 8:30 AM 5:00 PM',
faq: 'Frequently asked questions',
faqs: {
q1: 'How long does licence processing take?',
a1: 'Most applications are reviewed within 515 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;