balsa r7995 - in trunk: . libbalsa src



Author: pawels
Date: Mon Nov 17 19:38:42 2008
New Revision: 7995
URL: http://svn.gnome.org/viewvc/balsa?rev=7995&view=rev

Log:
* src/{folder,mailbox}-conf.c: capitalize according to HID.
* src/{balsa-app,pref-manager}.c: ditto.
* libbalsa/identity.c: ditto.
* configure.in: gnome-keyring detection.
* libbalsa/smtp-server.c: store server protocol.
* libbalsa/imap-server.c: read password from keyring.
* libbalsa/server.[ch]: ditto.


Modified:
   trunk/ChangeLog
   trunk/configure.in
   trunk/libbalsa/identity.c
   trunk/libbalsa/imap-server.c
   trunk/libbalsa/server.c
   trunk/libbalsa/server.h
   trunk/libbalsa/smtp-server.c
   trunk/src/balsa-app.c
   trunk/src/folder-conf.c
   trunk/src/mailbox-conf.c
   trunk/src/pref-manager.c

Modified: trunk/configure.in
==============================================================================
--- trunk/configure.in	(original)
+++ trunk/configure.in	Mon Nov 17 19:38:42 2008
@@ -51,18 +51,6 @@
 	with_gnome=yes
 ])
 
-
-if test x$with_gnome != xno; then
-   gnome_extras="libgnome-2.0 libgnomeui-2.0 
-   gnome-vfs-2.0 gnome-vfs-module-2.0 libbonobo-2.0"
-   gnome_print_extras="libgnomeprint-2.2 >= 2.1.4 libgnomeprintui-2.2 >= 2.1.4"
-   AC_DEFINE(HAVE_GNOME,1,[Defined when gnome libs are available.])
-else
-   gnome_extras=""
-   gnome_print_extras=""
-fi
-AM_CONDITIONAL([BUILD_WITH_GNOME], [test $with_gnome = "yes"])
-
 dnl ###########################################################################
 dnl Configure locking
 dnl ###########################################################################
@@ -235,19 +223,20 @@
 # scrollkeeper.
 #
 
-AC_MSG_CHECKING([whether we have gnome-doc-utils])
-if $PKG_CONFIG --exists gnome-doc-utils; then
-    AC_PATH_PROG(gdtool, gnome-doc-tool, no)
-    if test "$gdtool" = no; then
-    with_g_d_u=no
-    else
-    with_g_d_u=yes
-    fi
-else
-    with_g_d_u=no
+AC_PATH_PROG(gdtool, gnome-doc-tool, no)
+if test "$gdtool" = no; then
+with_g_d_u=no
+else
+   AC_MSG_CHECKING([whether we have gnome-doc-utils])
+   if $PKG_CONFIG --exists gnome-doc-utils; then
+       with_g_d_u=yes
+   else
+       with_g_d_u=no
+   fi
+   AC_MSG_RESULT($with_g_d_u)
 fi
 
-AC_MSG_RESULT($with_g_d_u)
+
 AM_CONDITIONAL([BUILD_WITH_G_D_U], [test $with_g_d_u = "yes"])
 
 if test $with_g_d_u = yes ; then
@@ -285,6 +274,29 @@
 fi
 
 dnl #####################################################################
+dnl GNOME libs
+dnl #####################################################################
+if test x$with_gnome != xno; then
+   gnome_extras="libgnome-2.0 libgnomeui-2.0 
+   gnome-vfs-2.0 gnome-vfs-module-2.0 libbonobo-2.0"
+   gnome_print_extras="libgnomeprint-2.2 >= 2.1.4 libgnomeprintui-2.2 >= 2.1.4"
+   AC_MSG_CHECKING([whether we have gnome-keyring])
+   if $PKG_CONFIG --exists gnome-keyring-1; then
+      gnome_extras="$gnome_extras gnome-keyring-1"
+      AC_DEFINE(HAVE_GNOME_KEYRING,1,[Defined when gnome-keyring is there.])
+      with_gnome_keyring=yes
+   else
+      with_gnome_keyring=no
+   fi
+   AC_MSG_RESULT($with_gnome_keyring)
+   AC_DEFINE(HAVE_GNOME,1,[Defined when gnome libs are available.])
+else
+   gnome_extras=""
+   gnome_print_extras=""
+fi
+AM_CONDITIONAL([BUILD_WITH_GNOME], [test $with_gnome = "yes"])
+
+dnl #####################################################################
 dnl GtkPrint
 dnl #####################################################################
 

Modified: trunk/libbalsa/identity.c
==============================================================================
--- trunk/libbalsa/identity.c	(original)
+++ trunk/libbalsa/identity.c	Mon Nov 17 19:38:42 2008
@@ -985,13 +985,13 @@
     /* create the "General" tab */
     table = append_ident_notebook_page(notebook, 5, _("General"), NULL);
     row = 0;
-    ident_dialog_add_entry(table, row++, dialog, _("_Identity Name:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("_Identity name:"), 
 		           "identity-name");
-    ident_dialog_add_entry(table, row++, dialog, _("_Full Name:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("_Full name:"), 
                            "identity-fullname");
-    ident_dialog_add_entry(table, row++, dialog, _("_Mailing Address:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("_Mailing address:"), 
                            "identity-address");
-    ident_dialog_add_entry(table, row++, dialog, _("Reply _To:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("Reply _to:"), 
                            "identity-replyto");
     ident_dialog_add_entry(table, row++, dialog, _("_Domain:"), 
                            "identity-domain");
@@ -1001,9 +1001,9 @@
     row = 0;
     ident_dialog_add_entry(table, row++, dialog, _("_Bcc:"), 
                            "identity-bcc");
-    ident_dialog_add_entry(table, row++, dialog, _("Reply _String:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("Reply _string:"), 
                            "identity-replystring");
-    ident_dialog_add_entry(table, row++, dialog, _("F_orward String:"), 
+    ident_dialog_add_entry(table, row++, dialog, _("F_orward string:"), 
                            "identity-forwardstring");
     ident_dialog_add_checkbutton(table, row++, dialog, 
                                  _("send messages in both plain text and _HTML format"),
@@ -1019,7 +1019,7 @@
                            path_info[LBI_PATH_TYPE_FACE].box_key,
                            path_info[LBI_PATH_TYPE_XFACE].box_key);
 #if ENABLE_ESMTP
-    ident_dialog_add_smtp_menu(table, row++, dialog, _("SMT_P Server:"),
+    ident_dialog_add_smtp_menu(table, row++, dialog, _("SMT_P server:"),
                                "identity-smtp-server", smtp_servers);
 #endif /* ENABLE_ESMTP */
 
@@ -1027,25 +1027,25 @@
     table = append_ident_notebook_page(notebook, 7, _("Signature"), NULL);
     row = 0;
     ident_dialog_add_check_and_entry(table, row++, dialog,
-                                     _("Signature _Path"),
+                                     _("Signature _path"),
                                      "identity-sigpath");
     ident_dialog_add_checkbutton(table, row++, dialog,
-                                _("_Execute Signature"),
+                                _("_Execute signature"),
 				 "identity-sigexecutable", FALSE);
     ident_dialog_add_checkbutton(table, row++, dialog,
-                                 _("Incl_ude Signature"), 
+                                 _("Incl_ude signature"), 
                                  "identity-sigappend", FALSE);
     ident_dialog_add_checkbutton(table, row++, dialog, 
-                                 _("Include Signature When For_warding"),
+                                 _("Include signature when for_warding"),
                                  "identity-whenforward", FALSE);
     ident_dialog_add_checkbutton(table, row++, dialog,
-                                 _("Include Signature When Rep_lying"),
+                                 _("Include signature when rep_lying"),
                                  "identity-whenreply", FALSE);
     ident_dialog_add_checkbutton(table, row++, dialog, 
-                                 _("_Add Signature Separator"),
+                                 _("_Add signature separator"),
                                  "identity-sigseparator", FALSE);
     ident_dialog_add_checkbutton(table, row++, dialog,
-                                 _("Prepend Si_gnature"),
+                                 _("Prepend si_gnature"),
                                  "identity-sigprepend", FALSE);
 
 #ifdef HAVE_GPGME

Modified: trunk/libbalsa/imap-server.c
==============================================================================
--- trunk/libbalsa/imap-server.c	(original)
+++ trunk/libbalsa/imap-server.c	Mon Nov 17 19:38:42 2008
@@ -4,10 +4,17 @@
   server. Idle connections are disconnected after a timeout, or when
   the user switches to offline mode.
 */
+
+#include "config.h"
+
 #include <string.h>
 #include <stdlib.h>
 #include <pthread.h>
 
+#if defined(HAVE_GNOME_KEYRING)
+#include <gnome-keyring.h>
+#endif
+
 #include "libbalsa.h"
 #include "libbalsa-conf.h"
 #include "server.h"
@@ -166,6 +173,7 @@
 static void
 libbalsa_imap_server_init(LibBalsaImapServer * imap_server)
 {
+    LIBBALSA_SERVER(imap_server)->protocol = "imap";
     imap_server->key = NULL;
     imap_server->lock = g_mutex_new();
     imap_server->max_connections = MAX_CONNECTIONS_PER_SERVER;
@@ -495,18 +503,41 @@
     if(!d) imap_server->use_idle = !!d1;
     if (!server->passwd) {
         server->remember_passwd = libbalsa_conf_get_bool("RememberPasswd=false");
-        if(server->remember_passwd)
+        if(server->remember_passwd) {
+#if defined (HAVE_GNOME_KEYRING)
+	    GnomeKeyringResult r;
+	    server->passwd = NULL;
+	    r = gnome_keyring_find_password_sync(LIBBALSA_SERVER_KEYRING_SCHEMA,
+						 &server->passwd,
+						 "protocol", server->protocol,
+						 "server", server->host,
+						 "user", server->user,
+						 NULL);
+	    if(r != GNOME_KEYRING_RESULT_OK) {
+		gnome_keyring_free_password(server->passwd);
+		server->passwd = NULL;
+		printf("Keyring has no password for %s %s\n",
+		       server->user, server->host);
+		server->passwd = libbalsa_conf_private_get_string("Password");
+		if (server->passwd != NULL) {
+		    gchar *buff = libbalsa_rot(server->passwd);
+		    libbalsa_free_password(server->passwd);
+		    server->passwd = buff;
+		}
+	    }
+#else
             server->passwd = libbalsa_conf_private_get_string("Password");
+	    if (server->passwd != NULL) {
+		gchar *buff = libbalsa_rot(server->passwd);
+		libbalsa_free_password(server->passwd);
+		server->passwd = buff;
+	    }
+#endif
+	}
         if(server->passwd && server->passwd[0] == '\0') {
-            g_free(server->passwd);
+            libbalsa_free_password(server->passwd);
             server->passwd = NULL;
         }
-
-        if (server->passwd != NULL) {
-            gchar *buff = libbalsa_rot(server->passwd);
-            g_free(server->passwd);
-            server->passwd = buff;
-        }
     }
     return imap_server;
 }

Modified: trunk/libbalsa/server.c
==============================================================================
--- trunk/libbalsa/server.c	(original)
+++ trunk/libbalsa/server.c	Mon Nov 17 19:38:42 2008
@@ -25,6 +25,10 @@
 #include <string.h>
 #include <stdlib.h>
 
+#if defined(HAVE_GNOME_KEYRING)
+#include <gnome-keyring.h>
+#endif
+
 #ifdef USE_TLS
 #include <openssl/err.h>
 #endif
@@ -36,6 +40,20 @@
 #include "libbalsa-conf.h"
 #include <glib/gi18n.h>
 
+#if defined(HAVE_GNOME_KEYRING)
+static const GnomeKeyringPasswordSchema server_schema = {
+    GNOME_KEYRING_ITEM_GENERIC_SECRET,
+    {
+	{ "protocol", GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
+	{ "server",   GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
+	{ "user",     GNOME_KEYRING_ATTRIBUTE_TYPE_STRING },
+	{ NULL, 0 }
+    }
+};
+const GnomeKeyringPasswordSchema* LIBBALSA_SERVER_KEYRING_SCHEMA =
+    &server_schema;
+#endif /* HAVE_GNOME_KEYRING */
+
 static GObjectClass *parent_class = NULL;
 static void libbalsa_server_class_init(LibBalsaServerClass * klass);
 static void libbalsa_server_init(LibBalsaServer * server);
@@ -146,6 +164,7 @@
 static void
 libbalsa_server_init(LibBalsaServer * server)
 {
+    server->protocol = "pop3"; /* Is this a sane default value? */
     server->host = NULL;
     server->user = NULL;
     server->passwd = NULL;
@@ -166,7 +185,7 @@
 
     g_free(server->host);   server->host = NULL;
     g_free(server->user);   server->user = NULL;
-    g_free(server->passwd); server->passwd = NULL;
+    libbalsa_free_password(server->passwd); server->passwd = NULL;
 
     G_OBJECT_CLASS(parent_class)->finalize(object);
 }
@@ -198,7 +217,7 @@
 {
     g_return_if_fail(LIBBALSA_IS_SERVER(server));
 
-    g_free(server->passwd);
+    libbalsa_free_password(server->passwd);
     if(passwd && passwd[0])
 	server->passwd = g_strdup(passwd);
     else server->passwd = NULL;
@@ -298,23 +317,45 @@
     server->tls_mode = libbalsa_conf_get_int_with_default("TLSMode", &d);
     if(d) server->tls_mode = LIBBALSA_TLS_ENABLED;
     server->user = libbalsa_conf_private_get_string("Username");
+    if (!server->user)
+	server->user = g_strdup(getenv("USER"));
+
     server->try_anonymous = libbalsa_conf_get_bool("Anonymous=false");
     server->remember_passwd = libbalsa_conf_get_bool("RememberPasswd=false");
-    if(server->remember_passwd)
-        server->passwd = libbalsa_conf_private_get_string("Password");
+
+    if(server->remember_passwd) {
+#if defined (HAVE_GNOME_KEYRING)
+	GnomeKeyringResult res =
+	    gnome_keyring_find_password_sync(LIBBALSA_SERVER_KEYRING_SCHEMA,
+					     &server->passwd,
+					     "protocol", server->protocol,
+					     "server", server->host,
+					     "user", server->user,
+					     NULL);
+	if(res != GNOME_KEYRING_RESULT_OK) {
+	    gnome_keyring_free_password(server->passwd);
+	    server->passwd = NULL;
+	    printf("Error retrieving password from key ring. Falling back\n");
+	    server->passwd = libbalsa_conf_private_get_string("Password");
+	    if (server->passwd != NULL) {
+		gchar *buff = libbalsa_rot(server->passwd);
+		libbalsa_free_password(server->passwd);
+		server->passwd = buff;
+	    }
+	}
+#else
+	server->passwd = libbalsa_conf_private_get_string("Password");
+	if (server->passwd != NULL) {
+	    gchar *buff = libbalsa_rot(server->passwd);
+	    libbalsa_free_password(server->passwd);
+	    server->passwd = buff;
+	}
+#endif
+    }
     if(server->passwd && server->passwd[0] == '\0') {
-	g_free(server->passwd);
+	libbalsa_free_password(server->passwd);
 	server->passwd = NULL;
     }
-	
-    if (!server->user)
-	server->user = g_strdup(getenv("USER"));
-
-    if (server->passwd != NULL) {
-	gchar *buff = libbalsa_rot(server->passwd);
-	g_free(server->passwd);
-	server->passwd = buff;
-    }
 }
 
 /* libbalsa_server_save_config:
@@ -333,9 +374,20 @@
                           server->remember_passwd && server->passwd != NULL);
 
     if (server->remember_passwd && server->passwd != NULL) {
+#if defined(HAVE_GNOME_KEYRING)
+	gnome_keyring_store_password_sync(LIBBALSA_SERVER_KEYRING_SCHEMA,
+				     NULL,
+				     _("Balsa passwords"),
+				     server->passwd,
+				     "protocol", server->protocol,
+				     "server", server->host,
+				     "user", server->user,
+				     NULL);
+#else
 	gchar *buff = libbalsa_rot(server->passwd);
 	libbalsa_conf_private_set_string("Password", buff);
 	g_free(buff);
+#endif
     }
     libbalsa_conf_set_bool("SSL", server->use_ssl);
     libbalsa_conf_set_int("TLSMode", server->tls_mode);

Modified: trunk/libbalsa/server.h
==============================================================================
--- trunk/libbalsa/server.h	(original)
+++ trunk/libbalsa/server.h	Mon Nov 17 19:38:42 2008
@@ -26,6 +26,14 @@
 #include "imap/libimap.h"
 #include "libbalsa.h"
 
+#if defined (HAVE_GNOME_KEYRING)
+#include <gnome-keyring.h>
+extern const GnomeKeyringPasswordSchema* LIBBALSA_SERVER_KEYRING_SCHEMA;
+#define libbalsa_free_password gnome_keyring_free_password
+#else
+#define libbalsa_free_password g_free
+#endif /* HAVE_GNOME_KEYRING */
+
 #define LIBBALSA_TYPE_SERVER \
     (libbalsa_server_get_type())
 #define LIBBALSA_SERVER(obj) \
@@ -50,6 +58,7 @@
 
 struct _LibBalsaServer {
     GObject object;
+    const gchar *protocol; /**< type of the server: imap, pop3, or smtp. */
 
     gchar *host;
     gchar *user;
@@ -93,4 +102,5 @@
 
 void libbalsa_server_connect_signals(LibBalsaServer * server, GCallback cb,
                                      gpointer cb_data);
+
 #endif				/* __LIBBALSA_SERVER_H__ */

Modified: trunk/libbalsa/smtp-server.c
==============================================================================
--- trunk/libbalsa/smtp-server.c	(original)
+++ trunk/libbalsa/smtp-server.c	Mon Nov 17 19:38:42 2008
@@ -142,6 +142,7 @@
 static void
 libbalsa_smtp_server_init(LibBalsaSmtpServer * smtp_server)
 {
+    LIBBALSA_SERVER(smtp_server)->protocol = "smtp";
     smtp_server->authctx = auth_create_context();
     auth_set_mechanism_flags(smtp_server->authctx, AUTH_PLUGIN_PLAIN, 0);
     auth_set_interact_cb(smtp_server->authctx, authinteract, smtp_server);

Modified: trunk/src/balsa-app.c
==============================================================================
--- trunk/src/balsa-app.c	(original)
+++ trunk/src/balsa-app.c	Mon Nov 17 19:38:42 2008
@@ -67,6 +67,13 @@
 {
     GtkWidget *dialog, *entry, *rememb;
     gchar *prompt, *passwd = NULL;
+#if defined(HAVE_GNOME_KEYRING)
+    static const gchar *remember_password_message =
+        N_("_Remember password in keyring");
+#else
+    static const gchar *remember_password_message =
+        N_("_Remember password");
+#endif
 
     g_return_val_if_fail(server != NULL, NULL);
     if (mbox)
@@ -94,7 +101,7 @@
     gtk_entry_set_width_chars(GTK_ENTRY(entry), 20);
     gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
 
-    rememb =  gtk_check_button_new_with_mnemonic(_("_Remember password"));
+    rememb =  gtk_check_button_new_with_mnemonic(_(remember_password_message));
     gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), rememb);
     if(server->remember_passwd)
         gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rememb), TRUE);

Modified: trunk/src/folder-conf.c
==============================================================================
--- trunk/src/folder-conf.c	(original)
+++ trunk/src/folder-conf.c	Mon Nov 17 19:38:42 2008
@@ -278,6 +278,14 @@
     gchar *default_server;
     int r = 0;
 
+#if defined(HAVE_GNOME_KEYRING)
+    static const gchar *remember_password_message =
+        N_("_Remember password in keyring");
+#else
+    static const gchar *remember_password_message =
+        N_("_Remember password");
+#endif
+
     /* Allow only one dialog per mailbox node, and one with mn == NULL
      * for creating a new folder. */
     fcw = mn ? g_object_get_data(G_OBJECT(mn), BALSA_FOLDER_CONF_IMAP_KEY)
@@ -363,7 +371,7 @@
                              gtk_label_new_with_mnemonic(_("_Advanced")));
 
     /* INPUT FIELD CREATION */
-    label = libbalsa_create_label(_("Descriptive _Name:"), table, 0);
+    label = libbalsa_create_label(_("Descriptive _name:"), table, 0);
     fcw->folder_name = libbalsa_create_entry(table,
                                    G_CALLBACK(validate_folder),
                                    fcw, r++, mn ? mn->name : NULL, 
@@ -393,7 +401,7 @@
                                 table, r++, s ? s->try_anonymous : FALSE);
     g_signal_connect(G_OBJECT(fcw->anonymous), "toggled",
                      G_CALLBACK(anonymous_cb), fcw);
-    fcw->remember = libbalsa_create_check(_("_Remember password"), 
+    fcw->remember = libbalsa_create_check(_(remember_password_message), 
                                 table, r++, s ? s->remember_passwd : TRUE);
     g_signal_connect(G_OBJECT(fcw->remember), "toggled",
                      G_CALLBACK(remember_cb), fcw);

Modified: trunk/src/mailbox-conf.c
==============================================================================
--- trunk/src/mailbox-conf.c	(original)
+++ trunk/src/mailbox-conf.c	Mon Nov 17 19:38:42 2008
@@ -1155,7 +1155,7 @@
                              gtk_label_new_with_mnemonic(_("_Basic")));
 
     /* mailbox name */
-    label = libbalsa_create_label(_("Mailbox _Name:"), table, 0);
+    label = libbalsa_create_label(_("Mailbox _name:"), table, 0);
     mcw->mailbox_name = libbalsa_create_entry(table,
 				     G_CALLBACK(check_for_blank_fields),
 				     mcw, 0, NULL, label);
@@ -1250,6 +1250,14 @@
     GtkWidget *entry;
     gint row = -1;
 
+#if defined(HAVE_GNOME_KEYRING)
+    static const gchar *remember_password_message =
+        N_("_Remember password in keyring");
+#else
+    static const gchar *remember_password_message =
+        N_("_Remember password");
+#endif
+
     notebook = gtk_notebook_new();
     table = libbalsa_create_table(8, 2);
     gtk_container_set_border_width(GTK_CONTAINER(table), 12);
@@ -1257,7 +1265,7 @@
                              gtk_label_new_with_mnemonic(_("_Basic")));
 
     /* mailbox name */
-    label = libbalsa_create_label(_("Mailbox _Name:"), table, ++row);
+    label = libbalsa_create_label(_("Mailbox _name:"), table, ++row);
     mcw->mailbox_name =  libbalsa_create_entry(table,
                                       G_CALLBACK(check_for_blank_fields),
                                       mcw, row, NULL, label);
@@ -1285,7 +1293,7 @@
                      G_CALLBACK(anon_toggle_cb), mcw);
     /* toggle for remember password */
     mcw->mb_data.imap.remember = 
-	libbalsa_create_check(_("_Remember Password"), table, ++row,
+	libbalsa_create_check(_(remember_password_message), table, ++row,
 		     FALSE);
     g_signal_connect(G_OBJECT(mcw->mb_data.imap.remember), "toggled",
                      G_CALLBACK(remember_toggle_cb), mcw);
@@ -1296,7 +1304,7 @@
 	libbalsa_create_entry(table, NULL, NULL, row, NULL, label);
     gtk_entry_set_visibility(GTK_ENTRY(mcw->mb_data.imap.password), FALSE);
 
-    label = libbalsa_create_label(_("F_older Path:"), table, ++row);
+    label = libbalsa_create_label(_("F_older path:"), table, ++row);
 
     mcw->mb_data.imap.folderpath = entry = gtk_entry_new();
     gtk_entry_set_text(GTK_ENTRY(mcw->mb_data.imap.folderpath), "INBOX");

Modified: trunk/src/pref-manager.c
==============================================================================
--- trunk/src/pref-manager.c	(original)
+++ trunk/src/pref-manager.c	Mon Nov 17 19:38:42 2008
@@ -391,8 +391,8 @@
 };
 
 gchar *pwindow_type_label[NUM_PWINDOW_MODES] = {
-    N_("While Retrieving Messages"),
-    N_("Until Closed"),
+    N_("While retrieving messages"),
+    N_("Until closed"),
     N_("Never")
 };
 
@@ -400,7 +400,7 @@
 const gchar *spell_check_suggest_mode_label[NUM_SUGGEST_MODES] = {
     N_("Fast"),
     N_("Normal"),
-    N_("Bad Spellers")
+    N_("Bad spellers")
 };
 #endif                          /* HAVE_GTKSPELL */
 
@@ -563,11 +563,11 @@
 
     /* Create the pages */
     pm_append_page(notebook, create_mail_options_page(store),
-                   N_("Mail Options"), store, NULL);
+                   N_("Mail options"), store, NULL);
     pm_append_page(notebook, create_display_page(store),
-                   N_("Display Options"), store, NULL);
+                   N_("Display options"), store, NULL);
     pm_append_page(notebook, create_address_book_page(store),
-                   N_("Address Books"), store, NULL);
+                   N_("Address books"), store, NULL);
 
 #if !HAVE_GTKSPELL
     pm_append_page(notebook, create_spelling_page(store),
@@ -1607,7 +1607,7 @@
     GtkCellRenderer *renderer;
     GtkTreeViewColumn *column;
 
-    group = pm_group_new(_("Remote Mailbox Servers"));
+    group = pm_group_new(_("Remote mailbox servers"));
     hbox = gtk_hbox_new(FALSE, COL_SPACING);
     pm_group_add(group, hbox, TRUE);
 
@@ -1636,7 +1636,7 @@
 
     renderer = gtk_cell_renderer_text_new();
     column =
-        gtk_tree_view_column_new_with_attributes(_("Mailbox Name"),
+        gtk_tree_view_column_new_with_attributes(_("Mailbox name"),
                                                  renderer,
                                                  "text", MS_NAME_COLUMN,
                                                  NULL);
@@ -1664,7 +1664,7 @@
 static GtkWidget *
 local_mail_group(GtkWidget * page)
 {
-    GtkWidget *group = pm_group_new(_("Local Mail Directory"));
+    GtkWidget *group = pm_group_new(_("Local mail directory"));
 #if GTK_CHECK_VERSION(2, 6, 0)
     pui->mail_directory =
         gtk_file_chooser_button_new(_("Select your local mail directory"),
@@ -1703,7 +1703,7 @@
     GtkTreeViewColumn *column;
     GtkWidget *vbox;
 
-    group = pm_group_new(_("Outgoing Mail Servers"));
+    group = pm_group_new(_("Outgoing mail servers"));
     hbox = gtk_hbox_new(FALSE, COL_SPACING);
     pm_group_add(group, hbox, TRUE);
 
@@ -1725,7 +1725,7 @@
                      G_CALLBACK(smtp_server_changed), NULL);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes(_("Server Name"),
+    column = gtk_tree_view_column_new_with_attributes(_("Server name"),
                                                       renderer,
                                                       "text", 0, NULL);
     gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view), column);
@@ -1765,7 +1765,7 @@
     gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE);
 
     gtk_tree_store_append(store, &iter, NULL);
-    pm_append_page(notebook, mailserver_subpage(), _("Mail Servers"),
+    pm_append_page(notebook, mailserver_subpage(), _("Mail servers"),
                    store, &iter);
     pm_append_page(notebook, incoming_subpage(), _("Incoming"),
                    store, &iter);
@@ -1891,11 +1891,11 @@
     /* Quoted text regular expression */
     /* and RFC2646-style flowed text  */
 
-    group = pm_group_new(_("Quoted and Flowed Text"));
+    group = pm_group_new(_("Quoted and flowed text"));
     table = create_table(2, 3, page);
     pm_group_add(group, table, FALSE);
 
-    attach_label(_("Quoted Text\n" "Regular Expression:"), table, 0, page);
+    attach_label(_("Quoted text\n" "regular expression:"), table, 0, page);
 
     pui->quote_pattern = gtk_entry_new();
     gtk_table_attach(GTK_TABLE(table), pui->quote_pattern,
@@ -1903,7 +1903,7 @@
                      GTK_EXPAND | GTK_FILL, 0, 0, 0);
 
     pui->browse_wrap =
-	gtk_check_button_new_with_label(_("Wrap Text at"));
+	gtk_check_button_new_with_label(_("Wrap text at"));
     gtk_table_attach(GTK_TABLE(table), pui->browse_wrap,
                      0, 1, 1, 2, GTK_FILL, 0, 0, 0);
     pm_page_add_to_size_group(page, pui->browse_wrap);
@@ -1930,7 +1930,7 @@
 
     /* handling of multipart/alternative */
 
-    group = pm_group_new(_("Display of Multipart/Alternative Parts"));
+    group = pm_group_new(_("Display of multipart/alternative parts"));
 
     pui->display_alt_plain =
 	gtk_check_button_new_with_label(_("Prefer text/plain over html"));
@@ -1995,7 +1995,7 @@
 
     /* How to handle received MDN requests */
 
-    group = pm_group_new(_("Message Disposition Notification Requests"));
+    group = pm_group_new(_("Message disposition notification requests"));
 
     label = gtk_label_new(_("When I receive a message whose sender "
                             "requested a "
@@ -2063,12 +2063,12 @@
     GtkObject *spinbutton_adj;
     GtkWidget *label;
 
-    group = pm_group_new(_("Word Wrap"));
+    group = pm_group_new(_("Word wrap"));
     table = create_table(1, 3, page);
     pm_group_add(group, table, FALSE);
 
     pui->wordwrap =
-	gtk_check_button_new_with_label(_("Wrap Outgoing Text at"));
+	gtk_check_button_new_with_label(_("Wrap outgoing text at"));
     gtk_table_attach(GTK_TABLE(table), pui->wordwrap, 0, 1, 0, 1,
 		     (GtkAttachOptions) (GTK_FILL),
 		     (GtkAttachOptions) (0), 0, 0);
@@ -2096,12 +2096,12 @@
     GtkWidget *group;
     GtkWidget *table;
 
-    group = pm_group_new(_("Other Options"));
+    group = pm_group_new(_("Other options"));
 
     table = create_table(1, 2, page);
     pm_group_add(group, table, FALSE);
 
-    pui->quote_str = attach_entry(_("Reply Prefix:"), 0, table);
+    pui->quote_str = attach_entry(_("Reply prefix:"), 0, table);
 
     pui->autoquote =
         pm_group_add_check(group, _("Automatically quote original "
@@ -2136,7 +2136,7 @@
     gtk_tree_store_append(store, &iter, NULL);
     pm_append_page(notebook, display_subpage(), _("Layout"),
                    store, &iter);
-    pm_append_page(notebook, threading_subpage(), _("Sort and Thread"),
+    pm_append_page(notebook, threading_subpage(), _("Sort and thread"),
                    store, &iter);
     pm_append_page(notebook, message_subpage(), _("Message"),
                    store, &iter);
@@ -2144,7 +2144,7 @@
                    store, &iter);
     pm_append_page(notebook, format_subpage(), _("Format"),
                    store, &iter);
-    pm_append_page(notebook, status_messages_subpage(), _("Status Messages"),
+    pm_append_page(notebook, status_messages_subpage(), _("Status messages"),
                    store, &iter);
 
     return notebook;
@@ -2169,7 +2169,7 @@
     GtkObject *scroll_adj;
     GtkWidget *label;
 
-    group = pm_group_new(_("Main Window"));
+    group = pm_group_new(_("Main window"));
 
     pui->previewpane =
         pm_group_add_check(group, _("Use preview pane"));
@@ -2210,7 +2210,7 @@
     GSList *radio_group;
     gint i;
 
-    group = pm_group_new(_("Display Progress Dialog"));
+    group = pm_group_new(_("Display progress dialog"));
 
     radio_group = NULL;
     for (i = 0; i < NUM_PWINDOW_MODES; i++) {
@@ -2259,28 +2259,28 @@
     GtkWidget *group;
     GtkWidget *table;
 
-    group = pm_group_new(_("Information Messages"));
+    group = pm_group_new(_("Information messages"));
     table = create_table(5, 2, page);
     pm_group_add(group, table, FALSE);
     
     pui->information_message_menu = 
-	attach_information_menu(_("Information Messages:"), 0, 
+	attach_information_menu(_("Information messages:"), 0, 
 				GTK_TABLE(table),
 				balsa_app.information_message);
     pui->warning_message_menu =
-	attach_information_menu(_("Warning Messages:"), 1,
+	attach_information_menu(_("Warning messages:"), 1,
 				GTK_TABLE(table),
 				balsa_app.warning_message);
     pui->error_message_menu = 
-	attach_information_menu(_("Error Messages:"), 2,
+	attach_information_menu(_("Error messages:"), 2,
 				GTK_TABLE(table),
 				balsa_app.error_message);
     pui->fatal_message_menu = 
-	attach_information_menu(_("Fatal Error Messages:"), 3,
+	attach_information_menu(_("Fatal error messages:"), 3,
 				GTK_TABLE(table), 
 				balsa_app.fatal_message);
     pui->debug_message_menu = 
-	attach_information_menu(_("Debug Messages:"), 4,
+	attach_information_menu(_("Debug messages:"), 4,
 				GTK_TABLE(table),
 				balsa_app.debug_message);
 
@@ -2306,7 +2306,7 @@
     GtkWidget *vbox;
     gint i;
     
-    group = pm_group_new(_("Message Colors"));
+    group = pm_group_new(_("Message colors"));
     vbox = gtk_vbox_new(TRUE, HIG_PADDING);
     pm_group_add(group, vbox, FALSE);
 
@@ -2324,7 +2324,7 @@
 {
     GtkWidget *group;
 
-    group = pm_group_new(_("Link Color"));
+    group = pm_group_new(_("Link color"));
     pui->url_color =
         color_box(GTK_BOX(pm_group_get_vbox(group)), _("Hyperlink color"));
 
@@ -2337,7 +2337,7 @@
     GtkWidget *group;
     GtkWidget *vbox;
 
-    group = pm_group_new(_("Composition Window"));
+    group = pm_group_new(_("Composition window"));
     vbox = pm_group_get_vbox(group);
     pui->bad_address_color =
         color_box(GTK_BOX(vbox),
@@ -2368,7 +2368,7 @@
     table = create_table(2, 2, page);
     pm_group_add(group, table, FALSE);
 
-    attach_label(_("Message Font:"), table, 0, page);
+    attach_label(_("Message font:"), table, 0, page);
     pui->message_font_button =
 	gtk_font_button_new_with_font(balsa_app.message_font);
     gtk_table_attach(GTK_TABLE(table), pui->message_font_button, 
@@ -2376,7 +2376,7 @@
 		     GTK_EXPAND | GTK_FILL,
 		     (GtkAttachOptions) (GTK_FILL), 0, 0);
 
-    attach_label(_("Subject Font:"), table, 1, page);
+    attach_label(_("Subject font:"), table, 1, page);
     pui->subject_font_button =
 	gtk_font_button_new_with_font(balsa_app.subject_font);
     gtk_table_attach(GTK_TABLE(table), pui->subject_font_button, 
@@ -2414,7 +2414,7 @@
     GtkWidget *group;
     GtkWidget *vbox;
 
-    group = pm_group_new(_("Sorting and Threading"));
+    group = pm_group_new(_("Sorting and threading"));
     
     vbox = pm_group_get_vbox(group);
     pui->default_sort_field = 
@@ -2502,19 +2502,19 @@
     GtkWidget *table;
     GtkWidget *hbox;
 
-    group = pm_group_new(_("Pspell Settings"));
+    group = pm_group_new(_("Pspell settings"));
     table = create_table(3, 2, page);
     pm_group_add(group, table, FALSE);
 
     /* do the module menu */
     pui->module =
-        attach_pref_menu(_("Spell Check Module"), 0, GTK_TABLE(table),
+        attach_pref_menu(_("Spell check module"), 0, GTK_TABLE(table),
                          spell_check_modules_name, NUM_PSPELL_MODULES,
                          &pui->module_index);
 
     /* do the suggestion modes menu */
     pui->suggestion_mode =
-        attach_pref_menu(_("Suggestion Level"), 1, GTK_TABLE(table),
+        attach_pref_menu(_("Suggestion level"), 1, GTK_TABLE(table),
                          spell_check_suggest_mode_label, NUM_SUGGEST_MODES,
                          &pui->suggestion_mode_index);
 
@@ -2537,7 +2537,7 @@
 {
     GtkWidget *group;
 
-    group = pm_group_new(_("Miscellaneous Spelling Settings"));
+    group = pm_group_new(_("Miscellaneous spelling settings"));
 
     pui->spell_check_sig = pm_group_add_check(group, _("Check signature"));
     pui->spell_check_quoted = pm_group_add_check(group, _("Check quoted"));
@@ -2568,14 +2568,14 @@
     group = pm_group_new(_("Miscellaneous"));
 
     pui->debug = pm_group_add_check(group, _("Debug"));
-    pui->empty_trash = pm_group_add_check(group, _("Empty Trash on exit"));
+    pui->empty_trash = pm_group_add_check(group, _("Empty trash on exit"));
 
     hbox = gtk_hbox_new(FALSE, COL_SPACING);
     pm_group_add(group, hbox, FALSE);
 
     pui->close_mailbox_auto =
-	gtk_check_button_new_with_label(_("Close mailbox "
-                                          "if unused more than"));
+	gtk_check_button_new_with_label
+        (_("Close mailbox if unused more than"));
     gtk_box_pack_start(GTK_BOX(hbox), pui->close_mailbox_auto,
                        FALSE, FALSE, 0);
     pm_page_add_to_size_group(page, pui->close_mailbox_auto);
@@ -2603,7 +2603,7 @@
     GtkWidget *hbox;
     GtkObject *expunge_spinbutton_adj;
 
-    group = pm_group_new(_("Deleting Messages"));
+    group = pm_group_new(_("Deleting messages"));
 
     /* Translators: this used to be "using Mailbox -> Hide messages";
      * the UTF-8 string for the right-arrow symbol is broken out to
@@ -2660,7 +2660,7 @@
     GtkWidget *group;
     GtkWidget *table;
 
-    group = pm_group_new(_("Message Window"));
+    group = pm_group_new(_("Message window"));
 
     table = create_table(1, 2, page);
     pm_group_add(group, table, FALSE);
@@ -2694,7 +2694,7 @@
 {
     GtkWidget *group;
 
-    group = pm_group_new(_("Startup Options"));
+    group = pm_group_new(_("Startup options"));
 
     pui->open_inbox_upon_startup =
         pm_group_add_check(group, _("Open Inbox upon startup"));
@@ -2715,7 +2715,7 @@
     GtkWidget *hbox;
     GtkObject *scan_adj;
 
-    group = pm_group_new(_("Folder Scanning"));
+    group = pm_group_new(_("Folder scanning"));
 
     label = gtk_label_new(_("Choose depth 1 for fast startup; "
                             "this defers scanning some folders.  "
@@ -2777,7 +2777,7 @@
     GtkWidget *scrolledwindow;
     GtkWidget *vbox;
 
-    group = pm_group_new(_("Address Books"));
+    group = pm_group_new(_("Address books"));
     hbox = gtk_hbox_new(FALSE, COL_SPACING);
     pm_group_add(group, hbox, TRUE);
 
@@ -2806,7 +2806,7 @@
 
     renderer = gtk_cell_renderer_text_new();
     column =
-        gtk_tree_view_column_new_with_attributes(_("Address Book Name"),
+        gtk_tree_view_column_new_with_attributes(_("Address book name"),
                                                  renderer,
                                                  "text", AB_NAME_COLUMN,
                                                  NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]