国际化组件

  • Post author:
  • Post category:其他


1. 背景介绍

1.1 业务背景

针对海外项目,系统需要灵活支持不同语言的切换


2.设计思路

后台系统负责管理词条,前端负责根据登录语言 获取 对应词条做页面渲染

PS:登录成功获取所有词条缓存浏览器内存,前端每次从内存中获取

3.使用示例

3.1 引入i18n的核心jar包

3.2 api调用

I18nUtil工具类

1.自动补全

2.数据拼接

3.3 liquibase

1)针对已存在language只需维护t_i18n_code表

2)针对新language需要维护t_i18n_language和t_i18n_code

4. 数据库设计

4.1 语言表t_i18n_language

字段

类型

描述

id

bigint(11)

主键

language_code

varchar(16)

语言编码

language_name

varchar(16)

语言名称

4.2 词条表t_i18n_code

字段

类型

描述

id

bigint(11)

主键

i18n_code

varchar(128)

国际化编码

desc

varchar(128)

描述

zh_cn

varchar(512)

中文名称

en_us

varchar(512)

英语名称

ja_jp

varchar(512)

日语名称

5.API 设计

5.1 语言查询(首页初始化调用)

GET /language/query

请求参数

无参,查所有

响应格式

{

“code”: 200, // 200 操作成功 500 操作失败 404 参数检验失败 401 暂未登录或token已经过期 403 没有相关权限

“message”:”操作成功”, //额外参考信息

“data”:”[{‘language_code’:’zh_cn’,’language_name’:’中文’}]”

}

5.2 字典查询(首页登录初始化调用)

GET /i18n/query

请求参数

无参,查所有

响应格式

{

“code”: 200, // 200 操作成功 500 操作失败 404 参数检验失败 401 暂未登录或token已经过期 403 没有相关权限

“message”:”操作成功”, //额外参考信息

“data”:”[{‘i18n_code’:’lang.linkwise.UserManager.addUser’,’zh_cn’:’用户新增’,’en_us’:’Add user’,’jp_jp’:’ユーザーの追加’}]”

}



版权声明:本文为hufeng19940810原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。