Add support for explicit setting culture info for build tools and internal .net messages and resources #4736
Labels
area-Infrastructure-coreclr
backlog-cleanup-candidate
An inactive issue that has been marked for automated closure.
no-recent-activity
Projects
Milestone
After posting #4735 i have suggestion about logging and whole build output
For now
build clean
and all tools it calls uses currnet system locale to prepare output, for example in my case csc uses RU-ru lang error messagesIt's not much good :
a) if it's used from console - it's hardly depend on valid encoding (where is real risk to catch ?????? and so on)
b) Translation is not very good - some messages are much more readable in English
c) It's very hard to find correspond information from google because most common places (github, stackoverflow and so on) use English
d) It's not much good in CI with build machines with distinct locale - if you try collect and diff logs as artifacts
So it's good idea to allow explicitly set OUTPUT locale for whole stack:
a) For .NET add Process.SystemCulture and Thread.SystemCulture - it is CurrentCulture by default but can be another
b) Same static info at unmanaged part of core
c) remap resource resolution for internal messages to this culture
d) setup SystemCulture by default from env NET_SYSTEM_CULTURE if set
e) add
--system-culture
for csc.exe (and other compilers), msbuid.exe and build(.cmd|.sh) scriptsf) add
<SystemCulture>En-en</SystemCulture>
to MSbuild - should supply it to--system-culture
for compilersSo if i call
build clean --system-culture EN-us
or simplybuild clean --system-culture En
- i have english output while my current culture still RU-ru.And for another hand - if someone from US call
build clean --system-culture RU-ru
(for example for debug proposes) - he would see russian variantThe text was updated successfully, but these errors were encountered: