如何修改ABP框架错误提示信息及切换语言?
解决ABP框架错误提示修改与中文本地化问题
1. 如何修改错误提示信息?
绝对不要直接修改node_modules内的文件——依赖包更新后所有手动修改都会被覆盖,正确做法是在项目代码中重写默认配置:
针对Angular项目(基于abp-ng2-module)
在应用初始化逻辑中(比如app.module.ts),注入AbpHttpConfiguration并覆盖默认错误配置:
import { AbpHttpConfiguration, APP_INITIALIZER } from 'abp-ng2-module'; export function configureAbpHttpErrors(config: AbpHttpConfiguration) { config.defaultError = { message: '发生错误!', details: '服务器未返回错误详情。' }; config.defaultError401 = { message: '您未登录!', details: '请登录后再执行此操作。' }; config.defaultError403 = { message: '您无权限!', details: '您不允许执行此操作。' }; config.defaultError404 = { message: '资源未找到!', details: '请求的资源在服务器上不存在。' }; } @NgModule({ // ...其他配置 providers: [ { provide: APP_INITIALIZER, useFactory: configureAbpHttpErrors, deps: [AbpHttpConfiguration], multi: true } ] }) export class AppModule { }
针对jQuery/AngularJS项目(基于abp-web-resources)
在全局脚本中直接重写abp的http错误配置:
// 在abp初始化完成后执行 abp.http.defaultError = { message: '发生错误!', details: '服务器未返回错误详情。' }; abp.http.defaultError401 = { message: '您未登录!', details: '请登录后再执行此操作。' }; // 同理可修改defaultError403、defaultError404
2. 是否有相关配置可将英文提示切换为中文?
ABP框架原生支持本地化,无需手动修改文本,只需配置中文语言包即可自动切换:
针对Angular项目
在app.module.ts中配置默认语言为中文:
import { LOCALE_ID } from '@angular/core'; import { AbpModule } from 'abp-ng2-module'; @NgModule({ imports: [ AbpModule.forRoot({ localization: { defaultLanguage: 'zh-CN' } }) ], providers: [ { provide: LOCALE_ID, useValue: 'zh-CN' } ] }) export class AppModule { }
针对jQuery/AngularJS项目
在全局初始化脚本中设置当前语言为中文:
abp.localization.currentLanguage.name = 'zh-CN'; abp.localization.currentLanguage.displayName = '中文';
注:ABP框架自带中文本地化资源,配置完成后所有系统提示(包括错误信息)都会自动切换为中文,无需手动修改错误文本。
内容的提问来源于stack exchange,提问作者huhao
相关产品推荐
相关产品推荐

