From 5d02c0c8366127655de02c14514b9e39fba6172a Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 2 Apr 2010 10:44:57 -0500 Subject: Adding a private variable for the translation domain and grabbing it from the keyfile. --- libindicator/indicator-desktop-shortcuts.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c index e86a6ab..a370c0f 100644 --- a/libindicator/indicator-desktop-shortcuts.c +++ b/libindicator/indicator-desktop-shortcuts.c @@ -39,6 +39,7 @@ struct _IndicatorDesktopShortcutsPrivate { GKeyFile * keyfile; gchar * identity; GArray * nicks; + gchar * domain; }; enum { @@ -100,6 +101,7 @@ indicator_desktop_shortcuts_init (IndicatorDesktopShortcuts *self) priv->keyfile = NULL; priv->identity = NULL; + priv->domain = NULL; priv->nicks = g_array_new(TRUE, TRUE, sizeof(gchar *)); return; @@ -131,6 +133,11 @@ indicator_desktop_shortcuts_finalize (GObject *object) priv->identity = NULL; } + if (priv->domain != NULL) { + g_free(priv->domain); + priv->domain = NULL; + } + if (priv->nicks != NULL) { gint i; for (i = 0; i < priv->nicks->len; i++) { @@ -227,6 +234,15 @@ parse_keyfile (IndicatorDesktopShortcuts * ids) return; } + /* Check to see if there is a custom translation domain that + we should take into account. */ + if (g_key_file_has_key(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-Ubuntu-Gettext-Domain", NULL)) { + if (priv->domain != NULL) { + g_free(priv->domain); + } + priv->domain = g_key_file_get_string(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-Ubuntu-Gettext-Domain", NULL); + } + /* Okay, we've got everything we need. Let's get it on! */ gint i; gsize num_nicks = 0; -- cgit v1.2.3 From 20e03af6d3675ca8dab591ad6b9cd9ab18fc7e37 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 2 Apr 2010 10:49:33 -0500 Subject: If we don't have a domain just use the locale function, otherwise we need to use that domain to get the translation. --- libindicator/indicator-desktop-shortcuts.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c index a370c0f..504d023 100644 --- a/libindicator/indicator-desktop-shortcuts.c +++ b/libindicator/indicator-desktop-shortcuts.c @@ -427,11 +427,21 @@ indicator_desktop_shortcuts_nick_get_name (IndicatorDesktopShortcuts * ids, cons return NULL; } - gchar * name = g_key_file_get_locale_string(priv->keyfile, - groupheader, - G_KEY_FILE_DESKTOP_KEY_NAME, - NULL, - NULL); + gchar * name = NULL; + if (priv->domain == NULL) { + name = g_key_file_get_locale_string(priv->keyfile, + groupheader, + G_KEY_FILE_DESKTOP_KEY_NAME, + NULL, + NULL); + } else { + gchar * tempname = g_key_file_get_string(priv->keyfile, + groupheader, + G_KEY_FILE_DESKTOP_KEY_NAME, + NULL); + name = g_strdup(g_dgettext(priv->domain, tempname)); + g_free(tempname); + } g_free(groupheader); -- cgit v1.2.3 From 49c5444af4042b1084c00009f5ff5a65996b300b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 2 Apr 2010 10:52:01 -0500 Subject: releasing version 0.3.6-0ubuntu1~ppa2~shortcutdomain1 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1166d59..b349303 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ -libindicator (0.3.6-0ubuntu1~ppa2~shortcutdomain1) UNRELEASED; urgency=low +libindicator (0.3.6-0ubuntu1~ppa2~shortcutdomain1) lucid; urgency=low * Upstream merge * Use the domain in desktop files for shortcuts - -- Ted Gould Fri, 02 Apr 2010 10:50:28 -0500 + -- Ted Gould Fri, 02 Apr 2010 10:51:59 -0500 libindicator (0.3.6-0ubuntu1~ppa1) lucid; urgency=low -- cgit v1.2.3 From e900b4c7a8fc08f73533d8a49777ebbd109028dd Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 5 Apr 2010 12:46:10 -0500 Subject: Make it so that we check the GNOME-Gettext-Domain as well --- libindicator/indicator-desktop-shortcuts.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c index 504d023..161350b 100644 --- a/libindicator/indicator-desktop-shortcuts.c +++ b/libindicator/indicator-desktop-shortcuts.c @@ -234,12 +234,22 @@ parse_keyfile (IndicatorDesktopShortcuts * ids) return; } + /* Remove a previous translation domain if we had one + from a perviously parsed file. */ + if (priv->domain != NULL) { + g_free(priv->domain); + priv->domain = NULL; + } + /* Check to see if there is a custom translation domain that we should take into account. */ - if (g_key_file_has_key(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-Ubuntu-Gettext-Domain", NULL)) { - if (priv->domain != NULL) { - g_free(priv->domain); - } + if (priv->domain == NULL && + g_key_file_has_key(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-GNOME-Gettext-Domain", NULL)) { + priv->domain = g_key_file_get_string(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-GNOME-Gettext-Domain", NULL); + } + + if (priv->domain == NULL && + g_key_file_has_key(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-Ubuntu-Gettext-Domain", NULL)) { priv->domain = g_key_file_get_string(priv->keyfile, G_KEY_FILE_DESKTOP_GROUP, "X-Ubuntu-Gettext-Domain", NULL); } -- cgit v1.2.3 From 1200f51e90901eb120484ae3bb0a3912efb7bff4 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 5 Apr 2010 15:20:46 -0500 Subject: Switching to only use the g_dgettext version if the locale_string function doesn't change the string from the normal lookup (and we have a domain to look in). --- libindicator/indicator-desktop-shortcuts.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c index 161350b..cfd8eef 100644 --- a/libindicator/indicator-desktop-shortcuts.c +++ b/libindicator/indicator-desktop-shortcuts.c @@ -438,22 +438,25 @@ indicator_desktop_shortcuts_nick_get_name (IndicatorDesktopShortcuts * ids, cons } gchar * name = NULL; - if (priv->domain == NULL) { - name = g_key_file_get_locale_string(priv->keyfile, + gchar * keyvalue = g_key_file_get_string(priv->keyfile, + groupheader, + G_KEY_FILE_DESKTOP_KEY_NAME, + NULL); + gchar * localeval = g_key_file_get_locale_string(priv->keyfile, groupheader, G_KEY_FILE_DESKTOP_KEY_NAME, NULL, NULL); + g_free(groupheader); + + if (priv->domain != NULL && g_strcmp0(keyvalue, localeval) == 0) { + name = g_strdup(g_dgettext(priv->domain, keyvalue)); + g_free(localeval); } else { - gchar * tempname = g_key_file_get_string(priv->keyfile, - groupheader, - G_KEY_FILE_DESKTOP_KEY_NAME, - NULL); - name = g_strdup(g_dgettext(priv->domain, tempname)); - g_free(tempname); + name = localeval; } - g_free(groupheader); + g_free(keyvalue); return name; } -- cgit v1.2.3 From e0f5fb7d0f6a89f79cab7d26f2d12ef710fc223b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Mon, 5 Apr 2010 15:37:15 -0500 Subject: releasing version 0.3.6-0ubuntu1~ppa2~shortcutdomain2 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index c1efeaa..22dd56d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ -libindicator (0.3.6-0ubuntu1~ppa2~shortcutdomain2) UNRELEASED; urgency=low +libindicator (0.3.6-0ubuntu1~ppa2~shortcutdomain2) lucid; urgency=low * Upstream merge * Chnages requested by pitt - -- Ted Gould Mon, 05 Apr 2010 15:21:06 -0500 + -- Ted Gould Mon, 05 Apr 2010 15:37:13 -0500 libindicator (0.3.6-0ubuntu1~ppa2~shortcutdomain1) lucid; urgency=low -- cgit v1.2.3 From 22de79822416a3396e0087003acaa8f730122305 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Tue, 6 Apr 2010 15:55:45 -0500 Subject: Typo --- libindicator/indicator-desktop-shortcuts.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libindicator/indicator-desktop-shortcuts.c b/libindicator/indicator-desktop-shortcuts.c index cfd8eef..b04b482 100644 --- a/libindicator/indicator-desktop-shortcuts.c +++ b/libindicator/indicator-desktop-shortcuts.c @@ -235,7 +235,7 @@ parse_keyfile (IndicatorDesktopShortcuts * ids) } /* Remove a previous translation domain if we had one - from a perviously parsed file. */ + from a previously parsed file. */ if (priv->domain != NULL) { g_free(priv->domain); priv->domain = NULL; -- cgit v1.2.3