[Development] RFC: Defaulting to or enforcing UTF-8 locales on Unix systems
Kevin Kofler
kevin.kofler at chello.at
Sat Nov 2 18:16:36 CET 2019
Thiago Macieira wrote:
> Is your shell configured for German or for English? Try setting your
> locale to German and then see how long it will take for you to have to
> override when posting a question or an answer.
Unlike you, to get messages in English for human reading, I have been using
en_US.UTF-8 rather than C for years (long before C.UTF-8 became a thing)
exactly because of that.
> Except for the LC_ALL=C case for overriding the user's locale so that one
> can get messages and formatting in machine-parseable format. The normal
> case and this one probably account for over 99% of all scenarios.
For machine readability, there is probably a reason for picking C rather
than en_US.UTF-8 or even C.UTF-8, e.g., to get ASCII quotes rather than the
fancy Unicode quotes used under en_US.UTF-8.
>> > How about making the resetting opt-out, instead of opt-in?
>> > QT_NO_OVERRIDE_LC_CTYPE?
>>
>> I was more thinking of a runtime option. Like
>>
>> QCoreApplication::setPropagateOurChoices(true)
>
> I think a runtime option like that belongs in QProcessEnvironment.
A true runtime option actually belongs in an environment variable, not in a
method that has to be called by the compiled code. (In fact, that's what I
would have expected your proposed QT_NO_OVERRIDE_LC_CTYPE to be, but
apparently you were thinking of a preprocessor define.)
Whether to propagate the locale to child processes is really a decision that
can and should be left to the user at runtime rather than compiling it
either into the application (as in André's proposal) or even into Qt itself
(as in your proposal).
Kevin Kofler
More information about the Development
mailing list