網路城邦
RSS Feed Link 部落格聯播

文章數:594
使用 AI 來輔助「寫程式」:以 SiaTaigi GTK 3 程式為例
創作其他 2026/02/25 19:18:02

筆者從昨天晚上 6 點 (2026 年 2 月 24 日) 到今天下午 6 點 (2026 年 2 月 25),花費一天的時間,透過 Microsoft Copilot 以及 Gemini 的輔助 (主要還是 Copilot),把 English to POJ 的基本功能完成;Well,有 AI 來輔助寫程式真地可以少掉許多查詢與閱讀的時間,感覺真的很不錯!

新增功能:

在 GTK 3 TextViewWidget 當中鍵入一個英文字,cursor 緊停在該字後方的情況下,按下 Ctrl+Enter 組合鍵,就透過 Hashing 去找對應的「台語白話字」(POJ),若有找到就將該英文字代換成 Pe̍h-Ōe-Jī。

例如:鍵入 fish 之後按下 Ctrl+Enter 鍵,第一次會代換成 hî,再按一次 Ctrl+Enter 會代換成 hî-á,繼續按就是又回到 hî (looping)。

來看一下測試的截圖畫面:





第一次按下 Ctrl+Enter:




第二次按下 Ctrl+Enter:


第三次按下 Ctrl+Enter 會回到 hî (looping);

來看一下 GTK 3 的程式碼,如何在 TextViewWidget 當中由 insert cursor 所在位置去抓出前一個字 (測試用的程式碼,測好後整合到 SiaTaigi):


再讓大家看一下筆者所建立的 Eng2Poj 資料庫 (a static array),這些資料會經由 Hashing Function 存放到對應的 bucket 當中,collision 發生時採用最簡單的 linked list 方式來解決。




然而,上述的程式碼遇到 "daughter-in-law" 時會發生問題,因為 GTK 3 的 API:

   gtk_text_iter_backward_word_start()  與 gtk_text_iter_forward_word_end()

會將 hyphen "-" 當成 word separator,以致於往回抓到的字是 "law",而不是完整的 "daughter-in-law"。





怎麼辦呢?其實 GTK Official Site 的 Documentation 寫得不太好(其實是寫得很爛),因為其說明實在是太過簡略而常常說得不清不楚,以致於大多數還得自己寫測試程式去 try API,那實在是非常花費時間與心力,於是筆者就想說「找 AI 問看看」,沒想到問了之後,Copilot 的回答還蠻清楚扼要的,而且大部分其所回答的 code snippet 都還蠻切題的,真的是幫筆者省下了不少時間與心力!(真的很感謝 Copilot,沒想到免錢的版本就已經這麼好用)






筆者將 Copilot 所回答的 code snippet 整合到 SiaTaigi 程式中,測試後的確可以達成功能。






繼續測試:





AI 實在是太棒了,利用它們來輔助寫程式,的確可以省下不少心力,筆者還就此順便要求它們寫一些程式,例如 system UUID, system GUID,MAC addresses ... for (MSYS2 platform)  等等;就目前的測試結果而言,筆者覺得 Copilot 的程式能力比 Gemini 好上一些,雖然兩者是互有輸贏 (有時候 Copilot 的 code snippet 可以運作,Gemini 的不行,有時候是 Copilot 的不行,而 Gemini 的可以運作)。



第一項新增功能已經完成,剩下的就是要建 database,不知道 AI 懂不懂台語白話字,不然就可以要求它幫我建立資料庫。




好了,今天的分享就寫到這裡!Have a nice day!



最新創作
使用 AI 來輔助「寫程式」:以 SiaTaigi GTK 3 程式為例
2026/02/25 19:18:02 |瀏覽 34 回應 0 推薦 0 引用 0
An Immortal Soul (永遠不滅的靈魂)?
2026/02/22 17:48:52 |瀏覽 478 回應 0 推薦 3 引用 0
世界母語日:台灣各母語的瀕危程度
2026/02/21 20:23:32 |瀏覽 446 回應 0 推薦 2 引用 0
講台語被罰錢掛狗牌的年代
2026/02/08 17:19:13 |瀏覽 517 回應 0 推薦 6 引用 0
春梅片尾曲 ── 主旋律之台語白話字註解
2026/01/14 22:21:41 |瀏覽 331 回應 0 推薦 11 引用 0

最新影像 3742542
01
02
03