首页 > 其他分享 >多语言系统实现

多语言系统实现

时间:2024-07-28 17:55:31浏览次数:7  
标签:COMMENT 语言 language 实现 系统 DEFAULT vo int NULL

由于要做海外系统,部分文案需要动态显示,并且要兼容多国家语言,因此需要设计多语言系统

设计思路

  1. 定义多个 key,组合成唯一索引,定位到唯一的 context
  2. key1 是系统模块,key2 模块内的功能,key3.... keyn 持续的定义下去,一般定义四五个就差不多了,lang 字段是语言类型枚举
  3. 由于该数据访问比较频繁,并且改动的可能极小,这里我考虑放入 JVM 缓存,task 定时从 db 中加载
  4. 直接根据唯一 key 定位即可,语言类型前端放入请求头传入即可

代码实现

drop table if exists `t_language_info`;
CREATE TABLE `t_language_info`
(
    `module`   int  NOT NULL DEFAULT 0 COMMENT '功能模块',
    `key1`     int  NOT NULL DEFAULT 0 COMMENT '值',
    `key2`     int  NOT NULL DEFAULT 0 COMMENT '值',
    `key3`     int  NOT NULL DEFAULT 0 COMMENT '值',
    `lang`     int  NOT NULL DEFAULT 0 COMMENT '语言枚举',
    `context1` text NOT NULL COMMENT '内容1',
    `context2` text NOT NULL COMMENT '内容2',
    `context3` text NOT NULL COMMENT '内容3',
    `context4` text NOT NULL COMMENT '内容4',
    `del`      int  NOT NULL DEFAULT 0 COMMENT '是否开启',
    PRIMARY KEY (`module`, `key1`, `key2`, `key3`, `lang`)
)
    ENGINE = InnoDB
    COMMENT '多语言配置';
public static QsDefineVo create(QsDefine e, int lgType) {
    QsDefineVo vo = new QsDefineVo();
    vo.setType(e.getType());
    LanguageInfo language = LanguageManger.getLanguage(Module.QS, QsManager.LANGUAGE_DEFINE_KEY_1, e.getType(), 0, lgType);
    if (language != null) {
        vo.setContent(language.getContext1());
    } else {
        vo.setContent(e.getContent());
    }
    return vo;
}

标签:COMMENT,语言,language,实现,系统,DEFAULT,vo,int,NULL
From: https://www.cnblogs.com/w-blogg/p/18328611

相关文章

  • 系统稳定性与防御策略
      在全球网络环境日益复杂的背景下,近期的一次全球性“微软蓝屏”事件再次提醒我们,网络安全与系统稳定性问题不容忽视。本文将从事件背景、问题解析、建议提出和实际应用案例四个方面,探讨如何构建更加稳固和安全的网络环境。  一、事件背景  近期,一次由微软视窗系统软件更......
  • Django Web开发:构建强大RBAC权限管理系统的实战指南
    文章目录前言一、rbac基于角色的权限管理1.acl基于用户的权限管理2.rbac基于角色的权限管理二、应用示例1.配置角色资源a.分析表b.核心逻辑c.使用transfer在前端实现资源配置d.页面效果2.登录时获取对应权限a.员工登录b.中间件c.前端请求d.效果图3.前端-路由守卫......
  • 【QT】QT 系统相关(事件、文件、多线程、网络、音视频)
    一、Qt事件1、事件介绍事件是应用程序内部或者外部产生的事情或者动作的统称。在Qt中使用一个对象来表示一个事件。所有的Qt事件均继承于抽象类QEvent。事件是由系统或者Qt平台本身在不同的时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发......
  • Memcached跨平台性能解码:操作系统对缓存速度的影响
    Memcached跨平台性能解码:操作系统对缓存速度的影响在分布式缓存系统的设计和部署中,Memcached因其轻量级和高性能而成为首选方案之一。然而,Memcached在不同操作系统上的性能表现可能会有显著差异。本文将深入探讨这些差异的原因,并提供实际的测试方法和代码示例,帮助系统架构......
  • Trends in Plant Science | 植物生物学中的大语言模型
    分享一篇来自南洋理工大学MarekMutwil团队发表在《TrendsinPlantScience》上有关植物生物学方向的大语言模型综述:Largelanguagemodelsinplantbiology。生物序列本身就是一种自然语言,与LLM是天作之合,实际上生物大模型已有很多开发,只是解释太过复杂,大多是学术报道。这方面......
  • R语言随机森林RandomForest、逻辑回归Logisitc预测心脏病数据和可视化分析|附代码数据
    全文链接:http://tecdat.cn/?p=22596最近我们被客户要求撰写关于预测心脏病的研究报告,包括一些图形和统计输出。本报告是对心脏研究的机器学习/数据科学调查分析。更具体地说,我们的目标是在心脏研究的数据集上建立一些预测模型,并建立探索性和建模方法。但什么是心脏研究?研究大纲......
  • R语言分布滞后非线性模型(DLNM)研究发病率,死亡率和空气污染示例|附代码数据
    全文下载链接:http://tecdat.cn/?p=21317最近我们被客户要求撰写关于分布滞后非线性模型(DLNM)的研究报告,包括一些图形和统计输出。本文提供了运行分布滞后非线性模型的示例,同时描述了预测变量和结果之间的非线性和滞后效应,这种相互关系被定义为暴露-滞后-反应关联数据集包含1987-......
  • BI-LSTM+Attention 的 tensorflow-1.14 实现
    这里只是用简单例子演示关于self-attention的逻辑,判断一句话的情感是正面或者是负面,具体原理自己百度即可。importtensorflowastfimportnumpyasnptf.reset_default_graph()#词向量维度dim=2#隐层大小hidden=5#时间步大小step=3#情感类别正面......
  • 操作系统的进程与CPU资源
    1、时间片(TimeSlice):是一种用于多任务处理和进程调度的机制,是分时操作系统分配给每个正在运行的进程微观上的一段CPU时间。2、时间片轮转调度:是操作系统调度策略的一种,其核心思想是每个进程循环的在CPU资源进行执行,微观上每个进程都可以在一定时间片内独占CPU资源进行执行。......
  • java使用google开源工具Thumbnailator实现图片压缩
    Thumbnailator,一款google使用的开源的图片压缩工具类。github地址:https://github.com/coobird/thumbnailator优点:1、压缩程度可控制,想压缩成多小就多小。2、压缩之后图片尽可能的不失真。3、压缩速度要快。4、代码简单,依赖较少。5、可以实现对图片到编辑,如如旋转,裁切,加......