lazarus缺臨門一腳(中文輸入問題) [論壇 - Ubuntu 程式設計]
正在瀏覽:
1 名遊客
回覆: lazarus缺臨門一腳(中文輸入問題) |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2009/1/10 10:33 所屬群組:
已註冊使用者 等級: 14
HP : 0 / 340
![]() |
這個問題終於在Lazarus 2.2.2 得到令人滿意的解決方案。
有中國網友深入原始碼,終於找出需要修改的相關檔案, 並寫出一次性修改的sh 指令(如附), 將所有相關檔案做修補, 然後重新編譯 Lazarus IDE 就可以了。 目前測試確定 fcitx 與 ibus 都可用, 但是gcin 可能是結構不容 還是不行
2022/9/8 12:55
|
||||||||||
![]() |
回覆: lazarus缺臨門一腳(中文輸入問題) |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員三級
![]() ![]() 註冊日期:
2009/1/10 10:33 所屬群組:
已註冊使用者 等級: 14
HP : 0 / 340
![]() |
#!/bin/bash
get_char() { SAVEDSTTY=`stty -g` stty -echo stty cbreak dd if=/dev/tty bs=1 count=1 2> /dev/null stty -raw stty echo stty $SAVEDSTTY } pause() { # 啟用功能的開關 1開啟|其它不開啟 enable_pause=1 # 判斷第一個參數是否為空,約定俗成的寫法 if [ "x$1" != "x" ]; then echo $1 fi if [ $enable_pause -eq 1 ]; then # echo "Press any key to continue!" echo "按任意鍵繼續..." char=`get_char` fi } echo =============================================================== echo = echo = 本腳本給運行於Linux上的Lazarus(現有版本為2.2.2)代碼編輯器增加中文輸入功能 echo = echo = 用法: echo = echo = 把該腳本保存在lazarus所在同層目錄(目錄名稱就是2.2.2),然后執行 echo = echo = sh ./add_chinese_input_to_lazarus.sh echo = echo = --------------------------------------------------------------- echo = echo = 請注意: echo = echo = 該腳本不能重復執行,在執行前請先確認是首次執行 echo = echo = 如果中止執行請按 Ctrl + C 退出 echo = echo = 而且最好在執行此腳本前 事先做過Lazarus 重新編譯之所有設定 並成功做過重新編譯 echo = echo =============================================================== pause sed -i 's/{$mode objfpc}{$H+}/{$mode objfpc}{$H+}\n\n{$ifdef linux}\n {$define WITH_GTK2_IM}\n{$endif}/g' 2.2.2/components/synedit/lazsyngtk2imm.pas sed -i 's/{$mode objfpc}{$H+}/{$mode objfpc}{$H+}\n\n{$ifdef linux}\n {$define WITH_GTK2_IM}\n{$endif}/g' 2.2.2/lcl/interfaces/gtk2/gtk2globals.pp sed -i 's/{$IFNDEF USE_GTK_MAIN_OLD_ITERATION}/{$ifdef linux}\n {$define WITH_GTK2_IM}\n{$endif}\n\n{$IFNDEF USE_GTK_MAIN_OLD_ITERATION}/g' 2.2.2/lcl/interfaces/gtk2/gtk2widgetset.inc sed -i 's/{off $DEFINE VerboseUpdateSysColorMap}/{off $DEFINE VerboseUpdateSysColorMap}\n\n{$ifdef linux}\n {$define WITH_GTK2_IM}\n{$endif}/g' 2.2.2/lcl/interfaces/gtk2/gtk2proc.inc sed -i 's/{$DEFINE SYNEDIT_INCLUDE}/{$ifdef linux}\n {$define Gtk2IME}\n{$endif}\n\n{$DEFINE SYNEDIT_INCLUDE}/g' 2.2.2/components/synedit/synedit.inc echo echo echo "代碼更改完畢,請啟動lazarus,然後從功能選項 Tools --> Build Lazarus with Profile: Normal IDE 重新編譯Lazarus,以使修改生效。" echo
2022/9/8 13:00
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.