[ghex] Figure out locale dir at runtime on Windows



commit 622012121cb505cdc702962534b930b8d8ca6541
Author: Kalev Lember <kalevlember gmail com>
Date:   Sun Apr 1 22:34:50 2012 +0300

    Figure out locale dir at runtime on Windows

 src/main.c |   39 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 38 insertions(+), 1 deletions(-)
---
diff --git a/src/main.c b/src/main.c
index 8d30e70..050896d 100644
--- a/src/main.c
+++ b/src/main.c
@@ -38,13 +38,50 @@ static GOptionEntry options[] = {
         { NULL }
 };
 
+#ifdef G_OS_WIN32
+static gchar *
+_ghex_win32_locale_dir (void)
+{
+    gchar *install_dir;
+    gchar *locale_dir = NULL;
+    gchar *utf8_locale_dir;
+
+    install_dir = g_win32_get_package_installation_directory_of_module (NULL);
+
+    if (install_dir) {
+        utf8_locale_dir = g_build_filename (install_dir, "share", "locale", NULL);
+        locale_dir = g_win32_locale_filename_from_utf8 (utf8_locale_dir);
+
+        g_free (install_dir);
+        g_free (utf8_locale_dir);
+    }
+
+    return locale_dir;
+}
+#endif
+
+static gchar *
+ghex_locale_dir (void)
+{
+#ifdef G_OS_WIN32
+    return _ghex_win32_locale_dir ();
+#else
+    return g_strdup (LOCALEDIR);
+#endif
+}
+
+
 int
 main(int argc, char **argv)
 {
 	GtkWidget *win;
 	GError *error = NULL;
+	gchar *locale_dir;
+
+	locale_dir = ghex_locale_dir ();
+	bindtextdomain (GETTEXT_PACKAGE, locale_dir);
+	g_free (locale_dir);
 
-	bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
 	bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 	textdomain (GETTEXT_PACKAGE);
 



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