<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks

    要考慮一個真正意義的全球資源,Web瀏覽器的內容對每個接收到的用戶來說都是易讀的,現在大多數的全球資源的網站都是英文的.當然,現在也在發生變化,有的網站為一些特定的國家定制一些非英文版本,比如,說英文的通過http://www.ibm.com/en/index.html來訪問,說中文的通過http://www.imb.com/cn/index.html來訪問,這些很多都是靜態的文本.怎么構件一個動態生成的國際化內容的網站就不是一個簡單的問題了.

    國際化又稱Il8N,因為英文國家的國家化是Internationalization,它以I開始,以N結束,共18個字母.本地化又稱L18N,即是Localization.國際化的問題主要包含以下的一些內容:
    .日期,時間
    .數字
    .貨幣
    .其它的一些特殊字符
    也就是說不同的Locale,顯示日期,時間格式是不一樣的.當然,不同的語言有自己不同的字符集.

    HTML中的字符實體
    HTML中的字符實體和XML的語言保持一致.它定義了用特定的字符序列顯示單字符的功能,這種字符序列稱為字符實體,它以" &"開頭,以";"結束.例如: &copy; 表示字符"?";
    看一例子顯示西班牙語的" Hello World":
    <%@page contentType="text/html;charset=ISO-8859-1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    ?? "

    <%
    ?? response.setHeader("Content-Language","es");
    ?? out.println("<html><head><title>En Espa&ntilde;ol</title></head>");
    ?? out.println("<body>");
    ?? out.println("<h3>En espa%ntilde;ol</h3>");
    ?? out.println("&iexcl;Hola Mundo!");
    ?? out.println("</body></html>");
    %>

    運行結果:

    En espa%ntilde;ol

    ?Hola Mundo!

    在HTML字符實體表示中,&ntilde代表了" ? "字符,使用response.setHeader("Content-Language","es");來設置HTML顯示時要使用的語言.

    Unicode
    Unicode字符標準是一個字符編碼系統,它支持互相轉換,處理和顯示現在世界上不同語言的文本.在Java語言中,字符,字符串和標始符在內部使用16位的Unicode 2.0字符集表示.Unicode使用 " \uxxxx" 來表示一個字符,前256個Unicode字符和ISO-8859-1標準(Latin-1)的前256個字符一致.在Unicode世界中, "? ?? " 用 " \u00f1 " 表示.看怎么用Unicode來編寫西班牙語的Hello World:
    <
    %@page contentType="text/html;charset=ISO-8859-1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    ?? "

    <%
    ?? response.setHeader("Content-Language","es");
    ?? out.println("<html><head><title>En Espa\u00f1ol</title></head>");
    ?? out.println("<body>");
    ?? out.println("<h3>En espa\u00f1ol</h3>");
    ?? out.println("\u00f1Hola Mundo!");
    ?? out.println("</body></html>");
    %>

    支持多國語言的Hello World

    用語選擇語言的頁面:


    語言處理頁面代碼:
    <
    %@page contentType="text/plain;charset=UTF-8"
    import="java.io.*,java.text.*,java.util.*,javax.servlet.jsp.*" %>
    <html>
    ??? <head>
    ??????? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    ??????? <title>JSP Page</title>
    ??? </head>
    ??? <body>
    <%!
    ?? Locale locale;
    ?? DateFormat format;
    ?? JspWriter writer;
    %>
    <%!
    ?? //英語
    void processEnglish()throws Exception
    {
    ??? locale=new Locale("en","US");
    ??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
    ??? writer.println("in english");
    ??? writer.println("<br>");
    ??? writer.println("HelloWorld");
    ??? writer.println(format.format(new Date()));
    ??? writer.flush();
    }

    ?? //中文
    void processChinese()throws Exception
    {
    ??? locale=new Locale("zh","");
    ??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
    ??? writer.println("in Chinese");
    ??? writer.println("<br>");
    ??? writer.println("\u4f60\u597d\u4e16\u754c");
    ??? writer.println(format.format(new Date()));
    ??? writer.flush();
    }

    ?? //韓國語
    void processKorean()throws Exception
    {
    ??? locale=new Locale("ko","");
    ??? format=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG,locale);
    ??? writer.println("in Korean");
    ??? writer.println("<br>");
    ??? writer.println("\uc548\ud558\uc138\uacc4");
    ??? writer.println(format.format(new Date()));
    ??? writer.flush();
    }
    //.........................其他的語言省略
    %>
    <%
    ??? //獲得請求的語種
    ???? String language=(String)request.getParameter("language");
    ???? int lan=Integer.parseInt(language);??
    %>
    <%
    ?? writer=out;
    ?? switch(lan)
    ?? {
    ?????? case 1:processEnglish();break;
    ?????? case 2:processChinese();break;
    ?????? case 3:processKorean();break;
    ?????? //case 4:processRussian();break;
    ?????? //case 5:processSpanish();break;
    ????? // case 6:processJapanese();break;
    ?? }
    %>
    ??? </body>
    </html>
    處理的思路很簡單,首先獲得請求的語種,然后根據不同的語言來做不同的處理.

    posted on 2006-06-20 14:00 藍色Saga 閱讀(229) 評論(0)  編輯  收藏 所屬分類: JavaServer Page

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品久久久久久久久久免费 | 亚洲影视一区二区| 在线不卡免费视频| a级成人毛片免费图片| 亚洲成人福利在线观看| 亚洲成A∨人片天堂网无码| 69pao强力打造免费高清| 特级av毛片免费观看| 久久久久亚洲AV无码专区体验| 国产精品国产自线拍免费软件| 久久大香伊焦在人线免费| 亚洲国产成人精品无码区二本| 亚洲国产成人私人影院| 日本人护士免费xxxx视频| 污视频在线免费观看| 视频一区在线免费观看| 亚洲一区二区三区91| 国产AV无码专区亚洲Av| 国产色婷婷精品免费视频| 50岁老女人的毛片免费观看| 男男gay做爽爽免费视频| 亚洲人配人种jizz| 亚洲第一AAAAA片| 亚洲一本大道无码av天堂| 女性自慰aⅴ片高清免费| 免费国产黄网站在线观看视频| 日本高清免费中文在线看| 伊人久久五月丁香综合中文亚洲| 亚洲高清国产拍精品26U| 中文字幕亚洲第一| 日本免费人成黄页网观看视频| 亚洲电影在线免费观看| A级毛片高清免费视频在线播放| 国产亚洲视频在线播放大全| 亚洲伊人久久大香线蕉结合| 337p日本欧洲亚洲大胆精品555588| 亚洲精品V欧洲精品V日韩精品 | 亚洲免费在线观看视频| 亚洲成人精品久久| 国产精品亚洲一区二区三区在线| 亚洲国产成人精品女人久久久|