Admin国际化涉及到的大部分资源文件在 broadleaf-open-admin-platform-5.1.2-GA.jar 包中的 messages/ 下,如下图所示:

由于是封装在jar包中无法直接修改,还好框架提供了覆盖配置的方法: 在 admin/src/main/resources/ 下新建 messages-admin_zh_CN.properties 资源文件,把需要翻译的键值对重新在此文件中定义,注意系统的默认语言是在数据库 blc_locale 表中定义,你需要新建一条中文的记录并设为默认。

通过上面的方法可以汉化大部分Admin的功能,但是还有一部分(比如在表单页面你修改了内容,系统会提示你“There are unsaved changes” )是在JS中的,虽然在上图中的 OpenAdminJavascriptMessages.properties 文件中可以找到这条消息,但是这个资源文件是无法通过上述方式覆盖的,反编译代码后发现这部分消息是在客户端请求js文件时动态写入到js文件中的。服务端覆盖不了那只能在客户端想办法了,庆幸JS是一个宽容的语言,对于修改已有对象这种事情要比Java容易的多,只要在系统加载完JS后动态修改message对象即可,下面是示例代码:

(function($, BLCAdmin) {
    
    // Override messages
    if(BLCAdmin.messages){
    	BLCAdmin.messages.unsavedChangesRevert = "修改未保存 <a id='revert-changes'>撤销</a>";
    }
    
})(jQuery, BLCAdmin);