1、多语系统介绍

多语系统用于向不同的用户展示不同的语言,比如大陆用户习惯使用简体,港台用户习惯繁体,美国用户习惯英语;用户可以根据自己的喜好自由切换语言。

下面来看看提供多语功能的产品:

然而这些都是通过开发多个页面来支持多语功能的,这种方案存在一些问题:维护性差(有几种语言就得维护几套页面),扩展性差(新支持一种语言又得开发一套新页面)。

2、多语系统demo

我们可以用多语系统代替以上方案,可以参考multilanguage-web-demo项目(https://github.com/xionghuiCoder/multilanguage-web-demo),启动该web项目(直接运行该项目下的JettyStart.java即可),然后访问http://127.0.0.1:8080/即可体验多语功能:

该多语demo使用ajax动态获取多语资源,并用DOM操作切换多语值;所以只用维护一个页面,扩展新语言时只用配置新的资源文件即可;既提高了维护性又提高了扩展性。

3、多语系统接口demo

当多语系统变得复杂,需要提高性能、提供容错机制时,可以参考multilanguage-interface-demo项目(https://github.com/xionghuiCoder/multilanguage-interface-demo)。

该demo提供六种接口:

1、http://127.0.0.1:8080/multilanguage/all_tips?relative_path=language&langtype=english&folder_name=01&file_name=test_annotation.properties:

{

0001: "test/1 annotation",

0002: "test",

0003: "test",

0004: "test//4 annotation",

0005: "test///5 annotation",

0006: "test//",

0007: "test//",

0008: "test8 annotation",

0009: "test/9 annotation",

0010: "test"

}

2、http://127.0.0.1:8080/multilanguage/tip?relative_path=language&langtype=english&folder_name=01&file_name=test.properties&langcode=0001 :

"test"

3、http://127.0.0.1:8080/multilanguage/tips?relative_path=language&langtype=english&folder_name=01&file_name=test.properties&langcodes=0001|0002 :

{

0001: "test",

0002: "begin{0}{1}{2}{3}"

}

4、http://127.0.0.1:8080/multilanguage/params_tip?relative_path=language&langtype=english&folder_name=01&file_name=test.properties&langcode=0002&params=a|b :

"beginab{2}{3}"

5、http://127.0.0.1:8080/multilanguage/params_tips?relative_path=language&langtype=english&folder_name=01&file_name=test.properties&langcodes=0002|0003&params=a|b :

{

0002: "beginab{2}{3}",

0003: "ab{2}{3}end"

}

6、http://127.0.0.1:8080/multilanguage/paramses_tips?relative_path=language&langtype=english&folder_name=01&file_name=test.properties&langcodes=0002|0003&paramses=a|b,c|d :

{

0002: "beginab{2}{3}",

0003: "cd{2}{3}end"

}

基于multilanguage-interface-demo可以开发分布式或者集群的多语系统。

4、multilanguage

multilanguage是一个多语开发工具包;multilanguage-web-demo和multilanguage-interface-demo都是基于multilanguage开发的。multilanguage主要用于管理多语资源的缓存,它使用软引用和弱引用缓存多语值,并针对资源的访问次数维持一个最大堆和最小堆,当内存不足时会释放访问次数很少的一部分资源;这样既保证了性能也能防止内存泄露。

java菜单栏支持多种语言,多语工具包multilanguage(java版)相关推荐

  1. python实现:命令行翻译.string 和 .xml 文件 -- mkTranslate:支持多种语言的互译

    [github传送门] 功能 翻译文本文件 翻译.strings文件 翻译.xml文件 翻译 文本 支持谷歌翻译 支持有道翻译 支持 i18ns.com 聚合翻译 会自动检测当前网络情况,从而决定使用 ...

  2. Android 输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译

    输入英语单词实现(post网络请求)在线翻译,支持多种语言翻译 首先在xml文件上界面布局 采用LinearLayout来布局界面,并添加一个按钮来进行网络请求翻译,在添加一个EditText来输入我 ...

  3. c常用算法程序集_10万赞的AI算法集:含python,java,C,C++多种语言

    先声明这篇文章的基础来自网络,问题是,文章只说有这么一个githab账号,没有给地址,我也是搜了半天才找到,发现这个账号下有很多种语言的算法实现,直接上图: 上面有地址,不能加链接,抱歉 所有算法都在 ...

  4. JS实现支持同一网站支持多种语言(即不同地区用户)

    背景:如果台湾(中文繁体),大陆(中文简体),英国(英语)三个地区的用户用到同一个网站. 解决方案: 3个war包部署到三个服务器上 同一个war包部署,在一套系统里支持多语言(一个HTML/JSP页 ...

  5. java图形界面包_抽象窗口工具包( )是java提供的建立图形用户界面GUI的开发包

    抽象窗口工具包( )是java提供的建立图形用户界面GUI的开发包 劈指是用大指弹奏的.A:对B:错 要保证权利与义务相对等,寿险保费的计算就必须遵循收支平衡的原则.A:对B:错 抽样平均误差的实质是 ...

  6. 《AI上字幕》基于openAI研发的whisper模型,语音(视频)一键转文本/字幕/带时间轴/支持多语言/自带翻译《桌面版教程》

    简介: OpenAI的chatGPT非常火爆,其实OpenAI旗下的另一个模型实力也十分强大,它就是开源免费的Whisper语音转文本模型,目前为止它是较为顶尖的语音转文本模型 当前github上也有 ...

  7. java更好的语言_五个使Java变得更好的功能

    java更好的语言 我偶然发现了Brian Goetz 提出的有关Java数据类的建议 ,立即意识到我也对如何使Java更好地成为一种语言有一些想法. 我实际上有很多,但这只是五个最重要的简短列表. ...

  8. DRG/DIP分组器HIS、电子病历、病案等系统调用接口说明,支持java c#等多种语言,有c#代码参考

    HIS.电子病历.病案系统 DRG/DIP分组器调用接口说明 标准restful webservice 支持java c#等语言 沈阳征先科技有限公司 分组器调用说明: 输入参数.输出参数为JSON串 ...

  9. iOS开发:国际化之app支持多种语言切换

    iOS国际化:如何切换语言 1.国际化就是将标签.提示信息等信息放到资源文件中,随着程序需要的语言提供对应的资源文件.以key/value对存储,每个资源的key值不变,value随着需求改变. 一般 ...

最新文章

  1. Binary Search O(log n) algorithm to find duplicate in sequential list?
  2. C++的强制类型转换
  3. Oracle 性能调优 概述
  4. python中字典的键必须是可以哈希的对象
  5. html5 box布局,使用Flexbox打造响应式网页网格布局
  6. 文字加减前后缀lisp_LISP 图层前后缀_显示图层的Lisp程式
  7. 前馈神经网络_深度学习基础理解:以前馈神经网络为例
  8. 深大自考本科所需课程
  9. kafka笔记——kafka启动
  10. Miller Rabin算法:大质数判断
  11. PHP计算计算时间差,php中计算时间差的几种方法
  12. js实现类似jquery基础功能 简单选择器/事件/属性
  13. 浅谈FMA与SMA(test)
  14. poj 1328 贪心+qsort
  15. 使用jsoup爬虫超时分析与处理
  16. windows安装和配置阿帕奇+PHP服务器
  17. win10绿联usb转串口_win10 usb转串口驱动-win10 usb转串口sb转驱动下载 PL2303 最新版 - 河东下载站...
  18. Stata+PSM:倾向得分匹配分析简介
  19. 全铝合金家居零甲醛家具展示
  20. qq第三方登录的调用

热门文章

  1. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
  2. List、Map、Set三个接口,存取元素时,各有什么特点
  3. 写了个关于tomcat项目部署脚本 shell
  4. (转载)C# Process.Kill() 拒绝访问(Access Denied) 的解决方案
  5. 十、Python-模块
  6. 微服务架构的核心要点和实现原理解析
  7. 三角传输的在链路均衡项目中的灵活应用
  8. 【C++】日期类+日期万年历+日期计算器
  9. 关于JDK中的集合总结(二)
  10. #includeiostream与#includeiostream.h的区别