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,一经查实,立即删除!

      相关文章

      如何科学高效的学习Web前端开发?

      近几年,web前端开发工程师越来越火了,薪资待遇也快接近后端开发工程师了。很多准备入行前端开发工程师的小伙伴们,不知道准备得怎么样了呢? 有的朋友在想方设法的学习,争取在年后的金九银十能靠实力找到一份满意的工作!有的小伙伴在准备准备回家过个团圆年,来年再战!还有…

      Apache Drill:如何创建新功能?

      Apache Drill允许用户使用ANSI SQL探索任何类型的数据。 这很棒&#xff0c;但是Drill的作用远远不止于此&#xff0c;它允许您创建自定义函数来扩展查询引擎。 这些自定义功能具有任何Drill基本操作的所有性能&#xff0c;但是允许执行这些性能会使编写这些功能比您期望的要复…

      Json的访问

      JSON&#xff1a;JavaScript 对象表示法&#xff08;JavaScript Object Notation&#xff09; 写法&#xff1a;名称/值对 访问方法&#xff1a;可以通过 data.名称 访问&#xff0c;也可以通过 data[名称] 访问 注意&#xff1a;名称加不加引号都可以&#xff0c;但是加引号安…

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

      最近工作中在做那个可视化大屏&#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;}}

      cdi 2.7.5_集成测试CDI 1.0和Spring 3.1中的作用域bean

      cdi 2.7.5在这篇博客文章中&#xff0c;我描述了如何在Spring和CDI中使用作用域bean进行集成测试。 一切都用小代码示例进行说明。 使用范围进行集成测试并不是特别容易。 想象一下存在于会话范围内的bean&#xff0c;例如UserCredentials 。 在集成测试中&#xff0c;通常没有…

      工作流编写教程

      介绍 ONES中使用了flowchart.js作为前端展示&#xff0c;并且扩展了flowchart.js的流程描述语言。flowchart.js 参见&#xff1a; https://github.com/adrai/flowchart.js 描述语言分为三部分&#xff0c;使用\n\n(空一行)作为分割&#xff0c;分别是节点定义、执行流程描述、节…

      elementui设置表头与表格(左对齐,背景颜色,字体大小等)

      headerStyle控制表头&#xff0c;finalCellStyle控制表格 html <div class"table1"><el-tablesize"mini":data"tableDataLeft"borderstripe:default-sort"defaultSort":max-height"tableMaxH":header-cell-style&…

      使用LocalTestServer对HTTP调用进行单元测试

      有时候&#xff0c;当您正在对远程服务器进行HTTP调用的单元测试代码时。 您可能正在使用诸如ApachesHttpClient或Spring的RestTemplate之类的库。 当然&#xff0c;您不想依靠远程服务进行单元测试。 除了涉及的开销&#xff08;记住单元测试应该是快速的&#xff09;之外&am…

      PHP header函数大全

      PHP header函数大全 header(Content-Type: text/html; charsetutf-8); header(Location: http://www.php-note.com/); <?php // fix 404 pages: header(HTTP/1.1 200 OK);// set 404 header: header(HTTP/1.1 404 Not Found);// set Moved Permanently header (good for re…

      JS提升(hoisting)

      近期在学习js&#xff0c;了解到js的一个名词&#xff0c;就是hoisting&#xff0c;进而了解了下js的解析机制 详情可参考&#xff1a;http://www.runoob.com/js/js-hoisting.html js的解析过程分为两个阶段&#xff1a;编译阶段和执行阶段 编译阶段&#xff1a;即我们常说的…

      【Java从入门到天黑|01】SE入门之Java的前生今世

      大家好,我是孙叫兽,微信公众号【孙叫兽杂谈】,本期给大家分享一下JavaSE的入门部分之Java的前生今世。 Java : 一个帝国的诞生 C语言帝国的统治 现在是公元1995年, C语言帝国已经统治了我们20多年, 实在是太久了。 1972年, 随着C语言的诞生和Unix的问世, 帝国

      前端-html、css

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

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

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

      【Java从入门到天黑|02】SE入门之Java基础

      大家好,我是孙叫兽,微信公众号【孙叫兽杂谈】,本期给大家分享一下JavaSE的入门部分之Java基础 目录 注释 标识符 数据类型 类型转换 变量,常量 运算符

      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、 框架…

      PC钉钉无法输入汉字的解决办法

      问题描述 新公司办公OA使用的钉钉&#xff0c;今天想给设计师发消息呢&#xff0c;发现私活输入不了汉字&#xff0c;早上还行呢&#xff0c; 过程尝试 在百度中可以输入汉字&#xff0c;在钉钉中不行。 解决办法 退出钉钉&#xff0c;重新进入&#xff0c;可以输入汉字了。如果…

      this的指向

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