错误信息国际化
IBest-ORM 支持错误信息的多语言显示,目前支持中文和英文。
设置语言
ts
import { setErrorLocale, getErrorLocale } from '@ibestservices/ibest-orm';
// 设置为英文
setErrorLocale('en');
// 设置为中文(默认)
setErrorLocale('zh');
// 获取当前语言设置
const locale = getErrorLocale();
console.log('当前语言:', locale);支持的语言
| 语言代码 | 语言 |
|---|---|
zh | 中文(默认) |
en | 英文 |
错误信息对照
| 错误码 | 中文 | 英文 |
|---|---|---|
| INIT_FAILED | ORM 初始化失败 | ORM initialization failed |
| CONTEXT_NOT_FOUND | 未找到应用上下文 | Application context not found |
| DATABASE_NOT_FOUND | 数据库连接未建立 | Database connection not established |
| TABLE_NOT_SET | 未设置数据表 | Table not set |
| INVALID_QUERY | 无效的查询条件 | Invalid query condition |
| QUERY_FAILED | 查询执行失败 | Query execution failed |
| TYPE_MISMATCH | 字段类型不匹配 | Field type mismatch |
| REQUIRED_FIELD_MISSING | 必填字段缺失 | Required field missing |
| PRIMARY_KEY_MISSING | 主键值缺失 | Primary key value missing |
| VALIDATION_FAILED | 数据验证失败 | Data validation failed |
| MIGRATION_FAILED | 数据库迁移失败 | Database migration failed |
| TABLE_NOT_EXISTS | 数据表不存在 | Table does not exist |
| COLUMN_NOT_EXISTS | 字段不存在 | Column does not exist |
| RELATION_NOT_FOUND | 关联关系未找到 | Relation not found |
| FOREIGN_KEY_MISSING | 外键值缺失 | Foreign key value missing |
| CASCADE_FAILED | 级联操作失败 | Cascade operation failed |
| TRANSACTION_FAILED | 事务执行失败 | Transaction failed |
| ROLLBACK_FAILED | 事务回滚失败 | Transaction rollback failed |
| SOFT_DELETE_NOT_CONFIGURED | 软删除未配置 | Soft delete not configured |
使用示例
ts
import { setErrorLocale, ORMError, ErrorCode } from '@ibestservices/ibest-orm';
// 中文模式
setErrorLocale('zh');
try {
// 某些操作...
} catch (e) {
if (e instanceof ORMError) {
console.log(e.message); // 输出: "数据验证失败"
}
}
// 英文模式
setErrorLocale('en');
try {
// 某些操作...
} catch (e) {
if (e instanceof ORMError) {
console.log(e.message); // 输出: "Data validation failed"
}
}最佳实践
- 应用初始化时设置:在应用启动时根据用户语言偏好设置错误语言
ts
import { initORM, setErrorLocale } from '@ibestservices/ibest-orm';
// 根据系统语言设置
const systemLang = getSystemLanguage(); // 假设的获取系统语言函数
setErrorLocale(systemLang === 'en' ? 'en' : 'zh');
// 初始化 ORM
initORM({ adapter, logLevel: 'debug' });- 日志记录:开发调试时可以使用中文,生产环境日志可以使用英文便于国际化团队协作