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

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

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

    蘋果的成長日記

    我還是個青蘋果呀!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      57 隨筆 :: 0 文章 :: 74 評論 :: 0 Trackbacks

    原文地址:http://www.cnblogs.com/bjzhanghao/archive/2004/08/08/31262.aspx
            記得幾年前漢化軟件一般是用二進制編輯工具在編譯后的文件中查找和替換英文單詞,這個過程需要使用很多技巧,非常的麻煩。而現在,在開發時對應用程序進行國際化處理已經越來越成為一個必不可少的步驟了。例如這次我參與的項目是給臺灣客戶做的,他們要求英文和繁體中文兩個版本,幸好我們使用的開發工具是Eclipse,利用它的國際化功能可以很方便的將寫在代碼里的字符串提出到獨立的資源文件中,這里用一個簡單的例子說明一下這個過程。

    在Eclipse里建立一個名為nls-test的工程(也可以國際化已有工程),新建一個類NLSTest,內容如下:

    public class NLSTest {
     public NLSTest() {
      String str1
    ="Hello world!";
      System.out.println(str1);
     }
     public static 
    void main(String[] args) {
      
    new NLSTest();
     }
    }

    現在,這個類的輸出是在代碼里寫死的,如果要改變就必須修改代碼然后重新編譯。下面我們利用Eclipse解決這個問題。在導航器(Package Explorer)里右鍵單擊這個文件,選擇Source -> Externalize Strings,就會打開一個對話框,在這里列出了該類中尚未國際化的字符串,見下圖。



    圖1 國際化向導第一步

    單擊每個字符串前面的小方塊可以選擇對該串1、進行國際化處理2、永不進行國際化處理3、這次不處理。我們選擇要對這個字符串進行國際化處理,并把它的Key修改為比較好理解的名稱hello,注意在對話框最上方可以指定一個通用的前綴,這個值會加在每個Key前面作為最終寫在資源文件(擴展名是.properties)里的Key名稱。好,按下一步繼續。

    在這里要指定properties文件的名稱,如果需要的話要指定一個用于從properties文件中取資源的類,一般是XXXMessages的格式,再按下一步,會顯示一個所作更改的確認列表,確認后按Finish按鈕完成向導。

    可以看到Eclipse為我們生成了NLSTestMessages.java和NLSTest.properties,打開后者會看到里面只有這么一句:

    NLSTest.hello=Hello world!

    而前者NLSTestMessages的作用是根據參數Key從后者取對應的字符串值,看一看現在的NLSTest.java就知道了,它的內容現在是這樣的(只列出構造方法,main方法同上):

     public NLSTest() {
      String str1
    =NLSTestMessages.getString("NLSTest.hello"); //$NON-NLS-1$
      System.out.println(str1);
     }

    后面的注釋是Eclipse自己用的,標有這個注釋的字符串在國際化將被忽略。注釋中的數字1表示要忽略的是該行中第一個字符串,如果一行語句里有多個字符串被忽略,將會有多個這樣的注釋,但數字會各不相同,像這樣:

     //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 

    好了,現在這個類的國際化處理就算完成了。要想讓這個類可以根據用戶所在地區輸出不同語言的結果,可以在NLSTest.properties同一目錄下創建名為NLSTest_XX.properties的文件,其中XX表示國家名稱,例如中國是zh_CN或tw_CN,法國是FR等等。新創建的文件里也要有和原來文件相同的名值對,但值是不同語言的,NLSTestMessages類會根據用戶機器的地區設置值自動從不同的資源文件里取值,這樣就達到了國際化的目的。要在自己的機器上測試運行結果,可以在Eclipse的運行設置里面加上這樣的參數:-nl tw_CN,這樣就不用費力氣設置區域了。

    國際化的原理很簡單,Eclipse提供的這個功能使國際化變得更容易了。不過關于國際化還有一些細節問題,包括對含參數資源的處理,字符編碼處理等等,下篇將對它們進行討論。

    posted on 2005-08-04 10:11 蘋果 閱讀(1386) 評論(1)  編輯  收藏 所屬分類: J2EE/JAVA學習

    評論

    # re: [zz至八進制]國際化你的應用程序(上) 2005-08-04 10:14 蘋果
    每個包使用一個特性文件,按類名稱來限定鍵。  回復  更多評論
      

    主站蜘蛛池模板: 久久国产精品免费看| 男人的好看免费观看在线视频| 无码乱人伦一区二区亚洲| 18女人腿打开无遮掩免费| 亚洲AV综合色区无码一二三区| 亚洲精品无码久久久| 在线观看免费视频资源| 黄页网址在线免费观看| 亚洲成人在线网站| 又爽又高潮的BB视频免费看 | 国产精品免费看香蕉| 插鸡网站在线播放免费观看| 亚洲人成电影在线观看网| 亚洲麻豆精品国偷自产在线91| 亚洲视频免费一区| 精品久久久久久无码免费| 中文字幕精品三区无码亚洲| 亚洲色欲色欲www在线丝| 在线观看成人免费视频| 99久久精品免费精品国产| 免费一级毛片免费播放| 亚洲一区二区三区免费视频| jizz免费在线观看| 精品久久久久亚洲| 亚洲美女色在线欧洲美女| 国产亚洲人成网站在线观看| 成全视频在线观看免费高清动漫视频下载 | 日本19禁啪啪无遮挡免费动图| 无码人妻一区二区三区免费n鬼沢| 粉色视频成年免费人15次| 免费观看的毛片手机视频| 久久99毛片免费观看不卡| 国产亚洲欧美日韩亚洲中文色| 亚洲网站在线播放| 亚洲深深色噜噜狠狠爱网站| 亚洲?v无码国产在丝袜线观看| 成人免费a级毛片| 13一14周岁毛片免费| 久久99热精品免费观看动漫| 有色视频在线观看免费高清在线直播| 亚洲色大成网站www久久九|