--- a/libgweather/gweather-info.c
+++ b/libgweather/gweather-info.c
@@ -70,21 +70,36 @@
 void
 _gweather_gettext_init (void)
 {
+    gchar *gnomelocaledir;
+
+#ifdef G_OS_WIN32
+    gchar *dir;
+
+    dir = g_win32_get_package_installation_directory_of_module (NULL);
+    gnomelocaledir = g_build_filename (dir, "share", "locale", NULL);
+
+    g_free (dir);
+#else
+    gnomelocaledir = g_strdup (GNOMELOCALEDIR);
+#endif
+
     static gsize gweather_gettext_initialized = FALSE;
 
     if (G_UNLIKELY (g_once_init_enter (&gweather_gettext_initialized))) {
-        bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
+        bindtextdomain (GETTEXT_PACKAGE, gnomelocaledir);
 #ifdef HAVE_BIND_TEXTDOMAIN_CODESET
         bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif
 
-        bindtextdomain (LOCATIONS_GETTEXT_PACKAGE, GNOMELOCALEDIR);
+        bindtextdomain (LOCATIONS_GETTEXT_PACKAGE, gnomelocaledir);
 #ifdef HAVE_BIND_TEXTDOMAIN_CODESET
         bind_textdomain_codeset (LOCATIONS_GETTEXT_PACKAGE, "UTF-8");
 #endif
 
         g_once_init_leave (&gweather_gettext_initialized, TRUE);
     }
+
+    g_free (gnomelocaledir);
 }
 
 static void
