תמיכה בעברית ב GTK+ - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

תמיכה בעברית ב GTK+


yosefor

Recommended Posts

צהריים טובים.

ממש לא מזמן הצלחתי להריץ תוכנית ב GTK+, ולכן גם התחלתי ללמוד להשתמש בספרייה זו.

מהר מאוד גיליתי דבר מעניין:

תמיכה בעברית יש בטקסט, אבל רק בטקסט שהמשתמש הכניס (מקום בו המשתמש מכניס נתונים).

אם אני מעוניין להכניס טקסט בעברית (בלי לאפשר למשתמש לשנות אותו), אני לא יכול.

גם את כותרת החלונות ואת כותרות התפריטים אני לא יכול לכתוב בעברית.

אני אשמח מאוד לעזרה בהוספת תמיכה בעברית. אני מנחש שלא קשה במיוחד להכניס תמיכה לתווי יוניקוד ב GTK+...

למשל לשנות את התוכנית הבאה מ:

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox;

GtkWidget *menubar;
GtkWidget *filemenu;
GtkWidget *file;
GtkWidget *quit;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 250, 200);
gtk_window_set_title(GTK_WINDOW(window), "menu");

vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);

menubar = gtk_menu_bar_new();
filemenu = gtk_menu_new();

file = gtk_menu_item_new_with_label("File");
quit = gtk_menu_item_new_with_label("Quit");

gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);

g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

g_signal_connect(G_OBJECT(quit), "activate", G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;
}

ל:

#include <gtk/gtk.h>

int main(int argc, char *argv[])
{
GtkWidget *window;
GtkWidget *vbox;

GtkWidget *menubar;
GtkWidget *filemenu;
GtkWidget *file;
GtkWidget *quit;

gtk_init(&argc, &argv);

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(window), 250, 200);
gtk_window_set_title(GTK_WINDOW(window), "תפריט");

vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window), vbox);

menubar = gtk_menu_bar_new();
filemenu = gtk_menu_new();

file = gtk_menu_item_new_with_label("קובץ");
quit = gtk_menu_item_new_with_label("יציאה");

gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), quit);
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);

g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);

g_signal_connect(G_OBJECT(quit), "activate", G_CALLBACK(gtk_main_quit), NULL);

gtk_widget_show_all(window);

gtk_main();

return 0;
}

כך שכותרת החלון תהיה "תפריט" והתפריט עצמו יכתב בעברית: "קובץ" ו "יציאה".

כרגע לא מופיע לי דבר בכותרת החלון ובמקום כל תו בעברית יש לי ריבוע ובתוכו איקס.

דבר נוסף, חשוב הרבה פחות: אפשרות שהתפריט יתחיל מימין לשמאל.

אגב, הקוד מגיע מכאן.

תודה רבה על כל עזרה,

יוסף אור

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...