2014-07-11 5:10 GMT+09:00 Jeff King <peff@xxxxxxxx>: > On Wed, Jul 09, 2014 at 11:46:14AM +0100, Peter Krefting wrote: > >> Jeff King: >> >> >I did some digging, and I think the public API is setlocale with a NULL >> >parameter, like: >> > >> > printf("%s\n", setlocale(LC_MESSAGES, NULL)); >> > >> >That still will end up like "en_US.UTF-8", though; >> >> And it only yields the highest-priority language, I think. > > I wasn't clear on whether POSIX locale variables actually supported > multiple languages with priorities. I have never seen that, though the > original commit message indicated that LANGUAGE=x:y was a thing (I > wasn't sure if that was a made-up thing, or something that libc actually > supported). > >> Debian's website has a nice writeup on the subject: >> http://www.debian.org/intro/cn#howtoset > > That seems to be about language settings in browsers, which are a much > richer set of preferences than POSIX locales (I think). > > It would not be wrong to have that level of configuration for git's http > requests, but I do not know if it is worth the effort. Mapping the > user's gettext locale into an accept-language header seems like a > straightforward way to communicate to the other side what the client is > using to show errors (so that errors coming from the server can match). Thanks for you advice. I'll write a path to use both of setlocale(LC_MESSAGES, NULL) and getenv("LANGUAGE") to get the user's preferred language. setlocale(LC_MESSAGES, NULL) is quite nice way because it takes LC_ALL, LC_MESSAGES and LANG into account, but not LANGUAGE. I think we should take also LANGUAGE into account as gettext does. [1] [1]: http://www.gnu.org/software/gettext/manual/gettext.html#Locale-Environment-Variables -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html