[gnome-disk-utility] String review, part I



commit 949e95db68080ae0f88323895d0e76e22ece42ef
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jul 27 13:09:24 2009 -0400

    String review, part I
    
    This commit adds a lot of translator comments. It also fixes a number
    of strings to use ngettext() when appropriate, and adds context to
    some ambiguous strings.
    
    Translators, please review carefully and complain if this is not
    good enough.

 src/format-tool/gdu-format-dialog.c         |    2 +
 src/gdu-gtk/gdu-gtk.c                       |   20 ++--
 src/gdu-gtk/gdu-time-label.c                |   12 +--
 src/gdu/gdu-ata-smart-attribute.c           |  176 +++++++++++++++++++++++++++
 src/gdu/gdu-linux-md-drive.c                |    8 ++
 src/gdu/gdu-util.c                          |   79 ++++++++++--
 src/gdu/gdu-volume-hole.c                   |    3 +
 src/gdu/gdu-volume.c                        |   40 ++++++-
 src/nautilus-extension/nautilus-gdu.c       |    1 +
 src/palimpsest/gdu-section-health.c         |   42 ++++++-
 src/palimpsest/gdu-section-linux-md-drive.c |   22 ++--
 src/palimpsest/gdu-section-partition.c      |    1 +
 src/palimpsest/gdu-section-unallocated.c    |    2 +
 src/palimpsest/gdu-shell.c                  |    5 +
 14 files changed, 368 insertions(+), 45 deletions(-)
---
diff --git a/src/format-tool/gdu-format-dialog.c b/src/format-tool/gdu-format-dialog.c
index d8d86e4..e547944 100644
--- a/src/format-tool/gdu-format-dialog.c
+++ b/src/format-tool/gdu-format-dialog.c
@@ -361,6 +361,7 @@ gdu_format_dialog_constructed (GObject *object)
         /*  filesystem type  */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+        /* Translators: 'type' means 'filesystem type' here. */
         gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("_Type:"));
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
@@ -385,6 +386,7 @@ gdu_format_dialog_constructed (GObject *object)
         /*  filesystem label  */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+        /* Translators: 'name' means 'filesystem label' here. */
         gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("_Name:"));
         gtk_table_attach (GTK_TABLE (table), label, 0, 1, row, row + 1,
                           GTK_FILL, GTK_EXPAND | GTK_FILL, 2, 2);
diff --git a/src/gdu-gtk/gdu-gtk.c b/src/gdu-gtk/gdu-gtk.c
index e9fcde3..b43228d 100644
--- a/src/gdu-gtk/gdu-gtk.c
+++ b/src/gdu-gtk/gdu-gtk.c
@@ -168,40 +168,40 @@ show_busy_get_list_store (ShowBusyData *data, int *num_rows)
                                 /* special handling for common programs without desktop files */
                                 if (strcmp (basename, "bash") == 0   ||
                                     strcmp (basename, "-bash") == 0) {
-                                        name = g_strdup (_("Bourne Again Shell"));
+                                        name = g_strdup (C_("application name", "Bourne Again Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "sh") == 0   ||
                                            strcmp (basename, "-sh") == 0) {
-                                        name = g_strdup (_("Bourne Shell"));
+                                        name = g_strdup (C_("application name", "Bourne Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "csh") == 0   ||
                                            strcmp (basename, "-csh") == 0) {
-                                        name = g_strdup (_("C Shell"));
+                                        name = g_strdup (C_("application name", "C Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "tcsh") == 0   ||
                                            strcmp (basename, "-tcsh") == 0) {
-                                        name = g_strdup (_("TENEX C Shell"));
+                                        name = g_strdup (C_("application name", "TENEX C Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "zsh") == 0   ||
                                            strcmp (basename, "-zsh") == 0) {
-                                        name = g_strdup (_("Z Shell"));
+                                        name = g_strdup (C_("application name", "Z Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "ksh") == 0   ||
                                            strcmp (basename, "-ksh") == 0) {
-                                        name = g_strdup (_("Korn Shell"));
+                                        name = g_strdup (C_("application name", "Korn Shell"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            "terminal", 24, 0, NULL);
                                 } else if (strcmp (basename, "top") == 0) {
-                                        name = g_strdup (_("Process Viewer (top)"));
+                                        name = g_strdup (C_("application name", "Process Viewer (top)"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            GTK_STOCK_GOTO_TOP, 24, 0, NULL);
                                 } else if (strcmp (basename, "less") == 0) {
-                                        name = g_strdup (_("Terminal Pager (less)"));
+                                        name = g_strdup (C_("application name", "Terminal Pager (less)"));
                                         pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                            GTK_STOCK_FILE, 24, 0, NULL);
                                 }
@@ -213,7 +213,7 @@ show_busy_get_list_store (ShowBusyData *data, int *num_rows)
 
                                 g_free (basename);
                         } else {
-                                name = g_strdup (_("Unknown"));
+                                name = g_strdup (C_("application name", "Unknown"));
                         }
                 }
 
@@ -327,6 +327,7 @@ gdu_util_dialog_show_filesystem_busy (GtkWidget *parent_window,
                 /* todo: icon list */
                 window_icon = gdu_presentable_get_icon (enclosing_drive);
                 g_object_unref (enclosing_drive);
+                /* Translators: %d is the partition number, %s the name of the disk */
                 window_title = g_strdup_printf (_("Partition %d on %s"),
                                                 gdu_device_partition_get_number (device),
                                                 s);
@@ -1255,6 +1256,7 @@ gdu_util_fstype_combo_box_create_store (GduPool *pool, const char *include_exten
         g_list_free (known_filesystems);
 
         gtk_list_store_append (store, &iter);
+        /* Translators: Used as an option in a combobox of filesystem types, meaning 'do not create a filesystem' */
         gtk_list_store_set (store, &iter,
                             0, "empty",
                             1, _("Empty"),
diff --git a/src/gdu-gtk/gdu-time-label.c b/src/gdu-gtk/gdu-time-label.c
index d9b9e44..a43d3fe 100644
--- a/src/gdu-gtk/gdu-time-label.c
+++ b/src/gdu-gtk/gdu-time-label.c
@@ -70,18 +70,10 @@ do_update (GduTimeLabel *time_label)
                 s = g_strdup_printf (_("Less than a minute ago"));
                 next_update = 60 - age;
         } else if (age < 60 * 60) {
-                if (age / 60 == 1) {
-                        s = g_strdup_printf (_("1 minute ago"));
-                } else {
-                        s = g_strdup_printf (_("%d minutes ago"), age / 60);
-                }
+                s = g_strdup_printf (ngettext ("%d minute ago", "%d minutes ago", age / 60), age / 60);
                 next_update = 60*(age/60 + 1) - age;
         } else {
-                if (age / 60 / 60 == 1) {
-                        s = g_strdup_printf (_("1 hour ago"));
-                } else {
-                        s = g_strdup_printf (_("%d hours ago"), age / 60 / 60);
-                }
+                s = g_strdup_printf (ngettext ("%d hour ago", "%d hours ago", age / 60 / 60), age / 60 / 60);
                 next_update = 60*60*(age/(60*60) + 1) - age;
         }
         gtk_label_set_text (GTK_LABEL (time_label), s);
diff --git a/src/gdu/gdu-ata-smart-attribute.c b/src/gdu/gdu-ata-smart-attribute.c
index 0990e13..652b996 100644
--- a/src/gdu/gdu-ata-smart-attribute.c
+++ b/src/gdu/gdu-ata-smart-attribute.c
@@ -179,79 +179,151 @@ attribute_get_details (GduAtaSmartAttribute  *attr,
         warn = FALSE;
         switch (attr->priv->id) {
         case 1:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Read Error Rate");
                 d = _("Frequency of errors while reading raw data from the disk. "
                       "A non-zero value indicates a problem with "
                       "either the disk surface or read/write heads.");
                 break;
         case 2:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Throughput Performance");
                 d = _("Average efficiency of the disk.");
                 break;
         case 3:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Spinup Time");
                 d = _("Time needed to spin up the disk.");
                 break;
         case 4:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Start/Stop Count");
                 d = _("Number of spindle start/stop cycles.");
                 break;
         case 5:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Reallocated Sector Count");
                 d = _("Count of remapped sectors. "
                       "When the hard drive finds a read/write/verification error, it mark the sector "
                       "as \"reallocated\" and transfers data to a special reserved area (spare area).");
                 break;
         case 7:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Seek Error Rate");
                 d = _("Frequency of errors while positioning.");
                 break;
         case 8:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Seek Timer Performance");
                 d = _("Average efficiency of operatings while positioning");
                 break;
         case 9:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Power-On Hours");
                 d = _("Number of hours elapsed in the power-on state.");
                 break;
         case 10:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Spinup Retry Count");
                 d = _("Number of retry attempts to spin up.");
                 break;
         case 11:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Calibration Retry Count");
                 d = _("Number of attempts to calibrate the device.");
                 break;
         case 12:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Power Cycle Count");
                 d = _("Number of power-on events.");
                 break;
         case 13:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Soft read error rate");
                 d = _("Frequency of 'program' errors while reading from the disk.");
                 break;
 
         case 191:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("G-sense Error Rate");
                 d = _("Frequency of mistakes as a result of impact loads.");
                 break;
         case 192:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Power-off Retract Count");
                 d = _("Number of power-off or emergency retract cycles.");
                 break;
         case 193:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Load/Unload Cycle Count");
                 d = _("Number of cycles into landing zone position.");
                 break;
         case 194:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Temperature");
                 d = _("Current internal temperature in degrees Celsius.");
                 break;
         case 195:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Hardware ECC Recovered");
                 d = _("Number of ECC on-the-fly errors.");
                 break;
         case 196:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Reallocation Count");
                 d = _("Number of remapping operations. "
                       "The raw value of this attribute shows the total number of (successful "
@@ -259,6 +331,10 @@ attribute_get_details (GduAtaSmartAttribute  *attr,
                       "to a spare area.");
                 break;
         case 197:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Current Pending Sector Count");
                 d = _("Number of sectors waiting to be remapped. "
                       "If the sector waiting to be remapped is subsequently written or read "
@@ -269,109 +345,209 @@ attribute_get_details (GduAtaSmartAttribute  *attr,
                         warn = TRUE;
                 break;
         case 198:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Uncorrectable Sector Count");
                 d = _("The total number of uncorrectable errors when reading/writing a sector. "
                       "A rise in the value of this attribute indicates defects of the "
                       "disk surface and/or problems in the mechanical subsystem.");
                 break;
         case 199:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("UDMA CRC Error Rate");
                 d = _("Number of CRC errors during UDMA mode.");
                 break;
         case 200:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Write Error Rate");
                 d = _("Number of errors while writing to disk (or) multi-zone error rate (or) flying-height.");
                 break;
         case 201:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Soft Read Error Rate");
                 d = _("Number of off-track errors.");
                 break;
         case 202:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Data Address Mark Errors");
                 d = _("Number of Data Address Mark (DAM) errors (or) vendor-specific.");
                 break;
         case 203:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Run Out Cancel");
                 d = _("Number of ECC errors.");
                 break;
         case 204:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Soft ECC correction");
                 d = _("Number of errors corrected by software ECC.");
                 break;
         case 205:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Thermal Asperity Rate");
                 d = _("Number of Thermal Asperity Rate errors.");
                 break;
         case 206:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Flying Height");
                 d = _("Height of heads above the disk surface.");
                 break;
         case 207:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Spin High Current");
                 d = _("Amount of high current used to spin up the drive.");
                 break;
         case 208:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Spin Buzz");
                 d = _("Number of buzz routines to spin up the drive.");
                 break;
         case 209:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Offline Seek Performance");
                 d = _("Drive's seek performance during offline operations.");
                 break;
 
         case 220:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Disk Shift");
                 d = _("Shift of disk is possible as a result of strong shock loading in the store, "
                       "as a result of falling (or) temperature.");
                 break;
         case 221:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("G-sense Error Rate");
                 d = _("Number of errors as a result of impact loads as detected by a shock sensor.");
                 break;
         case 222:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Loaded Hours");
                 d = _("Number of hours in general operational state.");
                 break;
         case 223:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Load/Unload Retry Count");
                 d = _("Loading on drive caused by numerous recurrences of operations, like reading, "
                       "recording, positioning of heads, etc.");
                 break;
         case 224:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Load Friction");
                 d = _("Load on drive cause by friction in mechanical parts of the store.");
                 break;
         case 225:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Load/Unload Cycle Count");
                 d = _("Total number of load cycles.");
                 break;
         case 226:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Load-in Time");
                 d = _("General time for loading in a drive.");
                 break;
         case 227:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Torque Amplification Count");
                 d = _("Quantity efforts of the rotating moment of a drive.");
                 break;
         case 228:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Power-off Retract Count");
                 d = _("Number of power-off retract events.");
                 break;
 
         case 230:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("GMR Head Amplitude");
                 d = _("Amplitude of heads trembling (GMR-head) in running mode.");
                 break;
         case 231:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Temperature");
                 d = _("Temperature of the drive.");
                 break;
 
         case 240:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Head Flying Hours");
                 d = _("Time while head is positioning.");
                 break;
         case 250:
+                /* Translators: S.M.A.R.T attribute, see
+                 * http://ata_smartmontools.sourceforge.net/doc.html
+                 * or the next string for a longer explanation.
+                 */
                 n = _("Read Error Retry Rate");
                 d = _("Number of errors while reading from a disk.");
                 break;
diff --git a/src/gdu/gdu-linux-md-drive.c b/src/gdu/gdu-linux-md-drive.c
index e4ff99e..614ac9d 100644
--- a/src/gdu/gdu-linux-md-drive.c
+++ b/src/gdu/gdu-linux-md-drive.c
@@ -494,14 +494,21 @@ gdu_linux_md_drive_get_name (GduPresentable *presentable)
                 level_str = gdu_linux_md_get_raid_level_for_display (level);
 
                 if (name == NULL || strlen (name) == 0) {
+                        /* Translators: %s is a RAID level, e.g. 'RAID-5' */
                         ret = g_strdup_printf (_("%s Drive"), level_str);
                 } else {
+                        /* Translators: First %s is a RAID level, e.g. 'RAID-5'
+                         * second %s is a drive name
+                         */
                         ret = g_strdup_printf (_("%s (%s)"), name, level_str);
                 }
 
                 g_free (level_str);
 
         } else if (drive->priv->device != NULL) {
+                /* Translators: First %s is a device file such as /dev/sda4
+                 * second %s is the state of the device
+                 */
                 ret = g_strdup_printf (_("RAID device %s (%s)"),
                                        gdu_device_get_device_file (drive->priv->device),
                                        gdu_device_linux_md_get_state (drive->priv->device));
@@ -509,6 +516,7 @@ gdu_linux_md_drive_get_name (GduPresentable *presentable)
         } else {
                 g_warn_if_fail (drive->priv->device_file != NULL);
 
+                /* Translators: %s is a device file such as /dev/sda4 */
                 ret = g_strdup_printf (_("RAID device %s"), drive->priv->device_file);
         }
 
diff --git a/src/gdu/gdu-util.c b/src/gdu/gdu-util.c
index 8935df3..c0c1925 100644
--- a/src/gdu/gdu-util.c
+++ b/src/gdu/gdu-util.c
@@ -62,7 +62,7 @@ get_pow2_size (guint64 size)
         else
                 digits = 0;
 
-        str = g_strdup_printf (_("%.*f %s"), digits, displayed_size, unit);
+        str = g_strdup_printf ("%.*f %s", digits, displayed_size, unit);
 
         return str;
 }
@@ -91,7 +91,7 @@ get_pow10_size (guint64 size)
         else
                 digits = 0;
 
-        str = g_strdup_printf (_("%.*f %s"), digits, displayed_size, unit);
+        str = g_strdup_printf ("%.*f %s", digits, displayed_size, unit);
 
         return str;
 }
@@ -105,12 +105,19 @@ gdu_util_get_size_for_display (guint64 size, gboolean long_string)
         if (long_string) {
                 char *pow2_str;
                 char *pow10_str;
+                char *size_str;
 
                 pow2_str = get_pow2_size (size);
                 pow10_str = get_pow10_size (size);
+                size_str = g_strdup_printf ("%'" G_GINT64_FORMAT, size);
 
-                str = g_strdup_printf (_("%s / %s / %'" G_GINT64_FORMAT " bytes"), pow10_str, pow2_str, size);
+                /* Translators: The first %s is the size in power-of-10 units, e.g. 100 KB
+                 * the second %s is the size in power-of-2 units, e.g. 20 MiB
+                 * the third %s is the size as a number
+                 */
+                str = g_strdup_printf (_("%s / %s / %s bytes"), pow10_str, pow2_str, size_str);
 
+                g_free (size_str);
                 g_free (pow10_str);
                 g_free (pow2_str);
         } else {
@@ -138,18 +145,22 @@ gdu_util_get_fstype_for_display (const char *fstype, const char *fsversion, gboo
 
                 if (strcmp (fsversion, "FAT12") == 0) {
                         if (long_string) {
+                                /* Translators: FAT is a filesystem type */
                                 s = g_strdup (_("FAT (12-bit version)"));
                         } else {
+                                /* Translators: FAT is a filesystem type */
                                 s = g_strdup (_("FAT"));
                         }
                 } else if (strcmp (fsversion, "FAT16") == 0) {
                         if (long_string) {
+                                /* Translators: FAT is a filesystem type */
                                 s = g_strdup (_("FAT (16-bit version)"));
                         } else {
                                 s = g_strdup (_("FAT"));
                         }
                 } else if (strcmp (fsversion, "FAT32") == 0) {
                         if (long_string) {
+                                /* Translators: FAT is a filesystem type */
                                 s = g_strdup (_("FAT (32-bit version)"));
                         } else {
                                 s = g_strdup (_("FAT"));
@@ -164,20 +175,24 @@ gdu_util_get_fstype_for_display (const char *fstype, const char *fsversion, gboo
         } else if (strcmp (fstype, "ntfs") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: NTFS is a filesystem type */
                                 s = g_strdup_printf (_("NTFS (version %s)"), fsversion);
                         else
+                                /* Translators: NTFS is a filesystem type */
                                 s = g_strdup_printf (_("NTFS"));
                 } else {
                         s = g_strdup (_("NTFS"));
                 }
         } else if (strcmp (fstype, "hfs") == 0) {
                 if (long_string) {
+                        /* Translators: HFS is a filesystem type */
                         s = g_strdup (_("HFS"));
                 } else {
                         s = g_strdup (_("HFS"));
                 }
         } else if (strcmp (fstype, "hfsplus") == 0) {
                 if (long_string) {
+                        /* Translators: HFS+ is a filesystem type */
                         s = g_strdup (_("HFS+"));
                 } else {
                         s = g_strdup (_("HFS+"));
@@ -186,69 +201,90 @@ gdu_util_get_fstype_for_display (const char *fstype, const char *fsversion, gboo
                 if (long_string) {
                         s = g_strdup (_("Linux Unified Key Setup"));
                 } else {
+                        /* Translators: LUKS is 'Linux Unified Key Setup', a disk encryption format */
                         s = g_strdup (_("LUKS"));
                 }
         } else if (strcmp (fstype, "ext2") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: Ext2 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext2 (version %s)"), fsversion);
                         else
+                                /* Translators: Ext2 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext2"));
                 } else {
+                        /* Translators: Ext2 is a filesystem type */
                         s = g_strdup (_("ext2"));
                 }
         } else if (strcmp (fstype, "ext3") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: Ext3 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext3 (version %s)"), fsversion);
                         else
+                                /* Translators: Ext3 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext3"));
                 } else {
+                        /* Translators: Ext3 is a filesystem type */
                         s = g_strdup (_("ext3"));
                 }
         } else if (strcmp (fstype, "jbd") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: 'Journal' refers to a filesystem technology here, see 'journaling filesystems' */
                                 s = g_strdup_printf (_("Journal for Linux ext3 (version %s)"), fsversion);
                         else
+                                /* Translators: 'Journal' refers to a filesystem technology here, see 'journaling filesystems' */
                                 s = g_strdup_printf (_("Journal for Linux ext3"));
                 } else {
+                        /* Translators: jbd is a filesystem type */
                         s = g_strdup (_("jbd"));
                 }
         } else if (strcmp (fstype, "ext4") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: ext4 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext4 (version %s)"), fsversion);
                         else
+                                /* Translators: ext4 is a filesystem type */
                                 s = g_strdup_printf (_("Linux Ext4"));
                 } else {
+                        /* Translators: Ext4 is a filesystem type */
                         s = g_strdup (_("ext4"));
                 }
         } else if (strcmp (fstype, "xfs") == 0) {
                 if (long_string) {
                         if (strlen (fsversion) > 0)
+                                /* Translators: xfs is a filesystem type */
                                 s = g_strdup_printf (_("Linux XFS (version %s)"), fsversion);
                         else
+                                /* Translators: xfs is a filesystem type */
                                 s = g_strdup_printf (_("Linux XFS"));
                 } else {
+                        /* Translators: xfs is a filesystem type */
                         s = g_strdup (_("xfs"));
                 }
         } else if (strcmp (fstype, "iso9660") == 0) {
                 if (long_string) {
+                        /* Translators: iso9660 is a filesystem type */
                         s = g_strdup (_("ISO 9660"));
                 } else {
+                        /* Translators: iso9660 is a filesystem type */
                         s = g_strdup (_("iso9660"));
                 }
         } else if (strcmp (fstype, "udf") == 0) {
                 if (long_string) {
+                        /* Translators: udf is a filesystem type */
                         s = g_strdup (_("Universal Disk Format"));
                 } else {
+                        /* Translators: udf is a filesystem type */
                         s = g_strdup (_("udf"));
                 }
         } else if (strcmp (fstype, "swap") == 0) {
                 if (long_string) {
                         s = g_strdup (_("Swap Space"));
                 } else {
+                        /* Translators: filesystem type for swap space */
                         s = g_strdup (_("swap"));
                 }
         } else if (strcmp (fstype, "LVM2_member") == 0) {
@@ -258,6 +294,7 @@ gdu_util_get_fstype_for_display (const char *fstype, const char *fsversion, gboo
                         else
                                 s = g_strdup_printf (_("LVM2 Physical Volume"));
                 } else {
+                        /* Translators: short name for LVM2 Physical Volume */
                         s = g_strdup (_("lvm2_pv"));
                 }
 
@@ -268,6 +305,7 @@ gdu_util_get_fstype_for_display (const char *fstype, const char *fsversion, gboo
                         else
                                 s = g_strdup_printf (_("RAID Component"));
                 } else {
+                        /* Translators: short name for 'RAID Component' */
                         s = g_strdup (_("raid"));
                 }
         } else {
@@ -439,6 +477,9 @@ gdu_util_get_desc_for_part_type (const char *scheme, const char *type)
                         return g_strdup (part_type[n].name);
         }
 
+        /* Translators: Shown for unknown partition types.
+         * %s is the partition type name
+         */
         return g_strdup_printf (_("Unknown (%s)"), type);
 }
 
@@ -733,34 +774,48 @@ gdu_util_get_connection_for_display (const char *connection_interface, guint64 c
         name = NULL;
         if (connection_interface != NULL) {
                 if (strcmp (connection_interface, "ata_serial") == 0) {
+                        /* Translators: interface name for serial ATA disks */
                         name = _("SATA");
                 } else if (strcmp (connection_interface, "ata_serial_esata") == 0) {
+                        /* Translators: interface name for serial ATA disks */
                         name = _("eSATA");
                 } else if (strcmp (connection_interface, "ata_parallel") == 0) {
+                        /* Translators: interface name for parallel ATA disks */
                         name = _("PATA");
                 } else if (g_str_has_prefix (connection_interface, "ata")) {
+                        /* Translators: interface name for ATA disks */
                         name = _("ATA");
                 } else if (g_str_has_prefix (connection_interface, "scsi")) {
+                        /* Translators: interface name for SCSI disks */
                         name = _("SCSI");
                 } else if (strcmp (connection_interface, "usb") == 0) {
+                        /* Translators: interface name for USB disks */
                         name = _("USB");
                 } else if (strcmp (connection_interface, "firewire") == 0) {
+                        /* Translators: interface name for firewire disks */
                         name = _("Firewire");
                 } else if (strcmp (connection_interface, "sdio") == 0) {
+                        /* Translators: interface name for SDIO disks */
                         name = _("SDIO");
                 } else if (strcmp (connection_interface, "virtual") == 0) {
+                        /* Translators: interface name for virtual disks */
                         name = _("Virtual");
                 }
         }
 
         if (name == NULL)
-                name = _("Unknown");
+                /* Translators: name shown for unknown disk connection interfaces */
+                name = C_("connection name", "Unknown");
 
         if (connection_speed > 0) {
                 char *speed;
 
                 speed = gdu_util_get_speed_for_display (connection_speed);
-                result = g_strdup_printf ("%s at %s", name, speed);
+                /* Translators: Connection with speed information.
+                 * First %s is the connection name, like 'SATA' or 'USB'
+                 * second %s is the speed, like '2 Mbit/s'
+                 */
+                result = g_strdup_printf (_("%s at %s"), name, speed);
                 g_free (speed);
         } else {
                 result = g_strdup (name);
@@ -777,19 +832,19 @@ gdu_linux_md_get_raid_level_for_display (const gchar *linux_md_raid_level)
         gchar *ret;
 
         if (strcmp (linux_md_raid_level, "raid0") == 0) {
-                ret = g_strdup (_("RAID-0"));
+                ret = g_strdup (C_("RAID level", "RAID-0"));
         } else if (strcmp (linux_md_raid_level, "raid1") == 0) {
-                ret = g_strdup (_("RAID-1"));
+                ret = g_strdup (C_("RAID level", "RAID-1"));
         } else if (strcmp (linux_md_raid_level, "raid4") == 0) {
-                ret = g_strdup (_("RAID-4"));
+                ret = g_strdup (C_("RAID level", "RAID-4"));
         } else if (strcmp (linux_md_raid_level, "raid5") == 0) {
-                ret = g_strdup (_("RAID-5"));
+                ret = g_strdup (C_("RAID level", "RAID-5"));
         } else if (strcmp (linux_md_raid_level, "raid6") == 0) {
-                ret = g_strdup (_("RAID-6"));
+                ret = g_strdup (C_("RAID level", "RAID-6"));
         } else if (strcmp (linux_md_raid_level, "raid10") == 0) {
-                ret = g_strdup (_("RAID-10"));
+                ret = g_strdup (C_("RAID level", "RAID-10"));
         } else if (strcmp (linux_md_raid_level, "linear") == 0) {
-                ret = g_strdup (_("JBOD"));
+                ret = g_strdup (C_("RAID level", "JBOD"));
         } else {
                 ret = g_strdup (linux_md_raid_level);
         }
diff --git a/src/gdu/gdu-volume-hole.c b/src/gdu/gdu-volume-hole.c
index 6d77fca..d94db02 100644
--- a/src/gdu/gdu-volume-hole.c
+++ b/src/gdu/gdu-volume-hole.c
@@ -144,6 +144,9 @@ gdu_volume_hole_get_name (GduPresentable *presentable)
         char *strsize;
 
         strsize = gdu_util_get_size_for_display (volume_hole->priv->size, FALSE);
+        /* Translators: label for an unallocated space on a disk
+         * %s is the size, formatted like '45 GB'
+         */
         result = g_strdup_printf (_("%s Unallocated"), strsize);
         g_free (strsize);
 
diff --git a/src/gdu/gdu-volume.c b/src/gdu/gdu-volume.c
index 14fca87..6e91d22 100644
--- a/src/gdu/gdu-volume.c
+++ b/src/gdu/gdu-volume.c
@@ -270,12 +270,18 @@ gdu_volume_get_name (GduPresentable *presentable)
         }
 
         if (is_extended_partition) {
+                /* Translators: Label for an extended partition
+                 * %s is the size, formatted like '45 GB'
+                 */
                 result = g_strdup_printf (_("%s Extended"), strsize);
         } else if ((usage != NULL && strcmp (usage, "filesystem") == 0) &&
                    (label != NULL && strlen (label) > 0)) {
                 result = g_strdup (label);
         } else if (usage != NULL) {
                 if (strcmp (usage, "crypto") == 0) {
+                        /* Translators: Label for an extended partition
+                         * %s is the size, formatted like '45 GB'
+                         */
                         result = g_strdup_printf (_("%s Encrypted"), strsize);
                 } else if (gdu_device_is_optical_disc (volume->priv->device)) {
                         for (n = 0; disc_data[n].disc_type != NULL; n++) {
@@ -289,11 +295,20 @@ gdu_volume_get_name (GduPresentable *presentable)
                                 result = g_strdup (_("Optical Disc"));
                         }
                 } else if (strcmp (usage, "filesystem") == 0) {
+                        /* Translators: Label for a partition with a filesystem
+                         * %s is the size, formatted like '45 GB'
+                         */
                         result = g_strdup_printf (_("%s Filesystem"), strsize);
                 } else if (strcmp (usage, "partitiontable") == 0) {
+                        /* Translators: Label for a partition table
+                         * %s is the size, formatted like '45 GB'
+                         */
                         result = g_strdup_printf (_("%s Partition Table"), strsize);
                 } else if (strcmp (usage, "raid") == 0) {
                         if (strcmp (type, "LVM2_member") == 0) {
+                                /* Translators: Label for a LVM volume
+                                * %s is the size, formatted like '45 GB'
+                                */
                                 result = g_strdup_printf (_("%s LVM2 Physical Volume"), strsize);
                         } else {
                                 const gchar *array_name;
@@ -306,12 +321,21 @@ gdu_volume_get_name (GduPresentable *presentable)
                                 if (level != NULL && strlen (level) > 0)
                                         level_str = gdu_linux_md_get_raid_level_for_display (level);
                                 else
-                                        level_str = g_strdup (_("RAID"));
+                                        /* Translators: Used if no specific RAID level could be determined */
+                                        level_str = g_strdup (C_("RAID level", "RAID"));
 
                                 if (array_name != NULL && strlen (array_name) > 0) {
-                                        /* RAID component; the label is the array name */
+                                        /* Translators: label for a RAID component
+                                         * First %s is the size, formatted like '45 GB'
+                                         * second %s is the RAID level string, e.g 'RAID-5'
+                                         * third %s is the name of the array
+                                         */
                                         result = g_strdup_printf (_("%s %s (%s)"), strsize, level_str, array_name);
                                 } else {
+                                        /* Translators: label for a RAID component
+                                         * First %s is the size, formatted like '45 GB'
+                                         * second %s is the RAID level string, e.g 'RAID-5'
+                                         */
                                         result = g_strdup_printf (_("%s %s"), strsize, level_str);
                                 }
 
@@ -319,15 +343,27 @@ gdu_volume_get_name (GduPresentable *presentable)
                         }
                 } else if (strcmp (usage, "other") == 0) {
                         if (strcmp (type, "swap") == 0) {
+                                /* Translators: label for a swap partition
+                                 * %s is the size, formatted like '45 GB'
+                                 */
                                 result = g_strdup_printf (_("%s Swap Space"), strsize);
                         } else {
+                                /* Translators: label for a data partition
+                                 * %s is the size, formatted like '45 GB'
+                                 */
                                 result = g_strdup_printf (_("%s Data"), strsize);
                         }
                 } else if (strcmp (usage, "") == 0) {
+                        /* Translators: label for a volume of unrecognized use
+                         * %s is the size, formatted like '45 GB'
+                         */
                         result = g_strdup_printf (_("%s Unrecognized"), strsize);
                 }
         } else {
                 if (gdu_device_is_partition (volume->priv->device)) {
+                        /* Translators: label for a partition
+                         * %s is the size, formatted like '45 GB'
+                         */
                         result = g_strdup_printf (_("%s Partition"), strsize);
                 } else {
                         result = g_strdup_printf (_("%s Partition"), strsize);
diff --git a/src/nautilus-extension/nautilus-gdu.c b/src/nautilus-extension/nautilus-gdu.c
index 09e131c..8f69bda 100644
--- a/src/nautilus-extension/nautilus-gdu.c
+++ b/src/nautilus-extension/nautilus-gdu.c
@@ -221,6 +221,7 @@ nautilus_gdu_get_file_items (NautilusMenuProvider *provider,
                 goto out;
 
         item = nautilus_menu_item_new ("NautilusGdu::format",
+                                       /* Translators: this is a verb */
                                        _("_Format..."),
                                        _("Create new filesystem on the selected device"),
                                        "nautilus-gdu");
diff --git a/src/palimpsest/gdu-section-health.c b/src/palimpsest/gdu-section-health.c
index e45410e..ad4fc0c 100644
--- a/src/palimpsest/gdu-section-health.c
+++ b/src/palimpsest/gdu-section-health.c
@@ -65,7 +65,10 @@ pretty_to_string (guint64 pretty_value, GduAtaSmartAttributeUnit pretty_unit)
                 } else if (pretty_value > 1000) {
                         ret = g_strdup_printf (_("%.3g secs"), pretty_value / 1000.0);
                 } else {
-                        ret = g_strdup_printf (_("%" G_GUINT64_FORMAT " msec"), pretty_value);
+                        char *str;
+			str = g_strdup_printf ("%" G_GUINT64_FORMAT, pretty_value);
+                        ret = g_strdup_printf (_("%s msec"), str);
+                        g_free (str);
                 }
                 break;
 
@@ -294,6 +297,7 @@ smart_data_set (GduSectionHealth *section)
                 s = g_strconcat ("<span foreground='red'><b>",
                                  C_("ATA SMART test result", "FAILED"),
                                  "</b></span> ",
+                                 /* Translators: this is a detail that is appended to the test result, like 'FAILED (Electrical)' */
                                  C_("ATA SMART test result", "(Electrical)"),
                                  NULL);
                 break;
@@ -301,6 +305,7 @@ smart_data_set (GduSectionHealth *section)
                 s = g_strconcat ("<span foreground='red'><b>",
                                  C_("ATA SMART test result", "FAILED"),
                                  "</b></span> ",
+                                 /* Translators: this is a detail that is appended to the test result, like 'FAILED (Servo)' */
                                  C_("ATA SMART test result", "(Servo)"),
                                  NULL);
                 break;
@@ -308,6 +313,7 @@ smart_data_set (GduSectionHealth *section)
                 s = g_strconcat ("<span foreground='red'><b>",
                                  C_("ATA SMART test result", "FAILED"),
                                  "</b></span> ",
+                                 /* Translators: this is a detail that is appended to the test result, like 'FAILED (Read)' */
                                  C_("ATA SMART test result", "(Read)"),
                                  NULL);
                 break;
@@ -315,6 +321,7 @@ smart_data_set (GduSectionHealth *section)
                 s = g_strconcat ("<span foreground='red'><b>",
                                  C_("ATA SMART test result", "FAILED"),
                                  "</b></span> ",
+                                 /* Translators: this is a detail that is appended to the test result, like 'FAILED (Suspected of having handled damage)' */
                                  C_("ATA SMART test result", "(Suspected of having handled damage)"),
                                  NULL);
                 break;
@@ -605,6 +612,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;
+                /* Translators: %g is a numeric temperature value */
                 s = g_strdup_printf (C_("ATA SMART graph label", "%g\302\260"), ceil (val));
 
                 cairo_text_extents_t te;
@@ -678,23 +686,34 @@ expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer user_d
                 if (age == 0) {
                         s = g_strdup_printf (C_("ATA SMART graph label", "now"));
                 } else if (age < 3600) {
+                        /* Translators: %d is a number of minutes */
                         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)
+                                /* Translators: %d is a number of hours */
                                 s = g_strdup_printf (C_("ATA SMART graph label", "%dh"), h);
                         else
+                                /* Translators: first %d is a number of hours, second %d is a number of minutes */
                                 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)
+                                /* Translators: %d is a number of days */
                                 s = g_strdup_printf (C_("ATA SMART graph label", "%dd"), d);
                         else if (m == 0)
+                                /* Translators: first %d is a number of days,
+                                 * second %d is a number of hours
+                                 */
                                 s = g_strdup_printf (C_("ATA SMART graph label", "%dd %dh"), d, h);
                         else
+                                /* Translators: first %d is a number of days,
+                                 * second %d is a number of hours
+                                 * third %d is a  number of minutes
+                                 */
                                 s = g_strdup_printf (C_("ATA SMART graph label", "%dd %dh %dm"), d, h, m);
                 }
 
@@ -1138,17 +1157,29 @@ on_details_clicked (GtkButton *button,
                 }
 
                 if (gdu_ata_smart_attribute_get_online (a)) {
+                        /* Translators: how often the attribute is updated
+                         * 'online' means 'every time data is collected'
+                         */ 
                         updates_str = _("Online");
                         tips_updates_str = _("Every time data is collected.");
                 } else {
+                        /* Translators: how often the attribute is updated
+                         * 'offline' means 'only when performing a self-test'
+                         */ 
                         updates_str = _("Offline");
                         tips_updates_str = _("Only when performing a self-test.");
                 }
 
                 if (gdu_ata_smart_attribute_get_prefailure (a)) {
+                        /* Translators: what a failure means
+                         * 'pre-fail' means 'sign of imminent disk failure'
+                         */ 
                         type_str = _("Pre-fail");
                         tips_type_str = _("Failure is a sign of imminent disk failure.");
                 } else {
+                        /* Translators: what a failure means
+                         * 'old-age' means 'sign of old age'
+                         */ 
                         type_str = _("Old-age");
                         tips_type_str = _("Failure is a sign of old age.");
                 }
@@ -1156,7 +1187,9 @@ on_details_clicked (GtkButton *button,
                 tooltip_str = g_strdup_printf ("<b>%s</b> %s\n"
                                                "<b>%s</b> %s\n"
                                                "<b>%s</b> %s",
+                                               /* Translators: 'type' means 'type of failure' here */
                                                _("Type:"), tips_type_str,
+                                               /* Translators: 'updates' refers to online/offline here */
                                                _("Updates:"), tips_updates_str,
                                                _("Description:"), desc_str);
 
@@ -1183,7 +1216,7 @@ on_details_clicked (GtkButton *button,
                                                                           icon_height,
                                                                           GTK_ICON_LOOKUP_GENERIC_FALLBACK,
                                                                           NULL);
-                                status_str = g_strdup (_("N/A"));
+                                status_str = g_strdup (C_("SMART Attribute status", "N/A"));
                 } else {
                         if (is_good) {
                                 status_pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
@@ -1191,7 +1224,7 @@ on_details_clicked (GtkButton *button,
                                                                           icon_height,
                                                                           GTK_ICON_LOOKUP_GENERIC_FALLBACK,
                                                                           NULL);
-                                status_str = g_strdup (_("OK"));
+                                status_str = g_strdup (C_("SMART Attribute status", "OK"));
                         } else {
                                 status_pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                                                           "gdu-smart-failing",
@@ -1199,7 +1232,7 @@ on_details_clicked (GtkButton *button,
                                                                           GTK_ICON_LOOKUP_GENERIC_FALLBACK,
                                                                           NULL);
                                 status_str = g_strconcat ("<span foreground='red'><b>",
-                                                          _("FAILING"),
+                                                          C_("SMART Attribute status", "FAILING"),
                                                           "</b></span>",
                                                           NULL);
                         }
@@ -1456,6 +1489,7 @@ gdu_section_health_init (GduSectionHealth *section)
         section->priv = G_TYPE_INSTANCE_GET_PRIVATE (section, GDU_TYPE_SECTION_HEALTH, GduSectionHealthPrivate);
 
         label = gtk_label_new (NULL);
+        /* Translators: section heading, referring to disk health */
         s = g_strconcat ("<b>", _("Health"), "</b>", NULL);
         gtk_label_set_markup (GTK_LABEL (label), s);
         g_free (s);
diff --git a/src/palimpsest/gdu-section-linux-md-drive.c b/src/palimpsest/gdu-section-linux-md-drive.c
index e032ea3..b85d71b 100644
--- a/src/palimpsest/gdu-section-linux-md-drive.c
+++ b/src/palimpsest/gdu-section-linux-md-drive.c
@@ -692,26 +692,30 @@ update (GduSectionLinuxMdDrive *section)
         raid_size = gdu_presentable_get_size (presentable);
 
         if (strcmp (level, "raid0") == 0) {
-                level_str = g_strdup (_("Striped (RAID-0)"));
+                level_str = g_strdup (C_("RAID component type", "Striped (RAID-0)"));
         } else if (strcmp (level, "raid1") == 0) {
-                level_str = g_strdup (_("Mirrored (RAID-1)"));
+                level_str = g_strdup (C_("RAID component type", "Mirrored (RAID-1)"));
         } else if (strcmp (level, "raid4") == 0) {
-                level_str = g_strdup (_("RAID-4"));
+                level_str = g_strdup (C_("RAID component type", "RAID-4"));
         } else if (strcmp (level, "raid5") == 0) {
-                level_str = g_strdup (_("RAID-5"));
+                level_str = g_strdup (C_("RAID component type", "RAID-5"));
         } else if (strcmp (level, "raid6") == 0) {
-                level_str = g_strdup (_("RAID-6"));
+                level_str = g_strdup (C_("RAID component type", "RAID-6"));
         } else if (strcmp (level, "linear") == 0) {
-                level_str = g_strdup (_("Linear (Just a Bunch Of Disks)"));
+                level_str = g_strdup (C_("RAID component type", "Linear (Just a Bunch Of Disks)"));
         } else {
                 level_str = g_strdup (level);
         }
 
         s = gdu_util_get_size_for_display (component_size, FALSE);
         if (strcmp (level, "linear") == 0) {
-                components_str = g_strdup_printf (_("%d Components"), num_raid_devices);
+                /* Translators: %d is the number of components in the RAID */
+                components_str = g_strdup_printf (ngettext ("%d Component", "%d Components", num_raid_devices), num_raid_devices);
         } else {
-                components_str = g_strdup_printf (_("%d Components (%s each)"), num_raid_devices, s);
+                /* Translators: %d is the number of components in the RAID,
+                 * %s is the size of each component, formatted like '45 GB'
+                 */
+                components_str = g_strdup_printf (ngettext ("%d Component (%s)", "%d Components (%s each)", num_raid_devices), num_raid_devices, s);
         }
         g_free (s);
  
@@ -1091,12 +1095,14 @@ gdu_section_linux_md_drive_init (GduSectionLinuxMdDrive *section)
         gtk_widget_set_tooltip_text (button, _("Adds a new component to the running RAID array. Use this "
                                                "when replacing a failed component or adding a hot spare."));
 
+        /* Translators: this is a verb, as in 'check for consistency' */
         button = gtk_button_new_with_mnemonic (_("Chec_k"));
         gtk_container_add (GTK_CONTAINER (button_box), button);
         section->priv->add_button = button;
         g_signal_connect (button, "clicked", G_CALLBACK (on_check_clicked), section);
         gtk_widget_set_tooltip_text (button, _("Starts checking the RAID array for redundancy"));
 
+        /* Translators: this is a verb, as in 'repair this RAID array' */
         button = gtk_button_new_with_mnemonic (_("_Repair"));
         gtk_container_add (GTK_CONTAINER (button_box), button);
         section->priv->add_button = button;
diff --git a/src/palimpsest/gdu-section-partition.c b/src/palimpsest/gdu-section-partition.c
index b8b33a1..2be2f75 100644
--- a/src/palimpsest/gdu-section-partition.c
+++ b/src/palimpsest/gdu-section-partition.c
@@ -569,6 +569,7 @@ gdu_section_partition_init (GduSectionPartition *section)
         /* partition type */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+        /* Translators: 'Type' means partition type here */
         gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("Ty_pe:"));
         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-unallocated.c b/src/palimpsest/gdu-section-unallocated.c
index 008d9f7..a924fa3 100644
--- a/src/palimpsest/gdu-section-unallocated.c
+++ b/src/palimpsest/gdu-section-unallocated.c
@@ -647,6 +647,7 @@ gdu_section_unallocated_init (GduSectionUnallocated *section)
 
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+        /* Translators: unit label for a control that determines partition size in megabytes */
         gtk_label_set_markup (GTK_LABEL (label), _("MB"));
         gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
@@ -658,6 +659,7 @@ gdu_section_unallocated_init (GduSectionUnallocated *section)
         /* _file system_ label */
         label = gtk_label_new (NULL);
         gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
+        /* Translators: 'label' means filesystem label here */
         gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), _("_Label:"));
         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-shell.c b/src/palimpsest/gdu-shell.c
index 89d0047..2c782b4 100644
--- a/src/palimpsest/gdu-shell.c
+++ b/src/palimpsest/gdu-shell.c
@@ -224,10 +224,12 @@ details_update (GduShell *shell)
                                         } else if (strcmp (scheme, "gpt") == 0) {
                                                 s = g_strdup (_("GUID Partition Table"));
                                         } else {
+                                                /* Translators: 'scheme' refers to a partition table format here, like 'mbr' or 'gpt' */
                                                 s = g_strdup_printf (_("Unknown Scheme: %s"), scheme);
                                         }
 
                                         g_ptr_array_add (details,
+                                                         /* Translators: %s is the name of the partition table format, like 'Master Boot Record' */
                                                          g_strdup_printf (_("Partitioned Media (%s)"), s));
 
                                         g_free (s);
@@ -276,12 +278,14 @@ details_update (GduShell *shell)
                                 gdu_device_drive_get_connection_interface (device),
                                 gdu_device_drive_get_connection_speed (device));
                         g_ptr_array_add (details,
+                                         /* Translators: %s is the name of a connection, like 'USB at 2 MB/s' */
                                          g_strdup_printf (_("Connected via %s"), s));
                         g_free (s);
                 }
 
                 if (device_file != NULL) {
                         if (gdu_device_is_read_only (device)) {
+                        /* Translators: %s is the device file */
                         g_ptr_array_add (details,
                                          g_strdup_printf (_("%s (Read Only)"), device_file));
                         } else {
@@ -304,6 +308,7 @@ details_update (GduShell *shell)
                                 gdu_device_id_get_type (device),
                                 gdu_device_id_get_version (device),
                                 TRUE);
+                        /* Translators: %s is the filesystem name */
                         g_ptr_array_add (details,
                                          g_strdup_printf (_("%s File System"), fsname));
                         g_free (fsname);



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