scheme@(guile-user)> (setlocale LC_ALL "does-not-exist") "C" list gdt 8 ~ > cat l.c #include #include #include #include #include int main (int argc, char *argv[]) { char *s; s = setlocale (LC_ALL, "C"); assert (s != NULL); printf ("DAY_1: %s\n", nl_langinfo (DAY_1)); s = setlocale (LC_ALL, "en_GB"); assert (s != NULL); printf ("DAY_1: %s\n", nl_langinfo (DAY_1)); return 0; } list gdt 9 ~ > cc -o l l.c list gdt 10 ~ > ./l DAY_1: Sun DAY_1: Sun But if I run this on a linux box I get gdt 78 ~ > ./l DAY_1: Sunday l: l.c:20: main: Assertion `s != ((void *)0)' failed. Aborted I'm afraid I don't really understand i18n details.