Files
emaui/apps/portal/src/app/i18n/locales/en.ts

391 lines
12 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.

export const en = {
app: {
name: 'EMA Portal',
authority: 'Ethiopian Maritime Authority',
tagline: 'Maritime licensing & certification services',
},
msg: {
genericError: 'Something went wrong. Please try again.',
serverError: 'Server error. Please try again later.',
validationError: 'Please check your input and try again.',
authError: 'Your session has expired. Please sign in again.',
permissionError: "You don't have permission to perform this action.",
notFoundError: 'The requested item was not found.',
fileTooLarge: 'The file is too large to upload.',
networkError: 'Network error. Check your connection and try again.',
},
language: {
label: 'Language',
en: 'English',
am: 'አማርኛ',
},
nav: {
groupLicensing: 'Licensing',
groupSeafarer: 'Seafarer Services',
groupVessels: 'Vessels',
groupExaminations: 'Examinations',
groupAdministration: 'Administration',
groupAccount: 'Account',
soon: 'Soon',
details: 'Details',
locations: 'Locations',
myApplications: 'My Applications',
dashboard: 'Dashboard',
seafarerRegistry: 'Seafarer Registry',
seafarerRegistration: 'Seafarer Registration',
exams: 'Examinations',
seaRecords: 'My Sea Records',
myApplication: 'My Application',
vesselRegistration: 'Vessel Registration',
vesselRegistrationDashboard: 'Vessel Registration Dashboard',
ownershipTransfer: 'Ownership Transfer',
logisticsDashboard: 'Logistics Licenses Dashboard',
freightForwarderLicense: 'Freight Forwarder License',
shippingAgentLicense: 'Shipping Agent License',
combinedLicense: 'Combined License',
jointInvestmentLicense: 'Joint Investment License',
mtoLicense: 'MTO License',
waiver: 'Waiver',
certificates: 'Certificates',
endorsements: 'Endorsements',
vesselRegistrations: 'Vessel Registration',
vesselTransfers: 'Vessel Transfers',
documents: 'My Documents',
notifications: 'Notifications',
profile: 'Profile',
support: 'Help & Support',
collapseSidebar: 'Collapse',
expandSidebar: 'Expand sidebar',
sectionSeafarerServices: 'Seafarer Services',
sectionVesselServices: 'Vessel Services',
sectionLogisticsLicensing: 'Logistics and Licensing',
sectionAccountManagement: 'Account Management',
},
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',
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',
switchCalendar: 'Switch calendar type',
time: 'Time',
},
auth: {
login: 'Log in',
logout: 'Log out',
signup: 'Sign up',
account: 'Account',
guest: 'Guest user',
},
dashboard: {
title: 'Dashboard',
quickActions: 'Quick actions',
},
applications: {
title: 'Licence applications',
subtitle: 'Track everything you have filed with EMA.',
newApplication: 'New application',
tabs: {
applications: 'Applications',
licences: 'Licences',
apply: 'Apply',
},
stats: {
needsYou: 'Needs your action',
inProgress: 'In progress',
completed: 'Completed',
activeLicences: 'Active licences',
},
filters: {
search: 'Search',
searchPlaceholder: 'Number or applicant',
status: 'Status',
any: 'Any',
from: 'From',
to: 'To',
clear: 'Clear',
},
empty: {
noneTitle: 'You have not filed any applications yet',
noneBody: 'Pick a licence from the Apply tab to get started.',
noMatchTitle: 'No applications match these filters',
noMatchBody: 'Try widening or clearing the filters.',
clearFilters: 'Clear filters',
browse: 'Browse licences',
},
card: {
submitted: 'Submitted {{date}}',
notFiled: 'Not filed yet',
feeDue: 'Fee due',
},
table: {
licence: 'Licence',
applicant: 'Applicant',
progress: 'Progress',
},
actions: {
continue: 'Continue',
fixResubmit: 'Fix & resubmit',
pay: 'Pay {{amount}} {{currency}}',
certificate: 'Certificate',
view: 'View',
bypass: 'Bypass payment',
renew: 'Renew',
},
notice: {
paymentReceived:
'Your payment has been received. The certificate is being prepared and will appear under Licences once it is issued.',
expiringSoon_one: 'A licence is expiring soon',
expiringSoon_other: '{{count}} licences are expiring soon',
},
licences: {
empty: 'No licence has been issued to you yet. One appears here once an application is approved and paid.',
},
status: {
DRAFT: 'Draft',
SUBMITTED: 'Submitted',
UNDER_REVIEW: 'Under Review',
UNDER_EVALUATION: 'Under Evaluation',
RESUBMIT_REQUIRED: 'Resubmit Required',
INSPECTION_PENDING: 'Inspection Pending',
INSPECTION_COMPLETED: 'Inspection Completed',
APPROVED: 'Approved',
REJECTED: 'Rejected',
ON_HOLD: 'On Hold',
PAYMENT_PENDING: 'Payment Pending',
PAID: 'Paid',
PAYMENT_CONFIRMED: 'Preparing Certificate',
CERTIFICATE_ISSUED: 'Certificate Issued',
COMPLETED: 'Completed',
},
},
/** Field labels shared by the completeness nudge and the requirement gates. */
profileFields: {
firstName: 'First name',
middleName: 'Middle name',
lastName: 'Last name',
gender: 'Gender',
dob: 'Date of birth',
pob: 'Place of birth',
maritalStatus: 'Marital status',
professionId: 'Profession',
idType: 'ID type',
idNumber: 'ID number',
nationality: 'Nationality',
primaryPhoneNumber: 'Phone number',
email: 'Email address',
regionId: 'Region',
cityId: 'City',
subCityId: 'Sub-city',
woredaId: 'Woreda',
streetAddress: 'Street address',
emergencyContactName: 'Emergency contact name',
emergencyContactPhone: 'Emergency contact phone',
emergencyContactRelation: 'Emergency contact relationship',
},
profileNudge: {
title: 'Finish setting up your profile',
body: 'Still needed: {{fields}}',
andMore: 'and {{count}} more',
action: 'Complete profile',
dismiss: 'Dismiss',
},
profileGate: {
title_one: 'We need {{count}} more detail before you continue',
title_other: 'We need {{count}} more details before you continue',
addDetails: 'Add these details',
viewProfile: 'View full profile',
seafarerReason:
'Seafarer registration is built from your profile — these details fill it in for you.',
seafarerRedirect: 'Finish your profile to register as a seafarer. Still needed: {{fields}}',
},
profileSections: {
personal: 'Personal',
address: 'Identity & Address',
emergency: 'Emergency Contact',
documents: 'Documents',
completeness: '{{value}}% complete',
saveSection: 'Save this section',
sectionSaved: 'Saved',
},
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',
},
},
country: {
select: 'Select a country',
notFound: 'No countries found',
},
location: {
select: 'Select...',
noOptions: 'No options found',
noLocationsAvailable: 'No locations available',
chooseFirst: 'Choose a location first',
loading: 'Loading locations...',
loadFailed: 'Could not load locations',
},
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.',
},
},
waiver: {
title: 'Maritime Waiver',
subtitle: 'Apply for a waiver when Ethiopian Shipping & Logistics cannot carry your shipment. Approval issues the bank waiver letter.',
preWaiver: {
title: 'Pre-waiver',
body: 'The cargo has not yet arrived. Applying before arrival avoids the post-waiver penalty.',
apply: 'Apply for a pre-waiver',
},
postWaiver: {
title: 'Post-waiver',
body: 'The cargo has already arrived. Granted once per shipment, and only against a settled penalty with the receipt attached.',
apply: 'Apply for a post-waiver',
},
oneShipmentNotice: 'Each waiver covers one shipment, identified by its bill of lading. A second application quoting the same bill of lading is refused while the first is live.',
inProgress: 'Applications in progress',
issuedLetters: 'Issued waiver letters',
emptyLetters: 'No waiver letters issued yet.',
columns: {
reference: 'Reference',
kind: 'Kind',
issued: 'Issued',
status: 'Status',
},
letter: 'Letter',
fetchFailed: 'Could not fetch the letter',
licenseStatus: {
ACTIVE: 'Active',
EXPIRED: 'Expired',
SUSPENDED: 'Suspended',
CANCELLED: 'Cancelled',
SUPERSEDED: 'Superseded',
},
},
};
export type Translations = typeof en;