| 1 | import type { Locale } from '../i18n/messages' |
| 2 | import { ResponseCode } from '../enums/response-code.enum' |
| 3 | import { messages } from '../i18n/messages' |
| 4 | |
| 5 | export function getCodeMessage(code: ResponseCode, data?: unknown, locale: Locale = 'en-US'): string { |
| 6 | const codeMessages = messages[code] |
| 7 | if (!codeMessages) { |
| 8 | return locale === 'zh-CN' ? '未知错误' : 'Unknown error' |
| 9 | } |
| 10 | |
| 11 | const message = codeMessages[locale] || codeMessages['en-US'] |
| 12 | |
| 13 | if (typeof message === 'string') { |
| 14 | return message |
| 15 | } |
| 16 | |
| 17 | try { |
| 18 | return message(data) |
| 19 | } |
| 20 | catch (e) { |
| 21 | return locale === 'zh-CN' ? `消息渲染失败: ${e}` : `Message render failed: ${e}` |
| 22 | } |
| 23 | } |
| 24 |