1.5 KiB
1.5 KiB
i18n Guidelines
Version: 1.8.4
Last Updated: 2026-03-24
Location: specs/05-Engineering-Guidelines/05-08-i18n-guidelines.md
Code Comments & Documentation
- ✅ Comments: Write in Thai (for team understanding)
- ✅ JSDoc: Use Thai to explain business logic
- ✅ Error messages: Store as keys in i18n files, not hardcoded
i18n Structure (Frontend)
locales/
├── th/
│ ├── common.json # General messages
│ ├── errors.json # Error messages
│ ├── forms.json # Form labels & validation
│ └── modules/
│ ├── correspondence.json
│ └── rfa.json
└── en/ # Reserved for future
Validation Messages (Zod)
// ✅ CORRECT — Use reference key
z.string().min(3, { message: 'errors:min_length_3' });
// Then resolve in frontend via i18n hook
// ❌ WRONG — Hardcode Thai in schema
z.string().min(3, 'กรุณากรอกอย่างน้อย 3 ตัวอักษร'); // Makes testing difficult
Language Rules Summary
| Context | Language |
|---|---|
| Code (variables, functions, classes) | English |
| Comments | Thai |
| JSDoc | Thai |
| Error messages | i18n keys |
| UI labels | i18n files |
| Documentation | Thai |