[balsa] Add translator comments



commit a9215b93820194f7bf7b0e1cbe1eddfeb1105f96
Author: Albrecht Dreß <albrecht dress netcologne de>
Date:   Thu Jul 14 19:17:36 2022 +0200

    Add translator comments
    
    Add comments to several source files to support translators where the
    message and/or context may be unclear (closes #80).
    
    Signed-off-by: Albrecht Dreß <albrecht dress netcologne de>

 libbalsa/autocrypt.c              | 10 ++++++++++
 libbalsa/gmime-gpgme-signature.c  |  2 ++
 libbalsa/html-pref-db.c           |  4 ++++
 libbalsa/libbalsa-gpgme-widgets.c |  4 ++++
 libbalsa/rfc3156.c                |  2 ++
 libnetclient/net-client-smtp.c    |  3 +++
 src/balsa-message.c               |  2 ++
 src/balsa-mime-widget-crypto.c    |  1 +
 src/balsa-mime-widget-vcalendar.c |  2 ++
 src/pref-manager.c                |  3 +++
 10 files changed, 33 insertions(+)
---
diff --git a/libbalsa/autocrypt.c b/libbalsa/autocrypt.c
index c2de604ac..50e5cdc19 100644
--- a/libbalsa/autocrypt.c
+++ b/libbalsa/autocrypt.c
@@ -190,6 +190,7 @@ autocrypt_init(GError **error)
 
                /* error checks... */
                if (sqlite_res != SQLITE_OK) {
+                       /* Translators: #1 database file; #2 error message */
                        g_set_error(error, AUTOCRYPT_ERROR_QUARK, sqlite_res, _("cannot initialise Autocrypt 
database “%s”: %s"), db_path,
                                sqlite3_errmsg(autocrypt_db));
                        autocrypt_close();
@@ -315,6 +316,7 @@ autocrypt_header(LibBalsaIdentity *identity, GError **error)
                }
 
                if (use_fpr == NULL) {
+                       /* Translators: #1 sender's email address */
                        g_set_error(error, AUTOCRYPT_ERROR_QUARK, -1,
                                _("No usable private key for “%s” found! Please create a key or disable 
Autocrypt."), mailbox);
                } else {
@@ -383,6 +385,7 @@ autocrypt_get_key(const gchar *fingerprint, GError **error)
                }
 
                if (sqlite_res != SQLITE_DONE) {
+                       /* Translators: #1 GPG key fingerprint; #2 error message */
                        g_set_error(error, AUTOCRYPT_ERROR_QUARK, sqlite_res, _("error reading Autocrypt data 
for “%s”: %s"), fingerprint,
                                sqlite3_errmsg(autocrypt_db));
                        if (result != NULL) {
@@ -391,6 +394,7 @@ autocrypt_get_key(const gchar *fingerprint, GError **error)
                        }
                }
        } else {
+               /* Translators: #1 GPG key fingerprint; #2 error message */
                g_set_error(error, AUTOCRYPT_ERROR_QUARK, sqlite_res, _("error reading Autocrypt data for 
“%s”: %s"), fingerprint,
                        sqlite3_errmsg(autocrypt_db));
        }
@@ -674,12 +678,14 @@ autocrypt_user_info(const gchar *mailbox, GError **error)
                }
 
                if (sqlite_res != SQLITE_DONE) {
+                       /* Translators: #1 mailbox; #2 error message */
                        g_set_error(error, AUTOCRYPT_ERROR_QUARK, sqlite_res, _("error reading Autocrypt data 
for “%s”: %s"), mailbox,
                                sqlite3_errmsg(autocrypt_db));
                        autocrypt_free(user_info);
                        user_info = NULL;
                }
        } else {
+               /* Translators: #1 mailbox; #2 error message */
                g_set_error(error, AUTOCRYPT_ERROR_QUARK, sqlite_res, _("error reading Autocrypt data for 
“%s”: %s"), mailbox,
                        sqlite3_errmsg(autocrypt_db));
        }
@@ -782,6 +788,7 @@ add_or_update_user_info(GMimeAutocryptHeader *autocrypt_header, const ac_key_dat
                (sqlite3_bind_int64(query[query_idx], 5, ac_key_data->expires) != SQLITE_OK) ||
                (sqlite3_bind_int(query[query_idx], 6, prefer_encrypt) != SQLITE_OK) ||
                (sqlite3_step(query[query_idx]) != SQLITE_DONE)) {
+               /* Translators: #1 email address; #2 error message */
                g_set_error(error, AUTOCRYPT_ERROR_QUARK, -1, update ? _("update user “%s” failed: %s") : 
_("insert user “%s” failed: %s"),
                        addr, sqlite3_errmsg(autocrypt_db));
        } else {
@@ -802,6 +809,7 @@ update_last_seen(GMimeAutocryptHeader *autocrypt_header, GError **error)
        if ((sqlite3_bind_text(query[3], 1, addr, -1, SQLITE_STATIC) != SQLITE_OK) ||
                (sqlite3_bind_int64(query[3], 2, date_header) != SQLITE_OK) ||
                (sqlite3_step(query[3]) != SQLITE_DONE)) {
+               /* Translators: #1 email address; #2 error message */
                g_set_error(error, AUTOCRYPT_ERROR_QUARK, -1, _("update user “%s” failed: %s"), addr, 
sqlite3_errmsg(autocrypt_db));
        } else {
                g_debug("updated last_seen for '%s': %d", addr, sqlite3_changes(autocrypt_db));
@@ -930,6 +938,7 @@ show_key_details_cb(GtkMenuItem G_GNUC_UNUSED *menuitem, gpointer user_data)
                                        dialog = libbalsa_key_dialog(window, GTK_BUTTONS_CLOSE, (gpgme_key_t) 
keys->data, GPG_SUBKEY_CAP_ALL,
                                                NULL, NULL);
                                } else {
+                                       /* Translators: #1 email address */
                                        dialog = gtk_message_dialog_new(window, 
GTK_DIALOG_DESTROY_WITH_PARENT | libbalsa_dialog_flags(),
                                                GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, _("The database entry 
for “%s” does not contain a key."),
                                                        mail_addr);
@@ -967,6 +976,7 @@ remove_key_cb(GtkMenuItem G_GNUC_UNUSED *menuitem, gpointer user_data)
        toplevel = gtk_widget_get_toplevel(GTK_WIDGET(user_data));
        window = GTK_IS_WINDOW(toplevel) ? GTK_WINDOW(toplevel) : NULL;
        gtk_tree_model_get(model, &iter, AC_ADDRESS_COLUMN, &mail_addr, -1);
+               /* Translators: #1 email address */
                dialog = gtk_message_dialog_new(window, GTK_DIALOG_DESTROY_WITH_PARENT | 
libbalsa_dialog_flags(),
                        GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("Delete the Autocrypt key for “%s” from 
the database?"), mail_addr);
                if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_YES) {
diff --git a/libbalsa/gmime-gpgme-signature.c b/libbalsa/gmime-gpgme-signature.c
index 8945ababa..4e703c98c 100644
--- a/libbalsa/gmime-gpgme-signature.c
+++ b/libbalsa/gmime-gpgme-signature.c
@@ -163,10 +163,12 @@ g_mime_gpgme_sigstat_info(GMimeGpgmeSigstat *info,
     }
     status_str = libbalsa_gpgme_sig_stat_to_gchar(info->status);
     if (signer_str != NULL) {
+               /* Translators: #1 signature crypto protocol; #2 signer; #3 status message */
        res_msg = g_strdup_printf(_("%s signature of “%s”: %s"), libbalsa_gpgme_protocol_name(info->protocol),
                        signer_str, status_str);
        g_free(signer_str);
     } else {
+               /* Translators: #1 signature crypto protocol; #2 status message */
        res_msg = g_strdup_printf(_("%s signature: %s"), libbalsa_gpgme_protocol_name(info->protocol), 
status_str);
     }
     g_free(status_str);
diff --git a/libbalsa/html-pref-db.c b/libbalsa/html-pref-db.c
index 7e0bbbee4..936a4b91e 100644
--- a/libbalsa/html-pref-db.c
+++ b/libbalsa/html-pref-db.c
@@ -267,6 +267,7 @@ pref_db_check(void)
 
                /* error checks... */
                if (sqlite_res != SQLITE_OK) {
+                       /* Translators: #1 database path; #2 error message */
                        libbalsa_information(LIBBALSA_INFORMATION_ERROR, _("Cannot initialise HTML 
preferences database “%s”: %s"), db_path,
                                sqlite3_errmsg(pref_db));
                        html_pref_db_close();
@@ -313,6 +314,7 @@ pref_db_get(InternetAddressList *from, int col)
                                                sqlite_res = sqlite3_step(query[0]);
                                        }
                                        if (sqlite_res != SQLITE_DONE) {
+                                               /* Translators: #1 message sender address; #2 error message */
                                                libbalsa_information(LIBBALSA_INFORMATION_ERROR, _("Cannot 
read HTML preferences for “%s”: %s"), sender,
                                                        sqlite3_errmsg(pref_db));
                                                result = FALSE;
@@ -366,6 +368,7 @@ pref_db_set_name(const gchar *sender, int pref_idx, gboolean value)
                if ((sqlite3_bind_text(query[pref_idx], 1, sender, -1, SQLITE_STATIC) != SQLITE_OK) ||
                        (sqlite3_bind_int(query[pref_idx], 2, value) != SQLITE_OK) ||
                        (sqlite3_step(query[pref_idx]) != SQLITE_DONE)) {
+                       /* Translators: #1 message sender address; #2 error message */
                        libbalsa_information(LIBBALSA_INFORMATION_ERROR, _("Cannot save HTML preferences for 
“%s”: %s"), sender,
                                sqlite3_errmsg(pref_db));
                } else {
@@ -474,6 +477,7 @@ remove_item_cb(GtkMenuItem G_GNUC_UNUSED *menuitem, gpointer user_data)
                gtk_tree_model_get(model, &iter, PREFS_ADDRESS_COLUMN, &addr, -1);
                if ((sqlite3_bind_text(query[3], 1, addr, -1, SQLITE_STATIC) != SQLITE_OK) ||
                        (sqlite3_step(query[3]) != SQLITE_DONE)) {
+                       /* Translators: #1 error message */
                        libbalsa_information(LIBBALSA_INFORMATION_ERROR, _("Cannot delete database entry: 
%s"), sqlite3_errmsg(pref_db));
                }
                gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
diff --git a/libbalsa/libbalsa-gpgme-widgets.c b/libbalsa/libbalsa-gpgme-widgets.c
index 386868d6d..fc898c267 100644
--- a/libbalsa/libbalsa-gpgme-widgets.c
+++ b/libbalsa/libbalsa-gpgme-widgets.c
@@ -165,6 +165,7 @@ libbalsa_gpgme_key(const gpgme_key_t     key,
                        GtkWidget *chain_btn;
                        gchar *chain_fpr;
 
+                       /* Translators: x509 certificate chain ID */
                        issuer_row = create_key_grid_row(GTK_GRID(issuer_grid), issuer_row, _("Chain ID:"), 
key->chain_id, FALSE);
 
                        /* add button to show the full chain - copy the fingerprint as the key may be 
unref'ed... */
@@ -197,6 +198,7 @@ libbalsa_gpgme_key(const gpgme_key_t     key,
                        /* indicate that we show only subkeys with certain capabilities */
                        capa_str = create_purpose_str((subkey_capa & GPG_SUBKEY_CAP_SIGN) != 0U, (subkey_capa 
& GPG_SUBKEY_CAP_ENCRYPT) != 0U,
                                (subkey_capa & GPG_SUBKEY_CAP_CERTIFY) != 0U, (subkey_capa & 
GPG_SUBKEY_CAP_AUTH) != 0U);
+                       /* Translators: #1 subkey capabilities string */
                        label_str = g_strdup_printf(_("Subkeys (%s only)"), capa_str);
                        subkey_expander = gtk_expander_new(label_str);
                        g_free(label_str);
@@ -303,6 +305,7 @@ libbalsa_gpgme_key_to_gchar(gpgme_key_t  key,
                        g_string_append_printf(result, "\n" BULLET_STR "%s %s", _("Serial number:"), 
key->issuer_serial);
                }
                if (key->chain_id != NULL) {
+                       /* Translators: x509 certificate chain ID */
                        g_string_append_printf(result, "\n" BULLET_STR "%s %s", _("Chain ID:"), 
key->chain_id);
                }
        }
@@ -737,6 +740,7 @@ create_subkey_type_str(gpgme_subkey_t subkey)
                g_string_append_printf(type_str, " %s", algo);
        }
        if (subkey->curve != NULL) {
+               /* Translators: Elliptic Curve Cryptography (ECC) curve name */
                g_string_append_printf(type_str, _(" curve “%s”"), subkey->curve);
        }
 
diff --git a/libbalsa/rfc3156.c b/libbalsa/rfc3156.c
index 63a0febfd..821a07e91 100644
--- a/libbalsa/rfc3156.c
+++ b/libbalsa/rfc3156.c
@@ -553,8 +553,10 @@ libbalsa_gpgme_sig_stat_to_gchar(gpgme_error_t stat)
 
                gpgme_strerror_r(stat, errbuf, sizeof(errbuf));
                if (gpgme_err_source(stat) != GPG_ERR_SOURCE_UNKNOWN) {
+                       /* Translators: #1 error source; #2 error message */
                        return g_strdup_printf(_("An error prevented the signature verification: %s: %s"), 
gpgme_strsource(stat), errbuf);
                } else {
+                       /* Translators: #1 error message */
                        return g_strdup_printf(_("An error prevented the signature verification: %s"), 
errbuf);
                }
        }
diff --git a/libnetclient/net-client-smtp.c b/libnetclient/net-client-smtp.c
index 48b45838d..830a7d59c 100644
--- a/libnetclient/net-client-smtp.c
+++ b/libnetclient/net-client-smtp.c
@@ -695,6 +695,7 @@ net_client_smtp_eval_rescode(gint res_code, const gchar *reply, GError **error)
                result = TRUE;
                break;
        case 4:
+               /* Translators: #1 SMTP (RFC 5321) error code; #2 error message */
                g_set_error(error, NET_CLIENT_SMTP_ERROR_QUARK, (gint) NET_CLIENT_ERROR_SMTP_TRANSIENT,
                        _("transient error %d: %s"), res_code, reply);
                result = FALSE;
@@ -702,9 +703,11 @@ net_client_smtp_eval_rescode(gint res_code, const gchar *reply, GError **error)
        case 5:
                if ((res_code == 534) || (res_code == 535)) {
                        g_set_error(error, NET_CLIENT_SMTP_ERROR_QUARK, (gint) NET_CLIENT_ERROR_SMTP_AUTHFAIL,
+                               /* Translators: #1 SMTP (RFC 5321) error code; #2 error message */
                                _("authentication failure %d: %s"), res_code, reply);
                } else {
                        g_set_error(error, NET_CLIENT_SMTP_ERROR_QUARK, (gint) 
NET_CLIENT_ERROR_SMTP_PERMANENT,
+                               /* Translators: #1 SMTP (RFC 5321) error code; #2 error message */
                                _("permanent error %d: %s"), res_code, reply);
                }
                result = FALSE;
diff --git a/src/balsa-message.c b/src/balsa-message.c
index fe31a2f7c..40a24375a 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -973,6 +973,7 @@ tree_mult_selection_popup(BalsaMessage     *balsa_message,
                           G_CALLBACK (part_context_dump_all_cb),
                           (gpointer) balsa_message->save_all_list);
         gtk_menu_shell_append (GTK_MENU_SHELL (balsa_message->save_all_popup), menu_item);
+        /* Translators: save all items to folder and open the folder in standard file manager app */
         add_save_view_menu_item(balsa_message->save_all_popup, _("Save selected to folder and browse…"),
                G_CALLBACK(part_context_dump_all_cb), balsa_message->save_all_list);
         gtk_widget_show_all(balsa_message->save_all_popup);
@@ -1678,6 +1679,7 @@ part_create_menu (BalsaPartInfo* info)
                                   info->body);
         gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu);
     } else {
+       /* Translators: save to folder and open the folder in standard file manager app */
        add_save_view_menu_item(info->popup_menu, _("Save and open folder…"),
                G_CALLBACK(balsa_mime_widget_ctx_menu_save), info->body);
     }
diff --git a/src/balsa-mime-widget-crypto.c b/src/balsa-mime-widget-crypto.c
index 0250abb66..b3c11567e 100644
--- a/src/balsa-mime-widget-crypto.c
+++ b/src/balsa-mime-widget-crypto.c
@@ -305,6 +305,7 @@ on_key_import_button(GtkButton *button,
        }
 
        if (success) {
+               /* Translators: successful import of a GnuPG key; #1: backend message */
                dialog = gtk_message_dialog_new(GTK_WINDOW(balsa_app.main_window),
                        GTK_DIALOG_DESTROY_WITH_PARENT | libbalsa_dialog_flags(),
                        GTK_MESSAGE_INFO,
diff --git a/src/balsa-mime-widget-vcalendar.c b/src/balsa-mime-widget-vcalendar.c
index 2e8201bd0..9b0be63f9 100644
--- a/src/balsa-mime-widget-vcalendar.c
+++ b/src/balsa-mime-widget-vcalendar.c
@@ -63,6 +63,7 @@ balsa_mime_widget_new_vcalendar(BalsaMessage * bm,
 
     mw = g_object_new(BALSA_TYPE_MIME_WIDGET, NULL);
 
+       /* Translators: #1 calendar message type */
     text = g_strdup_printf(_("This is an iTIP calendar “%s” message."),
                           libbalsa_vcal_method_str(vcal_obj));
     markup_buf = g_markup_printf_escaped("<b>%s</b>", text);
@@ -371,6 +372,7 @@ vevent_reply(GObject * button, GtkWidget * box)
     body->charset = g_strdup("utf-8");
     body->content_type = NULL;
     textbuf = g_string_new(NULL);
+       /* Translators: #1 message sender display name; #2 sender's event action (e.g. "accepted", 
"rejected", ...) */
     g_string_append_printf(textbuf, _("%s %s the following iTIP calendar request:\n\n"),
        internet_address_get_name(ia), libbalsa_vcal_part_stat_to_str(pstat));
     BUFFER_APPEND(textbuf, _("Summary:"), libbalsa_vevent_summary(event));
diff --git a/src/pref-manager.c b/src/pref-manager.c
index 1ca43cc4c..d48fe8b1a 100644
--- a/src/pref-manager.c
+++ b/src/pref-manager.c
@@ -942,6 +942,7 @@ update_address_books(void)
             type = _("Unknown");
 
         if (address_book == balsa_app.default_address_book) {
+            /* Translators: #1 address book name */
             name = g_strdup_printf(_("%s (default)"), libbalsa_address_book_get_name(address_book));
         } else {
             name = g_strdup(libbalsa_address_book_get_name(address_book));
@@ -2553,6 +2554,8 @@ pm_grid_add_alternative_group(GtkWidget * grid_widget)
        pm_grid_attach_check(grid, 1, ++row, 1, 1, _("Prefer text/plain over HTML"));
 
 #ifdef HAVE_HTML_WIDGET
+    /* Translators: per-sender database of exceptions over global HTTP
+     * preferences (display HTML vs. plain, auto-load external items) */
     button = gtk_button_new_with_label(_("Manage exceptions…"));
     g_signal_connect_swapped(button, "clicked",
         G_CALLBACK(libbalsa_html_pref_dialog_run), property_box);


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