mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-09-07 16:35:43 +00:00
feat: implement i18n localization for exam components and detail page commit
This commit is contained in:
@@ -29,6 +29,9 @@ export const am: Translations = {
|
||||
locations: 'አካባቢዎች',
|
||||
configuration: 'ውቅረት',
|
||||
profile: 'መገለጫ',
|
||||
questions: 'ጥያቄዎች',
|
||||
exams: 'ፈተናዎች',
|
||||
examResults: 'የፈተና ውጤቶች',
|
||||
collapseSidebar: 'ሰብስብ',
|
||||
expandSidebar: 'ዘርጋ',
|
||||
},
|
||||
@@ -96,6 +99,143 @@ export const am: Translations = {
|
||||
},
|
||||
},
|
||||
|
||||
exam: {
|
||||
title: 'ፈተናዎች',
|
||||
subtitle: 'ፈተናዎችን ያስተዳድሩ፣ ጥያቄዎችን ይመድቡ እና ውጤቶችን ይከታተሉ',
|
||||
create: 'ፈተና ይፍጠሩ',
|
||||
update: 'ፈተና ያዘምኑ',
|
||||
add: 'ፈተና ይፍጠሩ',
|
||||
noItems: 'ምንም ፈተናዎች አልተገኙም',
|
||||
created: 'ፈተና ተፈጥሯል',
|
||||
updated: 'ፈተና ዘምኗል',
|
||||
deleted: 'ፈተና ተሰርዟል',
|
||||
error: 'ክዋኔው አልተሳካም',
|
||||
loadError: 'ፈተናዎችን በመጫን ላይ ስህተት',
|
||||
cancel: 'ሰርዝ',
|
||||
delete: 'ሰርዝ',
|
||||
confirmDelete: 'ፈተና ይሰረዝ',
|
||||
deleteConfirmText: 'እርግጠኛ ነዎት {{name}}ን መሰረዝ ይፈልጋሉ?',
|
||||
print: 'ፈተና ያትሙ',
|
||||
recordResult: 'ውጤት ይመዝግቡ',
|
||||
manageQuestions: 'ጥያቄዎችን ያስተዳድሩ',
|
||||
saveAssignments: 'ምደባዎችን ያስቀምጡ',
|
||||
randomSelect: 'በዘፈቀደ ይምረጡ',
|
||||
backToExams: 'ወደ ፈተናዎች ይመለሱ',
|
||||
notFound: 'ፈተና አልተገኘም።',
|
||||
noQuestionsAssigned: 'ገና ምንም ጥያቄዎች አልተመደቡም።',
|
||||
columns: {
|
||||
title: 'ርዕስ',
|
||||
certification: 'የምስክር ወረቀት',
|
||||
date: 'ቀን',
|
||||
type: 'አይነት',
|
||||
form: 'ቅጽ',
|
||||
venue: 'ቦታ',
|
||||
questions: 'ጥያቄዎች',
|
||||
status: 'ሁኔታ',
|
||||
},
|
||||
detail: {
|
||||
title: 'የፈተና ዝርዝሮች',
|
||||
certification: 'የምስክር ወረቀት',
|
||||
type: 'አይነት',
|
||||
form: 'ቅጽ',
|
||||
venue: 'ቦታ',
|
||||
date: 'ቀን',
|
||||
administration: 'አስተዳደር',
|
||||
evaluation: 'ግምገማ',
|
||||
selection: 'ምርጫ',
|
||||
timeAllowed: 'የተፈቀደ ጊዜ',
|
||||
passMark: 'የማለፊያ ነጥብ',
|
||||
totalPoints: 'ጠቅላላ ነጥብ',
|
||||
questions: 'ጥያቄዎች',
|
||||
directions: 'መመሪያዎች',
|
||||
questionLabel: 'ጥያቄ',
|
||||
questionsSection: 'ጥያቄዎች (ጠቅላላ {{pts}} ነጥብ)',
|
||||
},
|
||||
form: {
|
||||
basicInfo: 'መሠረታዊ መረጃ',
|
||||
settings: 'ቅንብሮች',
|
||||
certification: 'የምስክር ወረቀት',
|
||||
selectCertification: 'የምስክር ወረቀት ይምረጡ',
|
||||
titleEn: 'ርዕስ (እንግሊዝኛ)',
|
||||
titleEnPlaceholder: 'የፈተና ርዕስ በእንግሊዝኛ',
|
||||
titleAm: 'ርዕስ (አማርኛ)',
|
||||
titleAmPlaceholder: 'የፈተና ርዕስ',
|
||||
directionEn: 'መመሪያ (እንግሊዝኛ)',
|
||||
directionEnPlaceholder: 'መመሪያ በእንግሊዝኛ',
|
||||
directionAm: 'መመሪያ (አማርኛ)',
|
||||
directionAmPlaceholder: 'መመሪያ በአማርኛ',
|
||||
examDate: 'የፈተና ቀን',
|
||||
venue: 'ቦታ',
|
||||
venuePlaceholder: 'የፈተና ቦታ',
|
||||
timeAllowed: 'የተፈቀደ ጊዜ',
|
||||
days: 'ቀናት',
|
||||
hours: 'ሰአታት',
|
||||
minutes: 'ደቂቃዎች',
|
||||
written: 'ጽሑፍ',
|
||||
oral: 'ቃል',
|
||||
essay: 'ኢሴይ',
|
||||
choice: 'ምርጫ',
|
||||
offline: 'ከመስመር ውጪ',
|
||||
online: 'በመስመር',
|
||||
sum: 'ድምር',
|
||||
average: 'አማካይ',
|
||||
percentage: 'መቶኛ',
|
||||
manual: 'በእጅ',
|
||||
random: 'በዘፈቀደ',
|
||||
cuttingPoint: 'የማለፊያ ነጥብ',
|
||||
cuttingPointPlaceholder: 'ለማለፍ ዝቅተኛ ነጥብ',
|
||||
status: 'ሁኔታ',
|
||||
statusPlaceholder: 'የፈተና ሁኔታ',
|
||||
pending: 'በመጠባበቅ ላይ',
|
||||
active: 'ንቁ',
|
||||
completed: 'ተጠናቋል',
|
||||
cancelled: 'ተሰርዟል',
|
||||
postponed: 'ተላልፏል',
|
||||
published: 'ታትሟል',
|
||||
},
|
||||
assigner: {
|
||||
title: 'ጥያቄዎችን ለፈተና ይመድቡ',
|
||||
assignedTitle: 'የተመደቡ ጥያቄዎች',
|
||||
available: 'የሚገኙ ጥያቄዎች',
|
||||
assigned: 'የተመደቡ ጥያቄዎች',
|
||||
search: 'ፈልግ...',
|
||||
noQuestions: 'ምንም ጥያቄዎች የሉም',
|
||||
assignSelected: 'የተመረጡትን ይመድቡ ({{count}})',
|
||||
removeSelected: 'የተመረጡትን ያስወግዱ ({{count}})',
|
||||
randomHint: 'ከጠቅላላ {{total}} ብቁ ጥያቄዎች ውስጥ በዘፈቀደ ይምረጡ። ምርጫው አጠቃላይ ነጥቦች የማለፊያ ነጥብ ({{pts}}) ላይ እንደሚደርሱ በራስ-ሰር ያረጋግጣል።',
|
||||
selectCount: 'ብዛት',
|
||||
},
|
||||
status: {
|
||||
PENDING: 'በመጠባበቅ ላይ',
|
||||
ACTIVE: 'ንቁ',
|
||||
COMPLETED: 'ተጠናቋል',
|
||||
CANCELLED: 'ተሰርዟል',
|
||||
POSTPONED: 'ተላልፏል',
|
||||
PUBLISHED: 'ታትሟል',
|
||||
},
|
||||
type: {
|
||||
WRITTEN: 'ጽሑፍ',
|
||||
ORAL: 'ቃል',
|
||||
},
|
||||
formType: {
|
||||
ESSAY: 'ኢሴይ',
|
||||
CHOICE: 'ምርጫ',
|
||||
},
|
||||
admin: {
|
||||
OFFLINE: 'ከመስመር ውጪ',
|
||||
ONLINE: 'በመስመር',
|
||||
},
|
||||
eval: {
|
||||
SUM: 'ድምር',
|
||||
AVERAGE: 'አማካይ',
|
||||
PERCENTAGE: 'መቶኛ',
|
||||
},
|
||||
selection: {
|
||||
MANUAL: 'በእጅ',
|
||||
RANDOM: 'በዘፈቀደ',
|
||||
},
|
||||
},
|
||||
|
||||
location: {
|
||||
title: 'አካባቢዎች',
|
||||
hierarchy: 'የአካባቢ ተዋረድ',
|
||||
@@ -262,6 +402,101 @@ export const am: Translations = {
|
||||
},
|
||||
},
|
||||
|
||||
result: {
|
||||
title: 'የፈተና ውጤቶች',
|
||||
subtitle: 'የመርከበኞችን የፈተና ውጤቶች እና የውጤት ክፍፍል ይመልከቱ',
|
||||
record: 'ውጤት ያስመዝግቡ',
|
||||
noItems: 'ምንም ውጤት አልተገኘም',
|
||||
noData: 'ምንም መረጃ የለም',
|
||||
created: 'ውጤት በተሳካ ሁኔታ ተመዝግቧል',
|
||||
updated: 'ውጤት በተሳካ ሁኔታ ዘምኗል',
|
||||
deleted: 'ውጤት በተሳካ ሁኔታ ተሰርዟል',
|
||||
error: 'ክዋኔው አልተሳካም',
|
||||
loadError: 'ውጤቶችን በማምጣት ላይ ስህተት',
|
||||
cancel: 'ሰርዝ',
|
||||
delete: 'ሰርዝ',
|
||||
close: 'ዝጋ',
|
||||
save: 'አስቀምጥ',
|
||||
saveResult: 'ውጤት አስቀምጥ',
|
||||
section: 'ውጤቶች',
|
||||
selectExamError: 'እባክዎ ፈተና ይምረጡ',
|
||||
continue: 'ቀጥል',
|
||||
confirmDelete: 'ውጤት ሰርዝ',
|
||||
deleteConfirmText: 'እርግጠኛ ነዎት ይህን ውጤት መሰረዝ ይፈልጋሉ?',
|
||||
stats: {
|
||||
totalResults: 'ጠቅላላ ውጤቶች',
|
||||
passed: 'ያለፉ',
|
||||
failed: 'ያልተሳኩ',
|
||||
avgScore: 'አማካይ ውጤት',
|
||||
},
|
||||
columns: {
|
||||
seafarer: 'መርከበኛ',
|
||||
exam: 'ፈተና',
|
||||
totalScore: 'ጠቅላላ ውጤት',
|
||||
status: 'ሁኔታ',
|
||||
date: 'ቀን',
|
||||
},
|
||||
detail: {
|
||||
title: 'የውጤት ዝርዝር',
|
||||
seafarerProfile: 'የመርከበኛ መገለጫ',
|
||||
examDetails: 'የፈተና ዝርዝሮች',
|
||||
fullName: 'ሙሉ ስም',
|
||||
gender: 'ፆታ',
|
||||
dateOfBirth: 'የትውልድ ቀን',
|
||||
maritalStatus: 'የትዳር ሁኔታ',
|
||||
examTitle: 'የፈተና ርዕስ',
|
||||
titleAm: 'ርዕስ (አማርኛ)',
|
||||
type: 'አይነት',
|
||||
venue: 'ቦታ',
|
||||
date: 'ቀን',
|
||||
passMark: 'ማለፊያ ውጤት',
|
||||
status: 'ሁኔታ',
|
||||
remark: 'ማስታወሻ',
|
||||
scoreBreakdown: 'የውጤት ክፍፍል',
|
||||
question: 'ጥያቄ',
|
||||
max: 'ከፍተኛ',
|
||||
score: 'ውጤት',
|
||||
remarkShort: 'ማስታወሻ',
|
||||
selectExam: 'ውጤት ለመመዝገብ የሚፈልጉትን ፈተና ይምረጡ።',
|
||||
exam: 'ፈተና',
|
||||
selectExamPlaceholder: 'ፈተና ይምረጡ',
|
||||
},
|
||||
recordModal: {
|
||||
title: 'ውጤት ያስመዝግቡ',
|
||||
seafarer: 'መርከበኛ',
|
||||
seafarerPlaceholder: 'መርከበኛ ይፈልጉ እና ይምረጡ',
|
||||
scorePerQuestion: 'በጥያቄ ውጤት',
|
||||
question: 'ጥያቄ',
|
||||
maxPoints: 'ከፍተኛ ውጤት',
|
||||
score: 'ውጤት',
|
||||
remark: 'ማስታወሻ',
|
||||
remarkOptional: 'ማስታወሻ (አማራጭ)',
|
||||
remarkPlaceholder: 'የኦፊሰር ማስታወሻ',
|
||||
totalScore: 'ጠቅላላ ውጤት',
|
||||
passMark: 'ማለፊያ ውጤት',
|
||||
status: 'ሁኔታ',
|
||||
noQuestions: 'ለዚህ ፈተና ምንም ጥያቄዎች አልተመደቡም። መጀመሪያ ጥያቄዎችን ይመድቡ።',
|
||||
seafarerRequired: 'እባክዎ መርከበኛ ይምረጡ',
|
||||
saveSuccess: 'ውጤት ተመዝግቧል',
|
||||
saveError: 'ውጤቱን ማስቀመጥ አልተሳካም',
|
||||
passed: 'አልፏል',
|
||||
failed: 'አልተሳካም',
|
||||
},
|
||||
status: {
|
||||
PASSED: 'አልፏል',
|
||||
FAILED: 'አልተሳካም',
|
||||
},
|
||||
action: {
|
||||
viewEdit: 'ተመልከት / አስተካክል',
|
||||
delete: 'ሰርዝ',
|
||||
},
|
||||
search: {
|
||||
seafarer: 'መርከበኛ ይፈልጉ...',
|
||||
filterByExam: 'በፈተና አጣራ',
|
||||
allExams: 'ሁሉም ፈተናዎች',
|
||||
},
|
||||
},
|
||||
|
||||
question: {
|
||||
title: 'ጥያቄዎች',
|
||||
pool: 'የጥያቄ ማከማቻ',
|
||||
|
||||
@@ -27,6 +27,9 @@ export const en = {
|
||||
locations: 'Locations',
|
||||
configuration: 'Configuration',
|
||||
profile: 'Profile',
|
||||
questions: 'Questions',
|
||||
exams: 'Examinations',
|
||||
examResults: 'Exam Results',
|
||||
collapseSidebar: 'Collapse',
|
||||
expandSidebar: 'Expand sidebar',
|
||||
},
|
||||
@@ -94,6 +97,143 @@ export const en = {
|
||||
},
|
||||
},
|
||||
|
||||
exam: {
|
||||
title: 'Examinations',
|
||||
subtitle: 'Manage exams, assign questions, and track results',
|
||||
create: 'Create Exam',
|
||||
update: 'Update Exam',
|
||||
add: 'Create Exam',
|
||||
noItems: 'No exams found',
|
||||
created: 'Exam created',
|
||||
updated: 'Exam updated',
|
||||
deleted: 'Exam deleted',
|
||||
error: 'Operation failed',
|
||||
loadError: 'Error loading exams',
|
||||
cancel: 'Cancel',
|
||||
delete: 'Delete',
|
||||
confirmDelete: 'Delete Exam',
|
||||
deleteConfirmText: 'Are you sure you want to delete {{name}}?',
|
||||
print: 'Print Exam',
|
||||
recordResult: 'Record Result',
|
||||
manageQuestions: 'Manage Questions',
|
||||
saveAssignments: 'Save Assignments',
|
||||
randomSelect: 'Randomly Select',
|
||||
backToExams: 'Back to Exams',
|
||||
notFound: 'Exam not found.',
|
||||
noQuestionsAssigned: 'No questions assigned yet. Click "Manage Questions" to assign.',
|
||||
columns: {
|
||||
title: 'Title',
|
||||
certification: 'Certification',
|
||||
date: 'Date',
|
||||
type: 'Type',
|
||||
form: 'Form',
|
||||
venue: 'Venue',
|
||||
questions: 'Questions',
|
||||
status: 'Status',
|
||||
},
|
||||
detail: {
|
||||
title: 'Exam Details',
|
||||
certification: 'Certification',
|
||||
type: 'Type',
|
||||
form: 'Form',
|
||||
venue: 'Venue',
|
||||
date: 'Date',
|
||||
administration: 'Administration',
|
||||
evaluation: 'Evaluation',
|
||||
selection: 'Selection',
|
||||
timeAllowed: 'Time Allowed',
|
||||
passMark: 'Pass Mark',
|
||||
totalPoints: 'Total Points',
|
||||
questions: 'Questions',
|
||||
directions: 'Directions',
|
||||
questionLabel: 'Question',
|
||||
questionsSection: 'Questions ({{pts}} pts total)',
|
||||
},
|
||||
form: {
|
||||
basicInfo: 'Basic Info',
|
||||
settings: 'Settings',
|
||||
certification: 'Certification',
|
||||
selectCertification: 'Select certification',
|
||||
titleEn: 'Title (English)',
|
||||
titleEnPlaceholder: 'Exam title in English',
|
||||
titleAm: 'Title (Amharic)',
|
||||
titleAmPlaceholder: 'የፈተና ርዕስ',
|
||||
directionEn: 'Direction (English)',
|
||||
directionEnPlaceholder: 'Instructions in English',
|
||||
directionAm: 'Direction (Amharic)',
|
||||
directionAmPlaceholder: 'መመሪያ በአማርኛ',
|
||||
examDate: 'Exam Date',
|
||||
venue: 'Venue',
|
||||
venuePlaceholder: 'Exam venue',
|
||||
timeAllowed: 'Time Allowed',
|
||||
days: 'Days',
|
||||
hours: 'Hours',
|
||||
minutes: 'Minutes',
|
||||
written: 'Written',
|
||||
oral: 'Oral',
|
||||
essay: 'Essay',
|
||||
choice: 'Choice',
|
||||
offline: 'Offline',
|
||||
online: 'Online',
|
||||
sum: 'Sum',
|
||||
average: 'Average',
|
||||
percentage: 'Percentage',
|
||||
manual: 'Manual',
|
||||
random: 'Random',
|
||||
cuttingPoint: 'Cutting Point (Pass Mark)',
|
||||
cuttingPointPlaceholder: 'Minimum score to pass',
|
||||
status: 'Status',
|
||||
statusPlaceholder: 'Exam status',
|
||||
pending: 'Pending',
|
||||
active: 'Active',
|
||||
completed: 'Completed',
|
||||
cancelled: 'Cancelled',
|
||||
postponed: 'Postponed',
|
||||
published: 'Published',
|
||||
},
|
||||
assigner: {
|
||||
title: 'Assign Questions to Exam',
|
||||
assignedTitle: 'Assigned Questions',
|
||||
available: 'Available Questions',
|
||||
assigned: 'Assigned Questions',
|
||||
search: 'Search...',
|
||||
noQuestions: 'No questions',
|
||||
assignSelected: 'Assign Selected ({{count}})',
|
||||
removeSelected: 'Remove Selected ({{count}})',
|
||||
randomHint: 'Randomly select questions from the pool of {{total}} eligible questions. The selection will automatically ensure total points meet the passing mark ({{pts}} pts).',
|
||||
selectCount: 'Count',
|
||||
},
|
||||
status: {
|
||||
PENDING: 'Pending',
|
||||
ACTIVE: 'Active',
|
||||
COMPLETED: 'Completed',
|
||||
CANCELLED: 'Cancelled',
|
||||
POSTPONED: 'Postponed',
|
||||
PUBLISHED: 'Published',
|
||||
},
|
||||
type: {
|
||||
WRITTEN: 'Written',
|
||||
ORAL: 'Oral',
|
||||
},
|
||||
formType: {
|
||||
ESSAY: 'Essay',
|
||||
CHOICE: 'Choice',
|
||||
},
|
||||
admin: {
|
||||
OFFLINE: 'Offline',
|
||||
ONLINE: 'Online',
|
||||
},
|
||||
eval: {
|
||||
SUM: 'Sum',
|
||||
AVERAGE: 'Average',
|
||||
PERCENTAGE: 'Percentage',
|
||||
},
|
||||
selection: {
|
||||
MANUAL: 'Manual',
|
||||
RANDOM: 'Random',
|
||||
},
|
||||
},
|
||||
|
||||
location: {
|
||||
title: 'Locations',
|
||||
hierarchy: 'Location Hierarchy',
|
||||
@@ -261,6 +401,101 @@ export const en = {
|
||||
},
|
||||
},
|
||||
|
||||
result: {
|
||||
title: 'Exam Results',
|
||||
subtitle: 'View seafarer examination results and score breakdowns',
|
||||
record: 'Record Result',
|
||||
noItems: 'No results found',
|
||||
noData: 'No data available',
|
||||
created: 'Result recorded',
|
||||
updated: 'Result updated',
|
||||
deleted: 'Result deleted',
|
||||
error: 'Operation failed',
|
||||
loadError: 'Error loading results',
|
||||
cancel: 'Cancel',
|
||||
delete: 'Delete',
|
||||
close: 'Close',
|
||||
save: 'Save',
|
||||
saveResult: 'Save Result',
|
||||
section: 'Results',
|
||||
selectExamError: 'Please select an exam',
|
||||
continue: 'Continue',
|
||||
confirmDelete: 'Delete Result',
|
||||
deleteConfirmText: 'Are you sure you want to delete this result?',
|
||||
stats: {
|
||||
totalResults: 'Total Results',
|
||||
passed: 'Passed',
|
||||
failed: 'Failed',
|
||||
avgScore: 'Avg Score',
|
||||
},
|
||||
columns: {
|
||||
seafarer: 'Seafarer',
|
||||
exam: 'Exam',
|
||||
totalScore: 'Total Score',
|
||||
status: 'Status',
|
||||
date: 'Date',
|
||||
},
|
||||
detail: {
|
||||
title: 'Result Detail',
|
||||
seafarerProfile: 'Seafarer Profile',
|
||||
examDetails: 'Exam Details',
|
||||
fullName: 'Full Name',
|
||||
gender: 'Gender',
|
||||
dateOfBirth: 'Date of Birth',
|
||||
maritalStatus: 'Marital Status',
|
||||
examTitle: 'Exam Title',
|
||||
titleAm: 'Title (Amharic)',
|
||||
type: 'Type',
|
||||
venue: 'Venue',
|
||||
date: 'Date',
|
||||
passMark: 'Pass Mark',
|
||||
status: 'Status',
|
||||
remark: 'Remark',
|
||||
scoreBreakdown: 'Score Breakdown',
|
||||
question: 'Question',
|
||||
max: 'Max',
|
||||
score: 'Score',
|
||||
remarkShort: 'Remark',
|
||||
selectExam: 'Choose the exam you want to record a result for.',
|
||||
exam: 'Exam',
|
||||
selectExamPlaceholder: 'Select an exam',
|
||||
},
|
||||
recordModal: {
|
||||
title: 'Record Result',
|
||||
seafarer: 'Seafarer',
|
||||
seafarerPlaceholder: 'Search and select a seafarer',
|
||||
scorePerQuestion: 'Score per Question',
|
||||
question: 'Question',
|
||||
maxPoints: 'Max Points',
|
||||
score: 'Score',
|
||||
remark: 'Remark',
|
||||
remarkOptional: 'Remark (optional)',
|
||||
remarkPlaceholder: 'Officer remarks',
|
||||
totalScore: 'Total Score',
|
||||
passMark: 'Pass Mark',
|
||||
status: 'Status',
|
||||
noQuestions: 'No questions assigned to this exam. Assign questions first.',
|
||||
seafarerRequired: 'Please select a seafarer',
|
||||
saveSuccess: 'Result recorded',
|
||||
saveError: 'Failed to save result',
|
||||
passed: 'PASSED',
|
||||
failed: 'FAILED',
|
||||
},
|
||||
status: {
|
||||
PASSED: 'PASSED',
|
||||
FAILED: 'FAILED',
|
||||
},
|
||||
action: {
|
||||
viewEdit: 'View / Edit',
|
||||
delete: 'Delete',
|
||||
},
|
||||
search: {
|
||||
seafarer: 'Search seafarer...',
|
||||
filterByExam: 'Filter by exam',
|
||||
allExams: 'All Exams',
|
||||
},
|
||||
},
|
||||
|
||||
question: {
|
||||
title: 'Questions',
|
||||
pool: 'Question Pool',
|
||||
|
||||
Reference in New Issue
Block a user