多语言解决方案-数据多语言

722 阅读1分钟

完整的多语言解决方案包括前端多语言,后端多语言,数据多语言。该文主要提供数据多语言的实现思路。

表上加上语言代码字段

create table xxxx (
...
xxxx1 varchar(100), /* 字段1 */
xxxx2 varchar(100), /* 字段2 */
created_lang varchar(10), /* 创建时的语言代码 */
...
);

创建对应的多语言表

create table xxxx_i18n (
id bigint, /* 对应原表的ID */
lang_code varchar(10), /* 语言代码 */
default_lang tinyint, /* 默认标志 */
xxxx1 varchar(100), /* 字段1的多语言内容 */
xxxx2 varchar(100) /* 字段2的多语言内容 */
...
)

维护多语言的规则

操作策略
新增多语言表新增记录(default_lang值为1)
修改若多语言表存在当前语言的记录则修改,否则修改默认多语言记录

参考代码

可以参考开源项目MoLiHua的 jasmine-framework 模块,相关代码是实现在 jasmine.framework.i18n 包中。