[balsa] Use Unicode characters for quotes and ellipses



commit a7723f8c018feee5adf0e94bef2c8f29aa640a13
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Tue Nov 15 18:19:06 2016 -0500

    Use Unicode characters for quotes and ellipses
    
        * libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_open_db),
        (libbalsa_address_book_gpe_load):
        * libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_load),
        (libbalsa_address_book_ldap_add_address),
        (libbalsa_address_book_ldap_remove_address),
        (libbalsa_address_book_ldap_modify_address):
        * libbalsa/address-book-text.c (lbab_text_open_temp),
        (lbab_text_close_temp),
        (libbalsa_address_book_text_modify_address):
        * libbalsa/application-helpers.c (libbalsa_window_add_accelerator):
        * libbalsa/files.c (balsa_file_finder):
        * libbalsa/html.c (lbh_navigation_policy_decision_requested_cb):
        * libbalsa/libbalsa-conf.c (lbc_readfile), (lbc_init), (lbc_sync):
        * libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_accept_low_trust_key):
        * libbalsa/libbalsa-gpgme.c (get_key_from_name):
        * libbalsa/mailbox.c (get_from_field),
        (libbalsa_mailbox_new_from_config), (mbox_model_get_value):
        * libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_load_config),
        (imap_cache_manager_new_from_file):
        * libbalsa/mailbox_local.c (lbm_local_save_tree),
        (lbml_subject_gather), (lbm_local_sync_real):
        * libbalsa/mailbox_maildir.c (lbm_maildir_parse),
        (maildir_sync_add):
        * libbalsa/mailbox_mbox.c (lbm_mbox_check_files),
        (lbm_mbox_stream_seek_to_message), (lbm_mbox_save),
        (libbalsa_mailbox_mbox_sync):
        * libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_sync):
        * libbalsa/message.c (lbmsg_set_header):
        * libbalsa/misc.c (libbalsa_lock_file):
        * libbalsa/send.c (ensure_send_progress_dialog):
        * libbalsa/source-viewer.c (lsv_show_message):
        * libinit_balsa/assistant_helper.c
        (balsa_init_create_to_directory):
        * libinit_balsa/assistant_page_directory.c (unconditional_mailbox),
        (verify_mailbox_entry):
        * src/balsa-app.c (check_new_messages_auto_cb),
        (open_mailbox_by_url):
        * src/balsa-index.c (bndx_popup_menu_create),
        (balsa_index_transfer), (pipe_out_watch):
        * src/balsa-mblist.c (bmbl_mru_menu), (bmbl_mru_combo_box_setup):
        * src/balsa-message.c (tree_mult_selection_popup),
        (balsa_message_set), (mpart_content_name), (display_part),
        (part_create_menu), (create_mdn_reply), (libbalsa_msg_try_decrypt),
        (libbalsa_msg_try_mp_signed), (libbalsa_msg_part_2440):
        * src/balsa-mime-widget-message.c (bm_header_extend_popup):
        * src/balsa-mime-widget-text.c (text_view_url_popup),

 ChangeLog                                |   86 ++++++++++++++++++++++++++++++
 libbalsa/address-book-gpe.c              |    4 +-
 libbalsa/address-book-ldap.c             |    8 ++--
 libbalsa/address-book-text.c             |   10 ++--
 libbalsa/application-helpers.c           |    4 +-
 libbalsa/files.c                         |    4 +-
 libbalsa/html.c                          |    2 +-
 libbalsa/libbalsa-conf.c                 |   16 +++---
 libbalsa/libbalsa-gpgme-cb.c             |    2 +-
 libbalsa/libbalsa-gpgme.c                |    4 +-
 libbalsa/mailbox.c                       |    6 +-
 libbalsa/mailbox_imap.c                  |   12 ++--
 libbalsa/mailbox_local.c                 |   10 +++-
 libbalsa/mailbox_maildir.c               |    6 +-
 libbalsa/mailbox_mbox.c                  |   12 ++--
 libbalsa/mailbox_mh.c                    |    6 +-
 libbalsa/message.c                       |    2 +-
 libbalsa/misc.c                          |    4 +-
 libbalsa/send.c                          |    4 +-
 libbalsa/source-viewer.c                 |    2 +-
 libinit_balsa/assistant_helper.c         |   10 ++--
 libinit_balsa/assistant_page_directory.c |    8 ++--
 src/balsa-app.c                          |    4 +-
 src/balsa-index.c                        |   24 ++++----
 src/balsa-mblist.c                       |    4 +-
 src/balsa-message.c                      |   34 ++++++------
 src/balsa-mime-widget-message.c          |    4 +-
 src/balsa-mime-widget-text.c             |   14 +++---
 src/balsa-mime-widget-vcalendar.c        |    2 +-
 src/filter-edit-callbacks.c              |    2 +-
 src/filter-edit-dialog.c                 |    4 +-
 src/filter-run-callbacks.c               |   10 ++--
 src/folder-conf.c                        |    6 +-
 src/mailbox-conf.c                       |   14 +++---
 src/mailbox-node.c                       |   28 +++++-----
 src/main-window.c                        |   12 ++--
 src/main.c                               |   12 ++--
 src/message-window.c                     |    6 +-
 src/pref-manager.c                       |   12 ++--
 src/save-restore.c                       |    8 ++--
 src/sendmsg-window.c                     |   18 +++---
 src/spell-check.c                        |    4 +-
 src/store-address.c                      |    2 +-
 src/toolbar-factory.c                    |    4 +-
 src/toolbar-prefs.c                      |    4 +-
 45 files changed, 271 insertions(+), 183 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 87770c7..c0a8e79 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,89 @@
+2016-11-15  Peter Bloomfield  <pbloomfield bellsouth net>
+
+       Use Unicode characters for double quotation marks and ellipses.
+
+       * libbalsa/address-book-gpe.c (libbalsa_address_book_gpe_open_db),
+       (libbalsa_address_book_gpe_load):
+       * libbalsa/address-book-ldap.c (libbalsa_address_book_ldap_load),
+       (libbalsa_address_book_ldap_add_address),
+       (libbalsa_address_book_ldap_remove_address),
+       (libbalsa_address_book_ldap_modify_address):
+       * libbalsa/address-book-text.c (lbab_text_open_temp),
+       (lbab_text_close_temp),
+       (libbalsa_address_book_text_modify_address):
+       * libbalsa/application-helpers.c (libbalsa_window_add_accelerator):
+       * libbalsa/files.c (balsa_file_finder):
+       * libbalsa/html.c (lbh_navigation_policy_decision_requested_cb):
+       * libbalsa/libbalsa-conf.c (lbc_readfile), (lbc_init), (lbc_sync):
+       * libbalsa/libbalsa-gpgme-cb.c (lb_gpgme_accept_low_trust_key):
+       * libbalsa/libbalsa-gpgme.c (get_key_from_name):
+       * libbalsa/mailbox.c (get_from_field),
+       (libbalsa_mailbox_new_from_config), (mbox_model_get_value):
+       * libbalsa/mailbox_imap.c (libbalsa_mailbox_imap_load_config),
+       (imap_cache_manager_new_from_file):
+       * libbalsa/mailbox_local.c (lbm_local_save_tree),
+       (lbml_subject_gather), (lbm_local_sync_real):
+       * libbalsa/mailbox_maildir.c (lbm_maildir_parse),
+       (maildir_sync_add):
+       * libbalsa/mailbox_mbox.c (lbm_mbox_check_files),
+       (lbm_mbox_stream_seek_to_message), (lbm_mbox_save),
+       (libbalsa_mailbox_mbox_sync):
+       * libbalsa/mailbox_mh.c (libbalsa_mailbox_mh_sync):
+       * libbalsa/message.c (lbmsg_set_header):
+       * libbalsa/misc.c (libbalsa_lock_file):
+       * libbalsa/send.c (ensure_send_progress_dialog):
+       * libbalsa/source-viewer.c (lsv_show_message):
+       * libinit_balsa/assistant_helper.c
+       (balsa_init_create_to_directory):
+       * libinit_balsa/assistant_page_directory.c (unconditional_mailbox),
+       (verify_mailbox_entry):
+       * src/balsa-app.c (check_new_messages_auto_cb),
+       (open_mailbox_by_url):
+       * src/balsa-index.c (bndx_popup_menu_create),
+       (balsa_index_transfer), (pipe_out_watch):
+       * src/balsa-mblist.c (bmbl_mru_menu), (bmbl_mru_combo_box_setup):
+       * src/balsa-message.c (tree_mult_selection_popup),
+       (balsa_message_set), (mpart_content_name), (display_part),
+       (part_create_menu), (create_mdn_reply), (libbalsa_msg_try_decrypt),
+       (libbalsa_msg_try_mp_signed), (libbalsa_msg_part_2440):
+       * src/balsa-mime-widget-message.c (bm_header_extend_popup):
+       * src/balsa-mime-widget-text.c (text_view_url_popup),
+       (text_view_populate_popup), (handle_url),
+       (bmwt_populate_popup_menu), (check_text_encoding):
+       * src/balsa-mime-widget-vcalendar.c
+       (balsa_mime_widget_new_vcalendar):
+       * src/filter-edit-callbacks.c (fe_apply_pressed):
+       * src/filter-edit-dialog.c (build_action_page),
+       (filters_edit_dialog):
+       * src/filter-run-callbacks.c (fr_apply_selected_pressed),
+       (fr_apply_now_pressed), (fr_add_pressed_func):
+       * src/folder-conf.c (folder_conf_imap_sub_node),
+       (folder_conf_delete):
+       * src/mailbox-conf.c (mailbox_conf_delete):
+       * src/mailbox-node.c (check_local_path), (imap_dir_cb),
+       (bmbn_scan_children_idle), (balsa_mailbox_node_get_context_menu),
+       (add_local_mailbox), (handle_imap_path), (check_imap_path),
+       (mark_imap_path):
+       * src/main-window.c (bw_get_action), (quit_activated),
+       (header_change_state), (threading_change_state),
+       (ensure_check_mail_dialog):
+       * src/main.c (check_special_mailboxes), (periodic_expunge_cb):
+       * src/message-window.c (mw_set_enabled), (mw_set_active),
+       (mw_header_change_state):
+       * src/pref-manager.c (broken_8bit_codeset_group), (mdn_group),
+       (deleting_messages_group), (server_add_menu_widget):
+       * src/save-restore.c (config_global_load), (config_defclient_save):
+       * src/sendmsg-window.c (sw_set_charset), (add_attachment),
+       (add_urlref_attachment), (tree_add_quote_body), (scan_bodies),
+       (append_parts), (sendmsg_window_set_field),
+       (sw_gpg_mode_change_state):
+       * src/spell-check.c (check_word):
+       * src/store-address.c (store_address_from_entries):
+       * src/toolbar-factory.c (balsa_toolbar_model_insert_icon),
+       (tm_do_popup_menu):
+       * src/toolbar-prefs.c (create_toolbar_page),
+       (tp_page_refresh_available):
+
 2016-11-09  Albrecht Dreß
 
        Support for Osmo address book
diff --git a/libbalsa/address-book-gpe.c b/libbalsa/address-book-gpe.c
index de39dc9..0f5d106 100644
--- a/libbalsa/address-book-gpe.c
+++ b/libbalsa/address-book-gpe.c
@@ -200,7 +200,7 @@ libbalsa_address_book_gpe_open_db(LibBalsaAddressBookGpe * ab)
     g_free(dir);
 
     if (sqlite3_open(name, &ab->db) != SQLITE_OK) {
-        printf("Cannot open \"%s\": %s\n", name, sqlite3_errmsg(ab->db));
+        printf("Cannot open “%s”: %s\n", name, sqlite3_errmsg(ab->db));
         g_free(name);
         sqlite3_close(ab->db);
         ab->db = NULL;
@@ -359,7 +359,6 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
     gc.gpe      = gpe_ab;
     /* FIXME: error reporting */
 #ifdef HAVE_SQLITE3
-{
     if (filter && *filter) {
         gchar *sql =
             sqlite3_mprintf("select distinct urn from contacts where "
@@ -377,7 +376,6 @@ libbalsa_address_book_gpe_load(LibBalsaAddressBook * ab,
                          "select distinct urn from contacts_urn",
                          gpe_read_address, &gc, &err);
     }
-}
 #else                           /* HAVE_SQLITE3 */
     if(filter && *filter) {
         r = sqlite_exec_printf
diff --git a/libbalsa/address-book-ldap.c b/libbalsa/address-book-ldap.c
index ab2d06d..a3d8748 100644
--- a/libbalsa/address-book-ldap.c
+++ b/libbalsa/address-book-ldap.c
@@ -396,7 +396,7 @@ libbalsa_address_book_ldap_load(LibBalsaAddressBook * ab,
          * we use the asynchronous lookup to fetch the results in chunks
          * in case we exceed administrative limits.
          */ 
-        /* g_print("Performing full lookup...\n"); */
+        /* g_print("Performing full lookup…\n"); */
         ldap_filter = filter 
             ? g_strdup_printf("(&(objectClass=organizationalPerson)(mail=*)"
                               "(|(cn=%s*)(sn=%s*)(mail=%s*@*)))",
@@ -658,7 +658,7 @@ libbalsa_address_book_ldap_add_address(LibBalsaAddressBook *ab,
        }
         /* fall through */
         default:
-            fprintf(stderr, "ldap_add for dn=\"%s\" failed[0x%x]: %s\n",
+            fprintf(stderr, "ldap_add for dn=“%s” failed[0x%x]: %s\n",
                     dn, rc, ldap_err2string(rc));
         }
     } while(cnt++<1);
@@ -701,7 +701,7 @@ libbalsa_address_book_ldap_remove_address(LibBalsaAddressBook *ab,
            }
             /* fall through */
         default:
-            fprintf(stderr, "ldap_delete for dn=\"%s\" failed[0x%x]: %s\n",
+            fprintf(stderr, "ldap_delete for dn=“%s” failed[0x%x]: %s\n",
                     dn, rc, ldap_err2string(rc));
         }
     } while(cnt++<1);
@@ -813,7 +813,7 @@ libbalsa_address_book_ldap_modify_address(LibBalsaAddressBook *ab,
            }
             /* fall through */
         default:
-            fprintf(stderr, "ldap_modify for dn=\2%s\" failed[0x%x]: %s\n",
+            fprintf(stderr, "ldap_modify for dn=“%s” failed[0x%x]: %s\n",
                     dn, rc, ldap_err2string(rc));
         }
     } while(cnt++<1);
diff --git a/libbalsa/address-book-text.c b/libbalsa/address-book-text.c
index 6c4122b..9e9e8e2 100644
--- a/libbalsa/address-book-text.c
+++ b/libbalsa/address-book-text.c
@@ -438,7 +438,7 @@ lbab_text_open_temp(LibBalsaAddressBookText * ab_text, gchar ** path,
     *stream = fopen(*path, "w");
     if (*stream == NULL) {
 #if DEBUG
-        g_message("Failed to open temporary address book file \"%s\"\n"
+        g_message("Failed to open temporary address book file “%s”\n"
                   " changes not saved", *path);
 #endif                          /* DEBUG */
         g_free(*path);
@@ -455,8 +455,8 @@ lbab_text_close_temp(LibBalsaAddressBookText * ab_text, const gchar * path)
     if (unlink(ab_text->path) < 0
         && g_file_error_from_errno(errno) != G_FILE_ERROR_NOENT) {
 #if DEBUG
-        g_message("Failed to unlink address book file \"%s\"\n"
-                  " new address book file saved as \"%s\"", ab_text->path,
+        g_message("Failed to unlink address book file “%s”\n"
+                  " new address book file saved as “%s”", ab_text->path,
                   path);
         perror("TEXT");
 #endif                          /* DEBUG */
@@ -465,7 +465,7 @@ lbab_text_close_temp(LibBalsaAddressBookText * ab_text, const gchar * path)
 
     if (rename(path, ab_text->path) < 0) {
 #if DEBUG
-        g_message("Failed to rename temporary address book file \"%s\"\n",
+        g_message("Failed to rename temporary address book file “%s”\n",
                   path);
 #endif                          /* DEBUG */
         return LBABERR_CANNOT_WRITE;
@@ -659,7 +659,7 @@ libbalsa_address_book_text_modify_address(LibBalsaAddressBook * ab,
         res = lbab_text_close_temp(ab_text, path);
 #if DEBUG
     else
-        g_message("Failed to write to temporary address book file \"%s\"\n"
+        g_message("Failed to write to temporary address book file “%s”\n"
                   " changes not saved", path);
 #endif                          /* DEBUG */
     g_free(path);
diff --git a/libbalsa/application-helpers.c b/libbalsa/application-helpers.c
index 14a8a41..619ed35 100644
--- a/libbalsa/application-helpers.c
+++ b/libbalsa/application-helpers.c
@@ -242,7 +242,7 @@ libbalsa_window_add_accelerator(GtkApplicationWindow * window,
 
     gtk_accelerator_parse(accel, &accel_key, &accel_mods);
     if (!accel_key) {
-        g_print("%s: could not parse accelerator \"%s\"\n", __func__,
+        g_print("%s: could not parse accelerator “%s”\n", __func__,
                 accel);
         return;
     }
@@ -251,7 +251,7 @@ libbalsa_window_add_accelerator(GtkApplicationWindow * window,
     basename = basename ? basename + 1 : action_name;
     action = g_action_map_lookup_action(action_map, basename);
     if (!action) {
-        g_print("%s: could not lookup action \"%s\"\n", __func__,
+        g_print("%s: could not lookup action “%s”\n", __func__,
                 action_name);
         return;
     }
diff --git a/libbalsa/files.c b/libbalsa/files.c
index c26944c..6472fd8 100644
--- a/libbalsa/files.c
+++ b/libbalsa/files.c
@@ -91,8 +91,8 @@ balsa_file_finder(const gchar * filename, const gchar * splice,
     g_free(cat);
 
     if (warn)
-        g_warning("Cannot find expected file \"%s\" "
-                  "(spliced with \"%s\") %s extra prefixes",
+        g_warning("Cannot find expected file “%s” "
+                  "(spliced with “%s”) %s extra prefixes",
                  filename, splice,
                   prefixes ? "even with" : "with no");
     return NULL;
diff --git a/libbalsa/html.c b/libbalsa/html.c
index 07c497c..353d017 100644
--- a/libbalsa/html.c
+++ b/libbalsa/html.c
@@ -1023,7 +1023,7 @@ lbh_navigation_policy_decision_requested_cb(WebKitWebView             * web_view
     else if (web_view == info->web_view
              && frame != info->frame
              && reason == WEBKIT_WEB_NAVIGATION_REASON_OTHER) {
-        g_message("%s new frame ignored:\n URI=\"%s\"", __func__, 
+        g_message("%s new frame ignored:\n URI=“%s”", __func__, 
                   webkit_network_request_get_uri(request));
         webkit_web_policy_decision_ignore(decision);
         return TRUE;
diff --git a/libbalsa/libbalsa-conf.c b/libbalsa/libbalsa-conf.c
index 20167ef..efdab06 100644
--- a/libbalsa/libbalsa-conf.c
+++ b/libbalsa/libbalsa-conf.c
@@ -62,7 +62,7 @@ lbc_readfile(const gchar * filename)
 
     if (!g_file_get_contents(filename, &buf, NULL, NULL)) {
 #if DEBUG
-        g_message("Failed to read \"%s\"\n", filename);
+        g_message("Failed to read “%s”\n", filename);
 #endif                          /* DEBUG */
         return NULL;
     }
@@ -110,8 +110,8 @@ lbc_init(LibBalsaConf * conf, const gchar * filename,
         old_path =
             g_build_filename(g_get_home_dir(), old_dir, "balsa", NULL);
 #if DEBUG
-        g_message("Could not load config from \"%s\":\n %s\n"
-                  " trying \"%s\"", conf->path, error->message, old_path);
+        g_message("Could not load config from “%s”:\n %s\n"
+                  " trying “%s”", conf->path, error->message, old_path);
 #endif                          /* DEBUG */
         g_clear_error(&error);
 
@@ -128,7 +128,7 @@ lbc_init(LibBalsaConf * conf, const gchar * filename,
         }
         if (!buf || error) {
 #if DEBUG
-            g_message("Could not load key file from file \"%s\": %s",
+            g_message("Could not load key file from file “%s”: %s",
                       old_path,
                       error ? error->message : g_strerror(errno));
 #endif                          /* DEBUG */
@@ -140,7 +140,7 @@ lbc_init(LibBalsaConf * conf, const gchar * filename,
             libbalsa_information(LIBBALSA_INFORMATION_WARNING,
                                  _("Your Balsa configuration "
                                    "is now stored in "
-                                   "\"~/.balsa/config\"."));
+                                   "“~/.balsa/config”."));
     }
 }
 
@@ -489,7 +489,7 @@ lbc_sync(LibBalsaConf * conf)
     buf = g_key_file_to_data(conf->key_file, &len, &error);
     if (error) {
 #if DEBUG
-        g_message("Failed to sync config file \"%s\": %s\n"
+        g_message("Failed to sync config file “%s”: %s\n"
                   " changes not saved", conf->path, error->message);
 #endif                          /* DEBUG */
         g_error_free(error);
@@ -501,13 +501,13 @@ lbc_sync(LibBalsaConf * conf)
     if (!g_file_set_contents(conf->path, buf, len, &error)) {
         if (error) {
 #if DEBUG
-            g_message("Failed to rewrite config file \"%s\": %s\n"
+            g_message("Failed to rewrite config file “%s”: %s\n"
                       " changes not saved", conf->path, error->message);
 #endif                          /* DEBUG */
             g_error_free(error);
 #if DEBUG
         } else {
-                g_message("Failed to rewrite config file \"%s\";"
+                g_message("Failed to rewrite config file “%s”;"
                           " changes not saved", conf->path);
 #endif                          /* DEBUG */
         }
diff --git a/libbalsa/libbalsa-gpgme-cb.c b/libbalsa/libbalsa-gpgme-cb.c
index a866a27..c2990b7 100644
--- a/libbalsa/libbalsa-gpgme-cb.c
+++ b/libbalsa/libbalsa-gpgme-cb.c
@@ -325,7 +325,7 @@ lb_gpgme_accept_low_trust_key(const gchar * user_name,
                        user_name);
     message2 =
        g_strdup_printf(_
-                       ("The validity of the key with user ID \"%s\" is \"%s\"."),
+                       ("The validity of the key with user ID “%s” is “%s”."),
                        user_id->uid,
                        libbalsa_gpgme_validity_to_gchar_short(user_id->
                                                               validity));
diff --git a/libbalsa/libbalsa-gpgme.c b/libbalsa/libbalsa-gpgme.c
index d7b89b0..21817a2 100644
--- a/libbalsa/libbalsa-gpgme.c
+++ b/libbalsa/libbalsa-gpgme.c
@@ -753,7 +753,7 @@ get_key_from_name(gpgme_ctx_t ctx, const gchar * name, gboolean secret,
     if ((err =
         gpgme_op_keylist_start(ctx, name, secret)) != GPG_ERR_NO_ERROR) {
        gchar *msg =
-           g_strdup_printf(_("could not list keys for \"%s\""), name);
+           g_strdup_printf(_("could not list keys for “%s”"), name);
 
        g_set_error_from_gpgme(error, err, msg);
        g_free(msg);
@@ -771,7 +771,7 @@ get_key_from_name(gpgme_ctx_t ctx, const gchar * name, gboolean secret,
 
     if (gpg_err_code(err) != GPG_ERR_EOF) {
        gchar *msg =
-           g_strdup_printf(_("could not list keys for \"%s\""), name);
+           g_strdup_printf(_("could not list keys for “%s”"), name);
 
        g_set_error_from_gpgme(error, err, msg);
        g_free(msg);
diff --git a/libbalsa/mailbox.c b/libbalsa/mailbox.c
index 5befdf5..773aaba 100644
--- a/libbalsa/mailbox.c
+++ b/libbalsa/mailbox.c
@@ -332,7 +332,7 @@ get_from_field(LibBalsaMessage *message)
 
     if (name_str == NULL)
         name_str = "";
-    from = append_dots ? g_strconcat(name_str, ",...", NULL)
+    from = append_dots ? g_strconcat(name_str, ",…", NULL)
                        : g_strdup(name_str);
     libbalsa_utf8_sanitize(&from, TRUE, NULL);
 
@@ -525,7 +525,7 @@ libbalsa_mailbox_new_from_config(const gchar * group)
             libbalsa_conf_set_string("Type", g_type_name(type));
         else
             libbalsa_information(LIBBALSA_INFORMATION_WARNING,
-                                 _("Bad local mailbox path \"%s\""), path);
+                                 _("Bad local mailbox path “%s”"), path);
     }
     mailbox = (type != G_TYPE_OBJECT ? g_object_new(type, NULL) : NULL);
     if (mailbox == NULL)
@@ -2988,7 +2988,7 @@ mbox_model_get_value(GtkTreeModel *tree_model,
             else
                 g_value_set_static_string(value, _("from unknown"));
         } else
-            g_value_set_static_string(value, _("Loading..."));
+            g_value_set_static_string(value, _("Loading…"));
         break;
     case LB_MBOX_SUBJECT_COL:
         if(msg) g_value_set_string(value, msg->subject);
diff --git a/libbalsa/mailbox_imap.c b/libbalsa/mailbox_imap.c
index 5349fa0..1c21b2b 100644
--- a/libbalsa/mailbox_imap.c
+++ b/libbalsa/mailbox_imap.c
@@ -610,13 +610,13 @@ mi_reconnect(ImapMboxHandle *h)
         break;\
     else if(rc==IMR_SEVERED)                             \
     libbalsa_information(LIBBALSA_INFORMATION_WARNING, \
-    _("IMAP connection has been severed. Reconnecting...")); \
+    _("IMAP connection has been severed. Reconnecting…")); \
     else if(rc==IMR_PROTOCOL)                               \
     libbalsa_information(LIBBALSA_INFORMATION_WARNING, \
     _("IMAP protocol error. Try enabling bug workarounds.")); \
     else if(rc==IMR_BYE) {char *msg = imap_mbox_handle_get_last_msg(h); \
     libbalsa_information(LIBBALSA_INFORMATION_WARNING, \
-    _("IMAP server has shut the connection: %s Reconnecting..."), msg); \
+    _("IMAP server has shut the connection: %s Reconnecting…"), msg); \
     g_free(msg);}\
     else break;}while(trials-->0);}
 #define IIA(rc,h,line,cmd)                         \
@@ -628,7 +628,7 @@ mi_reconnect(ImapMboxHandle *h)
         break;\
     else if(rc != IMR_OK) \
     libbalsa_information(LIBBALSA_INFORMATION_WARNING, \
-     _("Async IMAP cmd %s could not be executed. Reconnecting..."),cmd); \
+     _("Async IMAP cmd %s could not be executed. Reconnecting…"),cmd); \
     else break;}while(trials-->0);}
 
 static ImapMboxHandle *
@@ -1665,8 +1665,8 @@ libbalsa_mailbox_imap_load_config(LibBalsaMailbox * mailbox,
     if (!mimap->path) {
        mimap->path = g_strdup("INBOX");
        libbalsa_information(LIBBALSA_INFORMATION_WARNING,
-                             _("No path found for mailbox \"%s\", "
-                              "using \"%s\""),
+                             _("No path found for mailbox “%s”, "
+                              "using “%s”"),
                             mailbox->name, mimap->path);
     }
 
@@ -3483,7 +3483,7 @@ imap_cache_manager_new_from_file(const char *header_cache_path)
        fread(&icm->uidnext,     sizeof(uint32_t), 1, f) != 1 ||
        fread(&icm->exists,      sizeof(uint32_t), 1, f) != 1) {
        imap_cache_manager_free(icm);
-       printf("Couldn't read cache - aborting...\n");
+       printf("Couldn't read cache - aborting…\n");
         fclose(f);
        return NULL;
     }
diff --git a/libbalsa/mailbox_local.c b/libbalsa/mailbox_local.c
index 201af09..feb119a 100644
--- a/libbalsa/mailbox_local.c
+++ b/libbalsa/mailbox_local.c
@@ -561,7 +561,7 @@ lbm_local_save_tree(LibBalsaMailboxLocal * local)
                              save_info.array->len *
                              sizeof(LibBalsaMailboxLocalTreeInfo), &err)) {
         libbalsa_information(LIBBALSA_INFORMATION_WARNING,
-                             _("Failed to save cache file \"%s\": %s."),
+                             _("Failed to save cache file “%s”: %s."),
                              filename, err->message);
         g_error_free(err);
     }
@@ -1842,13 +1842,17 @@ lbml_subject_gather(GNode * node, ThreadingInfo * ti)
     old = g_hash_table_lookup(subject_table, chopped_subject);
 #ifdef MAKE_EMPTY_CONTAINER_FOR_MISSING_PARENT
     if (old == NULL || (node->data == NULL && old->data != NULL)) {
+       g_hash_table_insert(subject_table, (char *) chopped_subject,
+                           node);
+       return;
+    }
 #else                          /* MAKE_EMPTY_CONTAINER_FOR_MISSING_PARENT */
     if (old == NULL) {
-#endif                         /* MAKE_EMPTY_CONTAINER_FOR_MISSING_PARENT */
        g_hash_table_insert(subject_table, (char *) chopped_subject,
                            node);
        return;
     }
+#endif                         /* MAKE_EMPTY_CONTAINER_FOR_MISSING_PARENT */
 
     old_subject = lbml_get_subject(old, ti);
 
@@ -2146,7 +2150,7 @@ lbm_local_sync_real(LibBalsaMailboxLocal * local)
         MAILBOX_OPEN(mailbox) &&                   /* mailbox still open */
         !libbalsa_mailbox_sync_storage(mailbox, FALSE))   /* cannot sync */
        libbalsa_information(LIBBALSA_INFORMATION_WARNING,
-                            _("Failed to sync mailbox \"%s\""),
+                            _("Failed to sync mailbox “%s”"),
                             mailbox->name);
     local->sync_id = 0;
     local->sync_time += time(NULL)-tstart;
diff --git a/libbalsa/mailbox_maildir.c b/libbalsa/mailbox_maildir.c
index 586708b..4b8b84d 100644
--- a/libbalsa/mailbox_maildir.c
+++ b/libbalsa/mailbox_maildir.c
@@ -425,7 +425,7 @@ static void lbm_maildir_parse(LibBalsaMailboxMaildir * mdir,
            if (FLAGS_REALLY_DIFFER(msg_info->orig_flags, flags)) {
 #undef DEBUG /* #define DEBUG TRUE */
 #ifdef DEBUG
-               g_message("Message flags for \"%s\" changed\n",
+               g_message("Message flags for “%s” changed\n",
                           msg_info->key);
 #endif
                msg_info->orig_flags = flags;
@@ -707,7 +707,7 @@ maildir_sync_add(struct message_info *msg_info, const gchar * path)
     if (strcmp(orig, new)) {
         while (g_file_test(new, G_FILE_TEST_EXISTS)) {
 #ifdef DEBUG
-           g_message("File \"%s\" exists, requesting new key.\n", new);
+           g_message("File “%s” exists, requesting new key.\n", new);
 #endif
             g_free(msg_info->key);
             msg_info->key = lbm_mdir_get_key();
@@ -722,7 +722,7 @@ maildir_sync_add(struct message_info *msg_info, const gchar * path)
            msg_info->subdir = subdir;
        else {
 #ifdef DEBUG
-            g_message("Rename \"%s\" \"%s\": %s\n", orig, new,
+            g_message("Rename “%s” “%s”: %s\n", orig, new,
                       g_strerror(errno));
 #endif
            retval = FALSE;
diff --git a/libbalsa/mailbox_mbox.c b/libbalsa/mailbox_mbox.c
index 0c29c5a..37aefa9 100644
--- a/libbalsa/mailbox_mbox.c
+++ b/libbalsa/mailbox_mbox.c
@@ -205,7 +205,7 @@ lbm_mbox_check_files(const gchar * path, gboolean create)
 
         if ((fd = creat(path, S_IRUSR | S_IWUSR)) == -1) {
             g_warning("An error:\n%s\n occurred while trying to "
-                      "create the mailbox \"%s\"\n",
+                      "create the mailbox “%s”\n",
                       strerror(errno), path);
             return -1;
         } else
@@ -252,7 +252,7 @@ lbm_mbox_stream_seek_to_message(GMimeStream * stream, off_t offset)
             --nread;
         buffer[nread] = 0;
 #if DEBUG_SEEK
-        g_print("%s at %ld failed: read %ld chars, saw \"%s\"\n", __func__,
+        g_print("%s at %ld failed: read %ld chars, saw “%s”\n", __func__,
                 (long) offset, (long) nread, buffer);
 #endif
     }
@@ -427,7 +427,7 @@ lbm_mbox_save(LibBalsaMailboxMbox * mbox)
             (ssize_t) messages_info->len) {
             libbalsa_information(LIBBALSA_INFORMATION_WARNING,
                                  _("Failed to create temporary file "
-                                   "\"%s\": %s"), template,
+                                   "“%s”: %s"), template,
                                  strerror(errno));
             g_free(template);
             g_free(filename);
@@ -438,8 +438,8 @@ lbm_mbox_save(LibBalsaMailboxMbox * mbox)
             || (unlink(filename) != 0 && errno != ENOENT)
             || libbalsa_safe_rename(template, filename) != 0)
             libbalsa_information(LIBBALSA_INFORMATION_WARNING,
-                                 _("Failed to save cache file \"%s\": %s.  "
-                                   "New version saved as \"%s\""),
+                                 _("Failed to save cache file “%s”: %s.  "
+                                   "New version saved as “%s”"),
                                  filename, strerror(errno), template);
         g_free(template);
 #endif                          /* !defined(__APPLE__) */
@@ -1482,7 +1482,7 @@ libbalsa_mailbox_mbox_sync(LibBalsaMailbox * mailbox, gboolean expunge)
        if (g_mime_stream_flush(mbox_stream) < 0)
            g_warning("can't flush mailbox stream\n");
        if (fstat(GMIME_STREAM_FS(mbox_stream)->fd, &st))
-           g_warning("can't stat \"%s\"", path);
+           g_warning("can't stat “%s”", path);
        else
             libbalsa_mailbox_set_mtime(mailbox, st.st_mtime);
         lbm_mbox_save(mbox);
diff --git a/libbalsa/mailbox_mh.c b/libbalsa/mailbox_mh.c
index 33a2b7b..4f6fa63 100644
--- a/libbalsa/mailbox_mh.c
+++ b/libbalsa/mailbox_mh.c
@@ -903,7 +903,7 @@ libbalsa_mailbox_mh_sync(LibBalsaMailbox * mailbox, gboolean expunge)
         if (sequences_fd >= 0)
             libbalsa_unlock_file(sequences_filename, sequences_fd, 1);
 #ifdef DEBUG
-        g_print("MH sync \"%s\": cannot open temp file.\n", path);
+        g_print("MH sync “%s”: cannot open temp file.\n", path);
 #endif
        return retval;
     }
@@ -951,7 +951,7 @@ libbalsa_mailbox_mh_sync(LibBalsaMailbox * mailbox, gboolean expunge)
         if (sequences_fd >= 0)
             libbalsa_unlock_file(sequences_filename, sequences_fd, 1);
 #ifdef DEBUG
-        g_print("MH sync \"%s\": error finishing sequences line.\n", path);
+        g_print("MH sync “%s”: error finishing sequences line.\n", path);
 #endif
        return retval;
     }
@@ -966,7 +966,7 @@ libbalsa_mailbox_mh_sync(LibBalsaMailbox * mailbox, gboolean expunge)
     retval = (libbalsa_safe_rename(tmp, sequences_filename) != -1);
 #ifdef DEBUG
     if (!retval)
-        g_print("MH sync \"%s\": error renaming sequences file.\n", path);
+        g_print("MH sync “%s”: error renaming sequences file.\n", path);
 #endif
     if (!retval)
        unlink (tmp);
diff --git a/libbalsa/message.c b/libbalsa/message.c
index 686322f..d7e9136 100644
--- a/libbalsa/message.c
+++ b/libbalsa/message.c
@@ -1108,7 +1108,7 @@ lbmsg_set_header(LibBalsaMessage *message, const gchar *name,
         val = g_mime_utils_header_encode_text(tmp);
         g_free(tmp);
 #ifdef DEBUG
-        g_print("%s: non-ascii \"%s\" header \"%s\" encoded as \"%s\"\n",
+        g_print("%s: non-ascii “%s” header “%s” encoded as “%s”\n",
                 __func__, name, value, val);
 #endif /* DEBUG */
         value = val;
diff --git a/libbalsa/misc.c b/libbalsa/misc.c
index 6769839..f066944 100644
--- a/libbalsa/misc.c
+++ b/libbalsa/misc.c
@@ -963,7 +963,7 @@ libbalsa_lock_file (const char *path, int fd, int excl, int dot, int timeout)
     prev_sb = sb;
  
     libbalsa_information(LIBBALSA_INFORMATION_MESSAGE,
-                        _("Waiting for fcntl lock... %d"), ++attempt);
+                        _("Waiting for fcntl lock… %d"), ++attempt);
     sleep (1);
 }
 #endif /* USE_FCNTL */
@@ -998,7 +998,7 @@ while (flock (fd, (excl ? LOCK_EX : LOCK_SH) | LOCK_NB) == -1)
  
     prev_sb = sb;
  
-    libbalsa_message (_("Waiting for flock attempt... %d"), ++attempt);
+    libbalsa_message (_("Waiting for flock attempt… %d"), ++attempt);
     sleep (1);
 }
 #endif /* USE_FLOCK */
diff --git a/libbalsa/send.c b/libbalsa/send.c
index 98ee40d..7bc1816 100644
--- a/libbalsa/send.c
+++ b/libbalsa/send.c
@@ -243,14 +243,14 @@ ensure_send_progress_dialog(GtkWindow * parent)
 
     if(send_dialog) return;
 
-    send_dialog = gtk_dialog_new_with_buttons(_("Sending Mail..."), 
+    send_dialog = gtk_dialog_new_with_buttons(_("Sending Mail…"), 
                                               parent,
                                               GTK_DIALOG_DESTROY_WITH_PARENT |
                                               libbalsa_dialog_flags(),
                                               _("_Hide"), GTK_RESPONSE_CLOSE,
                                               NULL);
     gtk_window_set_role(GTK_WINDOW(send_dialog), "send_dialog");
-    label = gtk_label_new(_("Sending Mail..."));
+    label = gtk_label_new(_("Sending Mail…"));
     content_box =
         GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(send_dialog)));
     gtk_box_pack_start(content_box, label, FALSE, FALSE, 0);
diff --git a/libbalsa/source-viewer.c b/libbalsa/source-viewer.c
index 8ab3f9c..9952e58 100644
--- a/libbalsa/source-viewer.c
+++ b/libbalsa/source-viewer.c
@@ -97,7 +97,7 @@ lsv_show_message(const char *message, LibBalsaSourceViewerInfo * lsvi,
     gtk_text_buffer_set_text(buffer, "", 0);
 
     if (escape)
-       tmp = g_strescape(message, "\n\"");
+       tmp = g_strescape(message, "\n“");
     else {
        tmp = g_strdup(message);
        libbalsa_utf8_sanitize(&tmp, FALSE, NULL);
diff --git a/libinit_balsa/assistant_helper.c b/libinit_balsa/assistant_helper.c
index f59a86d..d314f02 100644
--- a/libinit_balsa/assistant_helper.c
+++ b/libinit_balsa/assistant_helper.c
@@ -211,8 +211,8 @@ balsa_init_create_to_directory(const gchar * dir, gchar ** complaint)
                 if (mkdir(sofar, S_IRUSR | S_IWUSR | S_IXUSR) < 0) {
                     (*complaint) =
                         g_strdup_printf(_("Couldn't create a directory:"
-                                          " mkdir() failed on pathname \"%s\","
-                                          " with error \"%s\"."),
+                                          " mkdir() failed on pathname “%s”,"
+                                          " with error “%s”."),
                                         sofar, g_strerror(errno));
                     g_free(sofar);
                     return TRUE;
@@ -222,7 +222,7 @@ balsa_init_create_to_directory(const gchar * dir, gchar ** complaint)
             if (!S_ISDIR(sb.st_mode)) {
                 (*complaint) =
                     g_strdup_printf(_
-                                    ("The file with pathname \"%s\" is not a directory."),
+                                    ("The file with pathname “%s” is not a directory."),
                                     sofar);
                 g_free(sofar);
                 return TRUE;
@@ -236,7 +236,7 @@ balsa_init_create_to_directory(const gchar * dir, gchar ** complaint)
         if (mkdir(dir, S_IRUSR | S_IWUSR | S_IXUSR) < 0) {
             (*complaint) =
                 g_strdup_printf(_
-                                ("Couldn't create a directory: mkdir() failed on pathname \"%s\"."),
+                                ("Couldn't create a directory: mkdir() failed on pathname “%s”."),
                                 dir);
             return TRUE;
         }
@@ -245,7 +245,7 @@ balsa_init_create_to_directory(const gchar * dir, gchar ** complaint)
     if (!S_ISDIR(sb.st_mode)) {
         (*complaint) =
             g_strdup_printf(_
-                            ("The file with pathname \"%s\" is not a directory."),
+                            ("The file with pathname “%s” is not a directory."),
                             dir);
         return TRUE;
     }
diff --git a/libinit_balsa/assistant_page_directory.c b/libinit_balsa/assistant_page_directory.c
index 3a87098..7d1daf4 100644
--- a/libinit_balsa/assistant_page_directory.c
+++ b/libinit_balsa/assistant_page_directory.c
@@ -80,7 +80,7 @@ unconditional_mailbox(const gchar * path, const gchar * prettyname,
     if (index == NULL) {
         (*error) =
             g_strdup_printf(_
-                            ("The pathname \"%s\" must be specified"
+                            ("The pathname “%s” must be specified"
                              " canonically -- it must start with a \'/\'."),
                             dup);
         g_free(dup);
@@ -121,7 +121,7 @@ unconditional_mailbox(const gchar * path, const gchar * prettyname,
         *box = libbalsa_mailbox_local_new(path, TRUE);
         if (!*box) {
             *error = g_strdup_printf(_("Could not create mailbox"
-                                       " at path \"%s\"\n"), path);
+                                       " at path “%s”\n"), path);
             g_free(dup);
             return;
         }
@@ -152,7 +152,7 @@ unconditional_mailbox(const gchar * path, const gchar * prettyname,
     if ( *box == NULL) {
             (*error) =
                 g_strdup_printf(_
-                                ("The mailbox \"%s\" does not appear to be valid."),
+                                ("The mailbox “%s” does not appear to be valid."),
                                 path);
         return;
     }
@@ -186,7 +186,7 @@ verify_mailbox_entry(GtkWidget * entry, const gchar * name,
                                    GTK_DIALOG_MODAL,
                                    GTK_MESSAGE_ERROR,
                                    GTK_BUTTONS_OK,
-                                   _("Problem verifying path \"%s\":\n%s"),
+                                   _("Problem verifying path “%s”:\n%s"),
                                    text, error);
         g_free(error);
         gtk_dialog_run(GTK_DIALOG(dlg));
diff --git a/src/balsa-app.c b/src/balsa-app.c
index 17ba383..6edd2b2 100644
--- a/src/balsa-app.c
+++ b/src/balsa-app.c
@@ -455,7 +455,7 @@ check_new_messages_auto_cb(gpointer data)
     check_new_messages_real(balsa_app.main_window, TYPE_BACKGROUND);
 
     if (balsa_app.debug)
-        fprintf(stderr, "Auto-checked for new messages...\n");
+        fprintf(stderr, "Auto-checked for new messages…\n");
 
     /*  preserver timer */
     return TRUE;
@@ -526,7 +526,7 @@ open_mailbox_by_url(const gchar * url, gboolean hidden)
             libbalsa_mailbox_view_free(view);
         }
         balsa_information(LIBBALSA_INFORMATION_WARNING,
-                          _("Couldn't open mailbox \"%s\""), url);
+                          _("Couldn't open mailbox “%s”"), url);
     }
 }
 
diff --git a/src/balsa-index.c b/src/balsa-index.c
index f9c0330..ca1fad4 100644
--- a/src/balsa-index.c
+++ b/src/balsa-index.c
@@ -1808,19 +1808,19 @@ bndx_popup_menu_create(BalsaIndex * index)
         GCallback func;
     } entries[] = {
         {
-        BALSA_PIXMAP_REPLY, N_("_Reply..."),
+        BALSA_PIXMAP_REPLY, N_("_Reply…"),
                 G_CALLBACK(balsa_message_reply)}, {
-        BALSA_PIXMAP_REPLY_ALL, N_("Reply To _All..."),
+        BALSA_PIXMAP_REPLY_ALL, N_("Reply To _All…"),
                 G_CALLBACK(balsa_message_replytoall)}, {
-        BALSA_PIXMAP_REPLY_GROUP, N_("Reply To _Group..."),
+        BALSA_PIXMAP_REPLY_GROUP, N_("Reply To _Group…"),
                 G_CALLBACK(balsa_message_replytogroup)}, {
-        BALSA_PIXMAP_FORWARD, N_("_Forward Attached..."),
+        BALSA_PIXMAP_FORWARD, N_("_Forward Attached…"),
                 G_CALLBACK(balsa_message_forward_attached)}, {
-        BALSA_PIXMAP_FORWARD, N_("Forward _Inline..."),
+        BALSA_PIXMAP_FORWARD, N_("Forward _Inline…"),
                 G_CALLBACK(balsa_message_forward_inline)}, {
-        NULL,                 N_("_Pipe through..."),
+        NULL,                 N_("_Pipe through…"),
                 G_CALLBACK(balsa_index_pipe)}, {
-        BALSA_PIXMAP_BOOK_RED, N_("_Store Address..."),
+        BALSA_PIXMAP_BOOK_RED, N_("_Store Address…"),
                 G_CALLBACK(bndx_store_address)}};
     GtkWidget *menu, *menuitem, *submenu;
     unsigned i;
@@ -2113,8 +2113,8 @@ balsa_index_transfer(BalsaIndex *index, GArray * msgnos,
     if (!success) {
        balsa_information
             (LIBBALSA_INFORMATION_WARNING,
-             ngettext("Failed to copy %d message to mailbox \"%s\": %s",
-                      "Failed to copy %d messages to mailbox \"%s\": %s",
+             ngettext("Failed to copy %d message to mailbox “%s”: %s",
+                      "Failed to copy %d messages to mailbox “%s”: %s",
                       msgnos->len),
              msgnos->len, to_mailbox->name, e ? e->message : "?");
        return;
@@ -2125,8 +2125,8 @@ balsa_index_transfer(BalsaIndex *index, GArray * msgnos,
     else if (to_mailbox == balsa_app.trash)
         enable_empty_trash(balsa_app.main_window, TRASH_FULL);
     balsa_information(LIBBALSA_INFORMATION_MESSAGE,
-                      copy ? _("Copied to \"%s\".")
-                      : _("Moved to \"%s\"."), to_mailbox->name);
+                      copy ? _("Copied to “%s”.")
+                      : _("Moved to “%s”."), to_mailbox->name);
     if (!copy)
        /* Note when message was flagged as deleted, for use in
         * auto-expunge. */
@@ -2411,7 +2411,7 @@ pipe_out_watch(GIOChannel *channel, GIOCondition condition, gpointer data)
 
     if ( (condition & G_IO_ERR) == G_IO_ERR) {
        fprintf(stderr,
-               "pipe_out_watch encountered error...\n");
+               "pipe_out_watch encountered error…\n");
        pipe_data_destroy(pipe);
        return FALSE;
     }
diff --git a/src/balsa-mblist.c b/src/balsa-mblist.c
index 68444ba..b8f6388 100644
--- a/src/balsa-mblist.c
+++ b/src/balsa-mblist.c
@@ -1772,7 +1772,7 @@ bmbl_mru_menu(GtkWindow * window, GList ** url_list,
     mru = bmbl_mru_new(url_list, user_func, user_data, NULL);
     mru->window = window;
     mru->setup_cb = setup_cb;
-    item = gtk_menu_item_new_with_mnemonic(_("_Other..."));
+    item = gtk_menu_item_new_with_mnemonic(_("_Other…"));
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
     g_signal_connect_data(item, "activate",
                           G_CALLBACK(bmbl_mru_show_tree), mru,
@@ -2076,7 +2076,7 @@ bmbl_mru_combo_box_setup(GtkComboBox * combo_box)
     gtk_list_store_set(store, &iter, 1, TRUE, -1);
     gtk_list_store_append(store, &iter);
     gtk_list_store_set(store, &iter,
-                       0, _("Other..."),
+                       0, _("Other…"),
                       1, FALSE, -1);
     gtk_combo_box_set_active(combo_box, 0);
 }
diff --git a/src/balsa-message.c b/src/balsa-message.c
index 1772fc4..b2ab9ff 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -985,14 +985,14 @@ tree_mult_selection_popup(BalsaMessage * bm, GdkEventButton * event,
         bm->save_all_popup = gtk_menu_new ();
         g_object_ref_sink(bm->save_all_popup);
         menu_item =
-            gtk_menu_item_new_with_label (_("Save selected as..."));
+            gtk_menu_item_new_with_label (_("Save selected as…"));
         gtk_widget_show(menu_item);
         g_signal_connect (G_OBJECT (menu_item), "activate",
                           G_CALLBACK (part_context_save_all_cb),
                           (gpointer) bm->save_all_list);
         gtk_menu_shell_append (GTK_MENU_SHELL (bm->save_all_popup), menu_item);
         menu_item =
-            gtk_menu_item_new_with_label (_("Save selected to folder..."));
+            gtk_menu_item_new_with_label (_("Save selected to folder…"));
         gtk_widget_show(menu_item);
         g_signal_connect (G_OBJECT (menu_item), "activate",
                           G_CALLBACK (part_context_dump_all_cb),
@@ -1155,7 +1155,7 @@ balsa_message_set(BalsaMessage * bm, LibBalsaMailbox * mailbox, guint msgno)
     if (!message) {
        balsa_information(LIBBALSA_INFORMATION_WARNING,
                           _("Could not access message %u "
-                            "in mailbox \"%s\"."),
+                            "in mailbox “%s”."),
                          msgno, mailbox->name);
         return FALSE;
     }
@@ -1167,7 +1167,7 @@ balsa_message_set(BalsaMessage * bm, LibBalsaMailbox * mailbox, guint msgno)
         bm->message = NULL;
        balsa_information(LIBBALSA_INFORMATION_WARNING,
                           _("Could not access message %u "
-                            "in mailbox \"%s\"."),
+                            "in mailbox “%s”."),
                          (unsigned int) message->msgno, mailbox->name);
         return FALSE;
     }
@@ -1343,7 +1343,7 @@ mpart_content_name(const gchar *content_type)
     else if (g_ascii_strcasecmp(content_type, "message/rfc822") == 0)
         return g_strdup(_("rfc822 message"));
     else
-        return g_strdup_printf(_("\"%s\" parts"),
+        return g_strdup_printf(_("“%s” parts"),
                                strchr(content_type, '/') + 1);
 }
 
@@ -1434,7 +1434,7 @@ display_part(BalsaMessage * bm, LibBalsaMessageBody * body,
             libbalsa_utf8_sanitize(&from, balsa_app.convert_unknown_8bit, NULL);
             libbalsa_utf8_sanitize(&subj, balsa_app.convert_unknown_8bit, NULL);
             icon_title =
-                g_strdup_printf(_("rfc822 message (from %s, subject \"%s\")"),
+                g_strdup_printf(_("rfc822 message (from %s, subject “%s”)"),
                                 from, subj);
             g_free(from);
             g_free(subj);
@@ -1666,7 +1666,7 @@ part_create_menu (BalsaPartInfo* info)
                                           G_CALLBACK (balsa_mime_widget_ctx_menu_cb),
                                           (gpointer)info->body);
 
-    menu_item = gtk_menu_item_new_with_mnemonic (_("_Save..."));
+    menu_item = gtk_menu_item_new_with_mnemonic (_("_Save…"));
     g_signal_connect (G_OBJECT (menu_item), "activate",
                       G_CALLBACK (balsa_mime_widget_ctx_menu_save), (gpointer) info->body);
     gtk_menu_shell_append (GTK_MENU_SHELL (info->popup_menu), menu_item);
@@ -1675,7 +1675,7 @@ part_create_menu (BalsaPartInfo* info)
         GtkWidget *submenu;
 
         menu_item =
-            gtk_menu_item_new_with_mnemonic(_("_Copy to folder..."));
+            gtk_menu_item_new_with_mnemonic(_("_Copy to folder…"));
         gtk_menu_shell_append(GTK_MENU_SHELL(info->popup_menu), menu_item);
 
         submenu =
@@ -2527,7 +2527,7 @@ static LibBalsaMessage *create_mdn_reply (const LibBalsaIdentity *mdn_ident,
     date = libbalsa_message_date_to_utf8(for_msg, balsa_app.date_string);
     dummy = internet_address_list_to_string(for_msg->headers->to_list, FALSE);
     body->buffer = g_strdup_printf(
-        "The message sent on %s to %s with subject \"%s\" has been displayed.\n"
+        "The message sent on %s to %s with subject “%s” has been displayed.\n"
         "There is no guarantee that the message has been read or understood.\n\n",
         date, dummy, LIBBALSA_MESSAGE_GET_SUBJECT(for_msg));
     g_free (date);
@@ -2845,7 +2845,7 @@ libbalsa_msg_try_decrypt(LibBalsaMessage * message, LibBalsaMessageBody * body,
                libbalsa_information
                    (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
                     LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
-                     _("The message sent by %s with subject \"%s\" contains "
+                     _("The message sent by %s with subject “%s” contains "
                        "an encrypted part, but it's structure is invalid."),
                     chk_crypto->sender, chk_crypto->subject);
             } else if (encrres & LIBBALSA_PROTECT_RFC3156) {
@@ -2853,7 +2853,7 @@ libbalsa_msg_try_decrypt(LibBalsaMessage * message, LibBalsaMessageBody * body,
                     libbalsa_information
                         (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
                         LIBBALSA_INFORMATION_WARNING : LIBBALSA_INFORMATION_MESSAGE,
-                         _("The message sent by %s with subject \"%s\" "
+                         _("The message sent by %s with subject “%s” "
                            "contains a PGP encrypted part, but this "
                            "crypto protocol is not available."),
                          chk_crypto->sender, chk_crypto->subject);
@@ -2866,7 +2866,7 @@ libbalsa_msg_try_decrypt(LibBalsaMessage * message, LibBalsaMessageBody * body,
                     libbalsa_information
                         (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
                         LIBBALSA_INFORMATION_WARNING : LIBBALSA_INFORMATION_MESSAGE,
-                         _("The message sent by %s with subject \"%s\" "
+                         _("The message sent by %s with subject “%s” "
                            "contains a S/MIME encrypted part, but this "
                            "crypto protocol is not available."),
                          chk_crypto->sender, chk_crypto->subject);
@@ -2933,7 +2933,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
        libbalsa_information
            (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
             LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
-            _("The message sent by %s with subject \"%s\" contains a signed "
+            _("The message sent by %s with subject “%s” contains a signed "
               "part, but its structure is invalid. The signature, if there "
               "is any, cannot be checked."),
             chk_crypto->sender, chk_crypto->subject);
@@ -2946,7 +2946,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
        libbalsa_information
            (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
             LIBBALSA_INFORMATION_WARNING : LIBBALSA_INFORMATION_MESSAGE,
-            _("The message sent by %s with subject \"%s\" contains a %s "
+            _("The message sent by %s with subject “%s” contains a %s "
               "signed part, but this crypto protocol is not available."),
             chk_crypto->sender, chk_crypto->subject,
             signres & LIBBALSA_PROTECT_RFC3156 ? _("PGP") : _("S/MIME"));
@@ -2992,7 +2992,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
                (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
                 LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
                 _("Checking the signature of the message sent by %s with "
-                  "subject \"%s\" returned:\n%s"),
+                  "subject “%s” returned:\n%s"),
                 chk_crypto->sender, chk_crypto->subject,
                 libbalsa_gpgme_sig_stat_to_gchar(body->parts->next->sig_info->status));
            break;
@@ -3004,7 +3004,7 @@ libbalsa_msg_try_mp_signed(LibBalsaMessage * message, LibBalsaMessageBody *body,
            (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
             LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
             _("Checking the signature of the message sent by %s with subject "
-              "\"%s\" failed with an error!"),
+              "“%s” failed with an error!"),
             chk_crypto->sender, chk_crypto->subject);
 }
 
@@ -3111,7 +3111,7 @@ libbalsa_msg_part_2440(LibBalsaMessage * message, LibBalsaMessageBody * body,
            (chk_crypto->chk_mode == LB_MAILBOX_CHK_CRYPT_ALWAYS ?
             LIBBALSA_INFORMATION_ERROR : LIBBALSA_INFORMATION_MESSAGE,
             _("Checking the signature of the message sent by %s with "
-              "subject \"%s\" returned:\n%s"),
+              "subject “%s” returned:\n%s"),
             chk_crypto->sender, chk_crypto->subject,
             libbalsa_gpgme_sig_stat_to_gchar(sig_res));
 }
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index efd6803..570b2b5 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -430,7 +430,7 @@ bm_header_extend_popup(GtkWidget * widget, GtkMenu * menu, gpointer arg)
 
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), separator);
     gtk_widget_show(separator);
-    menu_item = gtk_menu_item_new_with_label(_("Reply..."));
+    menu_item = gtk_menu_item_new_with_label(_("Reply…"));
     g_signal_connect(G_OBJECT(menu_item), "activate",
                      G_CALLBACK(bm_header_ctx_menu_reply),
                      arg);
@@ -438,7 +438,7 @@ bm_header_extend_popup(GtkWidget * widget, GtkMenu * menu, gpointer arg)
     gtk_widget_show(menu_item);
 
 
-    menu_item = gtk_menu_item_new_with_mnemonic(_("_Copy to folder..."));
+    menu_item = gtk_menu_item_new_with_mnemonic(_("_Copy to folder…"));
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
     gtk_widget_show(menu_item);
 
diff --git a/src/balsa-mime-widget-text.c b/src/balsa-mime-widget-text.c
index a977f55..e54069c 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -514,7 +514,7 @@ text_view_url_popup(GtkTextView *textview, GtkMenu *menu)
                       G_CALLBACK (url_open_cb), (gpointer)url);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
 
-    menu_item = gtk_menu_item_new_with_label (_("Send link..."));
+    menu_item = gtk_menu_item_new_with_label (_("Send link…"));
     g_signal_connect (G_OBJECT (menu_item), "activate",
                       G_CALLBACK (url_send_cb), (gpointer)url);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
@@ -545,7 +545,7 @@ text_view_populate_popup(GtkTextView *textview, GtkMenu *menu,
                                           G_CALLBACK (balsa_mime_widget_ctx_menu_cb),
                                           (gpointer)mime_body);
 
-    menu_item = gtk_menu_item_new_with_label (_("Save..."));
+    menu_item = gtk_menu_item_new_with_label (_("Save…"));
     g_signal_connect (G_OBJECT (menu_item), "activate",
                       G_CALLBACK (balsa_mime_widget_ctx_menu_save), (gpointer)mime_body);
     gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
@@ -782,7 +782,7 @@ handle_url(const gchar * url)
     } else {
         GtkStatusbar *statusbar;
         guint context_id;
-        gchar *notice = g_strdup_printf(_("Calling URL %s..."), url);
+        gchar *notice = g_strdup_printf(_("Calling URL %s…"), url);
         GdkScreen *screen;
         GError *err = NULL;
 
@@ -1075,7 +1075,7 @@ bmwt_populate_popup_menu(BalsaMessage * bm,
                                            (balsa_mime_widget_ctx_menu_cb),
                                            mime_body);
 
-    menuitem = gtk_menu_item_new_with_label(_("Save..."));
+    menuitem = gtk_menu_item_new_with_label(_("Save…"));
     g_signal_connect(G_OBJECT(menuitem), "activate",
                      G_CALLBACK(balsa_mime_widget_ctx_menu_save),
                      mime_body);
@@ -1084,7 +1084,7 @@ bmwt_populate_popup_menu(BalsaMessage * bm,
     menuitem = gtk_separator_menu_item_new();
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
 
-    menuitem = gtk_menu_item_new_with_label(_("Print..."));
+    menuitem = gtk_menu_item_new_with_label(_("Print…"));
     g_signal_connect_swapped(G_OBJECT(menuitem), "activate",
                              G_CALLBACK(libbalsa_html_print), html);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
@@ -1263,11 +1263,11 @@ check_text_encoding(BalsaMessage * bm, gchar *text_buf)
                                NULL);
         libbalsa_information
             (LIBBALSA_INFORMATION_MESSAGE,
-             _("The message sent by %s with subject \"%s\" contains 8-bit "
+             _("The message sent by %s with subject “%s” contains 8-bit "
                "characters, but no header describing the used codeset "
                "(converted to %s)"),
              from, subject,
-             target_cs ? target_cs : "\"?\"");
+             target_cs ? target_cs : "“?”");
         g_free(subject);
         g_free(from);
         /* Avoid multiple notifications: */
diff --git a/src/balsa-mime-widget-vcalendar.c b/src/balsa-mime-widget-vcalendar.c
index 1b06b8a..8eb3e64 100644
--- a/src/balsa-mime-widget-vcalendar.c
+++ b/src/balsa-mime-widget-vcalendar.c
@@ -62,7 +62,7 @@ balsa_mime_widget_new_vcalendar(BalsaMessage * bm,
     mw = g_object_new(BALSA_TYPE_MIME_WIDGET, NULL);
     mw->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 12);
 
-    text = g_strdup_printf(_("This is an iTIP calendar \"%s\" message."),
+    text = g_strdup_printf(_("This is an iTIP calendar “%s” message."),
                           libbalsa_vcal_method_to_str(vcal_obj->method));
     label = gtk_label_new(text);
     g_free(text);
diff --git a/src/filter-edit-callbacks.c b/src/filter-edit-callbacks.c
index f10e86d..0706acc 100644
--- a/src/filter-edit-callbacks.c
+++ b/src/filter-edit-callbacks.c
@@ -1830,7 +1830,7 @@ fe_apply_pressed(GtkWidget * widget, gpointer data)
     } 
     if(!unique_filter_name(temp)) {
         balsa_information(LIBBALSA_INFORMATION_ERROR,
-                          _("Filter \"%s\" already exists."), temp);
+                          _("Filter “%s” already exists."), temp);
         return;
     }
     
diff --git a/src/filter-edit-dialog.c b/src/filter-edit-dialog.c
index ac31d96..6d22c83 100644
--- a/src/filter-edit-dialog.c
+++ b/src/filter-edit-dialog.c
@@ -397,7 +397,7 @@ build_action_page(GtkWindow * window)
     gtk_grid_attach(GTK_GRID(grid), fe_sound_button, 0, 0, 1, 1);
 
     dialog =
-        gtk_file_chooser_dialog_new(_("Use Sound..."), NULL,
+        gtk_file_chooser_dialog_new(_("Use Sound…"), NULL,
                                     GTK_FILE_CHOOSER_ACTION_OPEN,
                                     _("_Cancel"), GTK_RESPONSE_CANCEL,
                                     _("_Open"),   GTK_RESPONSE_ACCEPT,
@@ -632,7 +632,7 @@ filters_edit_dialog(GtkWindow * parent)
             cpfil->condition = libbalsa_condition_ref(fil->condition);
         else
             balsa_information(LIBBALSA_INFORMATION_WARNING,
-                              _("Filter \"%s\" has no condition."),
+                              _("Filter “%s” has no condition."),
                               fil->name);
 
        fe_collect_user_headers(fil->condition);
diff --git a/src/filter-run-callbacks.c b/src/filter-run-callbacks.c
index c857e5a..6487755 100644
--- a/src/filter-run-callbacks.c
+++ b/src/filter-run-callbacks.c
@@ -234,7 +234,7 @@ fr_apply_selected_pressed(BalsaFilterRunDialog * p)
                                    _("Error when applying filters"));
     else
         balsa_information(LIBBALSA_INFORMATION_MESSAGE,
-                          _("Filter applied to \"%s\"."),
+                          _("Filter applied to “%s”."),
                           p->mbox->name);
 
     g_slist_free(p->filters);
@@ -256,7 +256,7 @@ fr_apply_now_pressed(BalsaFilterRunDialog* p)
                                    _("Error when applying filters"));
     else
         balsa_information(LIBBALSA_INFORMATION_MESSAGE,
-                          _("Filter applied to \"%s\"."),
+                          _("Filter applied to “%s”."),
                           p->mbox->name);
 }
 
@@ -296,15 +296,15 @@ fr_add_pressed_func(GtkTreeModel * model, GtkTreePath * path,
     } else
         balsa_information(LIBBALSA_INFORMATION_ERROR,
                           _("The destination mailbox of "
-                            "the filter \"%s\" is \"%s\".\n"
+                            "the filter “%s” is “%s”.\n"
                             "You can't associate it with the same "
                             "mailbox (that causes recursion)."),
                           fil->name, p->mbox->name);
 
     if (!libbalsa_mailbox_can_match(p->mbox, fil->condition))
        balsa_information(LIBBALSA_INFORMATION_WARNING,
-                         _("The filter \"%s\" is not compatible with "
-                           "the mailbox type of \"%s\".\n"
+                         _("The filter “%s” is not compatible with "
+                           "the mailbox type of “%s”.\n"
                            "This happens for example when you use"
                            " regular expressions match with IMAP mailboxes,"
                            " it is done by a very slow method; if possible, use substring match"
diff --git a/src/folder-conf.c b/src/folder-conf.c
index fe801b5..9f68bdf 100644
--- a/src/folder-conf.c
+++ b/src/folder-conf.c
@@ -853,7 +853,7 @@ folder_conf_imap_sub_node(BalsaMailboxNode * mn)
     gtk_editable_set_editable(GTK_EDITABLE(sdd->parent_folder), FALSE);
     gtk_entry_set_text(GTK_ENTRY(sdd->parent_folder), sdd->old_parent);
 
-    button = gtk_button_new_with_mnemonic(_("_Browse..."));
+    button = gtk_button_new_with_mnemonic(_("_Browse…"));
     g_signal_connect(G_OBJECT(button), "clicked",
                     G_CALLBACK(browse_button_cb), (gpointer) sdd);
 
@@ -1003,8 +1003,8 @@ folder_conf_delete(BalsaMailboxNode* mbnode)
                                  GTK_MESSAGE_QUESTION,
                                  GTK_BUTTONS_OK_CANCEL,
                                  _("This will remove the folder "
-                                   "\"%s\" from the list.\n"
-                                   "You may use \"New IMAP Folder\" "
+                                   "“%s” from the list.\n"
+                                   "You may use “New IMAP Folder” "
                                    "later to add this folder again.\n"),
                                  mbnode->name);
 #if HAVE_MACOSX_DESKTOP
diff --git a/src/mailbox-conf.c b/src/mailbox-conf.c
index 7a4840a..c268ac2 100644
--- a/src/mailbox-conf.c
+++ b/src/mailbox-conf.c
@@ -375,7 +375,7 @@ mailbox_conf_delete(BalsaMailboxNode * mbnode)
     if(BALSA_IS_MAILBOX_SPECIAL(mailbox)) {
        balsa_information(
            LIBBALSA_INFORMATION_ERROR,
-           _("Mailbox \"%s\" is used by Balsa and I cannot remove it.\n"
+           _("Mailbox “%s” is used by Balsa and I cannot remove it.\n"
              "If you really want to remove it, assign its function\n"
              "to some other mailbox."), mailbox->name);
        return;
@@ -386,13 +386,13 @@ mailbox_conf_delete(BalsaMailboxNode * mbnode)
                                      GTK_MESSAGE_QUESTION,
                                      GTK_BUTTONS_NONE,
                                      _("This will remove the mailbox "
-                                       "\"%s\" from the list "
+                                       "“%s” from the list "
                                        "of mailboxes.  "
                                        "You may also delete the disk "
                                        "file or files associated with "
                                        "this mailbox.\n"
                                        "If you do not remove the file "
-                                       "on disk you may \"Add  Mailbox\" "
+                                       "on disk you may “Add  Mailbox” "
                                        "to access the mailbox again.\n"
                                        "What would you like to do?"),
                                      mailbox->name);
@@ -407,13 +407,13 @@ mailbox_conf_delete(BalsaMailboxNode * mbnode)
                                      GTK_MESSAGE_QUESTION,
                                      GTK_BUTTONS_NONE,
                                     _("This will remove the mailbox "
-                                       "\"%s\" and all its messages "
+                                       "“%s” and all its messages "
                                        "from your IMAP server.  "
                                       "If %s has subfolders, it will "
                                        "still appear as a node in the "
                                        "folder tree.\n"
                                       "You may use "
-                                       "\"New IMAP subfolder\" "
+                                       "“New IMAP subfolder” "
                                        "later to add a mailbox "
                                        "with this name.\n"
                                       "What would you like to do?"),
@@ -427,9 +427,9 @@ mailbox_conf_delete(BalsaMailboxNode * mbnode)
                                      GTK_MESSAGE_QUESTION,
                                      GTK_BUTTONS_NONE,
                                     _("This will remove the mailbox "
-                                       "\"%s\" from the list "
+                                       "“%s” from the list "
                                        "of mailboxes.\n"
-                                      "You may use \"Add Mailbox\" "
+                                      "You may use “Add Mailbox” "
                                        "later to access "
                                        "this mailbox again.\n"
                                       "What would you like to do?"),
diff --git a/src/mailbox-node.c b/src/mailbox-node.c
index 005823d..3d7bb31 100644
--- a/src/mailbox-node.c
+++ b/src/mailbox-node.c
@@ -367,7 +367,7 @@ check_local_path(const gchar * path, guint depth)
                                 (LibBalsaConfForeachFunc) check_url_func,
                                 &cpi);
     if(balsa_app.debug) 
-       printf("check_local_path: path \"%s\" must_scan %d.\n",
+       printf("check_local_path: path “%s” must_scan %d.\n",
                cpi.url, cpi.must_scan);
     g_free(cpi.url);
 
@@ -494,7 +494,7 @@ imap_dir_cb(BalsaMailboxNode* mb)
 
     while(mroot->parent)
        mroot = mroot->parent;
-    msg = g_strdup_printf(_("Scanning %s. Please wait..."), mroot->name);
+    msg = g_strdup_printf(_("Scanning %s. Please wait…"), mroot->name);
     gtk_statusbar_push(statusbar, context_id, msg);
     g_free(msg);
 
@@ -893,7 +893,7 @@ bmbn_scan_children_idle(BalsaMailboxNode ** mbnode)
                 mn->mailbox->has_unread_messages = has_unread_messages;
             mn->scanned = TRUE;
         } else if (balsa_app.debug)
-            g_print("%s: %s \"%s\" was already scanned\n", __func__,
+            g_print("%s: %s “%s” was already scanned\n", __func__,
                     mn->mailbox ? "mailbox" : "folder",
                     mn->mailbox ? mn->mailbox->name : mn->name);
         g_object_remove_weak_pointer(G_OBJECT(mn), & l->data);
@@ -1060,18 +1060,18 @@ balsa_mailbox_node_get_context_menu(BalsaMailboxNode * mbnode)
                      G_CALLBACK(gtk_widget_destroy), NULL);
 
     submenu = gtk_menu_new();
-    add_menu_entry(submenu, _("Local _mbox mailbox..."),  
+    add_menu_entry(submenu, _("Local _mbox mailbox…"),  
                   G_CALLBACK(mailbox_conf_add_mbox_cb), NULL);
-    add_menu_entry(submenu, _("Local Mail_dir mailbox..."), 
+    add_menu_entry(submenu, _("Local Mail_dir mailbox…"), 
                   G_CALLBACK(mailbox_conf_add_maildir_cb), NULL);
-    add_menu_entry(submenu, _("Local M_H mailbox..."),
+    add_menu_entry(submenu, _("Local M_H mailbox…"),
                   G_CALLBACK(mailbox_conf_add_mh_cb), NULL);
-    add_menu_entry(submenu, _("Remote _IMAP mailbox..."), 
+    add_menu_entry(submenu, _("Remote _IMAP mailbox…"), 
                   G_CALLBACK(mailbox_conf_add_imap_cb), NULL);
     add_menu_entry(submenu, NULL, NULL, mbnode);
-    add_menu_entry(submenu, _("Remote IMAP _folder..."), 
+    add_menu_entry(submenu, _("Remote IMAP _folder…"), 
                   G_CALLBACK(folder_conf_add_imap_cb), NULL);
-    add_menu_entry(submenu, _("Remote IMAP _subfolder..."), 
+    add_menu_entry(submenu, _("Remote IMAP _subfolder…"), 
                   G_CALLBACK(folder_conf_add_imap_sub_cb), NULL);
     gtk_widget_show(submenu);
     
@@ -1092,7 +1092,7 @@ balsa_mailbox_node_get_context_menu(BalsaMailboxNode * mbnode)
     if (g_signal_has_handler_pending(G_OBJECT(mbnode),
                                      balsa_mailbox_node_signals
                                      [SHOW_PROP_DIALOG], 0, FALSE))
-        add_menu_entry(menu, _("_Properties..."),
+        add_menu_entry(menu, _("_Properties…"),
                        G_CALLBACK(mb_conf_cb), mbnode);
 
     if (g_signal_has_handler_pending(G_OBJECT(mbnode),
@@ -1231,7 +1231,7 @@ add_local_mailbox(BalsaMailboxNode *root, const gchar * name,
        } else {
            /* type is not a valid local mailbox type. */
            balsa_information(LIBBALSA_INFORMATION_DEBUG,
-                             _("The path \"%s\" does not lead to a mailbox."),
+                             _("The path “%s” does not lead to a mailbox."),
                              path);
            mailbox = NULL;
        }
@@ -1406,7 +1406,7 @@ handle_imap_path(const char *fn, char delim, int noselect, int noscan,
            return;
     }
     if (balsa_app.debug)
-       printf("handle_imap_path: Adding mailbox of path \"%s\" "
+       printf("handle_imap_path: Adding mailbox of path “%s” "
               "delim `%c' noselect %d noscan %d\n",
               fn, delim, noselect, noscan);
     add_imap_entry(fn, delim, noscan, !noselect, marked, data);
@@ -1436,7 +1436,7 @@ check_imap_path(const gchar *fn, LibBalsaServer * server, guint depth)
                                 (LibBalsaConfForeachFunc) check_url_func,
                                 &cpi);
     if(balsa_app.debug) 
-       printf("check_imap_path: path \"%s\" must_scan %d.\n",
+       printf("check_imap_path: path “%s” must_scan %d.\n",
                cpi.url, cpi.must_scan);
     g_free(cpi.url);
 
@@ -1454,7 +1454,7 @@ mark_imap_path(const gchar * fn, gpointer data)
     GSList *list;
 
     if(balsa_app.debug) 
-       printf("mark_imap_path: find path \"%s\".\n", fn);
+       printf("mark_imap_path: find path “%s”.\n", fn);
     for (list = tree->list; list; list = list->next) {
         imap_scan_item *item = list->data;
         if (!strcmp(item->fn, fn)) {
diff --git a/src/main-window.c b/src/main-window.c
index 9c815e1..1b1cb36 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -700,7 +700,7 @@ bw_get_action(BalsaWindow * window,
         action = g_action_map_lookup_action(action_map, action_name);
     }
     if (!action)
-        g_print("%s action \"%s\" not found\n", __func__, action_name);
+        g_print("%s action “%s” not found\n", __func__, action_name);
 
     return action;
 }
@@ -1001,7 +1001,7 @@ quit_activated(GSimpleAction * action,
     libbalsa_information_parented(window,
                                   LIBBALSA_INFORMATION_MESSAGE,
                                   _("Balsa closes files and connections."
-                                    "Please wait..."));
+                                    " Please wait…"));
     while(gtk_events_pending())
         gtk_main_iteration_do(FALSE);
     gdk_event_put((GdkEvent*)&e);
@@ -1849,7 +1849,7 @@ header_change_state(GSimpleAction * action,
     else if (strcmp(value, "all") == 0)
         sh = HEADERS_ALL;
     else {
-        g_print("%s unknown value \"%s\"\n", __func__, value);
+        g_print("%s unknown value “%s”\n", __func__, value);
         return;
     }
 
@@ -1882,7 +1882,7 @@ threading_change_state(GSimpleAction * action,
     else if (strcmp(value, "jwz") == 0)
         type = LB_MAILBOX_THREADING_JWZ;
     else {
-        g_print("%s unknown value \"%s\"\n", __func__, value);
+        g_print("%s unknown value “%s”\n", __func__, value);
         return;
     }
 
@@ -3250,7 +3250,7 @@ ensure_check_mail_dialog(BalsaWindow * window)
        gtk_widget_destroy(GTK_WIDGET(progress_dialog));
 
     progress_dialog =
-       gtk_dialog_new_with_buttons(_("Checking Mail..."),
+       gtk_dialog_new_with_buttons(_("Checking Mail…"),
                                     GTK_WINDOW(window),
                                     GTK_DIALOG_DESTROY_WITH_PARENT |
                                     libbalsa_dialog_flags(),
@@ -3268,7 +3268,7 @@ ensure_check_mail_dialog(BalsaWindow * window)
 
     content_box =
         GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(progress_dialog)));
-    progress_dialog_source = gtk_label_new(_("Checking Mail..."));
+    progress_dialog_source = gtk_label_new(_("Checking Mail…"));
     gtk_box_pack_start(content_box, progress_dialog_source,
                        FALSE, FALSE, 0);
 
diff --git a/src/main.c b/src/main.c
index f370e9e..e0b8a89 100644
--- a/src/main.c
+++ b/src/main.c
@@ -121,30 +121,30 @@ check_special_mailboxes(void)
     gboolean bomb = FALSE;
 
     if (balsa_app.inbox == NULL) {
-       g_warning(_("Balsa cannot open your \"%s\" mailbox."), _("Inbox"));
+       g_warning(_("Balsa cannot open your “%s” mailbox."), _("Inbox"));
        bomb = TRUE;
     }
 
     if (balsa_app.outbox == NULL) {
-       g_warning(_("Balsa cannot open your \"%s\" mailbox."),
+       g_warning(_("Balsa cannot open your “%s” mailbox."),
                  _("Outbox"));
        bomb = TRUE;
     }
 
     if (balsa_app.sentbox == NULL) {
-       g_warning(_("Balsa cannot open your \"%s\" mailbox."),
+       g_warning(_("Balsa cannot open your “%s” mailbox."),
                  _("Sentbox"));
        bomb = TRUE;
     }
 
     if (balsa_app.draftbox == NULL) {
-       g_warning(_("Balsa cannot open your \"%s\" mailbox."),
+       g_warning(_("Balsa cannot open your “%s” mailbox."),
                  _("Draftbox"));
        bomb = TRUE;
     }
 
     if (balsa_app.trash == NULL) {
-       g_warning(_("Balsa cannot open your \"%s\" mailbox."), _("Trash"));
+       g_warning(_("Balsa cannot open your “%s” mailbox."), _("Trash"));
        bomb = TRUE;
     }
 
@@ -398,7 +398,7 @@ periodic_expunge_cb(void)
 
     gdk_threads_enter();
     libbalsa_information(LIBBALSA_INFORMATION_DEBUG,
-                         _("Compressing mail folders..."));
+                         _("Compressing mail folders…"));
     gtk_tree_model_foreach(GTK_TREE_MODEL(balsa_app.mblist_tree_store),
                           (GtkTreeModelForeachFunc)mbnode_expunge_func,
                           &list);
diff --git a/src/message-window.c b/src/message-window.c
index 3e7b56f..75c3570 100644
--- a/src/message-window.c
+++ b/src/message-window.c
@@ -71,7 +71,7 @@ mw_set_enabled(MessageWindow * mw, const gchar * action_name,
     if (action)
         g_simple_action_set_enabled(G_SIMPLE_ACTION(action), enabled);
     else
-        g_print("%s action \"%s\" not found\n", __func__, action_name);
+        g_print("%s action “%s” not found\n", __func__, action_name);
 }
 
 /*
@@ -88,7 +88,7 @@ mw_set_active(MessageWindow * mw,
     if (action)
         g_action_change_state(action, g_variant_new_boolean(state));
     else
-        g_print("%s action \"%s\" not found\n", __func__, action_name);
+        g_print("%s action “%s” not found\n", __func__, action_name);
 }
 
 /*
@@ -264,7 +264,7 @@ mw_header_change_state(GSimpleAction * action,
     else if (strcmp(value, "all") == 0)
         sh = HEADERS_ALL;
     else {
-        g_print("%s unknown value \"%s\"\n", __func__, value);
+        g_print("%s unknown value “%s”\n", __func__, value);
         return;
     }
 
diff --git a/src/pref-manager.c b/src/pref-manager.c
index 28875b5..78ba688 100644
--- a/src/pref-manager.c
+++ b/src/pref-manager.c
@@ -1980,7 +1980,7 @@ broken_8bit_codeset_group(GtkWidget * page)
 
     pui->convert_unknown_8bit[0] =
        GTK_RADIO_BUTTON(gtk_radio_button_new_with_label(radio_group,
-                                                        _("display as \"?\"")));
+                                                        _("display as “?”")));
     gtk_grid_attach(grid, GTK_WIDGET(pui->convert_unknown_8bit[0]),
                     0, 0, 2, 1);
     radio_group =
@@ -2031,7 +2031,7 @@ mdn_group(GtkWidget * page)
 
     label = gtk_label_new(_("The message header looks clean "
                             "(the notify-to address is the return path, "
-                            "and I am in the \"To:\" or \"Cc:\" list)."));
+                            "and I am in the “To:” or “Cc:” list)."));
     gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
     gtk_label_set_max_width_chars(GTK_LABEL(label), BALSA_MAX_WIDTH_CHARS);
     set_align(label, 0.0, 0.5);
@@ -2669,7 +2669,7 @@ deleting_messages_group(GtkWidget * page)
     pm_group_add(group, hbox, FALSE);
 
     pui->expunge_auto =
-       gtk_check_button_new_with_label(_("...and if unused more than"));
+       gtk_check_button_new_with_label(_("…and if unused more than"));
     gtk_box_pack_start(GTK_BOX(hbox), pui->expunge_auto,
                        FALSE, FALSE, 0);
     pm_page_add_to_size_group(page, pui->expunge_auto);
@@ -3184,15 +3184,15 @@ server_add_menu_widget(void)
     GtkWidget *menuitem;
 
     menu = gtk_menu_new();
-    menuitem = gtk_menu_item_new_with_label(_("Remote POP3 mailbox..."));
+    menuitem = gtk_menu_item_new_with_label(_("Remote POP3 mailbox…"));
     g_signal_connect(G_OBJECT(menuitem), "activate",
                      G_CALLBACK(pop3_add_cb), NULL);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
-    menuitem = gtk_menu_item_new_with_label(_("Remote IMAP mailbox..."));
+    menuitem = gtk_menu_item_new_with_label(_("Remote IMAP mailbox…"));
     g_signal_connect(G_OBJECT(menuitem), "activate",
                     G_CALLBACK(mailbox_conf_add_imap_cb), NULL);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
-    menuitem = gtk_menu_item_new_with_label(_("Remote IMAP folder..."));
+    menuitem = gtk_menu_item_new_with_label(_("Remote IMAP folder…"));
     g_signal_connect(G_OBJECT(menuitem), "activate",
                     G_CALLBACK(folder_conf_add_imap_cb), NULL);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
diff --git a/src/save-restore.c b/src/save-restore.c
index de2109a..6d3b389 100644
--- a/src/save-restore.c
+++ b/src/save-restore.c
@@ -712,7 +712,7 @@ config_global_load(void)
                                        &def_used);
     if (!def_used)
         g_idle_add((GSourceFunc) config_warning_idle,
-                   _("The option not to recognize \"format=flowed\" "
+                   _("The option not to recognize “format=flowed” "
                      "text has been removed."));
 
     {
@@ -991,7 +991,7 @@ config_global_load(void)
                                        &def_used);
     if (!def_used)
         g_idle_add((GSourceFunc) config_warning_idle,
-                   _("The option not to send \"format=flowed\" text is now "
+                   _("The option not to send “format=flowed” text is now "
                      "on the Options menu of the compose window."));
 
     balsa_app.autoquote = 
@@ -2048,7 +2048,7 @@ config_defclient_save(void)
     info = g_desktop_app_info_new("balsa.desktop");
     if (!info) {
         g_warning("Failed to create default application for Balsa "
-                  "for \"mailto\"");
+                  "for “mailto”");
         return;
     }
 
@@ -2056,7 +2056,7 @@ config_defclient_save(void)
     if (!g_app_info_set_as_default_for_type
         (G_APP_INFO(info), "x-scheme-handler/mailto", &err)) {
         g_warning("Failed to set Balsa as the default application "
-                  "for \"mailto\": %s", err->message);
+                  "for “mailto”: %s", err->message);
         g_error_free(err);
     }
     g_object_unref(info);
diff --git a/src/sendmsg-window.c b/src/sendmsg-window.c
index 55d18ae..7ecffd2 100644
--- a/src/sendmsg-window.c
+++ b/src/sendmsg-window.c
@@ -1624,7 +1624,7 @@ sw_set_charset(BalsaSendmsg * bsmsg, const gchar * filename,
             balsa_information_parented(GTK_WINDOW(bsmsg->window),
                                        LIBBALSA_INFORMATION_WARNING,
                                        _("Character set for file %s changed "
-                                         "from \"%s\" to \"%s\"."), filename,
+                                         "from “%s” to “%s”."), filename,
                                        info->std, info->win);
         }
     }
@@ -1757,7 +1757,7 @@ add_attachment(BalsaSendmsg * bsmsg, const gchar *filename,
             gchar *tmp =
                 internet_address_list_to_string(attach_data->headers->from,
                                                 FALSE);
-           utf8name = g_strdup_printf(_("Message from %s, subject: \"%s\""),
+           utf8name = g_strdup_printf(_("Message from %s, subject: “%s”"),
                                       tmp,
                                       attach_data->headers->subject);
            g_free(tmp);
@@ -1920,7 +1920,7 @@ add_urlref_attachment(BalsaSendmsg * bsmsg, gchar *url)
     gtk_menu_shell_append(GTK_MENU_SHELL(attach_data->popup_menu),
                          gtk_separator_menu_item_new());
     menu_item =
-       gtk_menu_item_new_with_label(_("Open..."));
+       gtk_menu_item_new_with_label(_("Open…"));
     g_signal_connect(G_OBJECT (menu_item), "activate",
                     G_CALLBACK(on_open_url_cb),
                     (gpointer)attach_data);
@@ -3077,10 +3077,10 @@ tree_add_quote_body(LibBalsaMessageBody * body, GtkTreeStore * store, GtkTreeIte
        !g_ascii_strcasecmp(disp_type, "inline");
     if (body->filename && *body->filename) {
         if (preselect)
-            description = g_strdup_printf(_("inlined file \"%s\" (%s)"),
+            description = g_strdup_printf(_("inlined file “%s” (%s)"),
                                           body->filename, mime_type);
         else
-            description = g_strdup_printf(_("attached file \"%s\" (%s)"),
+            description = g_strdup_printf(_("attached file “%s” (%s)"),
                                           body->filename, mime_type);
     } else {
         if (preselect)
@@ -3154,7 +3154,7 @@ scan_bodies(GtkTreeStore * bodies, GtkTreeIter * parent, LibBalsaMessageBody * b
                    libbalsa_utf8_sanitize(&from, balsa_app.convert_unknown_8bit, NULL);
                    libbalsa_utf8_sanitize(&subj, balsa_app.convert_unknown_8bit, NULL);
                    description =
-                       g_strdup_printf(_("message from %s, subject \"%s\""),
+                       g_strdup_printf(_("message from %s, subject “%s”"),
                                        from, subj);
                    g_free(from);
                    g_free(subj);
@@ -3285,7 +3285,7 @@ append_parts(GString * q_body, LibBalsaMessage *message, GtkTreeModel * model,
                        used_from_msg = TRUE;
                    } else if (q_body->len > 0) {
                        if (this_body->filename)
-                           g_string_append_printf(q_body, "\n------%s \"%s\"------\n",
+                           g_string_append_printf(q_body, "\n------%s “%s”------\n",
                                                   _("quoted attachment"), this_body->filename);
                        else
                            g_string_append_printf(q_body, "\n------%s------\n",
@@ -4552,7 +4552,7 @@ sendmsg_window_set_field(BalsaSendmsg * bsmsg, const gchar * key,
                  GTK_MESSAGE_INFO,
                  GTK_BUTTONS_OK,
                  _("The link that you selected created\n"
-                   "a \"Blind copy\" (Bcc) address.\n"
+                   "a “Blind copy” (Bcc) address.\n"
                    "Please check that the address\n"
                    "is appropriate."));
 #if HAVE_MACOSX_DESKTOP
@@ -6025,7 +6025,7 @@ sw_gpg_mode_change_state(GSimpleAction  * action,
     else if (strcmp(mode, "smime") == 0)
         rfc_flag = LIBBALSA_PROTECT_SMIMEV3;
     else {
-        g_print("%s unknown mode \"%s\"\n", __func__, mode);
+        g_print("%s unknown mode “%s”\n", __func__, mode);
         return;
     }
 
diff --git a/src/spell-check.c b/src/spell-check.c
index da6b0a5..8c0d116 100644
--- a/src/spell-check.c
+++ b/src/spell-check.c
@@ -974,7 +974,7 @@ check_word(BalsaSpellCheck * spell_check)
 
        if (balsa_app.debug)
            balsa_information(LIBBALSA_INFORMATION_DEBUG,
-                             " ...incorrect.\n");
+                             " …incorrect.\n");
 
        spell_check->suggestions =
            enchant_dict_suggest(spell_check->dict, word, -1, &n_suggs);
@@ -982,7 +982,7 @@ check_word(BalsaSpellCheck * spell_check)
     } else {
        if (balsa_app.debug)
            balsa_information(LIBBALSA_INFORMATION_DEBUG,
-                             " ...correct.\n");
+                             " …correct.\n");
     }
 
     g_free(word);
diff --git a/src/store-address.c b/src/store-address.c
index 48699f6..68012ed 100644
--- a/src/store-address.c
+++ b/src/store-address.c
@@ -243,7 +243,7 @@ store_address_from_entries(GtkWindow *window, StoreAddressInfo * info,
 
     if (info->current_address_book == NULL) {
         balsa_information(LIBBALSA_INFORMATION_WARNING,
-                     _("No address book selected...."));
+                     _("No address book selected…"));
         return FALSE;
     }
 
diff --git a/src/toolbar-factory.c b/src/toolbar-factory.c
index e6aa094..a49a10d 100644
--- a/src/toolbar-factory.c
+++ b/src/toolbar-factory.c
@@ -402,7 +402,7 @@ balsa_toolbar_model_insert_icon(BalsaToolbarModel * model, gchar * icon,
         else
             g_array_append_val(model->current, entry);
     } else
-        g_warning(_("Unknown toolbar icon \"%s\""), icon);
+        g_warning(_("Unknown toolbar icon “%s”"), icon);
 }
 
 /* Remove all icons from the BalsaToolbarModel.
@@ -783,7 +783,7 @@ tm_do_popup_menu(GtkWidget * toolbar, GdkEventButton * event,
         gtk_menu_shell_append(GTK_MENU_SHELL(menu),
                               gtk_separator_menu_item_new());
         item =
-            gtk_menu_item_new_with_mnemonic(_("_Customize Toolbars..."));
+            gtk_menu_item_new_with_mnemonic(_("_Customize Toolbars…"));
         g_signal_connect(item, "activate", G_CALLBACK(customize_dialog_cb),
                          gtk_widget_get_toplevel(toolbar));
         gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
diff --git a/src/toolbar-prefs.c b/src/toolbar-prefs.c
index f8b1a7a..ccd8ed4 100644
--- a/src/toolbar-prefs.c
+++ b/src/toolbar-prefs.c
@@ -446,7 +446,7 @@ create_toolbar_page(BalsaToolbarModel * model, GActionMap * map)
     gtk_container_add(GTK_CONTAINER(button_box), page->standard_button);
 
     /* Style button */
-    style_button = gtk_button_new_with_mnemonic(_("Toolbar _style..."));
+    style_button = gtk_button_new_with_mnemonic(_("Toolbar _style…"));
     gtk_container_add(GTK_CONTAINER(button_box), style_button);
 
     /* Done with preview */
@@ -624,7 +624,7 @@ tp_page_refresh_available(ToolbarPage * page, GActionMap * map)
 
                 action = g_hash_table_lookup(legal, toolbar_buttons[item].pixmap_id);
                 if (action && !g_action_map_lookup_action(map, action))
-                    g_print("undefined action: \"%s\"\n", action);
+                    g_print("undefined action: “%s”\n", action);
             }
         }
 #endif /* BALSA_TOOLBAR_DEBUG_ACTIONS */


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