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

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

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

    隨筆 - 115  文章 - 481  trackbacks - 0
    <2007年12月>
    2526272829301
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(19)

    隨筆檔案(115)

    文章檔案(4)

    新聞檔案(1)

    成員連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

      你不需要加任何額外的初始化標簽,也不用擔心所全部的多國語言文件放在一個大大的properties文件中所造成的管理不便,你所需要做的就是使用一個$lang.get標簽,或者使用I18n.get方法,多國語言問題就會被優雅地解決掉。

    EasyJWeb中的多國語言功能摘要:
    1、 在頁面中使用$lang.get(“屬性名稱”)來顯示多國語言信息。
    2、 在程序中使用I18n.get(“屬性名稱”)來獲得多國語言信息。
    3、 多國語言屬性信息按模塊存放,文件名為“模塊名.properties”,存放在WEB-INF\applicationResources目錄。
    4、 application.properties代表全局的屬性名,當在模塊中找不到具體的定義時,會自動到全局模塊中查找。
    5、 可以使用$lang.get(“屬性名”,”模塊名”)或I18n.get(“屬性名”,“模塊名”)調用其它模塊的多國語言屬性信息,
    6、使用$lang.getPrameterMessage(“屬性名”,”參數1”…“參數n”)來得到帶參數的多國語言屬性信息。如:當message為“hello {0},your brother {1} is waiting for you。” 時,使用$lange.get ("message","WilliamRaym","Daxia"),在合成模板的時候將會變成下面的內容輸出:
    Hello WilliamRaym,your brother Daxia is waiting for you。
    7、也可以直接使用$lang.get(“屬性名”,”第一個參數’,”第二個參數.”,”第n個參數”)。
    8、使用I18n 的changeLocale(String language)方法來直接把客戶端首選語言切換為其它語言。
    9、直接在模板的默認目錄下開語言目錄,使得應用中就具有多國語言模板支持。

    這樣的設計,你覺得還能湊合嗎?如果還有更多的要求,歡迎提出來。

    下載完整的示例:ftp://ftp1.easyjf.com/easyjweb/demo/i18n.war
    EasyJWeb官方演示:http://easyjweb.demo.easyjf.com/i18n/user.ejf

    下面具體講解如何使用,就拿EasyJWeb的HelloWorld來說吧,看看他的原始模板:
    HelloWorld中只有index.html一個頁面,內容主要如下:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>EasyJWeb的Hello World</title>
    </head>
    <body>
    <div><h4>EasyJWeb版本的HelloWorld程序</h4></div>
    <div>
    來自EasyJWeb的問候:<font color="#0000FF">${msg}</font><br />
    現在時間:<font color="#0000FF">${date}</font>
    </div>
    </body>
    </html>

       分別使用“title”、“topic”、“greeting”及“time”來代表上面四個需要支持多國語言的提示信息,這樣要在頁面中顯示“title”屬性,則使用$lang.get("title")即可。添加了多國語言標簽后的index.html頁面內容如下:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>$lang.get("title")</title>
    </head>
    <body>
    <div>
    <h4>$lang.get("topic")</h4>
    </div>
    <div>
    $lang.get("greeting"):<font color="#0000FF">${msg}</font><br />
    $lang.get("time"):<font color="#0000FF">${date}</font>
    </div>
    </body>
    </html>

    接下來,是在WEB-INF目錄下建一個applicationResources目錄,然后在該目錄建立hello.properties及hello_zh_CN.properties來分別存放英文及中文信息,內容分別如下:
    hello.properties
    greeting = the greeting from EasyJWeb
    time = current time
    title = The Hello World of EasyJWeb
    topic = The Hello World of EasyJWeb

    hello_zh_CN.properties
    greeting = \u6765\u81EAEasyJWeb\u7684\u95EE\u5019
    time = \u73B0\u5728\u65F6\u95F4
    title = EasyJWeb\u7684Hello World
    topic = EasyJWeb\u7248\u672C\u7684HelloWorld\u7A0B\u5E8F

    其它的代碼都不用任何修改,分別修改瀏覽器的首先語言屬性為英文及中文,然后打開hello.ejf,你會到如下圖所示結果:

    (首選語言為中文時的瀏覽效果)
     
    (首選語言為英文時的瀏覽效果)

      從程序的運行效果我們可以看出,以前頁面上固定的四個中文信息現在支持國際化了,如果還要增加對韓語及日語的支持,那么只需要在WEB-INF\applicationResources目錄下添加hello_ko_KR.properties及hello_ja.properties兩個文件,并在其中分別輸入“title”等屬性的值即可。
    當然,通過圖xx我們發現這個程序還沒有完全“國際化”,由于從HelloAction中給msg的值已經被寫死,因此這個程序不管遇到誰,在問候的時候仍然有一串中文字符:“您好,這是EasyJWeb的第一個程序!”。

      在EasyJWeb中,要在程序中使用多國語言信息非常簡單,直接調用I18n工具類中的get("屬性名")方法即可。下面修改HelloAction中的代碼,把其中的:
    form.addResult("msg", "您好,這是EasyJWeb的第一個程序!");修改為:
    form.addResult("msg", I18n.get("message"));// I18n.get("message")表示從多國語言文件中加載名為message的屬性

      然后我們在hello.properties中加入message屬性的內容,如下:
    message = hello, this is the first program of EasyJWeb!

      在hello_zh_CN.properties中加入message屬性的內容,如下:
    message=\u60A8\u597D\uFF0C\u8FD9\u662FEasyJWeb\u7684\u7B2C\u4E00\u4E2A\u7A0B\u5E8F\uFF01

      運行修改后的程序,在英文環境下瀏覽可以得到如圖xxx所示的結果:
     

    增加多國模板支持

      為了滿足英語國家所喜歡的頁面排版方式,我們可以在WEB-INF\views\hello目錄下,添加一個子目錄en,然后在en這個目錄提供一個index.html文件,文件內容如下:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>$lang.get("title")</title>
    </head>
    <body>
    <div>
    <h3><font color="#0000FF">Hi,My Dear Friend,I'm sure you know what I say.</font></h3>
    <h4>$lang.get("topic")</h4>
    </div>
    <div>
    $lang.get("greeting"):<font color="#0000FF">${msg}</font><br />
    $lang.get("time"):<font color="#0000FF">${date}</font>
    </div>
    </body>
    </html>

     

      則當客戶端首選語言為英語的用戶,在訪問hello.ejf?cmd=index的時候,就會使用hello\en\index.html這個文件來作為視圖模板輸出,如下圖所示:
     

      而其它客戶端首選語言為非英語的用戶在訪問同樣的url時,則會使用hello\index.html這個文件來做為視圖模板輸出,如下圖所示。
     

      整個過程非常簡單,不需要修改任何一句Java代碼或配置文件,需要做就是讓頁面設計人員設計及制作頁面。

    posted on 2007-12-28 15:26 簡易java框架 閱讀(1662) 評論(4)  編輯  收藏

    FeedBack:
    # re: 這樣的多國語言設計能湊合嗎? 2007-12-28 18:26 HiMaigc!
    作為一個頁面設計人員他需要了解這句話嗎? -- $lang.get("greeting")
    在沒有框架的時候,頁面設計人員能進行設計嗎?  回復  更多評論
      
    # re: 這樣的多國語言設計能湊合嗎? 2007-12-28 19:23 sunday
    你重復干著velocity和struts2 干的東西  回復  更多評論
      
    # re: 這樣的多國語言設計能湊合嗎? 2007-12-28 19:35 sitinspring
    關注一下.
      回復  更多評論
      
    # re: 這樣的多國語言設計能湊合嗎? 2007-12-29 20:26 jj
    標題真虛偽!!!  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 成人午夜视频免费| 18禁无遮挡无码国产免费网站| 免费毛片在线视频| 亚洲一区二区三区高清视频| 免费在线视频你懂的| 亚洲精品在线电影| 亚洲视频在线免费播放| 亚洲性一级理论片在线观看| 四虎1515hh永久久免费| 亚洲中文字幕久在线| 成年人免费观看视频网站| 亚洲熟妇av午夜无码不卡 | 猫咪免费人成网站在线观看入口| 在线观看免费精品国产| 日产久久强奸免费的看| 亚洲中文无韩国r级电影| 日韩精品无码免费专区午夜 | 亚洲人成色4444在线观看| 女人毛片a级大学毛片免费| 朝桐光亚洲专区在线中文字幕 | a在线视频免费观看| 久久伊人久久亚洲综合| 无码精品A∨在线观看免费| 亚洲色大成WWW亚洲女子| 亚洲A∨精品一区二区三区| 国产乱子伦精品免费视频| 久久久久亚洲AV成人片| 四虎成人免费观看在线网址 | 成人性生交大片免费看无遮挡 | 免费国产成人午夜私人影视| GOGOGO高清免费看韩国| 91大神亚洲影视在线| 妞干网在线免费视频| 一级做α爱过程免费视频| 亚洲人成在线电影| 国产高清视频在线免费观看| 美女被免费网站91色| 国产.亚洲.欧洲在线| 亚洲一区二区三区国产精品| 最好看的中文字幕2019免费| 色噜噜的亚洲男人的天堂|