Hi, I'm trying to print a date onto a GtkLabel in "ar_SA" (arabic) locale. For this, I'm using the API g_date_strftime(), in which the format being passed is "%c" (to use the current locale's prefered format).
The problem is that the output generated is a corrupt value, such as "[??????? %.1d ????? 2005 %.1H:00:00] (the ? stands for an arabic character, which is probably fine, but the actual corruption is due to the unwanted "%.1d" and "%.1H" in the output). What I really want is the Arabic-Indic representation of the date, in which all the numerals are in the arabic-indic digits, but this is obviously not producing that. Could any one point out what I'm doing wrong here (or how to achive my goal)? Thanks, Gaurav ---sample program that I'm using follows ------ #include <stdio.h> #include <stdlib.h> #include <gtk/gtk.h> #include <gdk/gdk.h> #include <locale.h> int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *vbox, *hbox; GtkWidget *label; /* set the default locale - ar_SA for this particular test */ setlocale(LC_ALL, ""); /* generate the date string */ char buffer[400] = ""; char format[] = "%c"; char *utf8_format = g_locale_to_utf8(format, -1, NULL, NULL, NULL); GDate dateRec; dateRec.day = 30; dateRec.month = 9; dateRec.year = 2005; if (g_date_strftime(buffer, sizeof(buffer), utf8_format, &dateRec) == 0) buffer[0] = '\0'; printf("buffer is [%s]\n", buffer); gtk_init (&argc, &argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (GTK_WIDGET (window), 200, 100); gtk_window_set_title (GTK_WINDOW (window), "Date"); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect_swapped (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_widget_destroy), G_OBJECT (window)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show (vbox); /* create new label with the date buffer */ label = gtk_label_new(buffer); gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); gtk_widget_show (label); hbox = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (vbox), hbox); gtk_widget_show (hbox); gtk_widget_show (window); gtk_main(); return 0; } _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list