Merge branch 'dev' of https://github.com/Tria-plc/emaui into estif-branch-1

This commit is contained in:
Estifo77
2026-08-08 09:03:50 +03:00
66 changed files with 6665 additions and 3846 deletions

View File

@@ -28,6 +28,7 @@ export const am: Translations = {
nav: {
groupLicensing: 'ፈቃድ አሰጣጥ',
allApplications: 'ሁሉም ማመልከቻዎች',
licenceRegister: 'የፈቃድ መዝገብ',
certificateDesigner: 'የምስክር ወረቀት ንድፍ',
byType: 'በዓይነት',
typeFreightForwarder: 'የጭነት አስተላላፊ',
@@ -51,7 +52,7 @@ export const am: Translations = {
details: 'ዝርዝር',
licenceReview: 'የፈቃድ ማመልከቻዎች',
vesselRegistrationHeadDashboard: 'የመርከብ ምዝገባ ኃላፊ ዳሽቦርድ',
vesselRegistrationQueue: 'የመርከብ ዝገባ ወረፋ',
vesselRegistrationQueue: 'የመርከብ ዝገ',
vesselFormBuilder: 'የመርከብ ቅጽ መገንቢያ',
vesselRegistrationReport: 'የመርከብ ምዝገባ ሪፖርት',
ownershipTransferQueue: 'የባለቤትነት ዝውውር ወረፋ',
@@ -62,6 +63,8 @@ export const am: Translations = {
jointInvestmentLicense: 'የጋራ ኢንቨስትመንት ፈቃድ',
mtoLicense: 'የMTO ፈቃድ',
waiver: 'ነፃ ፈቃድ',
preWaiverQueue: 'የቅድመ ነፃ ፈቃድ ወረፋ',
postWaiverQueue: 'የድህረ ነፃ ፈቃድ ወረፋ',
menu: 'ምናሌ',
dashboard: 'ዳሽቦርድ',
userManagement: 'የተጠቃሚ አስተዳደር',
@@ -82,6 +85,7 @@ export const am: Translations = {
questions: 'ጥያቄዎች',
exams: 'ፈተናዎች',
examResults: 'የፈተና ውጤቶች',
examAppeals: 'የፈተና ይግባኞች',
collapseSidebar: 'ሰብስብ',
expandSidebar: 'ዘርጋ',
},
@@ -290,6 +294,63 @@ export const am: Translations = {
MANUAL: 'በእጅ',
RANDOM: 'በዘፈቀደ',
},
candidates: {
section: 'ተፈታኞች',
admission: 'የመግቢያ ቁጥር',
name: 'ተፈታኝ',
attempt: 'ሙከራ',
attendance: 'ተገኝነት',
remark: 'አስተያየት',
record: 'መዝግብ',
recorded: 'ተገኝነት ተመዝግቧል',
none: 'ለዚህ ፈተና እስካሁን የተመዘገበ ተፈታኝ የለም።',
retake: 'ድጋሚ {{n}}',
firstSitting: 'የመጀመሪያ ሙከራ',
remarkRequired: 'ለመውጣት ወይም ለመታገድ ምክንያት ያስፈልጋል።',
},
attendance: {
REGISTERED: 'አልተጠራም',
PRESENT: 'ተገኝቷል',
ABSENT: 'አልተገኘም',
LATE: 'ዘግይቷል',
WITHDRAWN: 'ወጥቷል',
DISQUALIFIED: 'ታግዷል',
},
incidents: {
section: 'ክስተቶች',
add: 'ክስተት መዝግብ',
type: 'ዓይነት',
candidate: 'ተፈታኝ',
wholeRoom: 'ሙሉ ፈተና',
description: 'የተከሰተው ነገር',
occurred: 'የተከሰተበት',
status: 'ሁኔታ',
resolve: 'ፍታ',
resolution: 'ውሳኔ',
outcome: 'ውጤት',
none: 'ለዚህ ፈተና የተመዘገበ ክስተት የለም።',
filed: 'ክስተት ተመዝግቧል',
resolved: 'ክስተት ተዘግቷል',
error: 'ተግባሩ አልተሳካም',
},
incidentType: {
MISCONDUCT: 'ሥነ ምግባር ጥሰት',
TECHNICAL_FAILURE: 'ቴክኒካዊ ብልሽት',
MEDICAL: 'የጤና',
ADMINISTRATIVE: 'አስተዳደራዊ',
OTHER: 'ሌላ',
},
incidentStatus: {
OPEN: 'ክፍት',
UNDER_REVIEW: 'በግምገማ ላይ',
RESOLVED: 'ተፈትቷል',
DISMISSED: 'ውድቅ ተደርጓል',
},
randomHintServer:
'ጥያቄዎች ለዚህ ትምህርት ከጸደቁ ንጥሎች በሰርቨሩ ላይ ይመረጣሉ፤ ስለዚህ ማከማቻው ለአሳሹ አይጋለጥም።',
randomSelected: '{{count}} የጸደቁ ጥያቄዎች ተመርጠዋል',
randomError: 'ጥያቄዎችን መምረጥ አልተቻለም',
notEnoughApproved: 'ለዚህ ትምህርት በቂ የጸደቁ ጥያቄዎች የሉም።',
},
country: {
@@ -556,6 +617,49 @@ export const am: Translations = {
filterByExam: 'በፈተና አጣራ',
allExams: 'ሁሉም ፈተናዎች',
},
review: {
column: 'ግምገማ',
MARKED: 'ተስተካክሏል',
MODERATED: 'ተመርምሯል',
APPROVED: 'ጸድቋል',
PUBLISHED: 'ወጥቷል',
moderate: 'አስተካክል',
approve: 'አጽድቅ',
return: 'ወደ ፈታኙ መልስ',
publish: 'የፈተናውን ውጤቶች አውጣ',
adjustment: 'በጠቅላላ ውጤት ላይ የሚደረግ ማስተካከያ',
adjustmentHint: 'እንደ 3 ወይም -2 ያለ ለውጥ። ዜሮ ውጤቱን እንዳለ ያጸድቃል።',
remark: 'ምክንያት',
remarkRequired: 'ምክንያት ያስፈልጋል።',
moderated: 'ውጤቶች ተስተካክለዋል',
approved: 'ውጤት ጸድቋል',
returned: 'ውጤት ወደ ፈታኙ ተመልሷል',
publishedCount: '{{published}} ውጤቶች ወጥተዋል፤ {{skipped}} ተዘለዋል።',
publishNeedsExam: 'ውጤቶችን ለማውጣት መጀመሪያ በፈተና ያጣሩ።',
lockedAfterApproval:
'ይህ ውጤት ጸድቋል፤ ማስተካከል አይቻልም። መጀመሪያ ወደ ፈታኙ ይመልሱት።',
originalScore: 'የፈታኙ ጠቅላላ',
derivedStatus: 'ውጤት (ከማለፊያ ነጥብ የተገኘ)',
error: 'ተግባሩ አልተሳካም',
},
appeals: {
title: 'የፈተና ይግባኞች',
subtitle: 'ተፈታኞች በወጡ ውጤቶች ላይ ያቀረቡት ቅሬታ',
number: 'የይግባኝ ቁጥር',
candidate: 'ተፈታኝ',
exam: 'ፈተና',
reason: 'ምክንያት',
lodged: 'የቀረበበት',
decide: 'ወስን',
uphold: 'ተቀበል',
reject: 'አትቀበል',
remark: 'ውሳኔና ምክንያት',
decided: 'ይግባኙ ተወስኗል',
none: 'ውሳኔ የሚጠብቅ ይግባኝ የለም።',
upheldHint:
'ይግባኙን መቀበል ውጤቱን ለድጋሚ እርማት ወደ ፈታኙ ይመልሰዋል፤ እስኪጸድቅና እንደገና እስኪወጣ ተፈታኙ አያየውም።',
error: 'ውሳኔውን መመዝገብ አልተቻለም',
},
},
question: {
@@ -605,6 +709,25 @@ export const am: Translations = {
active: 'ንቁ',
inactive: 'እንቅስቃሴ የሌለ',
},
qc: {
column: 'ማጽደቅ',
DRAFT: 'ረቂቅ',
PENDING_APPROVAL: 'ማጽደቅ በመጠባበቅ ላይ',
APPROVED: 'ጸድቋል',
REJECTED: 'ተቀባይነት አላገኘም',
RETIRED: 'ከአገልግሎት ወጥቷል',
submit: 'ለማጽደቅ ላክ',
approve: 'አጽድቅ',
reject: 'አትቀበል',
retire: 'ከአገልግሎት አውጣ',
remark: 'ምክንያት',
remarkRequired: 'ላለመቀበል ወይም ከአገልግሎት ለማውጣት ምክንያት ያስፈልጋል።',
submitted: 'ለማጽደቅ ተልኳል',
reviewed: 'ውሳኔ ተመዝግቧል',
reviewTitle: 'የጥያቄ ማከማቻ ንጥል ግምገማ',
onlyApprovedUsable: 'የጸደቁ ጥያቄዎች ብቻ በፈተና ወረቀት ላይ ሊቀመጡ ይችላሉ።',
error: 'ተግባሩ አልተሳካም',
},
},
configuration: {

View File

@@ -26,6 +26,7 @@ export const en = {
nav: {
groupLicensing: 'Licensing',
allApplications: 'All Applications',
licenceRegister: 'Licence Register',
certificateDesigner: 'Certificate Designer',
byType: 'By Type',
typeFreightForwarder: 'Freight Forwarder',
@@ -53,7 +54,7 @@ export const en = {
userManagement: 'User Management',
seamanBookQueue: 'Seaman Book Queue',
vesselRegistrationHeadDashboard: 'Vessel Registration Head Dashboard',
vesselRegistrationQueue: 'Vessel Registration Queue',
vesselRegistrationQueue: 'Vessel Register',
vesselFormBuilder: 'Vessel Form Builder',
vesselRegistrationReport: 'Vessel Registration Report',
ownershipTransferQueue: 'Ownership Transfer Queue',
@@ -64,6 +65,8 @@ export const en = {
jointInvestmentLicense: 'Joint Investment License',
mtoLicense: 'MTO License',
waiver: 'Waiver',
preWaiverQueue: 'Pre-Waiver Queue',
postWaiverQueue: 'Post-Waiver Queue',
cocQueue: 'CoC / CoP Queue',
endorsementQueue: 'Endorsement Queue',
vesselRegistrations: 'Vessel Registration',
@@ -80,6 +83,7 @@ export const en = {
questions: 'Questions',
exams: 'Examinations',
examResults: 'Exam Results',
examAppeals: 'Exam Appeals',
collapseSidebar: 'Collapse',
expandSidebar: 'Expand sidebar',
},
@@ -288,6 +292,64 @@ export const en = {
MANUAL: 'Manual',
RANDOM: 'Random',
},
candidates: {
section: 'Candidates',
admission: 'Admission №',
name: 'Candidate',
attempt: 'Attempt',
attendance: 'Attendance',
remark: 'Remark',
record: 'Record',
recorded: 'Attendance recorded',
none: 'No candidates have registered for this session yet.',
retake: 'Retake {{n}}',
firstSitting: 'First sitting',
remarkRequired: 'A reason is required for a withdrawal or a disqualification.',
},
attendance: {
REGISTERED: 'Not called',
PRESENT: 'Present',
ABSENT: 'Absent',
LATE: 'Late',
WITHDRAWN: 'Withdrawn',
DISQUALIFIED: 'Disqualified',
},
incidents: {
section: 'Incidents',
add: 'Record incident',
type: 'Type',
candidate: 'Candidate',
wholeRoom: 'Whole session',
description: 'What happened',
occurred: 'Occurred',
status: 'Status',
resolve: 'Resolve',
resolution: 'Ruling',
outcome: 'Outcome',
none: 'No incidents recorded for this session.',
filed: 'Incident recorded',
resolved: 'Incident closed',
error: 'Operation failed',
},
incidentType: {
MISCONDUCT: 'Misconduct',
TECHNICAL_FAILURE: 'Technical failure',
MEDICAL: 'Medical',
ADMINISTRATIVE: 'Administrative',
OTHER: 'Other',
},
incidentStatus: {
OPEN: 'Open',
UNDER_REVIEW: 'Under review',
RESOLVED: 'Resolved',
DISMISSED: 'Dismissed',
},
randomHintServer:
'Questions are drawn on the server from approved bank items for this subject, so the pool is never exposed to the browser.',
randomSelected: 'Drew {{count}} approved questions',
randomError: 'Could not draw questions',
notEnoughApproved:
'Not enough approved questions in the bank for this subject.',
},
country: {
@@ -555,6 +617,50 @@ export const en = {
filterByExam: 'Filter by exam',
allExams: 'All Exams',
},
review: {
column: 'Review',
MARKED: 'Marked',
MODERATED: 'Moderated',
APPROVED: 'Approved',
PUBLISHED: 'Published',
moderate: 'Moderate',
approve: 'Approve',
return: 'Return to examiner',
publish: 'Publish session results',
adjustment: 'Adjustment to the total',
adjustmentHint:
'A signed change, e.g. 3 or -2. Zero endorses the mark as it stands.',
remark: 'Reason',
remarkRequired: 'A reason is required.',
moderated: 'Marks moderated',
approved: 'Result approved',
returned: 'Result returned to the examiner',
publishedCount: 'Published {{published}} result(s); {{skipped}} skipped.',
publishNeedsExam: 'Filter by an exam first to publish its results.',
lockedAfterApproval:
'This result is approved and can no longer be edited. Return it to the examiner first.',
originalScore: 'Examiner total',
derivedStatus: 'Outcome (derived from the pass mark)',
error: 'Operation failed',
},
appeals: {
title: 'Examination appeals',
subtitle: 'Candidate challenges to published results',
number: 'Appeal №',
candidate: 'Candidate',
exam: 'Examination',
reason: 'Grounds',
lodged: 'Lodged',
decide: 'Decide',
uphold: 'Uphold',
reject: 'Reject',
remark: 'Decision and reason',
decided: 'Appeal decided',
none: 'No appeals are awaiting a ruling.',
upheldHint:
'Upholding returns the result to the examiner for re-marking; the candidate stops seeing it until it is approved and published again.',
error: 'Could not record the decision',
},
},
question: {
@@ -604,6 +710,26 @@ export const en = {
active: 'Active',
inactive: 'Inactive',
},
qc: {
column: 'Approval',
DRAFT: 'Draft',
PENDING_APPROVAL: 'Awaiting approval',
APPROVED: 'Approved',
REJECTED: 'Rejected',
RETIRED: 'Retired',
submit: 'Submit for approval',
approve: 'Approve',
reject: 'Reject',
retire: 'Retire',
remark: 'Reason',
remarkRequired: 'A reason is required to reject or retire an item.',
submitted: 'Sent for approval',
reviewed: 'Decision recorded',
reviewTitle: 'Review question bank item',
onlyApprovedUsable:
'Only approved items can be placed on an examination paper.',
error: 'Operation failed',
},
},
configuration: {