+#ifdef G_OS_WIN32
+
+static HMODULE evdocument_dll = NULL;
+static gchar *locale_dir = NULL;
+
+#ifdef DLL_EXPORT
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+{
+ if (fdwReason == DLL_PROCESS_ATTACH)
+ evdocument_dll = hinstDLL;
+
+ return TRUE;
+}
+#endif
+
+static const gchar *
+_ev_win32_get_locale_dir (HMODULE module)
+{
+ if (locale_dir)
+ return locale_dir;
+
+ gchar *install_dir = NULL, *utf8_locale_dir;
+ gchar *retval = NULL;
+
+ if (evdocument_dll != NULL)
+ install_dir =
+ g_win32_get_package_installation_directory_of_module (module);
+
+ 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);
+ }
+
+ if (!locale_dir)
+ locale_dir = g_strdup ("");
+}
+
+#endif
+
+const gchar *
+ev_get_locale_dir (void)
+{
+#ifdef G_OS_WIN32
+ return _ev_win32_get_locale_dir (evdocument_dll);
+#else
+ return GNOMELOCALEDIR;
+#endif
+}
+