feat: i18n — EN/MS/ZH translations with cookie-based locale switching, report form translated

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFDuBhMKvoWjrWT3ZnGmmr
This commit is contained in:
2026-07-11 19:01:44 +08:00
co-authored by Claude Sonnet 4.6
parent c67c489ab3
commit 87264a5497
12 changed files with 372 additions and 52 deletions
+36
View File
@@ -0,0 +1,36 @@
{
"ReportForm": {
"title": "Report an Incident",
"incidentTypeLabel": "Incident type",
"incidentTypePlaceholder": "Select type…",
"descriptionLabel": "What happened?",
"descriptionPlaceholder": "Describe what happened, where, and any immediate actions taken…",
"injuryInvolved": "Person was injured",
"treatmentLevel": "Treatment level",
"treatmentPlaceholder": "Select treatment…",
"assetInvolved": "Equipment / asset was damaged",
"filesLabel": "Photos / Videos / Documents",
"submitButton": "Submit Incident Report",
"submitting": "Submitting…",
"submitAnyway": "Submit anyway",
"qualityScoreLabel": "Report quality — {score}/10",
"errorGeneric": "Something went wrong. Please try again.",
"savedOffline": "Report saved. It will be submitted automatically when you're back online.",
"offlineBanner": "You're offline. Your report will be saved and submitted when you reconnect."
},
"IncidentType": {
"injury": "Injury / Medical",
"near_miss": "Near Miss",
"hazard": "Hazard / Unsafe Condition",
"asset_damage": "Asset / Equipment Damage",
"environmental": "Environmental Incident",
"security": "Security Incident",
"fire": "Fire / Emergency"
},
"MedicalStatus": {
"none": "No treatment needed",
"first_aid": "First aid only",
"medical_treatment": "Medical treatment (non-LTI)",
"lti": "Lost Time Injury (LTI)"
}
}