Code Monkey home page Code Monkey logo

windows-chewing-tsf's Introduction

windows-chewing-tsf

Implement chewing in Windows via Text Services Framework:

  • LibIME contains a library which aims to be a simple wrapper for Windows Text Service Framework (TSF).
  • ChewingTextService contains an implementation of Windows text service for libchewing using libIME.

All parts are licensed under GNU LGPL v2.1 license.

Development

Tool Requirements

How to Build

  • Get source from github
    git clone --recursive https://github.com/chewing/windows-chewing-tsf.git
    cd windows-chewing-tsf
  • Use one of the following CMake commands to generate Visual Studio project
    cmake -G "Visual Studio 11" -T "v110_xp" <path to windows-chewing-tsf>
    cmake -G "Visual Studio 11 Win64" -T "v110_xp" <path to windows-chewing-tsf>
  • NOTICE: In order to support Windows xp, it is required to add the argument "v110_xp" (MSDN)

  • Open generated project with Visual Studio and build it

TSF References

Windows ACL (Access Control List) references

Install

  • Copy ChewingTextService.dll to C:\Program Files (X86)\ChewingTextService.

  • Copy libchewing/data/*.dat and pinyin.tab to C:\Program Files (X86)\ChewingTextService\Dictionary

  • Use regsvr32 to register ChewingService.dll. 64-bit system need to register both 32-bit and 64-bit ChewingService.dll

    regsvr32 "C:\Program Files (X86)\ChewingTextService\ChewingTextService.dll" (run as administrator)
    
  • NOTICE: the regsvr32 command needs to be run as Administrator. Otherwise you'll get access denied error.

  • In Windows 8, if you put the dlls in places other than C:\Windows or C:\Program Files, they will not be accessible in metro apps.

For Windows 8, you also need to do this:

  • Create C:\Users<user_name>\ChewingTextService directory manually before using the input method.

  • Set ACLs for the created directory so it can be accessible from Windows store apps

    cacls C:\Users\<user_name>\ChewingTextService /e /t /g "ALL APPLICATION PACKAGES:c"
    
  • Warning: this will give full access of this folder to all metro apps. This may not be the optimized permission settings. Further study on ACL is required here.

  • Open regedit and enable read access to HKCU\Software\ChewingTextService for "ALL APPLICATION PACKAGES".

  • The NSIS installer automatically does the preceding changes for you

Uninstall

  • Remove %WINDIR%/chewing

  • Use regsvr32 to unregister ChewingTextService.dll. 64-bit system need to register both 32-bit and 64-bit ChewingTextService.dll

    regsvr32 /u "C:\Program Files (X86)\ChewingTextService\ChewingTextService.dll" (run as administrator)
    
  • NOTICE: the regsvr32 command needs to be run as Administrator. Otherwise you'll get access denied error.

Bug Report

Please report any issue to here.

windows-chewing-tsf's People

Contributors

blishs avatar chocobo1 avatar cwahbong avatar czchen avatar honki avatar jserv avatar kanru avatar pcman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

windows-chewing-tsf's Issues

中英切換的行為

在有輸入注音符號, 但還沒組字之前, 按 shift 切換到英文模式, 再輸入英文後:

0.3.4.8:
會把輸入的注音符號清除, 出現輸入的英文

tsf:
不會把輸入的注音符號清除, 輸入的英文會出現在注音符號「之前」, 但按 delete 無法刪除注音符號; 而按「backspace」會從注音符號開始刪除, 刪完注音符號裁開始刪英文。

已經習慣 0.3.4.8 的行為了, 希望能改成跟以前一樣, 感謝!

Add option for chewing_set_phraseChoiceRearward

chewing_set_phraseChoiceRearward 讓使用者可以在詞尾選詞。舉例來說,當目前 buffer 內是 "測試" 時,只要游標在 "試",就可以拉出 "測試,策試,…" 這組候選詞,而不用把游標移到 "測"。

這個功能可以部份解決 http://www.playpcesor.com/2013/09/2013.html 所提到的問題。

唯一我覺得比起 Yahoo 奇摩輸入法來說比較不方便的設計,就是在「選擇詞組」時一定要把游標切換到詞組開頭的字,才能進行詞組的選擇( Yahoo 輸入法可以在詞組的任何一處打開選字清單來切換詞組)。

中英切換問題

caps lock不亮時shift可以正常切換中英文
caps lock燈亮時無法打出中文
系統是w7 x86

shift無法正確切換中英文

win8 64bits
按了shift只有右下角的圖示會改變
無法正確使用切換中英文...
必須按shift+caps才可以切換...(已經確認設定中的shift切換中英文有開啟...)

Windows XP 下的三個問題

一,下無法設為預設輸入法。
二,chrome瀏覽器上無法使用。即輸入法選項那裡沒有新酷音。而其他程式如記事本,word上可以使用。我已在勾選「延伸對所有程序的進階文字服務支援」。
三,添加一欄特殊標點符號,輸入的時候出現不了選擇符號的窗口,而只有這欄名稱的首字。

使用雙螢幕會有問題

使用雙螢幕(A, B),假設A為第一螢幕,當輸入文字在B螢幕時,選字框會出現在A螢幕,而非B銀幕

候選字清單停留在最上層

版本:windows-chewing-tsf-2013-09-26

候選字清單開啟時,如果跳到另一個視窗,清單會依然停留在螢幕的最上層,遮到正在使用的視窗。

win32-chewing-0.3.4.8 的候選字清單會和原本的視窗一起被蓋住,新注音輸入法的候選字清單則是會消失,直到原本的視窗重新回到焦點。

一般狀態下輸入標點符號的規則...?

不管"按住Shift輸入全形標點符號"是否打勾
有些標點符號怎麼打都是全形 對我來說 不太習慣 之前好像可以調整的…

英數模式 = [ ] \ '

中文半形 = 「」\、

半形shift + 『 』|;

啟動異常

WIN XP SP3

  1. 安裝之後,輸入法切換視窗中沒有顯示測試版。
    重開機之後,還是一樣。
  2. 文字服務和輸入語言中可看到出現在已安裝服務中,也能點出屬性頁面。
  3. 似乎是在文字服務和輸入語言的進階頁面,勾選延伸對所有程式的進階文字服務支援之後才能切換到測試版
  4. 切換到測試版輸入法之後,中英切換按鈕和全半形切換按鈕沒有圖示,按鍵盤或滑鼠切換中英文和全半形都無效,只能打英半。

【↑】會關閉選字清單

選字清單開啟時,按「↑鍵」會關閉選字清單,

用「`」輸入特殊符號的清單也相同,

單鍵輸入的符號(「」\、=)及 shift + 符號的選字清單則不受影響。

如果有勾選「使用 Esc 清空編輯區字串」,則「↑鍵」也可以清空編輯區。

版本:windows-chewing-tsf-2013-09-23

長字串輸入

在 win 7 使用。一口氣輸入很長的字串時,讓字溢出可選字的緩衝區時會出現之前輸入過的字串插入文字中間。

比如一口氣輸入:

從前我常見提籠架鳥的人,清早在街上蹓躂(現在這樣有閒的人少了)。我感覺興味的不是那人的悠閒,卻是那鳥的苦悶。

會變成:

從前成:氣輸我前成:氣輸入常見成:氣輸入:提見成:氣輸入:籠見成:氣輸入:架見成:氣輸入:鳥見成:氣輸入:的見成:氣輸入:人見成:氣輸入:,見成:氣輸入:清見成:氣輸入:早在成:氣輸入:街上遛達(現在這樣有閒的人少了)。我感覺興味的不是那人的優閒,卻是那鳥的苦悶。

是否可以弄一個選項,仿造「ㄅ半舊式注音」模式?

您好,剛才試用過後非常的喜歡您寫的輸入法。

我在想如果在桌面模式,是否方便寫一個介面仿照以前的ㄅ半注音,讓一些舊使用者可以無痛升上Windows8,這些使用者大部份都是自己選字(或者應該是說字的位置早就背起來了),而且不喜歡橫式的直接顯示式的輸入方式(叮著游標處會感覺畫面在那邊一直閃)。

在MetroUI介面下實作有困難沒關係,維持現在的原樣即可,反正也很少用。

如果有ㄅ半模式,我想你的程式會大大的受到這些Old school使用者的歡迎啊!!!!

在Firefox及Chrome無法切換至酷注音2013

您好,我是XP SP3 在Firefox 22 及Chrome 29.0.1547.76 下無法切換至酷注音,開啟「進階文字服務支援」後仍舊無法切換 。
本版本相當好用,希望能盡快解決此問題,謝謝: )

程式當掉問題(Windows8)

任何程式下,不用做任何輸入的動作,只要用滑鼠右鍵點選"關於新酷音輸入法",會讓該正在打字的程式當掉。(目前只發生在W8,W7沒問題。)

環境:Windows8 64bit
windows-chewing-tsf-2013-09-23


問題事件名稱: APPCRASH
應用程式名稱: Notepad2.exe
應用程式版本: 5.0.26.0
應用程式時間戳記: 508cf855
錯誤模組名稱: ChewingTextService.dll
錯誤模組版本: 1.0.0.1
錯誤模組時間戳記: 524057aa
例外狀況代碼: c0000005
例外狀況位移: 00012930
作業系統版本: 6.2.9200.2.0.0.768.101

地區設定識別碼: 1028

問題事件名稱: APPCRASH
應用程式名稱: EXCEL.EXE
應用程式版本: 14.0.7104.5000
應用程式時間戳記: 51cdffef
錯誤模組名稱: ChewingTextService.dll
錯誤模組版本: 1.0.0.1
錯誤模組時間戳記: 524057aa
例外狀況代碼: c0000005
例外狀況位移: 00012930
作業系統版本: 6.2.9200.2.0.0.768.101
地區設定識別碼: 1028

建議新增 Ctrl + Alt + , 輸入全形標點符號的功能

在微軟的中文輸入法 (傳統注音和新注音都有) 按下 Ctrl + Alt + , 後會出現一個可以輸入全形標點符號的螢幕小鍵盤,再按下鍵盤上對應的按鍵後就可以快速輸入許多全形標點符號,希望也可以把這個功能新增到新酷音中。感謝您 :)

選字時若滑鼠點擊輸入欄不能再輸入文字

選字時若滑鼠點擊任意輸入區域如當前輸入區域,其他輸入區域(如url列,搜尋引擎欄)候選字清單仍顯示,選字後字不但沒出來且不能再打任何字

目前只能用Ctrl+Space來解除但很麻煩

按↓無法翻頁

按下沒辦法翻到下一頁一直回到原本同樣的開頭
只能按右或space翻頁

而在後面的頁面想要往回翻時又遇到選字欄收回的bug(#12)
造成選字操作困難

在Status行列中加入顯示中/英文及半全形

這不是bug,只是長期使用微軟新注音的習慣。
平常我使用英文輸入的情況不少。目前新酷音的縮小顯示列,只有列出CH / 酷。希望多列入(至少)中英文及半全形。這樣方便知道目前是處在英文輸入還是中文,才不會有誤輸入的情況。
謝謝

使用者詞庫無法編輯

在 win 7 底下移除舊版(0.3.4.8)之後安裝新版,一般使用正常,但點下語言列上的鈑手後選單顯示使用者詞庫不能用。

安裝過程中沒有出現什麼異常。不知道是否這個版本目前沒有支援使用者詞庫編輯?

在PCMan使用的問題

你好:很高興也很感謝新酷音又回來了!
一切都很順,不過在使用bbs時(PCman 9.3.1 Novus),輸入法的視窗似乎不會跟著游標跑,而是出現一個黑色的固定視窗,較不直覺,期盼新酷音輸入法可以蓬勃發展!
(windows7 x64)

更新的時候顯示 TSF 的 dll 無法覆蓋

如題,需要重登保持未使用過新酷音的狀態才能更新成功
實測就算該檔案沒更新到也沒差,略過也可以,但是不知道會不會有問題

版本 09/23 更新至 09/25

選字視窗在多螢幕下無法正確定位

在多螢幕狀況下,如果輸入法不在主視窗做動,選字視窗跟隨輸入法會有問題,附件畫面應該為三視窗,我為了標示方便裁掉最左側視窗,主視窗是大的那個
untitled-1

Win8 64位元下 遊戲內完全無法打字

感謝辛苦的開發人員,超愛新酷音的!!
有個小問題回報一下~~~
在魔獸世界64位元 Direct11下,啟用新酷音之後無論全螢幕還是視窗化都只能打出英文! !!
另外,該怎切換全形和半形呀,一時半刻找不到怎麼切換Orz

Cannot use hot-key when using chewing

Hot keys like Ctrl-c, Ctrl-v, Ctrl-a cannot work when input method is chewing. Is it possible that if the key sequence is not for chewing, windows-chewing-tsf just delegates the key event to Windows?

Backspace 在打開選字清單時的行為

win32-chewing-0.3.4.8: 關閉選字清單
windows-chewing-tsf: 無反應 (選字清單會往前移動一個字的寬度, 但游標不動)
是否能有辦法像 win32-chewing 那樣讓 backspace 關閉選字清單?

打不出「麼」 (翻了前面的問題後已解決)

用新酷音總是打不出「麼」(ㄇㄛ˙ )這個字


雖然我翻了一下發現「ㄇㄜ˙」才是正確的注音
但我始終改不過來這個習慣啊
而且似乎也有很多人都是習慣使用「ㄇㄛ˙」這個注音來輸入「麼」
不知道能否對這個字的輸入方法增加一個讀音嗎?

設定值顯示和作用情況不同

Windows 7 32bit

Windows TSF 2013-09-23版本

設定取消Shift切換中英文的功能,但是還是可以作用

選字視窗數量的數量設定後有作用,但是顯示仍然為預設值

Crash in google chrome

Environment

Reprocedure

  1. Open google-chrome
  2. Switch input method to windows-chewing-tsf

Result

Crash with the following code stack. The problem is that chewingContext_ is NULL in Chewing::TextService::filterKeyDown.

0:000:x86> kvM
 # ChildEBP RetAddr  Args to Child              
00 002af454 5a733e3c 5a802ca8 5a802bd8 00000034 MSVCR110D!_wassert+0xbf1 (FPO: [Non-Fpo])
01 002af470 5a74a4bb 0000005b 002af4bc 002af4a8 ChewingTextService!Chewing::TextService::filterKeyDown+0x2c (FPO: [Non-Fpo]) (CONV: thiscall)
02 002af480 761abd0a 0082e190 008039a8 0000005b ChewingTextService!Ime::TextService::OnTestKeyDown+0x1b (FPO: [Non-Fpo]) (CONV: stdcall)
03 002af4a8 761e1a73 00803358 0000000c 008039a8 MSCTF!CThreadInputMgr::_CallKeyEventSink+0x82 (FPO: [Non-Fpo])
04 002af4f8 76198ed0 00000001 0000005b 015b0001 MSCTF!CThreadInputMgr::_KeyStroke+0x49412
05 002af524 76198a4e 00803364 0000005b 015b0001 MSCTF!CThreadInputMgr::KeyDownUpEx+0x5a (FPO: [Non-Fpo])
06 002af594 75ef46a8 00400115 0000005b 015b0001 MSCTF!CtfImeProcessKey+0xbb (FPO: [Non-Fpo])
07 002af5c8 758058da 00060242 04040404 0000005b IMM32!ImmProcessKey+0x97 (FPO: [Non-Fpo])
08 002af600 77c82c92 002af618 00000000 002af9b0 USER32!__ClientImmProcessKey+0x2b (FPO: [Non-Fpo])
09 002af628 757f7aa2 002af684 00000000 00000000 ntdll_77c40000!KiUserCallbackDispatcher+0x2e (FPO: [0,0,0])
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for chrome.dll - 
0a 002af65c 5bbfc983 002af684 00000000 00000000 USER32!PeekMessageW+0x195 (FPO: [Non-Fpo])
WARNING: Stack unwind information not available. Following frames may be wrong.
0b 002af6a0 5b8ea08d 009dcd80 002af6e8 00a09ea0 chrome_5b8c0000!ovly_debug_event+0x31d0b3
0c 002af6c0 5b8e9ff8 5d83a5a9 00000000 5be065ce chrome_5b8c0000!ovly_debug_event+0xa7bd
0d 002af6d4 5be065e7 5db8f284 009f0f50 5d808794 chrome_5b8c0000!ovly_debug_event+0xa728
0e 002af74c 5be064c9 009f0f5c 5d96b560 009dd960 chrome_5b8c0000!ovly_debug_event+0x526d17
0f 002af770 5bb42790 009ded20 00000000 ffffffff chrome_5b8c0000!ovly_debug_event+0x526bf9
10 002af784 5b8db070 002af7b8 009deea0 00000000 chrome_5b8c0000!ovly_debug_event+0x262ec0
11 002af798 5b8daff7 002af7c8 002af7b8 002af82c chrome_5b8c0000!ChromeMain+0x107e6
12 002af804 5b8cabb6 00b21508 00b217d0 002af84c chrome_5b8c0000!ChromeMain+0x1076d
13 002af814 5b8ca8a8 00dc0000 002af8dc 002af82c chrome_5b8c0000!ChromeMain+0x32c
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Program Files (x86)\Google\Chrome\Application\chrome.exe - 
14 002af84c 00de20b6 00dc0000 002af8dc 002af8e4 chrome_5b8c0000!ChromeMain+0x1e
15 002af8c4 00de5314 00dc0000 002af8dc 00000000 chrome+0x220b6
16 002af8e8 00de5479 00dc0000 00000000 ffffffff chrome!SetPrinterInfo+0x7aa
17 002af930 00e0381d 00dc0000 00000000 00741c3a chrome!SetPrinterInfo+0x90f
18 002af9c0 7599850d ffd9f000 002afa10 77c9bf39 chrome!SetPrinterInfo+0x1ecb3
19 002af9cc 77c9bf39 ffd9f000 b933e208 00000000 KERNEL32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])
1a 002afa10 77c9bf0c 00e03870 ffd9f000 ffffffff ntdll_77c40000!__RtlUserThreadStart+0x72 (FPO: [Non-Fpo])
1b 002afa28 00000000 00e03870 ffd9f000 00000000 ntdll_77c40000!_RtlUserThreadStart+0x1b (FPO: [Non-Fpo])
0:000:x86> .frame 0n0;dv /t /v

no ChewingService.dll ?

我照著指示用CMake和VS 2012完成編譯之後
發現沒有指示中的ChewingService.dll出現
不過有ChewingTextService.dll
我就register他了 輸入法選單中也有出現新酷音
所以我猜可能是個筆誤
但是輸入文字的時候什麼都沒有發生
(就是直接英文輸入)
我漏了什麼嗎?

環境:Windows 8(6.2 bulid 9200) x64, Visual Studio 2012

組字視窗太小,看不清楚

Copy from https://code.google.com/p/chewing/issues/detail?id=15

安裝windows-chewing-tsf-2013-09-23
去設定-介面外觀-文字大小 這邊的改變只是選字的大小改變..
輸入介面的字體大小還根據輸入那一行的條件去調整
如附件 用三行不同的字體,輸入的顯示也就不同
在WORD或者其他編輯器上,因為可以透過放大,來達到同步放大的效果。
如果是在網頁上或者填寫一些格式很固定,沒辦法調整字型大小或者放大縮小的頁面
對某些人來說,他希望是輸入的同時他的字體也是可以被調整,按下Enter之後,才是顯示正常的大小

以上測試的作業系統是 XP

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.