痾 其實也沒甚麼好寫的,不如說單純就是推廣文。 [Notepad++ Chinese Converter Plugin / Notepad++ 繁簡轉換插件](https://github.com/lkk9898969/Npp_ChineseConverter) [](https://github.com/lkk9898969/Npp_ChineseConverter) > 下面寫一些瑣碎的事 ## 寫插件的動機? 很簡單,就是我有一個檔案,很大,有很多簡體,那我總不可能一個一個丟Google翻譯吧? 字數太多吃不了。 要再寫一個程式專門簡轉繁? 那不如直接寫成Notepad+\+插件。不過說的簡單做的難啦,也是花了挺多時間在Debug的,畢竟是第一次開發Notepad+\+插件。 其實我原本想說網路上隨便找應該有人寫類似的插件,沒想到Google搜尋都快被我點完了楞是一個結果都沒搜到,萬般無奈之下才只好自己寫,不然有別人寫好的直接拿來用就好了說。 ## 實作細節? 其實也沒啥細節,就把選取的文字丟給`OpenCC`,再把轉出來的文字蓋上去而已。 `OpenCC`在運作的時候是需要吃字典的 (`OpenCC`在轉換實際上就是查字典),而為了這個字典要存在其實下了蠻多功夫。理想上是直接把字典塞在Memory裡面,讓`OpenCC`直接讀Memory的字典就好了。 但問題是我太菜了,沒搞懂(也懶得搞懂)`OpenCC`是如何去讀字典的,乾脆暴力把字典直接壓縮在插件裡面,第一次啟動的時候就把字典解壓縮出來,然後讓`OpenCC`去讀解壓縮完的字典。 然後呢,為此還跑去研究`libarchive`如何直接把壓縮檔從Memory解壓到檔案系統,這部分其實不難,但是我又手賤去用7z壓縮字典,可想而知`liblzma`是怎麼成為子模組了 *(為了避免dll產生,`OpenCC`、`libarchive`跟`liblzma`都直接用static library link起來了)*。 老實說乖乖用zip包起來就好了,但是zip有那個經典的檔名code page問題實在是很怕解壓縮的時候出事,rar的話... WinRAR好像是要錢的齁? 我還是乖乖用7z就好了。 ## 插件更新/優化? 痾,老實說應該是不會更新,這種插件是要能有什麼奇怪的BUG呢?(歪頭) 能改進的地方就是把~~我懶惰不想寫的~~其他功能加進來,其實我有預留好`OpenCC`其他的轉換方式,選單連結上去就能用了,~~但我就懶得寫選單阿怎麼樣\~\~~~ 另外一個比較能改的地方是不要把字典寫在檔案系統,直接在Memory的地方解壓縮後讓OpenCC去讀Memory的字典就好。 但是嘛,這種東西我還真的是一點概念都沒有,根本就不知道要怎麼做。而且你說這個是優化嗎? umm... 拿記憶體空間換磁碟空間? 其實好像也沒差,但我就是不想多塞東西到硬碟上(kimoji問題),而且更新字典也比較直觀,就是插件更新字典就一起更新了。現在的話,插件更新完還得重新按一次載入字典才會更新,為甚麼呢? 因為插件在載入時會檢查檔案系統上字典的資料夾存不存在,不存在才會將字典解壓縮。但是! 不會檢查資料夾內容。換句話說,你要硬刪掉一些用不到的字典省空間是可以的,畢竟不檢查也用不到。 ## 發這篇文的目的? ~~炫耀~~不是,單純就是我想讓這個倉庫上google search,網路上查到說把倉庫丟去社群網站能大大提高搜尋引擎index倉庫的機率。不過我丟reddit已經1個禮拜了google搜下去還是啥都沒有才跑來這裡發文的。不過,這篇文好像也不會在google search上欸...嗯?
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up