Re: [PATCH] http: Add Accept-Language header if possible
From: Yi, EungJun <hidden>
Date: 2016-06-15 23:01:52
2014-07-11 5:10 GMT+09:00 Jeff King [off-list ref]:
On Wed, Jul 09, 2014 at 11:46:14AM +0100, Peter Krefting wrote:quoted
Jeff King:quoted
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).quoted
Debian's website has a nice writeup on the subject: http://www.debian.org/intro/cn#howtosetThat 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