reassign 345639 libc6 retitle 345639 nl_langinfo(YESEXPR) ignores LANGUAGE, no apparent workaround thanks
[Claudio Nieder] > $ env | grep -e LC -e LANG > LANG=en_GB.UTF-8 > LANGUAGE=de_CH:de_DE:de:en_GB:en In this setup, a prompt "Is this information correct? [y/N]" does not work. - The prompt is localised with gettext, which uses LANGUAGE, so it's in German. The German translator correctly renders it as "[j/N]". - Parsing the response uses nl_langinfo(YESEXPR), but this uses LC_MESSAGES and ignores LANGUAGE, so it assumes en_GB. Thus the app checks the response against /^[yY]/. What is the app (adduser, in this case) supposed to do in this case? There seems to be no way to ask nl_langinfo for an appropriate string to display in place of [y/N]. Tollef and I thought YESSTR and NOSTR might work, but the locales I checked do not define those. (Chopping those down to a single character would be problematic anyway, given the existence of multibyte character sets.) I appreciate that this seems to be an API deficiency with regard to handling LANGUAGE consistently, and that makes it a hard problem, but I also don't see how it can be worked around at the application level. Except perhaps by explicitly undefining LANGUAGE before calling setlocale() at the beginning of the program? Peter
signature.asc
Description: Digital signature

