[geocode-glib] lib: Better name/description for street numbers



commit 0a4b0356901c2475c6370bac127a4da398faea72
Author: Zeeshan Ali (Khattak) <zeeshanak gnome org>
Date:   Mon Aug 5 16:21:34 2013 +0200

    lib: Better name/description for street numbers
    
    Currently we'd just show the house number in results for street number
    searches, e.g Search for "Otavantie 2" would result in places named "2".
    This patch fixes this issue by combining house number and street name.
    
    Since format is not the same in all locales, we allow the translators to
    format the string.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=705518

 configure.ac                   |    1 +
 geocode-glib/geocode-reverse.c |   21 +++++++++++++++++----
 po/POTFILES.in                 |    1 +
 3 files changed, 19 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index c8c57a4..1690a03 100644
--- a/configure.ac
+++ b/configure.ac
@@ -54,6 +54,7 @@ GETTEXT_PACKAGE=geocode-glib
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
                                        [The name of the gettext domain])
+AM_GLIB_DEFINE_LOCALEDIR(GEOCODE_GLIB_LOCALEDIR)
 
 dnl gtk-doc checks
 GTK_DOC_CHECK([1.13],[--flavour no-tmpl])
diff --git a/geocode-glib/geocode-reverse.c b/geocode-glib/geocode-reverse.c
index a31c7cc..165914d 100644
--- a/geocode-glib/geocode-reverse.c
+++ b/geocode-glib/geocode-reverse.c
@@ -26,6 +26,8 @@
 #include <gio/gio.h>
 #include <json-glib/json-glib.h>
 #include <libsoup/soup.h>
+#include <config.h>
+#include <glib/gi18n-lib.h>
 #include <geocode-glib/geocode-glib.h>
 #include <geocode-glib/geocode-error.h>
 #include <geocode-glib/geocode-reverse.h>
@@ -63,6 +65,9 @@ geocode_reverse_class_init (GeocodeReverseClass *klass)
 {
        GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
+        bindtextdomain (GETTEXT_PACKAGE, GEOCODE_GLIB_LOCALEDIR);
+        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+
        gobject_class->finalize = geocode_reverse_finalize;
 
        g_type_class_add_private (klass, sizeof (GeocodeReversePrivate));
@@ -110,6 +115,7 @@ _geocode_read_nominatim_attributes (JsonReader *reader,
        char **members;
        guint i;
         gboolean is_address;
+        const char *house_number = NULL;
 
        is_address = (g_strcmp0 (json_reader_get_member_name (reader), "address") == 0);
 
@@ -128,10 +134,17 @@ _geocode_read_nominatim_attributes (JsonReader *reader,
                         g_hash_table_insert (ht, g_strdup (members[i]), g_strdup (value));
 
                         if (i == 0 && is_address) {
-                                /* Since Nominatim doesn't give us a short name,
-                                 * we use the first component of address as name.
-                                 */
-                                g_hash_table_insert (ht, g_strdup ("name"), g_strdup (value));
+                               if (g_strcmp0 (members[i], "house_number") != 0)
+                                        /* Since Nominatim doesn't give us a short name,
+                                         * we use the first component of address as name.
+                                         */
+                                        g_hash_table_insert (ht, g_strdup ("name"), g_strdup (value));
+                                else
+                                        house_number = value;
+                        } else if (house_number != NULL && g_strcmp0 (members[i], "road") == 0) {
+                                /* Translators comment: number + street (e.g 221 Baker Street) */
+                                char *name = g_strdup_printf (_("%s %s"), house_number, value);
+                                g_hash_table_insert (ht, g_strdup ("name"), name);
                         }
                 }
 
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e69de29..b710a5c 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -0,0 +1 @@
+geocode-glib/geocode-reverse.c


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