SF.net SVN: geany-plugins:[452] trunk/geany-mini-script/src

prublot at users.sourceforge.net prublot at xxxxx
Sat Feb 7 15:34:06 UTC 2009


Revision: 452
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=452&view=rev
Author:   prublot
Date:     2009-02-07 15:34:06 +0000 (Sat, 07 Feb 2009)

Log Message:
-----------
localization of the gms gui

Modified Paths:
--------------
    trunk/geany-mini-script/src/gms.c
    trunk/geany-mini-script/src/gms_gui.c

Modified: trunk/geany-mini-script/src/gms.c
===================================================================
--- trunk/geany-mini-script/src/gms.c	2009-02-06 21:41:40 UTC (rev 451)
+++ trunk/geany-mini-script/src/gms.c	2009-02-07 15:34:06 UTC (rev 452)
@@ -42,6 +42,8 @@
 #include    <stdlib.h>
 #include    <glib.h>
 #include    <glib/gstdio.h>
+#include 	<libintl.h>
+#include 	<locale.h>
 
 /* geany headers */
 #include    "geany.h"
@@ -162,7 +164,7 @@
                         GTK_DIALOG_DESTROY_WITH_PARENT,
                         GTK_MESSAGE_ERROR,
                         GTK_BUTTONS_CLOSE,
-                        result);
+                        result,NULL);
 
         gtk_dialog_run(GTK_DIALOG(dlg));
         gtk_widget_destroy(GTK_WIDGET(dlg)) ;

Modified: trunk/geany-mini-script/src/gms_gui.c
===================================================================
--- trunk/geany-mini-script/src/gms_gui.c	2009-02-06 21:41:40 UTC (rev 451)
+++ trunk/geany-mini-script/src/gms_gui.c	2009-02-07 15:34:06 UTC (rev 452)
@@ -36,6 +36,9 @@
 #include    <sys/types.h>
 #include    <unistd.h>
 
+#include 	<libintl.h>
+#include 	<locale.h>
+ 
 #include    <pango/pango.h>
 
 /* geany headers */
@@ -53,11 +56,12 @@
 #include    "gms_debug.h"
 #include    "gms.h"
 #include    "gms_gui.h"
-
+  
 /*
  * *****************************************************************************
  *  Local Macro and new local type definition
  */
+
 //! \brief Number of script type
 #define GMS_NB_TYPE_SCRIPT  6
 //! \brief Number of char of the line buffer
@@ -122,36 +126,43 @@
 const gchar *label_script_cmd[GMS_NB_TYPE_SCRIPT] = {
     "Shell", "Perl", "Python", "Sed", "Awk", "User" };
 
-///< \brief It's the information string for the information dialog box
-static const gchar str_info[] = "<b>GMS : Geany Mini-Script filter Plugin</b>\n\
-This plugin is a tools to apply a script filter on :\n\
-   o the text selection,\n\
-   o the current document,\n\
-   o all documents of the current session.\n\
-\n\
-The filter type can be : \n\
-   o Unix shell script, \n\
-   o perl script, \n\
-   o python script, \n\
-   o sed commands,\n\
-   o awk script.\n\
-\n\
-<b>AUTHOR</b>\n\
-   Written by Pascal BURLOT (December,2008)\n\
-\n\
-<b>LICENSE:</b>\n\
-This program is free software; you can redistribute\n\
-it and/or modify it under the terms of the GNU \n\
-General Public License as published by the Free\n\
-Software Foundation; either version 2 of the License,\n\
-or (at your option) any later version.";
-
 /*
  * *****************************************************************************
  *  Local functions
  */
 
 /**
+ * \brief the function initializes the localization for the gms plugin
+ */
+
+static void locale_init(void)
+{
+#ifdef ENABLE_NLS
+	gchar *locale_dir = NULL;
+
+#ifdef HAVE_LOCALE_H
+	setlocale(LC_ALL, "");
+#endif
+
+#ifdef G_OS_WIN32
+	gchar *install_dir = g_win32_get_package_installation_directory("geany", NULL);
+	/* e.g. C:\Program Files\geany\lib\locale */
+	locale_dir = g_strconcat(install_dir, "\\share\\locale", NULL);
+	g_free(install_dir);
+#else
+	locale_dir = g_strdup(LOCALEDIR);
+#endif
+
+	//g_print( "%s %s\n",GETTEXT_PACKAGE,locale_dir ) ;
+	
+	bindtextdomain(GETTEXT_PACKAGE, locale_dir);
+	bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
+	textdomain(GETTEXT_PACKAGE);
+	g_free(locale_dir);
+#endif
+}
+
+/**
  * \brief the function loads the preferences file
  */
 static void load_prefs_file(
@@ -170,8 +181,10 @@
             int  ii ;
             for ( ii = 0 ; ii <GMS_NB_TYPE_SCRIPT ;ii++ )
             {
-                fgets(bufline,GMS_MAX_LINE,fd);
-                fgets(bufline,GMS_MAX_LINE,fd);
+                if ( fgets(bufline,GMS_MAX_LINE,fd) == NULL )
+					break ;
+                if ( fgets(bufline,GMS_MAX_LINE,fd) == NULL )
+					break ;
                 bufline[strlen(bufline)-1] = 0 ;
                 g_string_assign(this->script_cmd[ii] , bufline ) ;
             }
@@ -240,7 +253,10 @@
     )
 {
     gms_private_t *this = GMS_PRIVATE(data) ;
-    GtkWidget    *p_dialog = gtk_file_chooser_dialog_new ("Load Mini-Script File",
+    GtkWidget    *p_dialog ;
+	
+	locale_init();
+	p_dialog = gtk_file_chooser_dialog_new (_("Load Mini-Script File"),
                                     GTK_WINDOW(this->mw) ,
                                     GTK_FILE_CHOOSER_ACTION_OPEN,
                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -295,7 +311,10 @@
     )
 {
     gms_private_t *this = GMS_PRIVATE(data) ;
-    GtkWidget    *p_dialog = gtk_file_chooser_dialog_new ("Save Mini-Script File",
+    GtkWidget    *p_dialog ;
+	
+	locale_init();
+	p_dialog = gtk_file_chooser_dialog_new (_("Save Mini-Script File"),
                                     GTK_WINDOW(this->mw) ,
                                     GTK_FILE_CHOOSER_ACTION_SAVE,
                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -335,12 +354,40 @@
     )
 {
     gms_private_t *this = GMS_PRIVATE(data) ;
+	gchar *info_msg ;
+	
+	locale_init();
 
+    info_msg = _(
+"<b>GMS : Geany Mini-Script filter Plugin</b>\n"
+"This plugin is a tools to apply a script filter on :\n"
+"   o the text selection,\n"
+"   o the current document,\n"
+"   o all documents of the current session.\n"
+"\n"
+"The filter type can be : \n"
+"   o Unix shell script, \n"
+"   o perl script, \n"
+"   o python script, \n"
+"   o sed commands,\n"
+"   o awk script.\n"
+"\n"
+"<b>AUTHOR</b>\n"
+"   Written by Pascal BURLOT (December,2008)\n"
+"\n"
+"<b>LICENSE:</b>\n"
+"This program is free software; you can redistribute\n"
+"it and/or modify it under the terms of the GNU \n"
+"General Public License as published by the Free\n"
+"Software Foundation; either version 2 of the License,\n"
+"or (at your option) any later version." ) ;
+
     GtkWidget *dlg = gtk_message_dialog_new_with_markup( GTK_WINDOW(this->mw),
                                 GTK_DIALOG_DESTROY_WITH_PARENT,
                                 GTK_MESSAGE_INFO,
                                 GTK_BUTTONS_CLOSE,
-                                str_info);
+                                _(info_msg),NULL );
+								
     gtk_dialog_run(GTK_DIALOG(dlg));
     GMS_FREE_WIDGET(dlg);
 }
@@ -361,6 +408,8 @@
 {
     gms_private_t *this = GMS_G_MALLOC0(gms_private_t,1);
 
+	locale_init() ;
+
     if ( this != NULL )
     {
         GtkBox     *vb_dlg        ; //!< vbox of dialog box
@@ -708,6 +757,7 @@
     GtkWidget  *t_script      ; //!< table for configuration script
     GtkWidget  *w ;
 
+	locale_init() ;
     vb_pref= gtk_vbox_new(FALSE, 6);
     f_script = gtk_frame_new (_("script configuration") );
     gtk_box_pack_start( GTK_BOX (vb_pref), f_script, FALSE, FALSE, 0);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list