zoukankan      html  css  js  c++  java
  • 菜鸟学Struts——I18N对国际化的支持

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

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

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

     

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

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

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

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

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

     

       初学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>

     

    登录页面:

     

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

     

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

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

     

    改动后的登录界面:

    <%@ 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>

     

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

     

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

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

     

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

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

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

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

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

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

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

     

  • 相关阅读:
    HDOJ 1069_大二写
    HDOJ 2037:今年暑假不AC_大二写
    第二次HDOJ:1058
    HDOJ 1019
    第二次 HDOJ 1003
    第二次做HDOJ 1051
    memset()的用法
    数据结构中的频度含义
    程序框图的书写
    python课堂整理22----装饰器进阶
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8451813.html
Copyright © 2011-2022 走看看