Thank you for the detailed answer. I'll use this information to talk to xfce 
devs and the maintainer if they could do anything to keep a consistent 
experience in OpenBSD. 

El June 25, 2021 5:28:00 PM UTC, Ingo Schwarze <schwa...@usta.de> escribió:
>Hi,
>
>Jan Stary wrote on Tue, Jun 22, 2021 at 11:24:15AM +0200:
>> On Jun 20 18:58:31, ffuen...@texto-plano.xyz wrote:
>
>>> I speak Spanish and thus I use a locale called es_CL.UTF-8. XFCE is
>fine
>>> with it. However, my date is expressed directly as it comes from
>date(1).
>>> This is confirmed by their docs
>>> https://docs.xfce.org/xfce/xfce4-panel/4.16/clock so how do I make
>date to
>>> work with my language.
>>> 
>>> This is my locale:
>>> 
>>> LANG=es_CL.UTF-8
>>> LC_COLLATE="es_CL.UTF-8"
>>> LC_CTYPE="es_CL.UTF-8"
>>> LC_MONETARY="es_CL.UTF-8"
>>> LC_NUMERIC="es_CL.UTF-8"
>>> LC_TIME="es_CL.UTF-8"
>>> LC_MESSAGES="es_CL.UTF-8"
>>> LC_ALL=es_CL.UTF-8
>
>> man locale
>> 
>>         Programs in the OpenBSD base system ignore the locale except
>>         for the character encoding, and it is not recommended to
>>         use any of these variables except that the following
>>         non-default setting is supported as an option:
>> 
>>      export LC_CTYPE=en_US.UTF-8
>> 
>> OpenBSD's date(1) ignores your locale setting.
>
>That's the correct answer, and there are no plans to change that in
>the future.
>
>The reason is that we prioritize simplicity and maintainablity
>of the C library, and consequently correctness and security,
>over localization of base system facilities.  On top of that,
>even if you do not take the horrible complication of the library
>code that LC_* support would imply into account, LC_* also poses
>some security risks from the user perspective, in particular in
>system administration and maintenance contexts.  Predicatbility
>of output, and consistent parsing of input, is more valuable for
>low-level work than localization.
>
>Perspectives may vary, but my personal opinion is that adding all
>those LC_* variables to POSIX was a mistake.  The C library is
>not a reasonable place to handle higly specialized and highly
>complicated topics like localization.  They belong into
>specialized programs like typesettung software, UI libraries
>and the like, not into a general-purpose operating system.
>
>In general, we try to follow POSIX because standardization and
>portability have significant advantages.  But there are limits.
>If standards requirements are too bad, we may decide to ignore
>them in some (rare) cases.  Hence, on OpenBSD, you can rely on
>predictable output from strftime(3) and on predictable parsing
>by strptime(3).
>
>All this is mostly documented, for example:
>
>  STRFTIME(3)                Library Functions Manual
>  [...]
>  CAVEATS
>     On systems other than OpenBSD, the LC_TIME locale(1) category can
>     cause erratic output; see CAVEATS in setlocale(3) for details.
>
>  SETLOCALE(3)               Library Functions Manual
>  [...]
>  CAVEATS
>     On systems other than OpenBSD, calling setlocale() or uselocale(3)
>     with a category other than LC_CTYPE can cause erratic behaviour
>     of many library functions.  For security reasons, make sure
>     that portable programs only use LC_CTYPE.
>
>     For example, the following functions may be affected.  The
>     list is probably incomplete.  For example, additional library
>     functions may be impacted if they directly or indirectly call
>     affected functions, or if they attempt to imitate aspects of
>     their behaviour.  Functions that are not standardized may be
>     affected too.
>
>     LC_COLLATE
>             glob(3), strcoll(3), strxfrm(3), wcscoll(3), wcsxfrm(3),
>             and the functions documented in regexec(3)
>
>     LC_MESSAGES
>             catgets(3), catopen(3), nl_langinfo(3), perror(3),
>             psignal(3), strerror(3), strsignal(3), and the functions
>             documented in err(3)
>
>     LC_MONETARY
>             localeconv(3), nl_langinfo(3), strfmon()
>
>     LC_NUMERIC
>             atof(3), localeconv(3), nl_langinfo(3), strfmon(), and
>             the functions documented in printf(3), scanf(3),
>             strtod(3), wcstod(3), wprintf(3), wscanf(3).  This
>             category is particularly dangerous because it can cause
>             bugs in the parsing and formatting of numbers, for
>             example failures to recognize or properly write decimal
>             points.
>
>     LC_TIME
>             getdate(), nl_langinfo(3), strftime(3), strptime(3).
>             Similarly, this is prone to causing bugs in the parsing
>             and formatting of date strings.
>
>     LC_CTYPE
>             On systems other than OpenBSD, this category may affect
>             the behaviour of additional functions, for example:
>             btowc(3), isalnum(3), isalpha(3), isblank(3), iscntrl(3),
>             isdigit(3), isgraph(3), islower(3), isprint(3),
>             ispunct(3), isspace(3), isupper(3), isxdigit(3),
>             mbsinit(3), strcasecmp(3), strcoll(3), strxfrm(3),
>             tolower(3), toupper(3), vis(3), wcscoll(3), wcsxfrm(3),
>             wctob(3)
>
>Yours,
>  Ingo

-- 
Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi 
brevedad.

Reply via email to