Run-time configuration options for globalization

Invariant mode

  • Determines whether a .NET Core app runs in globalization-invariant mode without access to culture-specific data and behavior.
  • If you omit this setting, the app runs with access to cultural data. This is equivalent to setting the value to false.
  • For more information, see .NET Core globalization invariant mode.
Setting name Values
runtimeconfig.json System.Globalization.Invariant false - access to cultural data
true - run in invariant mode
MSBuild property InvariantGlobalization false - access to cultural data
true - run in invariant mode
Environment variable DOTNET_SYSTEM_GLOBALIZATION_INVARIANT 0 - access to cultural data
1 - run in invariant mode

Examples

runtimeconfig.json file:

{
   "runtimeOptions": {
      "configProperties": {
         "System.Globalization.Invariant": true
      }
   }
}

Project file:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <InvariantGlobalization>true</InvariantGlobalization>
  </PropertyGroup>

</Project>

Era year ranges

Setting name Values
runtimeconfig.json Switch.System.Globalization.EnforceJapaneseEraYearRanges false - relaxed range checks
true - overflows cause an exception
Environment variable N/A N/A

Japanese date parsing

  • Determines whether a string that contains either "1" or "Gannen" as the year parses successfully or whether only "1" is supported.
  • If you omit this setting, strings that contain either "1" or "Gannen" as the year parse successfully. This is equivalent to setting the value to false.
  • For more information, see Represent dates in calendars with multiple eras.
Setting name Values
runtimeconfig.json Switch.System.Globalization.EnforceLegacyJapaneseDateParsing false - "Gannen" or "1" is supported
true - only "1" is supported
Environment variable N/A N/A

Japanese year format

  • Determines whether the first year of a Japanese calendar era is formatted as "Gannen" or as a number.
  • If you omit this setting, the first year is formatted as "Gannen". This is equivalent to setting the value to false.
  • For more information, see Represent dates in calendars with multiple eras.
Setting name Values
runtimeconfig.json Switch.System.Globalization.FormatJapaneseFirstYearAsANumber false - format as "Gannen"
true - format as number
Environment variable N/A N/A

NLS

  • Determines whether .NET uses National Language Support (NLS) or International Components for Unicode (ICU) globalization APIs for Windows apps. .NET 5.0 and later versions use ICU globalization APIs by default on Windows 10 May 2019 Update and later versions.
  • If you omit this setting, .NET uses ICU globalization APIs by default. This is equivalent to setting the value to false.
  • For more information, see Globalization APIs use ICU libraries on Windows.
Setting name Values Introduced
runtimeconfig.json System.Globalization.UseNls false - Use ICU globalization APIs
true - Use NLS globalization APIs
.NET 5.0
Environment variable DOTNET_SYSTEM_GLOBALIZATION_USENLS false - Use ICU globalization APIs
true - Use NLS globalization APIs
.NET 5.0