You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 messages
It'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) scripts
f) add <SystemCulture>En-en</SystemCulture> to MSbuild - should supply it to --system-culture for compilers
So if i call build clean --system-culture EN-us or simply build 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 variant
The text was updated successfully, but these errors were encountered:
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: