java自定义序列化_Java中的自定义国际化(i18n)

java自定义序列化

国际化(i18n)在我们的软件项目中非常重要。 它主要带来以下好处:
  • 将UI字符串外部化为代码文件以外的外部文件,以及易于管理的UI内容。
  • 支持多种语言。
在这篇文章中,将为Eclipse和Java项目提供一个i18n的简短实用示例,包括定制i18n机制以具有更可维护和封装的方法。

  • 首先,我们必须具有一些类,其中包括在用户界面上显示的字符串值:
UI类示例
  • 然后,我们必须有一个i18n实用程序类的实例。 通常,这是Java中的两种之一:
    • java.util.ResourceBundle(不需要spring依赖项)
    ResourceBundle初始化
      • org.springframework.context.support.ResourceBundleMessageSource(具有多个单词外部化功能(稍后将介绍))。
      ResourceBundleMessageSource初始化
      由于本教程的扩展功能,我们将在本教程中使用ResourceBundleMessageSource实例。

      • 然后右键单击该类,然后选择“源”->“外部化字符串”。 将显示如下窗口。 在右列中输入字符串的键。 键将以默认的类名开始。 密钥在系统上必须唯一,因此应应用预定义的模式(例如<class_name>。<type_id>。<description>)
      Eclipse字符串外部化窗口
      • 单击下一步–>完成,您的字符串将如下更改。 还将自动创建Messages类和externalizer属性文件(右侧的自动注释是eclipse的标记,这意味着
        “外部化”):
      带外部字符串的类
      自动创建的i18n实用程序和属性类
      • 至此,外部化已完成。 但是我们需要i18​​n,并且我们必须支持多种语言。 为此,请定义另一个带有位置标记的属性文件(例如“ EN”,“ FR”,“ TR”等),复制键并用新语言填充值,并在适当的位置/位置设置资源包的语言环境您的应用程序(例如在设置窗口或登录页面上):
      每种语言有多个属性文件
      Messages_tr_TR.properties文件内容
      为资源包设置新的语言环境
      • 作为最后一步,我们要封装i18n实用程序类,还希望使用功能更强大的i18n实用程序(例如
        ResourceBundleMessageSource )。 为此,请如下定义一个类:
      定制和封装的消息源(i18n实用程序)类
      • 最后,将“ Messages.getString”语句更改为新实例:
      具有外部化字符串的类(具有定制的i18n实用程序类)
      • 您也可以使用您的类将参数化的字符串外部化。 其用法如下:
      从i18n实用程序获取参数化的字符串
      在属性文件中定义参数化的字符串

      参考: Java的定制国际化(i18n)–来自我们JCG合作伙伴的分 步指南   Cagdas Basaraner在CodeBuild博客上。


      翻译自: https://www.javacodegeeks.com/2012/02/customized-internationalization-i18n-in.html

      java自定义序列化

      本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/357405.shtml

      如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

      相关文章

      让一个文字在背景图片水平居中的方法

      最近工作中在做那个可视化大屏&#xff0c;图中用到了大量的装饰图片&#xff0c;下面看一下文字怎么在图片中水平居中。 这个方法比较好用&#xff0c;其他的方法嵌入太多可能不是特别好使&#xff0c;尤其嵌入到多个框架中。 html <!DOCTYPE html> <html><h…

      Objective-C中,ARC下的 strong和weak指针原理解释

      Objective-C中&#xff0c;ARC下的 strong和weak指针原理解释 提示&#xff1a;本文中所说的"实例变量"即是"成员变量"&#xff0c;"局部变量"即是"本地变量" 一、简介 ARC是自iOS 5之后增加的新特性&#xff0c;完全消除了手动管理内…

      elementui去掉表格所有边框

      /deep/.el-table {border: 0;th,tr,td{border: 0;background-color: #fff;}&::before {height: 0px;}&::after {width: 0;}.el-table__fixed:before {height: 0;}}

      前端-html、css

      HTML一、html简介超级文本标记语言是标准通用标记语言下的一个应用&#xff0c;也是一种规范&#xff0c;一种标准&#xff0c;它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件&#xff0c;通过在文本文件中添加标记符&#xff0c;可以告诉浏览器如…

      在Java EE组件中使用骆驼路线

      从现在开始我一直在与Camel合作&#xff0c;我真的很喜欢它的简单性。 在Java EE之上始终使用它一直是一个挑战&#xff0c;而我最近发表的有关如何做到这一点的演讲之一以及Java EE中引导Camel的不同方法实际上建议使用WildFly-Camel Subsystem 。 在正在进行的系列文章中&…

      webpack入门

      遇到问题首先到github项目的Issues中&#xff0c;检索一下相关问题&#xff0c;比在百度谷歌上直接搜索非官方解决方案好得多。 1、npm init 生成 package.json 2、npm i -D webpack 生成 # npm i -D 是 npm install --save-dev 的简写&#xff0c;是指安装模块并保存到 packa…

      接口自动化 基于python+Testlink+Jenkins实现的接口自动化测试框架

      基于pythonTestlinkJenkins实现的接口自动化测试框架 by:授客 QQ&#xff1a;1033553122 博客&#xff1a;http://blog.sina.com.cn/ishouke 欢迎加入软件性能测试交流QQ群&#xff1a;7156436 目录 1、 开发环境... 1 2、 主要功能逻辑介绍... 1 3、 框架…

      this的指向

      箭头函数&#xff1a;定义时所在的作用域&#xff08;tip:继承而来 函数作用域 &#xff09; 普通函数&#xff1a;指向调用它的对象 箭头函数体内的 this对象&#xff0c;就是定义时所在的对象&#xff0c;而不是使用时所在的对象 1、箭头函数没有自己的this&#xff0c;ar…

      事关每个程序员的职业规划与履历

      今天&#xff0c;甚至过去&#xff0c;大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程&#xff0c;还是已经奋斗多年&#xff0c;以下内容都会对您的职业生涯有所助益。 目录 几条重要的职业规划提示。 1. 学习的步伐不停止 2. 学会问、学会听&#xff0c;学会学习…

      程序员应该如何规划自己的人生与书写履历?

      今天,甚至过去,大多数人都是由自己来设计他们的职业生涯的。 无论你正要启程,还是已经奋斗多年,以下内容都会对您的职业生涯有所助益。几条重要的职业规划提示。1. 学习的步伐不停止 古人说,活到老,学到老。终身学习应该是您的座右铭。 世界在不断变化,每个人都在寻找各…

      浅谈多线程——NSThread

      上一篇文章中我们大致了解了GCD的模式和方法&#xff0c;在iOS开发中除了GCD之外&#xff0c;还有NSThread和NSOperation两种多线程方式。 1.NSThread - a - 使用NSThread开辟多线程进行子任务处理&#xff1a;类方法和初始化方法 使用类方法不需要创建对象就可以直接开辟多线程…

      2021年程序员可以做哪些副业?

      哈喽&#xff0c;大家好&#xff0c;我是孙叫兽&#xff0c;本期内容给大家分享程序员搞副业的一期节目&#xff0c;欢迎大家一起学习。 1.程序员为什么要做副业&#xff1f; 副业意味着自由 时至今日&#xff0c;仍然有一大群程序员还天真地认为从事副业是一种压迫。但事实是&…

      学习Apache Camel –实时索引推文

      在大多数软件开发项目中&#xff0c;有一点需要使应用程序开始与其他应用程序或第三方组件通信。 无论是发送电子邮件通知&#xff0c;调用外部api&#xff0c;写入文件还是将数据从一个地方迁移到另一个地方&#xff0c;您都可以推出自己的解决方案或利用现有框架。 对于Jav…

      【坑】执行Consumer的时候发生java.net.UnknownHostException错误

      【时间】&#xff1a; 2016/4/8 17:30 【问题】&#xff1a; kafka执行Consumer实例的时候&#xff0c;发生了一下错误。 kafka配置文件server.properties如下&#xff1a; zookeeper配置文件zoo.cfg内容如下&#xff1a; consumer的实现代码如下&#xff1a; 其中静态类的定义…

      如何上架自己的应用到各大应用商店?

      大家好&#xff0c;我叫孙叫兽&#xff0c;本期给大家分享的内容是如何上架自己的应用到应用商店&#xff0c;感谢大家的阅读&#xff01;1.上架各大应用商店需要准备哪些材料&#xff1f;上架各大安卓应用商店&#xff08;腾讯应用宝、阿里应用商店、百度手机助手、华为应用市…

      时间复杂度和空间复杂度[数据结构]

      參考&#xff1a;本文为小甲鱼教学视频的学习笔记。 1、为什么要学习时间复杂度和空间复杂度&#xff1f;你说一个算法好另外一个算法不好&#xff0c;有什么推断根据&#xff1f;哪个算法效率高&#xff1f;怎么推断&#xff1f;那么就要学习时间和空间复杂度了。思考&#xf…

      js编码解码decodeURI()与decodeURIComponent()的区别

      区别&#xff1a; encodeURIComponent()对/?:&$,#进行编码&#xff0c;encodeURI()不会 如果url的query和path传参中含有这些字符会被不正确的截断&#xff0c;拿到的参数会是错误的&#xff0c;一般都会用encodeURIComponent()进行编码、decodeURIComponent进行解码 en…

      gitlab将分支代码合并到master上

      1、首先在test分支上进行git add .git commit -m "test"git push 2、切换到master上git checkout mastergit merge test git push

      堆栈跟踪 堆栈跟踪_过滤日志中无关的堆栈跟踪行

      堆栈跟踪 堆栈跟踪我喜欢堆栈痕迹。 不是因为我喜欢错误&#xff0c;而是因为发生错误的那一刻&#xff0c;堆栈跟踪是无价的信息源。 例如&#xff0c;在Web应用程序中&#xff0c;堆栈跟踪向您显示完整的请求处理路径&#xff0c;从HTTP套接字到过滤器&#xff0c;Servlet&am…

      VUE使用vue-seamless-scroll自动滚动表格数据,对表格数据排序无效的解决办法

      使用vue-seamless-scroll循环表格数据&#xff0c;建议使用v-for,ul li 的形式便于操作属性&#xff0c;elemengt ui table可能不好处理兼容性问题及属性设置&#xff0c;尤其是一个页面添加多个表格及效果。 VUE : 排序 this.$refs.seamlessScroll.reset() 效果图