1. 概述

应用的国际化,其数据以json格式保存在jpaas_system库sys_app表的CLIENT_NAME_字段里面。

2. 配置文件

其配置文件,沿用菜单国际化的配置文件

3. 前端代码改造

关键代码如下:

import langs from "@/locales/lang";

data() {
   return {
        langs:langs,
        langItems:[],
        messages:["zh-CN","en-US"]
    }
},
created() {
   this.langItems = this.langs[this.$i18n.locale];
},
methods: {
    onload_(values){
          var nameJson = JSON.parse(values.nameJson);
          values['zh-CN'] = nameJson.['zh-CN'];
          values['en-US'] = nameJson.['en-US'];
      },
    save(values) {
          let json = {};
          json['zh-CN'] = values['zh-CN'];
          json['en-US'] = values['en-US'];
          this.$set(values,'clientName',JSON.stringify(json));
    }
}

4. 后端代码改造

4.1 获取实体

关键代码如下:

           String name = app.getClientName();
            try{
                JSONObject jo = JSONObject.parseObject(name);
                app.setNameJson(jo.toJSONString());
            }catch (Exception e){
                JSONObject jo = new JSONObject();
                jo.put("zh-CN", name);
                app.setNameJson(jo.toJSONString());
            }

4.2 获取列表

关键代码如下:

        if(list != null && list.size() > 0){
                for(SysApp app : list){
                    String name = app.getClientName();
                    try{
                        JSONObject jo = JSONObject.parseObject(name);
                        if(LocaleContextHolder.getLocale().getLanguage().equals("en")){
                            name = jo.getString("en-US");
                        }else{
                            name = jo.getString("zh-CN");
                        }
                        app.setClientName(name);
                    }catch (Exception e){

                    }
                }
       }

4.3 获取首页应用列表

关键代码如下:

            if(list != null && list.size() > 0){
            for(SysApp app : list){
                String name = app.getClientName();
                try{
                    JSONObject jo = JSONObject.parseObject(name);
                    if(LocaleContextHolder.getLocale().getLanguage().equals("en")){
                        name = jo.getString("en-US");
                    }else{
                        name = jo.getString("zh-CN");
                    }
                    app.setClientName(name);
                }catch (Exception e){

                }
            }
 }
文档更新时间: 2021-07-02 18:24   作者:朱方华