大家肯定都喜欢玩游戏吧。

对于是一个游戏迷的话,肯定玩过不少很棒的经典单机游戏。比方说,国产的《古墓丽影》、《刺客信条》、《鬼泣》国产的仙剑。古剑等。在众多游戏系列中,国产的不必说了。下载破解了就能玩。

可是对于哪些,下载下来是英文的韩文的游戏。对于电脑白痴的游戏迷来说,第一反映是:这游戏有没有汉化补丁?

为什么一些经典的游戏能够用汉化补丁?我们在开发程序的时候,是否也提供了相同的语言包可供选择?

我们在开发程序的时候,前台界面写文本的时候,都是直接写中文的。在对于这样做的程序。毫无疑问,假设这个程序。要推向国际化。开发一种语言。基本就相当于把整个系统重构了。

假设是那样的话。我们的程序推向国际化是不是成本非常大?

所以。在开发系统之前。一般都会考虑系统的使用人群。假设该系统仅仅打算开发一种语言的话。那自然就不用考虑语言的版本号问题了。假设开发的程序或游戏。觉得能够有发展的空间。

我们就能够在程序中增加对国际化的支持了。

初学Struts。假设有不正确的地方。还请不吝赐教。

接下来,我将用一个小样例。谈一谈我对语言包的理解。

我们所说的中文补丁就是一个语言包。

传统的程序开发:

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<form action="login.do" method="post">
用户:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="登录"/>"><br>
</form>
</body>
</html>

登录页面:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">

对于上述的页面中有一部分代码是 写死的中文。

假设要支持国际化,就要开发语言包 名字叫 ——国际化资源文件。

说通俗点,就是开发一组字典。把界面上的显示文字的地方替换掉。语言包就是一组字典。

改动后的登录界面:

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<form action="login.do" method="post">
<bean:message key="form.field.username"/>:<input type="text" name="username"><br>
<bean:message key="form.field.password"/>:<input type="text" name="password"><br>
<input type="submit" value="<bean:message key="form.button.login"/>"><br>
</form>
</body>
</html>

界面上没有文本。仅仅有一些变量……

文本的位置全都用变量替换掉。

这样仅仅要是显示界面的文本,都是可控制的。仅仅须要替换一个语言包。就能够了。

如今替换一个语言包。效果如图:

接下来。我们看一下这神奇的“语言包”是什么东西。

对于程序的开发。假设要支持国际化。

在开发的过程中。可能会不太舒服。

由于开发前台的人员,看不到熟悉的程序,而是一大堆变量。

当然也能够,先开发出一个语言的程序来。

然后在进行替换。对于多种语言的开发。也就是多了一个翻译的过程,也没什么神奇的。

菜鸟学Struts——I18N对国际化的支持的更多相关文章

  1. struts.custom.i18n.resources国际化

    每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom ...

  2. struts.custom.i18n.resources国际化详解(一)

    每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化 首先在struts.properties文件中加入以下内容:struts.custom ...

  3. 菜鸟学SSH(二)——Struts2国际化手动切换版

    国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化.程序在不修改内部代 ...

  4. struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持

    Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...

  5. 复习Spring第四课---Spring对国际化的支持

    其实国际化这东西很少使用,之前也就是粗略的学了下,趁今天有空,拿出来稍微写写.以前学android开发的时候,类似于多语言的版本.差别就是一个是手机打开,一个是浏览器打开,本质是一样的. 在Sprin ...

  6. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  7. 使用 Struts 2 实现国际化

    struts2国际化(I18N) 国际化也叫I18N,是Internationalization的简称.Struts2国际化是建立在Java国际化基础上,只是Struts2框架对Java国际化进行了进 ...

  8. 菜鸟学IT之四则运算升级版

     菜鸟学IT之四则运算升级版 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 团队代码github远程仓库的 ...

  9. Django开启国际化的支持

    基础环境介绍 IDE我用的pycharm Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) [GCC 4.2.1 (Apple Inc ...

随机推荐

  1. 操作服务器及MySQL数据库可以使其远程链接

    转自原文操作服务器及MySQL数据库可以使其远程链接 一般情况分三个地方准备,MySQL数据库,防火墙,还有你的服务器主机的准备 操作系统为centos6.5.其他系统大致差不多. 1:在服务器中安装 ...

  2. python:单引号,双引号和三引号

    python中字符串可以用单引号括起来,也可以用双引号,这两种方式是等价的需要表示一个字符串对象的话,单引号和双引号没有区别 为什么需要单引号和双引号同时支持,而一般都是”呢? 比如” 双引号’里面有 ...

  3. HDU 3756

    很容易就想到把三维转化成了二维,求出点离Z轴的距离,把这个距离当成X坐标,Z轴当Y坐标,然后就变成了求一个直角三角形覆盖这些点 像上一题一样,确定斜率直线的时候,必定是有一点在线上的.于是,可以把直线 ...

  4. thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)

    本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name ...

  5. 转:Centos 7 使用git 用 ssh 连接github服务器

    https://blog.csdn.net/wzq793957419/article/details/68067204 首先Linux下载git,ssh服务都弄好 生成ssh密钥: $ ssh-key ...

  6. Windows下用Visual Studio来build ImageMagick

    参考: http://www.imagemagick.org/script/install-source.php#windows http://blog.163.com/anteaus_20/blog ...

  7. 原生js实现复选框

    简单排版 <style> .box { display: flex; align-items: center; } #allSelect, p { width: 20px; height: ...

  8. c++面向对象程序设计 课后题 答案 谭浩强 第四章

    c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...

  9. TCP/IP协议族简介

    OSI网络分层介绍 网络结构的标准模型是OSI模型,由国际互联网标准化组织定义的网络分层模型.虽然目前没有完全按照这种模型实现的网络协议栈,但是学习这个模型对于我们理解网络协议还是很有帮助的. 1.O ...

  10. HDU 1575 矩阵快速幂裸题

    题意:中文题 我就不说了吧,... 思路:矩阵快速幂 // by SiriusRen #include <cstdio> #include <cstring> using na ...