<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 蘋果 閱讀(1388) 評論(1)  編輯  收藏 所屬分類: J2EE/JAVA學習

    評論

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

    主站蜘蛛池模板: 久久久高清日本道免费观看| 无码免费又爽又高潮喷水的视频| 国产精品免费高清在线观看| 国产aⅴ无码专区亚洲av麻豆| 一区二区三区免费视频播放器| 亚洲人妻av伦理| eeuss影院免费92242部| 亚洲一级Av无码毛片久久精品| 一级做受视频免费是看美女 | 亚洲人片在线观看天堂无码| 免费无码又爽又刺激毛片| 亚洲精品乱码久久久久久V| 女人18一级毛片免费观看| 久久精品国产亚洲av品善| 亚洲成a人无码av波多野按摩| 国产精品福利片免费看| 亚洲av日韩av天堂影片精品| **毛片免费观看久久精品| wwwxxx亚洲| 国产一区二区三区免费看| h片在线观看免费| 内射干少妇亚洲69XXX| 免费福利网站在线观看| 亚洲av成人片在线观看| 4338×亚洲全国最大色成网站| 爽爽爽爽爽爽爽成人免费观看| 亚洲黄色片在线观看| 成年女人午夜毛片免费看| 美女被羞羞网站免费下载| 亚洲中文字幕在线乱码| 免费国产黄网站在线观看 | 可以免费观看的毛片| 亚洲偷自精品三十六区| 亚洲AV无码成H人在线观看 | 老司机午夜在线视频免费观| 亚洲精品无码久久久影院相关影片 | 亚洲第一黄片大全| 无码国产精品一区二区免费式芒果 | 亚洲真人日本在线| ww4545四虎永久免费地址| 暖暖免费中文在线日本|