当前位置: 首页 > 编程日记 > 正文

struts学习笔记三-国际化

在程序设计领域,人们把能够在无需改写有关代码的前提下,让开发出来的应用程序能够支持多种语言和数据格式的技术称为国际化技术。

国际化简称为 i18n,根据internationalization简化而来。

本地化简称为l10n,根据localization简化而来,与国际化对应。

struts2框架从一开始就是用java内建的国际化来实现国际化。

在程序中一个特定的语言由三部分组成,语言、国家、变体,一般的系统变体会很少考虑。语言就是指汉语、英语等,国家指中国、美国、英国等,这两部分组合起来就是一个标准语言,比如中国汉语,美国英语,英国英语,日本日语等,美国日语这种组合方式也是可以的,但是没人会这样做,没有任何实际意义。程序中为各种语言和国家定义了简称,在国际标准ISO中,中文简体是zh,中国是CN,暂且不考虑中国的其他语言形式。

要实现struts国际化,最主要的就是配置properties文件和struts.xml。

下面以login,username,userpassword为例,如果系统呈现中文,那么这三个字就是"登录","用户名","密码",呈现美式英语就是"Login","User Name","User Password",在程序中,需要将这些信息放入一个properties文件中,分别是message_zh_CN.properties,message_en_US.properties,格式:自定义部分_语言简写_国家简写.properties。

                              message_zh_CN.properties

login登录
username用户名
password密码

 message_en_US.properties

loginLogin
usernameUser Name
passwordUser Password

注:打开中文properties文件源代码会看到,编码是字节形式存在的,因为中文是特殊字符,而java内部是使用Unicode存储的,所以这里会发声转换。

在文件名命中,message是自定义的,然后再struts.xml中需要配置这些文件,在xml增加下面常量

1 <constant name="struts.custom.i18n.resources" value="message"/>

这样就配置了两个properties的头部文件,置于后面部分是不用配置的,页面显示时会选择一个message开头的文件,在后面会做解释。

在页面使用验证国际化效果,jsp页面代码:

<s:property value="${getText('login')}"/>               //显示结果为"登录",struts通过ActionSupport类的getText方法寻找属性文件中的login
<s:text name="login"/>                                  //显示结果为"用户名",相当于上一句。
<s:textfield name="username" label="${getText('username')}"/> //显示"用户名"
<s:textfield name="username" key="username"/> //key专门去寻找配置的属性,

实现国际化Action类必须继承ActionSupport获得struts内建的国际化支持,通过ActionSupport的方法getText(String key)可以获得对应的国际化信息。如果使用默认的国际化,服务器在哪里就会使用哪里的语言,在美国就会使用美国英语,在中国就会是简体中文。

另一种常用的方式是由用户指定,比如某网站有中英文可以选择,点击中文,那么将使用message_zh_CN.properties中的配置,点击英文将启用message_en_US.properties中的配置,这样就能做到中英文切换,达到国际化的效果。

转载于:https://www.cnblogs.com/CHSelf/p/3526063.html

相关文章:

TNS-01201: Listener cannot find executable /u01/oracle/bin/extproc for SID orcl Listener failed to

文章目录问题描述原因解决过程结果问题描述 原因 listener.ora文件中ORACLE_HOME的路径错了&#xff0c;导致按照这个路径找不到extproc 解决过程 首先去找ORACLE_HOME的路径 先切换为root用户&#xff08;这样查找时不会有文件夹进不去&#xff09; 输入指令 su root然后…

与技术无关的书单--你可以笑着说有些是“精神鸦片”

??? 转载于:https://www.cnblogs.com/crmhf/p/3823130.html

隐马尔科夫模型HMM(一)HMM模型

2019独角兽企业重金招聘Python工程师标准>>> 隐马尔科夫模型&#xff08;Hidden Markov Model&#xff0c;以下简称HMM&#xff09;是比较经典的机器学习模型了&#xff0c;它在语言识别&#xff0c;自然语言处理&#xff0c;模式识别等领域得到广泛的应用。当然&am…

stella forum v 2.0 的两款主题样式

stella forum v 2.0 的开发工作已经快结束啦&#xff0c;现在我正在加紧努力&#xff0c;想在本周内完成&#xff0c;因为下个星期我可能会不在学校。 下面公开一下我在做的两款主题&#xff0c;第一个是以前v1 版用的经典论坛的样式&#xff0c;而下面的第二款来自一个我很喜欢…

startup mount报错:invalid value given for the diagnostic_dest init.ora parameter

问题描述 解决思路 找到错误控制信息输出路径下的init文件 &#xff08;我的不知道为什么叫做initORCL.ora&#xff09; 将其中的ORACLE_BASE修改为正确路径 解决过程 输入指令 vi /db/app/oracle/product/11.2.0/dbs/initORCL.ora将其中三个涉及到ORACLE_BASE的地方该为正…

java的常用包

java.applet&#xff1a; 包含一些用于创建Java小应用程序的类。运行于html页面中。java.awt &#xff1a;包含一些用于编写与平台无关的图形界面&#xff08;GUI&#xff09;应用程序的类。java.io&#xff1a;包含一些用作输入输出&#xff08;I/O&#xff09;处理的类。java…

jQuery中的 $.ajax的一些方法

1. $(document).ajaxConplete(function(){}) 1.8版本之后&#xff0c;只能绑定到document元素上&#xff1b;1.8版本之前&#xff0c;可以帮到其他元素上 当$.ajax执行完成之后&#xff0c;执行该函数。如果有多个$.ajax请求&#xff0c;就会执行多次&#xff1b;如果有两个或多…

freebsd command

ps -aux netstat -m netstat 1 top pkg_info systat -vm systat -if dmesg netstat -an unix/linux指令集 (简体) (原作者: 农夫) http://www.darkcc.org/fmandarkcc/index.php 转载于:https://www.cnblogs.com/funpower/archive/2005/07/09/189198.html

hung-yi lee_p11_逻辑回归

文章目录step1 Function Setstep2 goodness of a functionstep3 Find the best functionwhy not Logistic Regression Square ErrorDiscriminative v.s. Generative结论&#xff08;判别模型的优势&#xff09;解释-生成模型为何稍逊色生成模型的优势多分类模型逻辑回归的局限…

自定义状态切换按钮

最近在做一个项目&#xff0c;一个界面的按钮UI给画成了这样&#xff08;默认状态是蓝色的然后触摸后变成灰色的&#xff09; UI效果然后本着给低版本系统APP适配的职业素养&#xff08;其实是不想画这种按钮&#xff09;&#xff0c;想让UI兄弟给将图标改成整个按钮效果的图片…

操作SQLite数据库

本文摘自&#xff1a; http://docs.blackberry.com/en/developers/deliverables/25108/Creating_and_deleting_SQLite_databases_1219776_11.jsp 创建和删除 SQLite 数据库 您可以创建临时或永久数据库。 CREATE TABLE 语句可用于创建永久&#xff08;或常规&#xff09;数据库…

刚开始Windows Mobile的开发,请大家多多关照

刚开始学习Windows Mobile的开发&#xff0c;现在正在学习WML和WAP的网站制作&#xff0c;请大家多多关照。转载于:https://www.cnblogs.com/czha2002/archive/2005/07/12/191129.html

STARTUP报错:ORA-00205: error in identifying control file, check alert log for more info

问题描述 startup nomount没有异常 startup mount则出现异常&#xff0c;说明控制文件出错

Java基础知识回顾之六 ----- IO流

前言 在上一篇文章中&#xff0c;回顾了Java的多线程。而在本篇文章中主要介绍Java IO的相关知识。 IO的介绍 什么是IO&#xff1f; IO的名称又来是Input与Output的缩写&#xff0c;也就是输入流和输出流。输入流用于从源读取数据&#xff0c;输出流用于向目标写数据。 可以从下…

选择、分组、引用,指定匹配的位置

正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写…

用Graphviz来画图 1

做了一个系统&#xff0c;通过配置来完成一些简单或者复杂的产品逻辑&#xff0c; 系统投入使用以后&#xff0c; 产品人员在上面配置了不少产品&#xff0c;产品的流程都是存放在一个xml里面&#xff0c;前几天突然有个想法&#xff0c; 打算把这个流程通过图形表示出来&#…

hung-yi lee_p12_深度学习简介

文章目录三个步骤step 1fully connect feedforward network神经网络原理从非DL到DL什么变了step 2step 3backpropagation注意这是篇头重脚轻的博客。大部分都在讲step1&#xff0c;2、3是飞快过去。三个步骤 step 1 许许多多的逻辑回归&#xff08;神经元&#xff09;模型组成…

openGL学习笔记(1)——常用方法原型解释

1、初始化&#xff0c;设置背景色 void glClear(int mask) 清除缓存 实參含义&#xff1a;GL10.GL_COLOR_BUFFER_BIT 清除颜色缓存 GL10.GL_DEPTH_BUFFER_BIT 清除深度缓存 希望同时清除多个缓存&#xff0c;将实參用或&#xff08;&#xff5c;&#xff09;连接即可 void …

让VBCommenter支持自定义用户名

在使用VBCommenter生成XML格式的注释时&#xff0c;发现在<history></history>标签内的用户名是登陆系统的用户名&#xff0c;而我们的用户名一般是一些简称或其它英文名等&#xff0c;这样在注释中想记录开发人员的真实姓名就必须手工修改&#xff0c;颇不方便。是…

模拟器抓取https方法

说明&#xff1a;为了解决安卓手线上不能抓取https请求&#xff0c;以下整理通过模拟器抓取https请求方法如下&#xff1a;前置条件&#xff1a;安卓模拟器1、夜神抓包工具&#xff1a;fiddler、charles不要安装证书 第一步安装模拟器 可以按照夜神模拟器步骤省略 第二步de.rob…

hung-yi lee_p15_机器学习深层网络比浅层网络好在哪

文章目录疑问-为什么要那么多层简单解释以语音识别为例语音识别基础GMM的方法的缺陷深度学习的高明之处回到问题-为什么一层能解决还要多层从电子工程(EE)角度解释一个电路的例子日常角度解释剪窗花Deep Learning的优点适用于参数少的情况End-to-end Learning面临复杂问题疑问-…

从WEB SERVICE 上返回大数据量的DATASET

前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然&#xff0c;除了显示在页面上以外&#xff0c;有可能还要用这些数据在客户端进行其它操作。查遍了网站的文章,问了一些朋友,也找了一些解决方法. 众所周知,如果不用其它方…

ORACLE解决登陆em状态暂挂方法

1、找到oracle安装目录中db_1/计算机名_orcl/sysman/config/emd.properties &#xff0c; 用记事本打开emd.properties&#xff0c;在emd.properties文件 最后一行 的agentTZRegionGMT改为 agentTZRegionAsia/Chungking2、在dos 窗口输入 set oracle_sidorcl emctl stop dbcon…

VBA注释临时

Sub shishi() 按ABCDE为多选题定义答案; A&#xff0e;沙利度胺 B&#xff0e;异烟肼 C&#xff0e;利福平 d.氯法齐明 E.氨苯砜 46&#xff0e;各型麻风病的首选药物为(D) A&#xff0e;沙利度胺 B&#xff0e;异烟肼 C&#xff0e;利福平 d.氯法齐明 E.氨苯砜 45&#xf…

hung-yi lee_p13_反向传播

文章目录背景链式法则计算思路梯度计算过程/反向传播总结背景 回顾神经网络中计算梯度&#xff0c;更新梯度的过程 这里面的问题是&#xff0c;梯度是一个上百万维的向量&#xff0c;计算出来并非易事 这就引出了反向传播 可以说反向传播是梯度下降在神经网络中的实现。 链式…

介绍两个非常好用的Javascript内存泄漏检测工具

内存泄漏对开发者来说一般很难检测因为它们是由一些大量代码中的意外的错误引起的&#xff0c;但它在系统内存不足前并不影响程序的功能。这就是为什么会有人在很长时间的测试期中收集应用程序性能指标来测试性能。 最简单的检测内存泄漏的方式是用任务管理器检查内存使用情况。…

全局化和本地化

区域性En 英语en-CA 加拿大英语af-ZA 南非荷兰语eu 巴斯克语kn-IN 埃纳德语 印度tr 土耳其语Cy-uz-UZ 乌兹别克语 西里尔字母表Lt-uz-UZ 乌兹别克语 拉丁文字母表zh-CHT 繁体中文zh-CHS 简体中文设置当前区域性System.Threading.Thread.CurrentThread.CurrentCulture new Sys…

lvm讲解和磁盘故障案例

一&#xff1a;lvm讲解1.准备磁盘分区fdisk /deb/sdbn创建三个新分区&#xff0c;分别为1Gt改变分区类型为8e2.pvcreate /dev/sdb1yum install -y lvm [rootcentos7-1 ~]# yum install -y lvm 已加载插件&#xff1a;fastestmirror base …

hung-yi lee_p17_卷积神经网络

文章目录背景&#xff1a;卷积层池化层摊平KerasCNN学到了什么Deep DreamDeep Style怎么把CNN用在下围棋上为什么可以将CNN用于下围棋CNN更多应用背景&#xff1a; DNN拿掉一些参数就成CNN 为什么可以这样做 每一个神经元只需要图中的一部分就可以识别出想要的模式 更小的区域…

抓住青春的尾巴再愤青一把

这是今天google大神查到的&#xff1a;一、CAPCOM的《大神》&#xff0c;PS2专属ACT游戏&#xff0c;以三大神之一的日照处天子为原型&#xff0c;动作爽快华丽&#xff0c;是我期待很久的作品&#xff0c;预计今冬发售。 ... 并不是说这个水墨3D是大宇搞出来的DD&#xff0c;3…