2007-07 月份文章 顯示方式:簡文 | 列表

July 6,2007

Linux Scilab 中文關鍵障礙排除程序

這是開發 Linux 版之 ADE 中文 Scilab 關鍵技術,藉由網路擴散出去,希望有更多開發者不再為這些雜學所困。

ADE 中文 Scilab Linux 版預定 11, 12 月 間公佈。

Scilab 中文化之步調無法與官方版一致,這是必然的現象;中文問題只能靠使用中文的開發族群解決。因此 Linux 上之中文版決定採用 Scilab-GTK 一方面是考慮到中文開發人力不足,只能以 C/C++ 作為主要開發語言,另一方面則是準備將 Scilab 與中文桌面系統結合進行準備。

將 locale 設定為 zh_TW.UTF8 (環境參數 LANG=zh_TW.UTF8) 後,將 Scilab-GTK 下載後在 Fedora 6 上編譯後發現以下中文處理問題:
  1. Scilab 之 console 視窗上無法啟動中文輸入

    解決方案: 必須使用 GTK2 以及選用 vte 終端機視窗程式庫,請參考 中文 Scilab 所需之GKT2 軟體環境

  2. Scilab 編輯器 (SciPad) 無法輸入中文

    解決方案: TCL/TK 及 Scipad 之中文問題

  3. 中文字串螢幕輸入、輸出

    解決方案: 使用 GTK 時,沒有這個問題 (但在 Windows 環境必須修改程式)

  4. 中文字串檔案輸入、輸出

    解決方案: 使用 GTK 時,沒有這個問題 (但在 Windows 環境必須修改程式)

  5. 繪圖指令(如 plot2d ) 中無法顯現中文標示

    解決方案: GTK 繪出中文問題

  6. scicos 文字方塊中(Edit/palettes/other) 無法顯示中文

    解決方案: GTK 繪出中文問題

  7. 選單中文化

    解決方案:

    1. 主選單
      修改次目錄 routine\gtksci 中之檔案 menus.c 內容之函數 sci_window_initial_menu
    2. 圖形選單
      修改次目錄 routine\gtksci 中之檔案 menus.c 內容之函數 graphic_initial_menu

  8. Scilab 增加中文語言選項

    可能解決方案: 參考 Windows Mingw 版之 ADE 中文 Scilab之程式碼剪貼到 Linux 版

再測試 locale Big5

  1. Consol 可輸入中文, 不需更動
  2. SciPad 可輸入中文, 不需更動
  3. 繪圖指令(plot2d 等) 無法輸出中文標示, 但  Scicos 之 text   方塊 (位於 Edit\palette\other )可接受中文
    解決方案:繪出字串前先判斷是否為 utf8 碼, 否則先由 locale 轉 utf8 , 參考 GTK 繪出中文問題
  4. 中文選單正常, 不需更動

Posted by yunglee at 21:47回應(1)引用(0)中文 Scilab 開發

July 4,2007

Scilab 中之 BIG5 , UTF8 中文

中文碼在 VTE, TCL, GTK , Scilab 中流竄轉換, 似乎使用 UTF8 碼, 程式開發較容易,但 BIG5 使用者太多, 無法放棄.

目前只剩下一部分內部之 BIG5-> UTF8 未加入應該是在 pango_draw_text 中檢查字串判斷是否為 UTF8 如果不是, 則將他轉碼 (也許由 lang 環境參數決定如何轉碼) (2007/07/03)


可能參考
Character Set Conversion

gboolean is_utf8 g_get_charset (G_CONST_RETURN char **charset);
charset : return location for character set name
Returns : TRUE if the returned charset is UTF-8

if(! g_get_charset (&charset) g_locale_to_utf8(string)

http://203.64.187.41/gtk/GTK-Lesson-4.html
#define BIG5(s) g_locale_to_utf8(s, strlen(s),NULL, NULL, NULL)

以 g_utf8_validate() 檢查是否為 UTF8 有效字串 ( Text Handling in GTK+ 2.0)

...繼續閱讀

Posted by yunglee at 0:33回應(0)引用(0)中文 Scilab 開發

July 2,2007

Scicos 文字顯現問題

若使用 pango 繪, 則顏色選擇必須注意, 否則 Scicos 中之 Other 圖版 Text 無法畫出字來原因為前景 和背景顏色相同.

已解決 (參考 :http://mail.gnome.org/archives/gtk-app-devel-list/2004-February/msg00322.html)

 GdkGC *gc 需設定如下:

void pango_draw_text(BCG *ScilabXgc,GdkDrawable *drawable,int xx, int yy,char *string)
{
 PangoLayout *pl;

// PangoFontDescription *font_desc
//            = pango_font_description_from_string ("arial black 12");
//    gtk_widget_modify_font (ScilabXgc->drawing, font_desc);
 //   pango_font_description_free (font_desc);

 pl = gtk_widget_create_pango_layout(ScilabXgc->drawing,NULL);
 pango_layout_context_changed(pl);
 pango_layout_set_text(pl, string,-1);
 GdkGC *gc;
 gc = gdk_gc_new(drawable);

 gdk_draw_layout( drawable,gc,xx,yy,pl);
 g_object_unref(gc);
 g_object_unref(pl);
}
////////////


Posted by yunglee at 0:18回應(0)引用(0)GTK 相關主題
 [1]