From 8858c3aaa0f1df899b533c61459f4f37e8928442 Mon Sep 17 00:00:00 2001 From: Carlos Soriano Date: Tue, 15 Dec 2015 15:56:46 +0100 Subject: gtkplacesviewrow: plural form for available space We were not supporting plural form of the available space, which is a problem in some languages. However in this case is kind of a difficult matter, since we use a formatted string from glib with g_format_size. To fix it, use the same behavior as g_format_size to decide when it should be used a plural form or not. https://bugzilla.gnome.org/show_bug.cgi?id=759491 --- gtk/gtkplacesviewrow.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'gtk/gtkplacesviewrow.c') diff --git a/gtk/gtkplacesviewrow.c b/gtk/gtkplacesviewrow.c index d797c18e8a..a742ff902d 100644 --- a/gtk/gtkplacesviewrow.c +++ b/gtk/gtkplacesviewrow.c @@ -89,6 +89,7 @@ measure_available_space_finished (GObject *object, gchar *formatted_free_size; gchar *formatted_total_size; gchar *label; + guint plural_form; error = NULL; @@ -120,8 +121,16 @@ measure_available_space_finished (GObject *object, formatted_free_size = g_format_size (free_space); formatted_total_size = g_format_size (total_space); - /* Translators: respectively, free and total space of the drive */ - label = g_strdup_printf (_("%s / %s available"), formatted_free_size, formatted_total_size); + + /* read g_format_size code in glib for further understanding */ + plural_form = free_space < 1000 ? free_space : free_space % 1000 + 1000; + + /* Translators: respectively, free and total space of the drive. The plural form + * should be based on the free space available. + * i.e. 1 GB / 24 GB available. + */ + label = g_strdup_printf (ngettext ("%s / %s available", "%s / %s available", plural_form), + formatted_free_size, formatted_total_size); gtk_label_set_label (row->available_space_label, label); -- cgit v1.2.1