diff options
author | Jan Holesovsky <kendy@suse.cz> | 2010-12-02 04:13:26 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2010-12-02 04:13:26 +0800 |
commit | 89e3e024d71ee3fd64c9d8eb5d49965a6ed863d4 (patch) | |
tree | a466e60e5a8584bb2f49f9890694f74188049172 | |
parent | 932c26e897c1cc76aa41a7f51634cc485af54655 (diff) | |
download | gsoc2013-evolution-89e3e024d71ee3fd64c9d8eb5d49965a6ed863d4.tar.gz gsoc2013-evolution-89e3e024d71ee3fd64c9d8eb5d49965a6ed863d4.tar.zst gsoc2013-evolution-89e3e024d71ee3fd64c9d8eb5d49965a6ed863d4.zip |
Bug #621150 - Add the possibility to modify locale of the quoting messages
-rw-r--r-- | mail/em-composer-utils.c | 68 | ||||
-rw-r--r-- | mail/evolution-mail.schemas.in | 39 |
2 files changed, 95 insertions, 12 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index 99df9ed1a7..fa55a89060 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -1122,6 +1122,49 @@ edit_message (EShell *shell, return (GtkWidget *)composer; } +typedef enum { QUOTING_ATTRIBUTION, QUOTING_FORWARD, QUOTING_ORIGINAL } QuotingTextEnum; + +static struct { + const gchar* gconf_key; + const gchar* message; +} conf_messages[] = { + [QUOTING_ATTRIBUTION] = + { "/apps/evolution/mail/composer/message_attribution", + /* Note to translators: this is the attribution string used when quoting messages. + * each ${Variable} gets replaced with a value. To see a full list of available + * variables, see mail/em-composer-utils.c:attribvars array */ + N_("On ${AbbrevWeekdayName}, ${Year}-${Month}-${Day} at ${24Hour}:${Minute} ${TimeZone}, ${Sender} wrote:") + }, + + [QUOTING_FORWARD] = + { "/apps/evolution/mail/composer/message_forward", + N_("-------- Forwarded Message --------") + }, + + [QUOTING_ORIGINAL] = + { "/apps/evolution/mail/composer/message_original", + N_("-----Original Message-----") + } +}; + +static gchar * +quoting_text (QuotingTextEnum type) +{ + GConfClient *client; + gchar *text; + + client = gconf_client_get_default (); + text = gconf_client_get_string (client, conf_messages[type].gconf_key, NULL); + g_object_unref (client); + + if (text && *text) + return text; + + g_free (text); + + return g_strdup (_(conf_messages[type].message)); +} + /** * em_utils_edit_message: * @shell: an #EShell @@ -1340,7 +1383,7 @@ forward_non_attached (EShell *shell, CamelMimeMessage *message; EMsgComposer *composer = NULL; const gchar *folder_uri; - gchar *subject, *text; + gchar *subject, *text, *forward; gint i; guint32 flags; @@ -1360,7 +1403,8 @@ forward_non_attached (EShell *shell, message = messages->pdata[i]; subject = mail_tool_generate_forward_subject (message); - text = em_utils_message_to_html (message, _("-------- Forwarded Message --------"), flags, &len, NULL, NULL, &validity_found); + forward = quoting_text (QUOTING_FORWARD); + text = em_utils_message_to_html (message, forward, flags, &len, NULL, NULL, &validity_found); if (text) { composer = create_new_composer (shell, subject, from_uri); @@ -1384,6 +1428,7 @@ forward_non_attached (EShell *shell, g_free (text); } + g_free (forward); g_free (subject); } @@ -2268,13 +2313,8 @@ static struct { { "{TimeZone}", ATTRIB_TIMEZONE, { "%+05d", NULL } } }; -/* Note to translators: this is the attribution string used when quoting messages. - * each ${Variable} gets replaced with a value. To see a full list of available - * variables, see em-composer-utils.c:1514 */ -#define ATTRIBUTION _("On ${AbbrevWeekdayName}, ${Year}-${Month}-${Day} at ${24Hour}:${Minute} ${TimeZone}, ${Sender} wrote:") - static gchar * -attribution_format (const gchar *format, CamelMimeMessage *message) +attribution_format (CamelMimeMessage *message) { register const gchar *inptr; const gchar *start; @@ -2284,6 +2324,7 @@ attribution_format (const gchar *format, CamelMimeMessage *message) struct tm tm; time_t date; gint type; + gchar *format = quoting_text (QUOTING_ATTRIBUTION); str = g_string_new (""); @@ -2387,6 +2428,7 @@ attribution_format (const gchar *format, CamelMimeMessage *message) s = str->str; g_string_free (str, FALSE); + g_free (format); return s; } @@ -2397,7 +2439,7 @@ composer_set_body (EMsgComposer *composer, EMailReplyStyle style, EMFormat *source) { - gchar *text, *credits; + gchar *text, *credits, *original; CamelMimePart *part; GConfClient *client; gssize len = 0; @@ -2421,16 +2463,18 @@ composer_set_body (EMsgComposer *composer, g_object_unref (part); break; case E_MAIL_REPLY_STYLE_OUTLOOK: - text = em_utils_message_to_html (message, _("-----Original Message-----"), EM_FORMAT_QUOTE_HEADERS, &len, source, start_bottom ? "<BR>" : NULL, &validity_found); + original = quoting_text (QUOTING_ORIGINAL); + text = em_utils_message_to_html (message, original, EM_FORMAT_QUOTE_HEADERS, &len, source, start_bottom ? "<BR>" : NULL, &validity_found); e_msg_composer_set_body_text (composer, text, len); g_free (text); + g_free (original); emu_update_composers_security (composer, validity_found); break; case E_MAIL_REPLY_STYLE_QUOTED: default: /* do what any sane user would want when replying... */ - credits = attribution_format (ATTRIBUTION, message); + credits = attribution_format (message); text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, &len, source, start_bottom ? "<BR>" : NULL, &validity_found); g_free (credits); e_msg_composer_set_body_text (composer, text, len); @@ -2472,7 +2516,7 @@ em_utils_construct_composer_text (CamelMimeMessage *message, EMFormat *source) gssize len = 0; gboolean start_bottom = 0; - credits = attribution_format (ATTRIBUTION, message); + credits = attribution_format (message); text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, &len, source, start_bottom ? "<BR>" : NULL, NULL); g_free (credits); diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in index d0222a82e6..4af7680412 100644 --- a/mail/evolution-mail.schemas.in +++ b/mail/evolution-mail.schemas.in @@ -307,6 +307,45 @@ </locale> </schema> + <schema> + <key>/schemas/apps/evolution/mail/composer/message_attribution</key> + <applyto>/apps/evolution/mail/composer/message_attribution</applyto> + <owner>evolution-mail</owner> + <type>string</type> + <default></default> + <locale name="C"> + <short>Attribute message.</short> + <long>The text that is inserted when replying to a message, + attributing the message to the original author.</long> + </locale> + </schema> + + <schema> + <key>/schemas/apps/evolution/mail/composer/message_forward</key> + <applyto>/apps/evolution/mail/composer/message_forward</applyto> + <owner>evolution-mail</owner> + <type>string</type> + <default></default> + <locale name="C"> + <short>Forward message.</short> + <long>The text that is inserted when forwarding a message, + saying that the forwarded message follows.</long> + </locale> + </schema> + + <schema> + <key>/schemas/apps/evolution/mail/composer/message_original</key> + <applyto>/apps/evolution/mail/composer/message_original</applyto> + <owner>evolution-mail</owner> + <type>string</type> + <default></default> + <locale name="C"> + <short>Original message.</short> + <long>The text that is inserted when replying to a message (top + posting), saying that the original message follows.</long> + </locale> + </schema> + <!-- Display Settings --> <schema> |