2011年12月23日 星期五

Ubuntu 11.10 嘸蝦米安裝

接觸Ubuntu好些年,一直都沒發生什麼問題
主要的原因是我懶得升級到新的版本,持續使用8.04 (不小心就把年紀給...)
另一個原因也是因為這個版本有懶人包lazybuntu,裝好之後一跑就把嘸蝦米給搞定
這次剛好換了一台電腦,什麼都是新的,當然要試試最新的Ubuntu 11.10

其實我老早就知道前N版的Ubuntu已經不使用gcin為預設的輸入環境
在不斷用英文跟人MSN, FB及goole search之後,我實在忍不住了
找了一下,馬上就跳出一篇神人的文章
在Ubuntu 10.04安裝嘸蝦米輸入法

裡面說得很清楚,下載完 再按步驟就可以完成
[下載檔案]
uni2txt -- 把window下的tab檔案轉存成txt格式
uni2txt.sh -- 將txt跟vrsf檔案結合的script
liu-uni.vrsf -- 嘸蝦米 vrsf
liu-uni2.vrsf -- 簡蝦 vrsf
liu-uni3.vrsf -- 台蝦 vrsf
liu-uni4.vrsf -- 日蝦 vrsf
liubox-20110106-01.zip

[開始吧!]
#1     Windows 轉檔
你可以在裝好嘸蝦米的windows上找到這幾個檔案
(如果還沒有裝,請購買正版嘸蝦米也會附)
uni2txt.exe liu-uni.tab liu-uni.txt
uni2txt.exe liu-uni2.tab liu-uni2.txt
uni2txt.exe liu-uni3.tab liu-uni3.txt
uni2txt.exe liu-uni4.tab liu-uni4.txt

#2     把所有檔案都放到Ubuntu機器上同一資料夾下


#3     修改uni2txt.sh,註解掉wine那四行
(因為你已經在windows上執行過了)

#4     執行
sh uni2txt.sh
會產生.cin檔 (noseeing.cin noseeing2.cin noseeing3.cin noseeing4.cin)
及.unix檔 (liu-uni.unix liu-uni2.unix liu-uni3.unix liu-uni4.unix)

#5     轉檔
解開liubox-20110106-01.zip
iconv -f UTF-16 -t UTF-8 liu.box | tail -n -23 |sed -e 's/;//' > liu-utf8.box

#6     生成boshiamy-hyper.cin
cat noseeing.cin liu-uni2.unix liu-uni3.unix liu-uni4.unix liu-utf8.box | perl -nle '(print,$hash{$_}=1)     unless defined $hash{$_}' > boshiamy-hyper.cin

#7生成liu.tmp  (最後一個是可選的字的順序,如果打字的時候覺得不習慣可以手動改)
awk '/%chardef begin/{f=1;next}/%chardef end/{exit}f' boshiamy-hyper.cin |grep -v '^%' |awk '{counter[$1]++} END {} {print $1"\t"$2"\t"50-counter[$1]}' > liu.tmp

#8     將以下內容以UTF-8的格式存進ibus-header.txt

SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0


### Begin Table definition.
BEGIN_DEFINITION

LICENSE = LGPL
UUID = 702d9641-a51b-4688-b4a2-8e8b8fe579cf
SERIAL_NUMBER = 20090709

ICON=icon.png

NAME = liu5
NAME.zh_TW = 嘸蝦米
DESCRIPTION = Boshiamy Input Method
LANGUAGES = zh_TW
STATUS_PROMPT = TW
AUTHOR = Boshiamy Corp. Reic Wang
VALID_INPUT_CHARS= ,.'abcdefghijklmnopqrstuvwxyz[]
LAYOUT = us
MAX_KEY_LENGTH = 5
AUTO_COMMIT = FALSE

DEF_FULL_WIDTH_PUNCT = FALSE
DEF_FULL_WIDTH_LETTER = FALSE

USER_CAN_DEFINE_PHRASE = TRUE

PINYIN_MODE = TRUE
DYNAMIC_ADJUST = FALSE

END_DEFINITION


#9     結合所有努力的結果,並產生database
cat ibus-header.txt > ibus.txt
echo 'BEGIN_TABLE' >> ibus.txt
cat liu.tmp >>  ibus.txt
echo 'END_TABLE'>> ibus.txt

執行ibus-table-createdb -n liu7.db -s ibus.txt



#10     存檔重登入
cp liu7.db /usr/share/ibus-table/tables/

================================
這篇主要是記錄自己依著做遇到的問題

在第9步會出現以下的錯誤訊息

Traceback (most recent call last):  File "/usr/share/ibus-table/engine/tabcreatedb.py", line 297, in
    main ()  File "/usr/share/ibus-table/engine/tabcreatedb.py", line 226, in main    phrases = phrase_parser ( table)  File "/usr/share/ibus-table/engine/tabcreatedb.py", line 164, in phrase_parser    xingma, phrase, freq = unicode (l, "utf-8").strip ().split ('\t')[:3]ValueError: need more than 1 value to unpack
這是因為裡面有一行格式怪怪的 (用vim開ibuliu7.txt)

.v      ・      100
^M              100
yzd     﨣^M    95
把中間那行删掉,再跑一次就可以了。





沒有留言: