[gnome-disk-utility] string/i18n fixups



commit 09f7ee5020982c7e10918e3257b0ed0205f45dcb
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Mar 26 15:23:24 2009 -0400

    string/i18n fixups
    
    Here is a patch that changes many of the localized strings. There's a lot of
    change here, but the bulk of it is
    
    - remove markup from translations
    
    - add context to some short strings that may otherwise be hard to translate or
    clash
    
    - don't mark "-" for translation (if you really want to, you need to add
    context, but I don't think it makes sense)
    
    - fix plural handling in one place
    
    - mark some forgotten strings for translation
    
    http://bugzilla.gnome.org/show_bug.cgi?id=576423
    
    Signed-off-by: David Zeuthen <davidz redhat com>
---
 po/POTFILES.in                                     |   41 ++++-
 src/gdu-gtk/gdu-gtk.c                              |   72 +++++---
 src/palimpsest/gdu-main.c                          |   10 +-
 .../gdu-section-create-partition-table.c           |    8 +-
 src/palimpsest/gdu-section-encrypted.c             |    5 +-
 src/palimpsest/gdu-section-filesystem.c            |    5 +-
 src/palimpsest/gdu-section-health.c                |  195 +++++++++++++-------
 src/palimpsest/gdu-section-linux-md-drive.c        |  112 ++++++++----
 src/palimpsest/gdu-section-no-media.c              |    5 +-
 src/palimpsest/gdu-section-partition.c             |    7 +-
 src/palimpsest/gdu-section-swapspace.c             |    5 +-
 src/palimpsest/gdu-section-unallocated.c           |   24 ++-
 src/palimpsest/gdu-section-unrecognized.c          |    7 +-
 src/palimpsest/gdu-shell.c                         |   39 ++--
 14 files changed, 357 insertions(+), 178 deletions(-)

diff --git a/po/POTFILES.in b/po/POTFILES.in
index 36ba691..58d5333 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,34 +2,69 @@
 # List of source files containing translatable strings.
 # Please keep this file sorted alphabetically.
 data/palimpsest.desktop.in
+src/gdu/gdu-ata-smart-attribute.c
+src/gdu/gdu-ata-smart-attribute.h
+src/gdu/gdu-ata-smart-historical-data.c
+src/gdu/gdu-ata-smart-historical-data.h
+src/gdu/gdu-callbacks.h
 src/gdu/gdu-device.c
+src/gdu/gdu-device.h
 src/gdu/gdu-drive.c
+src/gdu/gdu-drive.h
 src/gdu/gdu-error.c
+src/gdu/gdu-error.h
+src/gdu/gdu.h
 src/gdu/gdu-known-filesystem.c
+src/gdu/gdu-known-filesystem.h
 src/gdu/gdu-linux-md-drive.c
+src/gdu/gdu-linux-md-drive.h
 src/gdu/gdu-marshal.c
+src/gdu/gdu-marshal.h
 src/gdu/gdu-pool.c
+src/gdu/gdu-pool.h
 src/gdu/gdu-presentable.c
+src/gdu/gdu-presentable.h
+src/gdu/gdu-private.h
 src/gdu/gdu-process.c
-src/gdu/gdu-smart-data-attribute.c
-src/gdu/gdu-smart-data.c
+src/gdu/gdu-process.h
+src/gdu/gdu-types.h
 src/gdu/gdu-util.c
+src/gdu/gdu-util.h
 src/gdu/gdu-volume.c
+src/gdu/gdu-volume.h
 src/gdu/gdu-volume-hole.c
+src/gdu/gdu-volume-hole.h
 src/gdu-gtk/gdu-gtk.c
+src/gdu-gtk/gdu-gtk.h
+src/gdu-gtk/gdu-gtk-types.h
+src/gdu-gtk/gdu-time-label.c
+src/gdu-gtk/gdu-time-label.h
 src/palimpsest/gdu-main.c
 src/palimpsest/gdu-section.c
 src/palimpsest/gdu-section-create-partition-table.c
+src/palimpsest/gdu-section-create-partition-table.h
 src/palimpsest/gdu-section-encrypted.c
+src/palimpsest/gdu-section-encrypted.h
 src/palimpsest/gdu-section-filesystem.c
+src/palimpsest/gdu-section-filesystem.h
+src/palimpsest/gdu-section.h
 src/palimpsest/gdu-section-health.c
+src/palimpsest/gdu-section-health.h
 src/palimpsest/gdu-section-job.c
+src/palimpsest/gdu-section-job.h
 src/palimpsest/gdu-section-linux-md-drive.c
+src/palimpsest/gdu-section-linux-md-drive.h
 src/palimpsest/gdu-section-no-media.c
+src/palimpsest/gdu-section-no-media.h
 src/palimpsest/gdu-section-partition.c
+src/palimpsest/gdu-section-partition.h
 src/palimpsest/gdu-section-swapspace.c
+src/palimpsest/gdu-section-swapspace.h
 src/palimpsest/gdu-section-unallocated.c
+src/palimpsest/gdu-section-unallocated.h
 src/palimpsest/gdu-section-unrecognized.c
+src/palimpsest/gdu-section-unrecognized.h
 src/palimpsest/gdu-shell.c
-src/palimpsest/gdu-time-label.c
+src/palimpsest/gdu-shell.h
 src/palimpsest/gdu-tree.c
+src/palimpsest/gdu-tree.h
diff --git a/src/gdu-gtk/gdu-gtk.c b/src/gdu-gtk/gdu-gtk.c
index 66a214c..235948f 100644
--- a/src/gdu-gtk/gdu-gtk.c
+++ b/src/gdu-gtk/gdu-gtk.c
@@ -116,6 +116,7 @@ show_busy_get_list_store (ShowBusyData *data, int *num_rows)
         GList *processes;
         GError *error;
         GList *l;
+        gchar *s;
 
         if (num_rows != NULL)
                 *num_rows = 0;
@@ -224,19 +225,20 @@ show_busy_get_list_store (ShowBusyData *data, int *num_rows)
                 }
 
                 if (gdu_process_get_owner (process) != getuid ()) {
-                        markup = g_strdup_printf (_("<b>%s</b>\n"
-                                                    "<small>uid %d, pid %d: %s</small>"),
-                                                  name,
-                                                  gdu_process_get_owner (process),
-                                                  gdu_process_get_id (process),
-                                                  gdu_process_get_command_line (process));
+                        s = g_strdup_printf (_("uid: %d  pid: %d  program: %s"),
+                                             gdu_process_get_owner (process),
+                                             gdu_process_get_id (process),
+                                             gdu_process_get_command_line (process));
                 } else {
-                        markup = g_strdup_printf (_("<b>%s</b>\n"
-                                                    "<small>pid %d: %s</small>"),
-                                                  name,
-                                                  gdu_process_get_id (process),
-                                                  gdu_process_get_command_line (process));
+                        s = g_strdup_printf (_("pid: %d  program: %s"),
+                                             gdu_process_get_id (process),
+                                             gdu_process_get_command_line (process));
                 }
+                markup = g_strdup_printf ("<b>%s</b>\n"
+                                          "<small>%s</small>",
+                                          name,
+                                          s);
+                g_free (s);
 
                 gtk_list_store_append (store, &iter);
                 gtk_list_store_set (store, &iter,
@@ -300,6 +302,7 @@ gdu_util_dialog_show_filesystem_busy (GtkWidget *parent_window,
         GdkPixbuf *pixbuf;
         ShowBusyData *data;
         guint refresh_timer_id;
+        char *text;
 
         ret = FALSE;
         window_title = NULL;
@@ -360,8 +363,11 @@ gdu_util_dialog_show_filesystem_busy (GtkWidget *parent_window,
 
         /* main message */
 	label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label),
-                              _("<b><big>Cannot unmount volume</big></b>"));
+
+        text = g_strconcat ("<b><big>", _("Cannot unmount volume"), "</big></b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), text);
+        g_free (text);
+
 	gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
 	gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
@@ -466,7 +472,8 @@ typedef struct
 static void
 gdu_util_dialog_secret_update (DialogSecretData *data)
 {
-        const char *current, *new, *verify;
+        const gchar *current, *new, *verify;
+        gchar *s;
 
         if (data->password_entry != NULL)
                 current = gtk_entry_get_text (GTK_ENTRY (data->password_entry));
@@ -477,16 +484,22 @@ gdu_util_dialog_secret_update (DialogSecretData *data)
 
         if (g_strcmp0 (new, verify) != 0) {
                 gtk_widget_show (data->warning_hbox);
-                gtk_label_set_markup (GTK_LABEL (data->warning_label), "<i>Passphrases do not match</i>");
+                s = g_strconcat ("<i>", _("Passphrases do not match"), "</i>", NULL);
+                gtk_label_set_markup (GTK_LABEL (data->warning_label), s);
+                g_free (s);
                 gtk_widget_set_sensitive (data->button, FALSE);
         } else if (!data->is_new_password &&
                    (g_strcmp0 (current, "") != 0 || g_strcmp0 (new, "") != 0) && g_strcmp0 (current, new) == 0) {
                 gtk_widget_show (data->warning_hbox);
-                gtk_label_set_markup (GTK_LABEL (data->warning_label), "<i>Passphrases do not differ</i>");
+                s = g_strconcat ("<i>", _("Passphrases do not differ"), "</i>", NULL);
+                gtk_label_set_markup (GTK_LABEL (data->warning_label), s);
+                g_free (s);
                 gtk_widget_set_sensitive (data->button, FALSE);
         } else if (g_strcmp0 (new, "") == 0) {
                 gtk_widget_show (data->warning_hbox);
-                gtk_label_set_markup (GTK_LABEL (data->warning_label), "<i>Passphrase can't be empty</i>");
+                s = g_strconcat ("<i>", _("Passphrase can't be empty"), "</i>", NULL);
+                gtk_label_set_markup (GTK_LABEL (data->warning_label), s);
+                g_free (s);
                 gtk_widget_set_sensitive (data->button, FALSE);
         } else {
                 gtk_widget_hide (data->warning_hbox);
@@ -536,6 +549,7 @@ gdu_util_dialog_secret_internal (GtkWidget   *parent_window,
         GtkWidget *session_radio_button;
         GtkWidget *always_radio_button;
         DialogSecretData *data;
+        char *text;
 
         g_return_val_if_fail (parent_window == NULL || GTK_IS_WINDOW (parent_window), NULL);
 
@@ -587,18 +601,18 @@ gdu_util_dialog_secret_internal (GtkWidget   *parent_window,
 	/* main message */
 	label = gtk_label_new (NULL);
         if (is_new_password) {
-                gtk_label_set_markup (GTK_LABEL (label),
-                                      _("<b><big>To create an encrypted device, choose a passphrase "
-                                        "to protect it</big></b>"));
+                text = _("To create an encrypted device, choose a passphrase "
+                         "to protect it");
         } else if (is_change_password) {
-                gtk_label_set_markup (GTK_LABEL (label),
-                                      _("<b><big>To change the passphrase, enter both the current and "
-                                        "new passphrase</big></b>"));
+                text = _("To change the passphrase, enter both the current and "
+                         "new passphrase");
         } else {
-                gtk_label_set_markup (GTK_LABEL (label),
-                                      _("<b><big>Data on this device is stored in an encrypted form "
-                                        "protected by a passphrase</big></b>"));
+                text = _("Data on this device is stored in an encrypted form "
+                         "protected by a passphrase");
         }
+        text = g_strconcat ("<b><big>", text, "</big></b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), text);
+        g_free (text);
 	gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
 	gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
@@ -621,7 +635,9 @@ gdu_util_dialog_secret_internal (GtkWidget   *parent_window,
 
         if (indicate_wrong_passphrase) {
                 label = gtk_label_new (NULL);
-                gtk_label_set_markup (GTK_LABEL (label), _("<b>Incorrect Passphrase. Try again.</b>"));
+                text = g_strconcat ("<b>", _("Incorrect Passphrase. Try again."), "</b>", NULL);
+                gtk_label_set_markup (GTK_LABEL (label), text);
+                g_free (text);
                 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
                 gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
                 gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
@@ -1285,7 +1301,7 @@ gdu_util_fstype_combo_box_create_store (GduPool *pool, const char *include_exten
                 gtk_list_store_append (store, &iter);
                 gtk_list_store_set (store, &iter,
                                     0, "msdos_extended_partition",
-                                    1, "Extended Partition",
+                                    1, _("Extended Partition"),
                                     -1);
         }
 
diff --git a/src/palimpsest/gdu-main.c b/src/palimpsest/gdu-main.c
index 676e72d..a1dfe15 100644
--- a/src/palimpsest/gdu-main.c
+++ b/src/palimpsest/gdu-main.c
@@ -36,11 +36,11 @@ show_nag_dialog (GtkWidget *toplevel)
 
         ret = TRUE;
 
-        dialog = gtk_message_dialog_new_with_markup (GTK_WINDOW (toplevel),
-                                                     GTK_DIALOG_MODAL,
-                                                     GTK_MESSAGE_WARNING,
-                                                     GTK_BUTTONS_OK,
-                                                     _("<b><big>WARNING WARNING WARNING</big></b>"));
+        dialog = gtk_message_dialog_new (GTK_WINDOW (toplevel),
+                                         GTK_DIALOG_MODAL,
+                                         GTK_MESSAGE_WARNING,
+                                         GTK_BUTTONS_OK,
+                                         _("WARNING WARNING WARNING"));
         gtk_message_dialog_format_secondary_markup (GTK_MESSAGE_DIALOG (dialog),
                                                     _("The Palimpsest Disk Utility is still under development and "
                                                       "may still have bugs that can lead to data loss.\n"
diff --git a/src/palimpsest/gdu-section-create-partition-table.c b/src/palimpsest/gdu-section-create-partition-table.c
index 932a5a8..0127f3d 100644
--- a/src/palimpsest/gdu-section-create-partition-table.c
+++ b/src/palimpsest/gdu-section-create-partition-table.c
@@ -87,7 +87,7 @@ create_part_table_callback (GtkAction *action, gpointer user_data)
 
         drive_name = gdu_presentable_get_name (gdu_section_get_presentable (GDU_SECTION (section)));
 
-        primary = g_strdup (_("<b><big>Are you sure you want to format the disk, deleting existing data?</big></b>"));
+        primary = g_strconcat ("<b><big>", _("Are you sure you want to format the disk, deleting existing data ?"), "</big></b>", NULL);
 
         if (gdu_device_is_removable (device)) {
                 secondary = g_strdup_printf (_("All data on the media in \"%s\" will be irrecovably erased. "
@@ -192,7 +192,7 @@ gdu_section_create_partition_table_init (GduSectionCreatePartitionTable *section
         GtkWidget *combo_box;
         GtkWidget *button;
         GtkWidget *button_box;
-
+        char *text;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_CREATE_PARTITION_TABLE, GduSectionCreatePartitionTablePrivate);
 
@@ -219,7 +219,9 @@ gdu_section_create_partition_table_init (GduSectionCreatePartitionTable *section
 
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Create Partition Table</b>"));
+        text = g_strdup_printf ("<b>%s</b>", _("Create Partition Table"));
+        gtk_label_set_markup (GTK_LABEL (label), text);
+        g_free (text);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-encrypted.c b/src/palimpsest/gdu-section-encrypted.c
index 764d7d0..1399b75 100644
--- a/src/palimpsest/gdu-section-encrypted.c
+++ b/src/palimpsest/gdu-section-encrypted.c
@@ -232,11 +232,14 @@ gdu_section_encrypted_init (GduSectionEncrypted *section)
         GtkWidget *label;
         GtkWidget *align;
         GtkWidget *button_box;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_ENCRYPTED, GduSectionEncryptedPrivate);
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Encryption</b>"));
+        s = g_strconcat ("<b>", _("Encryption"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-filesystem.c b/src/palimpsest/gdu-section-filesystem.c
index f15fb22..111e6a2 100644
--- a/src/palimpsest/gdu-section-filesystem.c
+++ b/src/palimpsest/gdu-section-filesystem.c
@@ -210,6 +210,7 @@ gdu_section_filesystem_init (GduSectionFilesystem *section)
         GtkWidget *table;
         GtkWidget *entry;
         int row;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_FILESYSTEM, GduSectionFilesystemPrivate);
 
@@ -236,7 +237,9 @@ gdu_section_filesystem_init (GduSectionFilesystem *section)
         section->priv->modify_fs_vbox = vbox3;
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Mountable Filesystem</b>"));
+        s = g_strconcat ("<b>", _("Mountable Filesystem"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (vbox3), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-health.c b/src/palimpsest/gdu-section-health.c
index f84aafc..9c9b280 100644
--- a/src/palimpsest/gdu-section-health.c
+++ b/src/palimpsest/gdu-section-health.c
@@ -78,7 +78,9 @@ pretty_to_string (guint64 pretty_value, GduAtaSmartAttributeUnit pretty_unit)
                 break;
 
         case GDU_ATA_SMART_ATTRIBUTE_UNIT_SECTORS:
-                ret = g_strdup_printf (_("%" G_GUINT64_FORMAT " Sectors"), pretty_value);
+                ret = g_strdup_printf (ngettext ("%d Sector",
+                                                 "%d Sectors", (unsigned long int) pretty_value),
+                                       (int) pretty_value);
                 break;
 
         case GDU_ATA_SMART_ATTRIBUTE_UNIT_MKELVIN:
@@ -102,14 +104,18 @@ pretty_to_string (guint64 pretty_value, GduAtaSmartAttributeUnit pretty_unit)
 static void
 smart_data_set_pending (GduSectionHealth *section)
 {
+        char *s;
+
         gtk_image_set_from_icon_name (GTK_IMAGE (section->priv->health_status_image),
                                       "gdu-smart-unknown",
                                       GTK_ICON_SIZE_MENU);
-        gtk_label_set_markup (GTK_LABEL (section->priv->health_status_label), _("<i>Retrieving...</i>"));
+        s = g_strconcat ("<i>", _("Retrieving..."), "</i>", NULL);
+        gtk_label_set_markup (GTK_LABEL (section->priv->health_status_label), s);
+        g_free (s);
         gtk_label_set_text (GTK_LABEL (section->priv->health_power_on_hours_label), _("-"));
         gtk_label_set_text (GTK_LABEL (section->priv->health_temperature_label), _("-"));
-        gtk_label_set_text (GTK_LABEL (section->priv->health_updated_label), _("-"));
-        gtk_label_set_markup (GTK_LABEL (section->priv->health_last_self_test_result_label), _("-"));
+        gtk_label_set_text (GTK_LABEL (section->priv->health_updated_label), "-");
+        gtk_label_set_markup (GTK_LABEL (section->priv->health_last_self_test_result_label), "-");
 
         polkit_gnome_action_set_sensitive (section->priv->health_refresh_action, FALSE);
         polkit_gnome_action_set_sensitive (section->priv->health_details_action, FALSE);
@@ -120,10 +126,14 @@ smart_data_set_pending (GduSectionHealth *section)
 static void
 smart_data_set_not_supported (GduSectionHealth *section)
 {
+        gchar *s;
+
         gtk_image_set_from_icon_name (GTK_IMAGE (section->priv->health_status_image),
                                       "gdu-smart-unknown",
                                       GTK_ICON_SIZE_MENU);
-        gtk_label_set_markup (GTK_LABEL (section->priv->health_status_label), _("<i>ATA SMART Not Supported</i>"));
+        s = g_strconcat ("<i>", _("ATA SMART not Supported"), "</i>", NULL);
+        gtk_label_set_markup (GTK_LABEL (section->priv->health_status_label), s);
+        g_free (s);
         gtk_label_set_text (GTK_LABEL (section->priv->health_power_on_hours_label), _("-"));
         gtk_label_set_text (GTK_LABEL (section->priv->health_temperature_label), _("-"));
         gtk_label_set_text (GTK_LABEL (section->priv->health_updated_label), _("-"));
@@ -161,8 +171,8 @@ smart_data_set (GduSectionHealth *section)
         guint64 power_on_msec;
         GduDevice *device;
         GTimeVal updated;
-        const gchar *text;
-        const gchar *explanation;
+        gchar *text;
+        gchar *explanation;
         const gchar *icon_name;
         gboolean is_failing;
         gboolean is_failing_valid;
@@ -170,6 +180,9 @@ smart_data_set (GduSectionHealth *section)
         gboolean has_bad_attributes;
         GduAtaSmartSelfTestExecutionStatus self_test_status;
 
+        text = NULL;
+        explanation = NULL;
+
         device = gdu_presentable_get_device (gdu_section_get_presentable (GDU_SECTION (section)));
         if (device == NULL) {
                 g_warning ("%s: device is not supposed to be NULL", __FUNCTION__);
@@ -202,44 +215,51 @@ smart_data_set (GduSectionHealth *section)
                 if (!is_failing) {
                         if (has_bad_sectors) {
                                 icon_name = "gdu-smart-threshold";
-                                text = _("Passed");
-                                explanation = _("<small><i>"
-                                                "The disk has bad sectors."
-                                                "</i></small>");
+                                text = g_strdup (C_("ATA SMART status", "Passed"));
+                                explanation = g_strconcat ("<small><i>",
+                                                           _("The disk has bad sectors."),
+                                                           "</i></small>",
+                                                           NULL);
                         } else if (has_bad_attributes) {
                                 icon_name = "gdu-smart-threshold";
-                                text = _("Passed");
-                                explanation = _("<small><i>"
-                                                "One or more attributes exceeding threshold."
-                                                "</i></small>");
+                                text = g_strdup (C_("ATA SMART status", "Passed"));
+                                explanation = g_strconcat ("<small><i>",
+                                                           _("One or more attributes exceeding threshold."),
+                                                           "</i></small>",
+                                                           NULL);
                         } else {
                                 icon_name = "gdu-smart-healthy";
-                                text = _("Passed");
+                                text = g_strdup (C_("ATA SMART status", "Passed"));
                         }
                 } else {
                         icon_name = "gdu-smart-failing";
-                        text = _("<span foreground='red'><b>FAILING</b></span>");
-                        explanation = _("<small><i>"
-                                        "Drive failure expected in less than 24 hours. "
-                                        "Save all data immediately."
-                                        "</i></small>");
+                        text = g_strconcat ("<span foreground='red'><b>",
+                                            C_("ATA SMART status", "FAILING"),
+                                            "</b></span>",
+                                            NULL);
+                        explanation = g_strconcat ("<small><i>",
+                                                   _("Drive failure expected in less than 24 hours. Save all data immediately."),
+                                                   "</i></small>",
+                                                   NULL);
                 }
         } else {
                 if (has_bad_sectors) {
                         icon_name = "gdu-smart-threshold";
-                        text = _("Unknown");
-                        explanation = _("<small><i>"
-                                        "The disk has bad sectors."
-                                        "</i></small>");
+                        text = g_strdup (C_("ATA SMART status", "Unknown"));
+                        explanation = g_strconcat ("<small><i>",
+                                                   _("The disk has bad sectors."),
+                                                   "</i></small>",
+                                                   NULL);
                 } else if (has_bad_attributes) {
                         icon_name = "gdu-smart-threshold";
-                        text = _("Unknown");
-                        explanation = _("<small><i>"
-                                        "One or more attributes exceeding threshold."
-                                        "</i></small>");
+                        text = g_strdup (C_("ATA SMART status", "Unknown"));
+                        explanation = g_strconcat ("<small><i>",
+                                                   _("One or more attributes exceeding threshold."),
+                                                   "</i></small>",
+                                                   NULL);
                 } else {
                         icon_name = "gdu-smart-unknown";
-                        text = _("Unknown");
+                        text = g_strdup (C_("ATA SMART status", "Unknown"));
                 }
         }
 
@@ -276,41 +296,60 @@ smart_data_set (GduSectionHealth *section)
 
         switch (self_test_status) {
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_SUCCESS_OR_NEVER:
-                s = _("Completed OK");
+                s = g_strdup (C_("ATA SMART test result", "Completed OK"));
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ABORTED:
-                s = _("Cancelled");
+                s = g_strdup (C_("ATA SMART test result", "Cancelled"));
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_INTERRUPTED:
-                s = _("Cancelled (with hard or soft reset)");
+                s = g_strdup (C_("ATA SMART test result", "Cancelled (with hard or soft reset)"));
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_FATAL:
-                s = _("Not completed (a fatal error might have occured)");
+                s = g_strdup (C_("ATA SMART test result", "Not completed (a fatal error might have occured)"));
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_ELECTRICAL:
-                s = _("<span foreground='red'><b>FAILED</b></span> (Electrical)");
+                s = g_strconcat ("<span foreground='red'><b>",
+                                 C_("ATA SMART test result", "FAILED"),
+                                 "</b></span> ",
+                                 C_("ATA SMART test result", "(Electrical)"),
+                                 NULL);
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_SERVO:
-                s = _("<span foreground='red'><b>FAILED</b></span> (Servo)");
+                s = g_strconcat ("<span foreground='red'><b>",
+                                 C_("ATA SMART test result", "FAILED"),
+                                 "</b></span> ",
+                                 C_("ATA SMART test result", "(Servo)"),
+                                 NULL);
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_READ:
-                s = _("<span foreground='red'><b>FAILED</b></span> (Read)");
+                s = g_strconcat ("<span foreground='red'><b>",
+                                 C_("ATA SMART test result", "FAILED"),
+                                 "</b></span> ",
+                                 C_("ATA SMART test result", "(Read)"),
+                                 NULL);
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_HANDLING:
-                s = _("<span foreground='red'><b>FAILED</b></span> (Suspected of having handled damage");
+                s = g_strconcat ("<span foreground='red'><b>",
+                                 C_("ATA SMART test result", "FAILED"),
+                                 "</b></span> ",
+                                 C_("ATA SMART test result", "(Suspected of having handled damage)"),
+                                 NULL);
                 break;
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_INPROGRESS:
-                s = _("In progress");
+                s = g_strdup (C_("ATA SMART test result", "In progress"));
                 break;
 
         default:
         case GDU_ATA_SMART_SELF_TEST_EXECUTION_STATUS_ERROR_UNKNOWN:
-                s = _("Unknown");
+                s = g_strdup (C_("ATA SMART test result", "Unknown"));
                 break;
         }
         gtk_label_set_markup (GTK_LABEL (section->priv->health_last_self_test_result_label), s);
+        g_free (s);
 
 out:
+        g_free (text);
+        g_free (explanation);
         if (device != NULL)
                 g_object_unref (device);
 }
@@ -583,7 +622,7 @@ expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer user_d
                 val = val_y_top - (val_y_top - val_y_bottom) * n / (num_y_markers - 1);
 
                 char *s;
-                s = g_strdup_printf (_("%g°"), ceil (val));
+                s = g_strdup_printf (C_("ATA SMART graph label", "%g\302\260"), ceil (val));
 
                 cairo_text_extents_t te;
                 cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
@@ -654,26 +693,26 @@ expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer user_d
 
                 char *s;
                 if (age == 0) {
-                        s = g_strdup_printf (_("now"));
+                        s = g_strdup_printf (C_("ATA SMART graph label", "now"));
                 } else if (age < 3600) {
-                        s = g_strdup_printf ("%dm", age / 60);
+                        s = g_strdup_printf (C_("ATA SMART graph label", "%dm"), age / 60);
                 } else if (age < 24 * 3600) {
                         int h = age/3600;
                         int m = (age%3600) / 60;
                         if (m == 0)
-                                s = g_strdup_printf ("%dh", h);
+                                s = g_strdup_printf (C_("ATA SMART graph label", "%dh"), h);
                         else
-                                s = g_strdup_printf ("%dh %dm", h, m);
+                                s = g_strdup_printf (C_("ATA SMART graph label", "%dh %dm"), h, m);
                 } else {
                         int d = age/(24*3600);
                         int h = (age%(24*3600)) / 3600;
                         int m = (age%3600) / 60;
                         if (h == 0 && m == 0)
-                                s = g_strdup_printf ("%dd", d);
+                                s = g_strdup_printf (C_("ATA SMART graph label", "%dd"), d);
                         else if (m == 0)
-                                s = g_strdup_printf ("%dd %dh", d, h);
+                                s = g_strdup_printf (C_("ATA SMART graph label", "%dd %dh"), d, h);
                         else
-                                s = g_strdup_printf ("%dd %dh %dm", d, h, m);
+                                s = g_strdup_printf (C_("ATA SMART graph label", "%dd %dh %dm"), d, h, m);
                 }
 
                 cairo_text_extents_t te;
@@ -980,7 +1019,7 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
                                               GTK_SORT_ASCENDING);
 
         column = gtk_tree_view_column_new ();
-        gtk_tree_view_column_set_title (column, "ID");
+        gtk_tree_view_column_set_title (column, C_("SMART attribute", "ID"));
         renderer = gtk_cell_renderer_text_new ();
         gtk_tree_view_column_pack_start (column, renderer, TRUE);
         gtk_tree_view_column_set_attributes (column, renderer,
@@ -989,7 +1028,7 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
         gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
 
         column = gtk_tree_view_column_new ();
-        gtk_tree_view_column_set_title (column, "Attribute");
+        gtk_tree_view_column_set_title (column, C_("SMART attribute", "Attribute"));
         renderer = gtk_cell_renderer_text_new ();
         gtk_tree_view_column_pack_start (column, renderer, TRUE);
         gtk_tree_view_column_set_attributes (column, renderer,
@@ -1029,7 +1068,7 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
         gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
 
         column = gtk_tree_view_column_new ();
-        gtk_tree_view_column_set_title (column, "Value");
+        gtk_tree_view_column_set_title (column, C_("SMART attribute", "Value"));
         renderer = gtk_cell_renderer_text_new ();
         g_object_set (renderer, "xalign", 1.0, NULL);
         gtk_tree_view_column_pack_start (column, renderer, TRUE);
@@ -1039,7 +1078,7 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
         gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
 
         column = gtk_tree_view_column_new ();
-        gtk_tree_view_column_set_title (column, "Status");
+        gtk_tree_view_column_set_title (column, C_("SMART attribute", "Status"));
         renderer = gtk_cell_renderer_pixbuf_new ();
         gtk_tree_view_column_pack_start (column, renderer, FALSE);
         gtk_tree_view_column_set_attributes (column, renderer,
@@ -1130,12 +1169,12 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
                         tips_type_str = _("Failure is a sign of old age.");
                 }
 
-                tooltip_str = g_strdup_printf (_("<b>Type:</b> %s\n"
-                                                 "<b>Updates:</b> %s\n"
-                                                 "<b>Description</b>: %s"),
-                                               tips_type_str,
-                                               tips_updates_str,
-                                               desc_str);
+                tooltip_str = g_strdup_printf ("<b>%s</b> %s\n"
+                                               "<b>%s</b> %s\n"
+                                               "<b>%s</b> %s",
+                                               _("Type:"), tips_type_str,
+                                               _("Updates:"), tips_updates_str,
+                                               _("Description:"), desc_str);
 
                 current_str = g_strdup_printf ("%d", gdu_ata_smart_attribute_get_current (a));
                 worst_str = g_strdup_printf ("%d", gdu_ata_smart_attribute_get_worst (a));
@@ -1175,7 +1214,10 @@ health_details_action_callback (GtkAction *action, gpointer user_data)
                                                                           icon_height,
                                                                           GTK_ICON_LOOKUP_GENERIC_FALLBACK,
                                                                           NULL);
-                                status_str = g_strdup (_("<span foreground='red'><b>FAILING</b></span>"));
+                                status_str = g_strconcat ("<span foreground='red'><b>",
+                                                          _("FAILING"),
+                                                          "</b></span>",
+                                                          NULL);
                         }
                 }
 
@@ -1263,6 +1305,7 @@ health_selftest_action_callback (GtkAction *action, gpointer user_data)
         GtkWidget *radio1;
         GtkWidget *radio2;
         const char *test;
+        gchar *s;
 
         test = NULL;
 
@@ -1296,7 +1339,12 @@ health_selftest_action_callback (GtkAction *action, gpointer user_data)
 	gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0);
 
 	label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<big><b>Select what ATA SMART test to run on the drive.</b></big>"));
+        s = g_strconcat ("<big><b>",
+                         _("Select what ATA SMART self test to run"),
+                         "</b></big>",
+                         NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
 	gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
 	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
 	gtk_box_pack_start (GTK_BOX (main_vbox), GTK_WIDGET (label), FALSE, FALSE, 0);
@@ -1424,6 +1472,7 @@ gdu_section_health_init (GduSectionHealth *section)
         GtkWidget *button;
         GtkWidget *button_box;
         GtkWidget *image;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_HEALTH, GduSectionHealthPrivate);
 
@@ -1440,7 +1489,9 @@ gdu_section_health_init (GduSectionHealth *section)
                                      "org.freedesktop.devicekit.disks.drive-ata-smart-selftest");
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Health</b>"));
+        s = g_strconcat ("<b>", _("Health"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
@@ -1451,7 +1502,7 @@ gdu_section_health_init (GduSectionHealth *section)
 
         /* explanatory text */
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("Some disks supports ATA SMART, a monitoring system for "
+        gtk_label_set_markup (GTK_LABEL (label), _("Some disks support ATA SMART, a monitoring system for "
                                                    "disks to detect and report on various indicators of "
                                                    "reliability, in the hope of anticipating failures."));
         gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
@@ -1469,7 +1520,9 @@ gdu_section_health_init (GduSectionHealth *section)
         /* power on hours */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("<b>Powered On:</b>"));
+        s = g_strconcat ("<b>", _("Powered On:"), "</b>", NULL);
+        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
 
@@ -1485,7 +1538,9 @@ gdu_section_health_init (GduSectionHealth *section)
         /* temperature */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("<b>Temperature:</b>"));
+        s = g_strconcat ("<b>", _("Temperature:"), "</b>", NULL);
+        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
 
@@ -1501,7 +1556,9 @@ gdu_section_health_init (GduSectionHealth *section)
         /* last test */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("<b>Last Test:</b>"));
+        s = g_strconcat ("<b>", _("Last Test:"), "</b>", NULL);
+        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
 
@@ -1517,7 +1574,9 @@ gdu_section_health_init (GduSectionHealth *section)
         /* updated */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("<b>Updated:</b>"));
+        s = g_strconcat ("<b>", _("Updated:"), "</b>", NULL);
+        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
 
@@ -1533,7 +1592,9 @@ gdu_section_health_init (GduSectionHealth *section)
         /* assessment */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("<b>Assessment:</b>"));
+        s = g_strconcat ("<b>", _("Assessment:"), "</b>", NULL);
+        gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
 
diff --git a/src/palimpsest/gdu-section-linux-md-drive.c b/src/palimpsest/gdu-section-linux-md-drive.c
index 90a6fd5..eb60399 100644
--- a/src/palimpsest/gdu-section-linux-md-drive.c
+++ b/src/palimpsest/gdu-section-linux-md-drive.c
@@ -102,6 +102,7 @@ add_action_callback (GtkAction *action, gpointer user_data)
         GtkWidget *tree_view;
         char *array_name;
         char *s;
+        char *s2;
 
         device = NULL;
         selected_device = NULL;
@@ -155,10 +156,15 @@ add_action_callback (GtkAction *action, gpointer user_data)
 
         GtkWidget *label;
         label = gtk_label_new (NULL);
-        s = g_strdup_printf ( _("<big><b>Select a volume to use as component in the array \"%s\"</b></big>\n\n"
-                                "Only volumes of acceptable sizes can be selected. You may "
-                                "need to manually create new volumes of acceptable sizes."),
+        s2 = g_strdup_printf (_("Select a volume to use as component in the array \"%s\""),
                               array_name);
+        s = g_strconcat ("<big><b>",
+                         s2,
+                         "%s</b></big>\n\n",
+                         _("Only volumes of acceptable sizes can be selected. You may "
+                           "need to manually create new volumes of acceptable sizes."),
+                         NULL),
+        g_free (s2);
         gtk_label_set_markup (GTK_LABEL (label), s);
         g_free (s);
         gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
@@ -394,7 +400,7 @@ detach_action_callback (GtkAction *action, gpointer user_data)
                 component_name = gdu_presentable_get_name (slave_presentable);
 
                 /* confirmation dialog */
-                primary = g_strdup (_("<b><big>Are you sure you want to remove the component from the array?</big></b>"));
+                primary = g_strconcat ("<b><big>", _("Are you sure you want to remove the component from the array ?"), "</big></b>", NULL);
 
                 secondary = g_strdup_printf (_("The data on component \"%s\" of the RAID Array \"%s\" will be "
                                                "irrecovably erased and the RAID Array might be degraded. "
@@ -608,11 +614,11 @@ update (GduSectionLinuxMdDrive *section)
         uuid = gdu_device_linux_md_component_get_uuid (component);
         name = gdu_device_linux_md_component_get_name (component);
         if (name == NULL || strlen (name) == 0) {
-                name = _("-");
+                name = "-";
         }
         home_host = gdu_device_linux_md_component_get_home_host (component);
         if (home_host == NULL || strlen (home_host) == 0) {
-                home_host = _("-");
+                home_host = "-";
         }
         level = gdu_device_linux_md_component_get_level (component);
         num_raid_devices = gdu_device_linux_md_component_get_num_raid_devices (component);
@@ -652,16 +658,16 @@ update (GduSectionLinuxMdDrive *section)
                 components_str = g_strdup_printf (_("%d Components (%s each)"), num_raid_devices, s);
         }
         g_free (s);
-
+ 
         if (raid_size == 0) {
-                raid_size_str = g_strdup_printf (_("-"));
+                raid_size_str = g_strdup_printf ("-");
         } else {
                 raid_size_str = gdu_util_get_size_for_display (raid_size, TRUE);
         }
 
         if (!gdu_drive_is_active (GDU_DRIVE (linux_md_drive))) {
                 if (device != NULL) {
-                        state_str = g_strdup (_("Not running, partially assembled"));
+                        state_str = g_strdup (C_("RAID status", "Not running, partially assembled"));
                 } else {
                         gboolean can_activate;
                         gboolean degraded;
@@ -669,11 +675,11 @@ update (GduSectionLinuxMdDrive *section)
                         can_activate = gdu_drive_can_activate (GDU_DRIVE (linux_md_drive), &degraded);
 
                         if (can_activate && !degraded) {
-                                state_str = g_strdup (_("Not running"));
+                                state_str = g_strdup (C_("RAID status", "Not running"));
                         } else if (can_activate && degraded) {
-                                state_str = g_strdup (_("Not running, can only start degraded"));
+                                state_str = g_strdup (C_("RAID status", "Not running, can only start degraded"));
                         } else {
-                                state_str = g_strdup (_("Not running, not enough components to start"));
+                                state_str = g_strdup (C_("RAID status", "Not running, not enough components to start"));
                         }
                 }
         } else {
@@ -690,23 +696,38 @@ update (GduSectionLinuxMdDrive *section)
                 sync_speed = gdu_device_linux_md_get_sync_speed (device);
 
                 str = g_string_new (NULL);
-                if (is_degraded)
-                        g_string_append (str, _("<span foreground='red'><b>Degraded</b></span>"));
+                if (is_degraded) {
+                        g_string_append (str, "<span foreground='red'><b>");
+                        g_string_append (str, C_("RAID status", "Degraded"));
+                        g_string_append (str, "</b></span>");
+                }
                 else
-                        g_string_append (str, _("Running"));
+                        g_string_append (str, C_("RAID status", "Running"));
 
                 if (strcmp (sync_action, "idle") != 0) {
-                        if (strcmp (sync_action, "reshape") == 0)
-                                g_string_append (str, _(", Reshaping"));
-                        else if (strcmp (sync_action, "resync") == 0)
-                                g_string_append (str, _(", Resyncing"));
-                        else if (strcmp (sync_action, "repair") == 0)
-                                g_string_append (str, _(", Repairing"));
-                        else if (strcmp (sync_action, "recover") == 0)
-                                g_string_append (str, _(", Recovering"));
+                        if (strcmp (sync_action, "reshape") == 0) {
+                                g_string_append (str, ", ");
+                                g_string_append (str, C_("RAID status", "Reshaping"));
+                        }
+                        else if (strcmp (sync_action, "resync") == 0) {
+                                g_string_append (str, ", ");
+                                g_string_append (str, C_("RAID status", "Resyncing"));
+                        }
+                        else if (strcmp (sync_action, "repair") == 0) {
+                                g_string_append (str, ", ");
+                                g_string_append (str, C_("RAID status", "Repairing"));
+                        }
+                        else if (strcmp (sync_action, "recover") == 0) {
+                                g_string_append (str, ", ");
+                                g_string_append (str, C_("RAID status", "Recovering"));
+                        }
 
                         sync_speed_str = gdu_util_get_speed_for_display (sync_speed);
-                        g_string_append_printf (str, _(" @ %3.01f%% (%s)"), sync_percentage, sync_speed_str);
+                        /* Translators: this string tells about an ongoing synchronization.
+                         * %3.01f is replaced by the percentage of completion
+                         * %s is replaced by the speed of the operation
+                         */
+                        g_string_append_printf (str, C_("RAID status", " @ %3.01f%% (%s)"), sync_percentage, sync_speed_str);
                         g_free (sync_speed_str);
                 }
 
@@ -751,6 +772,7 @@ update (GduSectionLinuxMdDrive *section)
                         GduLinuxMdDriveSlaveFlags slave_flags;
                         GPtrArray *slave_state;
                         char *slave_state_str;
+                        char *s;
 
                         pool = gdu_device_get_pool (sd);
                         p = gdu_pool_get_volume_by_device (pool, sd);
@@ -769,17 +791,20 @@ update (GduSectionLinuxMdDrive *section)
                         slave_flags = gdu_linux_md_drive_get_slave_flags (linux_md_drive, sd);
                         slave_state = g_ptr_array_new ();
                         if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_NOT_ATTACHED)
-                                g_ptr_array_add (slave_state, _("-"));
-                        if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_FAULTY)
-                                g_ptr_array_add (slave_state, _("<span foreground='red'><b>Faulty</b></span>"));
+                                g_ptr_array_add (slave_state, "-");
+                        if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_FAULTY) {
+                                s = g_strconcat ("<span foreground='red'><b>", C_("Linux MD slave state", "Faulty"), "</b></span>", NULL);
+                                g_ptr_array_add (slave_state, s);
+                                g_free (s);
+                        }
                         if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_IN_SYNC)
-                                g_ptr_array_add (slave_state, _("In Sync"));
+                                g_ptr_array_add (slave_state, (gpointer) C_("Linux MD slave state", "In Sync"));
                         if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_WRITEMOSTLY)
-                                g_ptr_array_add (slave_state, _("Writemostly"));
+                                g_ptr_array_add (slave_state, (gpointer) C_("Linux MD slave state", "Writemostly"));
                         if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_BLOCKED)
-                                g_ptr_array_add (slave_state, _("Blocked"));
+                                g_ptr_array_add (slave_state, (gpointer) C_("Linux MD slave state", "Blocked"));
                         if (slave_flags & GDU_LINUX_MD_DRIVE_SLAVE_FLAGS_SPARE)
-                                g_ptr_array_add (slave_state, _("Spare"));
+                                g_ptr_array_add (slave_state, (gpointer) C_("Linux MD slave state", "Spare"));
                         g_ptr_array_add (slave_state, NULL);
                         slave_state_str = g_strjoinv (", ", (gchar **) slave_state->pdata);
                         g_ptr_array_free (slave_state, TRUE);
@@ -859,6 +884,7 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         GtkTreeSelection *selection;
         GtkCellRenderer *renderer;
         GtkTreeViewColumn *column;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_LINUX_MD_DRIVE, GduSectionLinuxMdDrivePrivate);
 
@@ -876,7 +902,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* name */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Array Name:</b>"));
+        s = g_strconcat ("<b>", _("Array Name:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
@@ -890,7 +918,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* home host */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Home Host:</b>"));
+        s = g_strconcat ("<b>", _("Home Host:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
@@ -904,7 +934,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* size */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Array Size:</b>"));
+        s = g_strconcat ("<b>", _("Array Size:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
@@ -918,7 +950,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* type (level) */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>RAID Type:</b>"));
+        s = g_strconcat ("<b>", _("RAID Type:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
@@ -932,7 +966,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* components */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Components:</b>"));
+        s = g_strconcat ("<b>", _("Components:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
@@ -946,7 +982,9 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         /* components */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>State:</b>"));
+        s = g_strconcat ("<b>", _("State:"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
         label = gtk_label_new (NULL);
diff --git a/src/palimpsest/gdu-section-no-media.c b/src/palimpsest/gdu-section-no-media.c
index 2b8a1a7..9597ad5 100644
--- a/src/palimpsest/gdu-section-no-media.c
+++ b/src/palimpsest/gdu-section-no-media.c
@@ -105,11 +105,14 @@ gdu_section_no_media_init (GduSectionNoMedia *section)
         GtkWidget *align;
         GtkWidget *button;
         GtkWidget *button_box;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_NO_MEDIA, GduSectionNoMediaPrivate);
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>No Media Detected</b>"));
+        s = g_strconcat ("<b>", _("No Media Detected"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-partition.c b/src/palimpsest/gdu-section-partition.c
index 119484b..aed06af 100644
--- a/src/palimpsest/gdu-section-partition.c
+++ b/src/palimpsest/gdu-section-partition.c
@@ -105,7 +105,7 @@ delete_partition_callback (GtkAction *action, gpointer user_data)
 
         drive_name = gdu_presentable_get_name (toplevel_presentable);
 
-        primary = g_strdup (_("<b><big>Are you sure you want to remove the partition, deleting existing data?</big></b>"));
+        primary = g_strconcat ("<b><big>", _("Are you sure you want to remove the partition, deleting existing data ?"), "</big></b>", NULL);
 
         if (gdu_device_is_removable (toplevel_device)) {
                 secondary = g_strdup_printf (_("All data on partition %d on the media in \"%s\" will be "
@@ -471,6 +471,7 @@ gdu_section_partition_init (GduSectionPartition *section)
         GtkWidget *check_button;
         GtkWidget *button_box;
         int row;
+        gchar *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_PARTITION, GduSectionPartitionPrivate);
 
@@ -513,7 +514,9 @@ gdu_section_partition_init (GduSectionPartition *section)
 
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Partition</b>"));
+        s = g_strconcat ("<b>", _("Partition"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-swapspace.c b/src/palimpsest/gdu-section-swapspace.c
index 256b4ae..28b91c4 100644
--- a/src/palimpsest/gdu-section-swapspace.c
+++ b/src/palimpsest/gdu-section-swapspace.c
@@ -75,11 +75,14 @@ gdu_section_swapspace_init (GduSectionSwapspace *section)
         GtkWidget *vbox2;
         GtkWidget *label;
         GtkWidget *align;
+        gchar *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_SWAPSPACE, GduSectionSwapspacePrivate);
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Swap Space</b>"));
+        s = g_strconcat ("<b>", _("Swap Space"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-unallocated.c b/src/palimpsest/gdu-section-unallocated.c
index c13e057..acbce5f 100644
--- a/src/palimpsest/gdu-section-unallocated.c
+++ b/src/palimpsest/gdu-section-unallocated.c
@@ -410,16 +410,21 @@ update_warning (GduSectionUnallocated *section)
 
                         if (num_partitions == 3) {
                                 show_warning = TRUE;
-                                warning_markup = g_strdup (
-                                        _("<small><b>This is the last primary partition that can be created. "
-                                          "If you need more partitions, you can create an Extended "
-                                          "Partition.</b></small>"));
+                                warning_markup = g_strconcat ("<small><b>",
+                                                              _("This is the last primary partition that can be "
+                                                                "created. If you need more partitions, you can "
+                                                                "create an Extended Partition."),
+                                                              "</b></small>",
+                                                              NULL);
                         } else if (num_partitions == 4) {
                                 show_warning = TRUE;
                                 at_max_partitions = TRUE;
-                                warning_markup = g_strdup (
-                                        _("<small><b>No more partitions can be created. You may want to delete "
-                                          "an existing partition and then create an Extended Partition.</b></small>"));
+                                warning_markup = g_strconcat ("<small><b>",
+                                                              _("No more partitions can be created. You may want to "
+                                                                "delete  an existing partition and then create an "
+                                                                "Extended Partition."),
+                                                              "</b></small>",
+                                                              NULL);
                         }
                 }
         }
@@ -594,6 +599,7 @@ gdu_section_unallocated_init (GduSectionUnallocated *section)
         GtkWidget *image;
         GtkWidget *check_button;
         int row;
+        gchar *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_UNALLOCATED, GduSectionUnallocatedPrivate);
 
@@ -631,7 +637,9 @@ gdu_section_unallocated_init (GduSectionUnallocated *section)
         gtk_box_pack_start (GTK_BOX (vbox3), section->priv->sensitive_vbox, FALSE, TRUE, 0);
 
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Create Partition</b>"));
+        s = g_strconcat ("<b>", _("Create Partition"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section->priv->sensitive_vbox), label, FALSE, FALSE, 6);
         vbox2 = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-section-unrecognized.c b/src/palimpsest/gdu-section-unrecognized.c
index f4d5975..b2e0220 100644
--- a/src/palimpsest/gdu-section-unrecognized.c
+++ b/src/palimpsest/gdu-section-unrecognized.c
@@ -234,7 +234,7 @@ erase_action_callback (GtkAction *action, gpointer user_data)
                 g_object_unref (kfs);
         }
 
-        primary = g_strdup (_("<b><big>Are you sure you want to create a new file system, deleting existing data?</big></b>"));
+        primary = g_strconcat ("<b><big>", _("Are you sure you want to create a new file system, deleting existing data ?"), "</big></b>", NULL);
 
         if (gdu_device_is_partition (device)) {
                 if (gdu_device_is_removable (toplevel_device)) {
@@ -404,6 +404,7 @@ gdu_section_unrecognized_init (GduSectionUnrecognized *section)
         GtkWidget *button;
         GtkWidget *button_box;
         GtkWidget *check_button;
+        char *s;
 
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_UNRECOGNIZED, GduSectionUnrecognizedPrivate);
 
@@ -433,7 +434,9 @@ gdu_section_unrecognized_init (GduSectionUnrecognized *section)
 
         /* volume format + label */
         label = gtk_label_new (NULL);
-        gtk_label_set_markup (GTK_LABEL (label), _("<b>Create File System</b>"));
+        s = g_strconcat ("<b>", _("Create File System"), "</b>", NULL);
+        gtk_label_set_markup (GTK_LABEL (label), s);
+        g_free (s);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
         gtk_box_pack_start (GTK_BOX (section), label, FALSE, FALSE, 6);
         vbox = gtk_vbox_new (FALSE, 5);
diff --git a/src/palimpsest/gdu-shell.c b/src/palimpsest/gdu-shell.c
index 642d295..2025db2 100644
--- a/src/palimpsest/gdu-shell.c
+++ b/src/palimpsest/gdu-shell.c
@@ -184,6 +184,7 @@ details_update (GduShell *shell)
         gboolean ret;
         char *s;
         char *p;
+        char *url;
         char *detail_color;
         char *name;
         GIcon *icon;
@@ -218,7 +219,7 @@ details_update (GduShell *shell)
         gtk_image_set_from_pixbuf (GTK_IMAGE (shell->priv->icon_image), pixbuf);
         g_object_unref (pixbuf);
 
-        s = g_strdup_printf (_("<span font_desc='18'><b>%s</b></span>"), name);
+        s = g_strdup_printf ("<span font_desc='18'><b>%s</b></span>", name);
         gtk_label_set_markup (GTK_LABEL (shell->priv->name_label), s);
         g_free (s);
 
@@ -384,21 +385,21 @@ details_update (GduShell *shell)
                 s = g_strdup (device_file);
                 if (gdu_device_is_read_only (device)) {
                         p = s;
-                        s = g_strconcat (s, _(" (Read Only)"), NULL);
+                        s = g_strdup_printf (_("%s (Read Only)"), s);
                         g_free (p);
                 }
 
                 if (gdu_device_is_mounted (device)) {
                         p = s;
-                        s = g_strconcat (s,
-                                         _(" mounted at "),
-                                         "<a href=\"file://",
-                                         gdu_device_get_mount_path (device),
-                                         "\">",
-                                         gdu_device_get_mount_path (device),
-                                         "</a>",
-                                         NULL);
+			url = g_strconcat ("<a href=\"file://",
+                                           gdu_device_get_mount_path (device),
+                                           "\">",
+                                           gdu_device_get_mount_path (device),
+                                           "</a>",
+                                           NULL);
+                        s = g_strdup_printf (_("%s mounted at %s"), s, url);
                         g_free (p);
+                        g_free (url);
                 }
                 g_ptr_array_add (details, s);
 
@@ -994,12 +995,12 @@ fsck_op_callback (GduDevice *device,
                 name = gdu_presentable_get_name (data->presentable);
                 icon = gdu_presentable_get_icon (data->presentable);
 
-                dialog = gtk_message_dialog_new_with_markup (
+                dialog = gtk_message_dialog_new (
                         GTK_WINDOW (data->shell->priv->app_window),
                         GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
                         is_clean ? GTK_MESSAGE_INFO : GTK_MESSAGE_WARNING,
                         GTK_BUTTONS_CLOSE,
-                        _("<big><b>File system check on \"%s\" completed</b></big>"),
+                        _("File system check on \"%s\" completed"),
                         name);
                 if (is_clean)
                         gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
@@ -1339,12 +1340,12 @@ start_cb (GduDrive *ad,
         if (error != NULL) {
                 GtkWidget *dialog;
 
-                dialog = gtk_message_dialog_new_with_markup (
+                dialog = gtk_message_dialog_new (
                         GTK_WINDOW (shell->priv->app_window),
                         GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
                         GTK_MESSAGE_ERROR,
                         GTK_BUTTONS_CLOSE,
-                        _("<big><b>There was an error starting the drive \"%s\".</b></big>"),
+                        _("There was an error starting the drive \"%s\"."),
                         gdu_presentable_get_name (GDU_PRESENTABLE (ad)));
 
                 gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message);
@@ -1393,12 +1394,12 @@ start_action_callback (GtkAction *action, gpointer user_data)
                 GtkWidget *dialog;
                 int response;
 
-                dialog = gtk_message_dialog_new_with_markup (
+                dialog = gtk_message_dialog_new (
                         GTK_WINDOW (shell->priv->app_window),
                         GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
                         GTK_MESSAGE_WARNING,
                         GTK_BUTTONS_CANCEL,
-                        _("<big><b>Are you sure you want to start the drive \"%s\" in degraded mode?</b></big>"),
+                        _("Are you sure you want to start the drive \"%s\" in degraded mode ?"),
                         gdu_presentable_get_name (GDU_PRESENTABLE (drive)));
 
                 gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
@@ -1430,12 +1431,12 @@ stop_cb (GduDrive *drive, GError *error, gpointer user_data)
         if (error != NULL) {
                 GtkWidget *dialog;
 
-                dialog = gtk_message_dialog_new_with_markup (
+                dialog = gtk_message_dialog_new (
                         GTK_WINDOW (shell->priv->app_window),
                         GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
                         GTK_MESSAGE_ERROR,
                         GTK_BUTTONS_CLOSE,
-                        _("<big><b>There was an error stopping the drive \"%s\".</b></big>"),
+                        _("There was an error stopping the drive \"%s\"."),
                         gdu_presentable_get_name (GDU_PRESENTABLE (drive)));
 
                 gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s", error->message);
@@ -1540,7 +1541,7 @@ erase_action_callback (GtkAction *action, gpointer user_data)
 
         drive_name = gdu_presentable_get_name (toplevel_presentable);
 
-        primary = g_strdup (_("<b><big>Are you sure you want to erase the device?</big></b>"));
+        primary = g_strconcat ("<b><big>", _("Are you sure you want to erase the device ?"), "</big></b>", NULL);
 
         if (gdu_device_is_partition (device)) {
                 if (gdu_device_is_removable (toplevel_device)) {



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