------------------
A. 簡介:

XCIN-2.5 是 XCIN 改寫計畫 (Redesigning XCIN Project) 的成果。其目的
是希望藉由重新設計，將較好的演算法與嚴緊且模組化的程式架構實作在 xcin 
系統中，並引進、實驗新的設計概念與中文處理技術，同時也希望藉此修正
xcin-2.3.X 長久以來不易修正的 Bug 。

有關 XCIN 的版權宣告，請見 CopyRight 與 COPYING 二文的說明。

目前 xcin-2.5 已進入實用階段，其特色有:


1. rcfile 讀取系統:

   過去 xcin-2.3.X 有相當複雜的命令列選項，而且這些選項一經設定後，則
   影響了所有的輸入法，這對很多人來說造成不少的困擾。 xcin-2.5 對此做
   了改變，它將大部分的命令列選項移到了 rcfile 中，且所有關於輸入法的
   微調設定，是每個輸入法彼此獨立的。因此使用者可以自己的喜好為每個輸
   入法分別做不同的設定，比起 xcin-2.3.X 更有彈性。


2. 支援 locale 與 XIM 協定:

   目前 xcin 已放棄原本的 xcin-crxvt 協定，而採用標準的 XIM 協定，可能
   未來也是如此。這意味著我們無法在原有的 crxvt 中直接使用本 xcin 輸入
   中文字。這麼做的目的是希望做到 X window 下的中文輸入能夠「標準化」，
   也就是遵循 X11R6 的標準。未來的 X window 應用軟體應該漸漸會朝向 XIM 
   的標準，這樣才可以真正做到 xcin anywhere。

   目前新版的 rxvt-2.6/2.7 已支援 XIM 協定, 且能正確地接受來自 xcin-2.5
   的中文輸入。故 xcin-2.5/rxvt-2.6 的組合未來將可以取代傳統的 xcin-2.3/
   crxvt。


3. 完整的 I18N 設計:

   xcin-2.5 是一個 I18N (InternationalizatioN) 的程式，已盡可能做到與內
   碼無關了。因此，它不只可以做為 Big5 的輸入，也可以做其他內碼輸入 (如 
   GB 碼)，只要系統環境有該內碼的 locale 支援，同時準備好 xcin 所需的資
   料檔 (即 .cin 檔，見後述) ，並在執行 xcin 之前設定好 locale 即可。


4. 支援 LC_MESSAGES 與 GNU gettext:

   目前 xcin 所有的訊息輸出已全部採用 GNU gettext (debug 訊息除外)，只
   要我們為各 locale 翻譯好所有的訊息，並在執行 xcin 之前做好 locale 的
   設定, 我們就會有一個「多國語文訊息」的 xcin 了。

   目前我們已經有了 Big5 碼的訊息翻譯，我們歡迎有興趣的朋友參與其他內碼
   (如 GB 碼) 的翻譯工作。


5. 輸入法模組動態載入:

   xcin-2.5 所有的輸入法均已模組化，並且可以依需要而動態載入。目前已有的
   輸入法模組為:

   a. zh_hex:  
	內碼輸入法模組。可做為各種內碼 (如 Big5 或 GB 碼) 的內碼輸入，只
	要系統環境有適當的 locale 支援，並有所需的 sys.cin (見後述) 即可。

   b. gen_inp:
	一般性輸入法模組。本模組可以處理絕大部分的輸入法，如同舊版的 xcin
	一樣，只要您準備好適當的 .cin 檔，並經由 cin2tab 將它轉換成 .tab
	檔，就能直接套用此輸入法模組，並能達到大部分在 xcin-2.3 上見得到的
	輸入功能。

   c. bimsphone:
	bims 注音輸入法模組。本模組採用蕭百翔兄與其在中研院的同仁所開發的 
	libtabe 與 bims 模組，可以視為「專業」的注音輸入法。它提供了 gen_inp
	+ phone.cin 所達不到的功能，如穩定的自動選字、大量的詞庫、各種注音
	鍵盤對應 .... 等等。

   除此之外， xcin-2.5 承襲了舊版的特色，還提供了如下的輸入功能:

   d. 全形字鍵輸入 (shift+space 切換)

   e. shift+alt+? 快速鍵片語輸入: 這就是傳統的 xcin 中打 shift+alt+i 出現頓
      號， shift+alt+o 出現句號等，而且片語內容可以讓使用者依喜好自行設定。


6. 新的 cin 系統:

   cin (即輸入法表格檔) 其實是與 locale 與 encoding 相關的，故 xcin-2.5
   將 cin 檔依不同的 locale 分別存放。若使用者希望在 zh_TW.Big5 或 GB
   的環境下使用某輸入法，則他只需分別為這兩種 locale 準備好一個 cin 檔，
   再分別經由 cin2tab 編譯成 tab 檔後即可。 cin 分為以下兩大類:

   a. sys.cin:
	這是系統表格檔，它的格式與一般的輸入法表格檔有很大的不同。它存
	放了與 locale 相關的資訊，供程式內部運作參考用的。

   b. gen_inp 模組所使用的 .cin:
	這是一般的輸入法表格檔，即目前 xcin-2.3 常見的 .cin 檔。但它的
	格式與目前的 .cin 檔已有不同，但大家依然可以很容易地將舊的格式
	改成新的格式而直接使用。此 .cin 的格式是針對 gen_inp 模組而設
	計的，若將來有新的模組加入，則不見得會使用相同格式的表格檔。

   新改寫的 cin2tab 可以編譯上述二種不同的 .cin 檔，成為 .tab 檔讓 xcin
   使用。其中 (b) 項編譯出來的 .tab 檔只會有一個，不像舊的 cin2tab 會
   編出 .tab 與 .tab.rev, 甚至還會有 .tab.quick。同時新的 .tab 也比舊的
   .tab 或 .tab.rev 還要小 (在 Big5 碼約 13500 字中，其大小差不多 100K)。


------------------
B. 本版特色 (xcin-2.5.2-pre3, under-development, for 2.5.2):

1. xcin 整體架構重新調整設計，使其內部資料結構更具一致性。

2. 開放 xcin-2.5/src/include/ 下的 module.h 與 xcintool.h 的版權限制: 任
   何人若想要為 xcin-2.5 寫新的輸入法模組的話，則他/她可以自由引用那兩個
   檔的任何部分，而不會有任何附加限制。詳見 CopyRight 的說明。

3. 加入三個新功能:

   a. xcin -m 選項: 可以印出各模組的內部文件聲明。

   b. 可在 xcinrc 中自由設定各功能鍵的字鍵組 (例如，將原來的中英切換 ctrl+
      space 改成別的 :-))

   c. xcinrc 中加入 ICCHECK_DISABLE，可以視需要關閉 IC 檢查功能。

4. 自本版開始 libtabe 已與 xcin-2.5 分離，未來二者將平行發展，獨立維護。因
   此，若您要安裝本版 xcin, 您必須先安裝 libtabe (詳見 SETUP 的說明)

5. 來自網友的貢獻:

   a. 更新 GPL 中譯部分。
      Thanks to 洪朝貴老師 <ckhung@cyut.edu.tw>

   b. 加入簡易輸入法表格 simplex.cin，更新倉頡表格 cj.cin 。
      Thanks to Voidoo <voidoo@glink.net.hk>

   c. 加入一個來自 xcingb-2.2 package 的 GB cin 表格: zhiranma.cin。
      Thanks to the author of xcingb-2.2: <fangh@hptc6.ihep.ac.cn>

   d. 加入 GB 倉頡表格: jtcj_gb.cin。
      Thanks to <blueslan@arphic.com.tw>, <khon@tm.net.my>

   e. 加入 xcin.po 的 Big5 翻譯檔。
      Thanks to 陳永昇 <cdchen@mail.about.net.tw>
		邱智偉 <weichung@mail.cynix.com.tw>

6. Bug 與其他修正:

   a. 使用自行寫的 my_merge_sort() 來取代 FreeBSD 的 mergesort()，同時
      改變 configure 設定，以後除了在系統中偵測到 mergesort() 可用以外，
      一律使用 my_merge_sort() 來做排序。

   b. 修正 gen_inp 多重字選擇的 bug 。

   c. 完整實作 gen_inp 的 Wild card 功能 (可用 '*' 及 '?' 來取代部分的字
      鍵碼輸入)

   d. 修正 IM focus 功能，使其對全形、半形也有效。

   e. 重寫 IC Check (garbage collection) 機制。

   f. 修正 cin2tab 對未定義字的歸零 bug 。

   g. 改變 bimsphone 上字方式: 若 xcin 視窗填滿時則將所有的字送到 client,
      而不是只送一個字而已。


------------------
C. 套件內容:

1. xcin (安裝於 $(BIN)/):
   這是 xcin 輸入法主程式。

2. cin2tab (安裝於 $(BIN)/):
   這是輸入法表格 .cin ==> .tab 的轉換程式。

3. xcinrc (安裝於 $(ETC)/):
   這是 xcin 系統的公用設定檔。

4. IM modules (安裝於 $(XCIN_DIR)/):
   這是輸入法模組，需要時才會動態載入 xcin 中使用，目前已有:
   zh_hex.so, gen_inp.so, bimsphone.so

5. cin & tab (安裝於 $(XCIN_DIR)/tab/$(LOCALES)/):
   這大部分是 gen_inp 輸入法表格檔與資料檔，依不同的 locale 分別存放。

6. testprog (放在 xcin-2.5/src/util/testprog/):
   這是一個很簡單的 Xi18n 測試程式，與 xcin 的運作無關，只是用來測試看您的
   系統是否已準備好 i18n 的環境，同時也可以讓您測試用 xcin 在其上直接輸入。
   make install 時並不會將它安裝到您系統中的任何地方。



------------------
D. 安裝與測試:

由於 xcin-2.5 與舊版的 xcin 有相當大的不同，故當您要安裝、使用 xcin-2.5 前，
請注意仔細閱讀以下文件:

1. SETUP:  xcin-2.5 的安裝步聚。

2. UserGuide:  xcin-2.5 與各 XIM client 使用快速指引。

3. Usage 與 modules/*:  xcin-2.5 與其所附的輸入法模組的使用方式。

4. FAQ:  常見問題與解答。

5. Bugs:  xcin-2.5 目前尚未解決的問題。

6. Todo:  未來的發展方向。

若您想要自行準備 .cin 輸入法表格，或想將舊的 .cin 檔轉成 xcin-2.5 的 .cin
檔，請參考:

7. Cin:  .cin 表格檔格式說明以及 cin2tab 使用方法。

有關 xcin-2.5 的版權宣告，請見:

8. CopyRight:  xcin 版權宣告。

9. COPYING:  GNU Public License (含英文原版及中文 Big5 翻譯)

若您對於 xcin 內部程式實作以及模組寫作有興趣，可以參考

10. internal/*:  xcin 程式設計與模組架構文件。


若您有其他的問題與建議，歡迎與我們連絡。


謝東翰 (Tung-Han Hsieh)  <thhsieh@linux.org.tw>
Physics Department of National Taiwan University, R.O.C.
XCIN Team.  <mailing-list:  xcin@linux.org.tw>
	    <www:	    http://xcin.linux.org.tw>
	    <ftp:	    ftp://xcin.linux.org.tw/pub/xcin>
