[brasero] Fix #584538 – Make time unit formatting completely translatable



commit 92976a2819a0b6b2bf0d42a4550fa29b38b6ea4f
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date:   Tue Jun 2 20:50:20 2009 +0200

    Fix #584538 â?? Make time unit formatting completely translatable
    Author: Claude Paroz
---
 libbrasero-media/brasero-units.c |   70 ++++++++++++++++++++++---------------
 1 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/libbrasero-media/brasero-units.c b/libbrasero-media/brasero-units.c
index 1cbdea8..3512723 100644
--- a/libbrasero-media/brasero-units.c
+++ b/libbrasero-media/brasero-units.c
@@ -43,6 +43,8 @@ brasero_units_get_time_string (guint64 time,
 			       gboolean round)
 {
 	gint64 second, minute, hour;
+	gchar *second_str, *minute_str, *hour_str;
+	gchar *time_str;
 
 	time /= 1000000000;
 	hour = time / 3600;
@@ -58,54 +60,66 @@ brasero_units_get_time_string (guint64 time,
 	else
 		second = time % 60;
 
+	minute_str = g_strdup_printf ("%02"G_GINT64_FORMAT, minute);
+	second_str = g_strdup_printf ("%02"G_GINT64_FORMAT, second);
+
 	if (hour) {
+		hour_str = g_strdup_printf ("%"G_GINT64_FORMAT, hour);
 		if (with_unit) {
-			if (hour && minute && second)
-				/* FIXME: mark these strings for translation? */
-				return g_strdup_printf ("%"G_GINT64_FORMAT" h %02"G_GINT64_FORMAT" min %02"G_GINT64_FORMAT,
-							 hour,
-							 minute,
-							 second);
-			else if (hour && minute)
-				return g_strdup_printf ("%" G_GINT64_FORMAT " h %02"G_GINT64_FORMAT,
-							 hour,
-							 minute);
+			if (second)
+				/* Translators: this is hour minute second like '2 h 14 min 25' */
+				time_str = g_strdup_printf (_("%s h %s min %s"),
+							    hour_str,
+							    minute_str,
+							    second_str);
+			else if (minute)
+				/* Translators: this is hour minute like '2 h 14' */
+				time_str = g_strdup_printf (_("%s h %s"),
+							    hour_str,
+							    minute_str);
 			else
-				return g_strdup_printf ("%"G_GINT64_FORMAT " h", hour);
+				/* Translators: this is hour like '2 h' */
+				time_str = g_strdup_printf (_("%s h"), hour_str);
 		}
-		else if (hour && minute && second)
-			return g_strdup_printf ("%"G_GINT64_FORMAT":%02"G_GINT64_FORMAT":%02"G_GINT64_FORMAT,
-						 hour,
-						 minute,
-						 second);
-		else if (hour && minute)
-			return g_strdup_printf ("%"G_GINT64_FORMAT":%02"G_GINT64_FORMAT, hour, minute);
-	}
+		else if (second)
+			/* Translators: this is 'hour:minute:second' like '2:14:25' */
+			time_str = g_strdup_printf (_("%s:%s:%s"),
+						    hour_str,
+						    minute_str,
+						    second_str);
+		else
+			/* Translators: this is 'hour:minute' or 'minute:second' */
+			time_str = g_strdup_printf (_("%s:%s"), hour_str, minute_str);
 
-	if (with_unit) {
+		g_free (hour_str);
+	}
+	else if (with_unit) {
 		if (!second)
-			/* Translators: %lli is a duration expressed in minutes
-			 * hence the "min" as unit. */
-			return g_strdup_printf (_("%"G_GINT64_FORMAT" min"), minute);
+			/* Translators: %s is a duration expressed in minutes */
+			time_str = g_strdup_printf (_("%s min"), minute_str);
 		else
-			/* Translators: the first %lli is the number of minutes
+			/* Translators: the first %s is the number of minutes
 			 * and the second one is the number of seconds.
 			 * The whole string expresses a duration */
-			return g_strdup_printf (_("%"G_GINT64_FORMAT":%02"G_GINT64_FORMAT" min"), minute, second);
+			time_str = g_strdup_printf (_("%s:%s min"), minute_str, second_str);
 	}
 	else
-		return g_strdup_printf ("%"G_GINT64_FORMAT":%02"G_GINT64_FORMAT, minute, second);
+		time_str = g_strdup_printf (_("%s:%s"), minute_str, second_str);
+
+	g_free (minute_str);
+	g_free (second_str);
+	return time_str;
 }
 
 
 gchar *
-brasero_units_get_time_string_from_size (gint64 size,
+brasero_units_get_time_string_from_size (gint64 bytes,
 					 gboolean with_unit,
 					 gboolean round)
 {
 	guint64 time = 0;
 
-	time = BRASERO_BYTES_TO_DURATION (size);
+	time = BRASERO_BYTES_TO_DURATION (bytes);
 	return brasero_units_get_time_string (time, with_unit, round);
 }
 



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