- PangoLanguage *ln;
- PangoFontMetrics *metrics = pango_context_get_metrics(context, out->pango_font_description, ln = pango_language_from_string("en_US"));
- out->pango_ascent = pango_font_metrics_get_ascent(metrics);
- out->pango_descent = pango_font_metrics_get_descent(metrics);
- pango_font_metrics_unref(metrics);
+ /* based on gtkmain.c gtk_get_default_language() */
+ {
+ gchar *locale, *p;
+ PangoFontMetrics *metrics;
+
+ locale = g_strdup(setlocale(LC_CTYPE, NULL));
+ if ((p = strchr(locale, '.')))
+ *p = '\0';
+ if ((p = strchr(locale, '@')))
+ *p = '\0';
+ metrics =
+ pango_context_get_metrics(context, out->pango_font_description,
+ pango_language_from_string(locale));
+ out->pango_ascent = pango_font_metrics_get_ascent(metrics);
+ out->pango_descent = pango_font_metrics_get_descent(metrics);
+ g_free(locale);
+ pango_font_metrics_unref(metrics);
+ }