diff options
author | Milan Crha <mcrha@redhat.com> | 2010-04-02 02:00:36 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2010-04-02 02:00:36 +0800 |
commit | 125573b8fd62f4d0d38907c95c70168ca984d3c4 (patch) | |
tree | 709ea2df6889f4aa66c17a6eba795096424bae1c /mail/mail-vfolder.c | |
parent | 0d66851bd58f75b21f30942c05a96fa7c4bf5817 (diff) | |
download | gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar.gz gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar.bz2 gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar.lz gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar.xz gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.tar.zst gsoc2013-evolution-125573b8fd62f4d0d38907c95c70168ca984d3c4.zip |
Bug #302742 - The mail error messages is difficult to understand/translate
Diffstat (limited to 'mail/mail-vfolder.c')
-rw-r--r-- | mail/mail-vfolder.c | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c index 5d4dd4468d..2fe7a03c53 100644 --- a/mail/mail-vfolder.c +++ b/mail/mail-vfolder.c @@ -594,6 +594,7 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi) const gchar *source; CamelVeeFolder *vf; GString *changed; + guint changed_count; gchar *uri; GList *link; @@ -606,6 +607,7 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi) g_return_if_fail (mail_in_main_thread()); + changed_count = 0; changed = g_string_new (""); G_LOCK (vfolder); @@ -638,7 +640,16 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi) 0, NULL, rule_changed, vf); em_vfolder_rule_remove_source ((EMVFolderRule *)rule, source); g_signal_connect (rule, "changed", G_CALLBACK(rule_changed), vf); - g_string_append_printf (changed, " %s\n", rule->name); + if (changed_count == 0) { + g_string_append (changed, rule->name); + } else { + if (changed_count == 1) { + g_string_prepend (changed, " "); + g_string_append (changed, "\n"); + } + g_string_append_printf (changed, " %s\n", rule->name); + } + changed_count++; source = NULL; } g_free(csource); @@ -658,13 +669,22 @@ done: G_UNLOCK (vfolder); - if (changed->str[0]) { + if (changed_count > 0) { GtkWidget *dialog; const gchar *data_dir; - gchar *user; - - dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", changed->str, uri, NULL); + gchar *user, *info; + + info = g_strdup_printf (ngettext ( + /* Translators: The first %s is name of the affected search folder(s), + the second %s is uri of the removed folder. For more than one search + folder is each of them on a separate line, with four spaces in front + of its name, without quotes. */ + "The Search Folder \"%s\" has been updated, because it used just removed folder\n\"%s\".", + "The following Search Folders\n%s have been updated, because they used just removed folder\n\"%s\".", + changed_count), changed->str, uri); + dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", info, NULL); em_utils_show_info_silent (dialog); + g_free (info); data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); |