summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pango/pango-language.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/pango/pango-language.c b/pango/pango-language.c
index 1247ae72..725559fa 100644
--- a/pango/pango-language.c
+++ b/pango/pango-language.c
@@ -205,7 +205,26 @@ _pango_get_lc_ctype (void)
CFArrayRef languages;
CFStringRef language;
gchar ret[16];
+ gchar *p;
+
+ /* Take the same approach as done for Windows above. First we check
+ * if somebody tried to set the locale through environment variables.
+ */
+ p = getenv ("LC_ALL");
+ if (p != NULL)
+ return g_strdup (p);
+ p = getenv ("LC_CTYPE");
+ if (p != NULL)
+ return g_strdup (p);
+
+ p = getenv ("LANG");
+ if (p != NULL)
+ return g_strdup (p);
+
+ /* If the environment variables are not set, determine the locale
+ * through the platform-native API.
+ */
languages = CFLocaleCopyPreferredLanguages ();
language = CFArrayGetValueAtIndex (languages, 0);