From 414ed574bc31f4bacd0e576ce8a147a621dec86d Mon Sep 17 00:00:00 2001 From: lenyturmel Date: Wed, 6 Oct 2021 17:36:29 +0200 Subject: [PATCH 1/7] [WIP] add localized unit names WORK IN PROGRESS (WIP) to manage the localization of unit names You can find tags "WIP LTU" in the code to see the changes - Add singular and plural names for LenghtUnit.Meter in the JSON file - Add properties SingularName & PluralName in Localization to be set a JSON parsing and to be get later - In QuantityJsonFilesParser, build the SingularName and PluralName using the prefixes in the method GetLocalizationForPrefixUnit - add TU UnitLocalizedNameTests to test the localization of unit names --- CodeGen/Generators/QuantityJsonFilesParser.cs | 10 +++--- CodeGen/JsonTypes/Localization.cs | 8 ++++- Common/UnitDefinitions/Length.json | 6 ++++ UnitsNet.Tests/UnitLocalizedNameTests.cs | 34 +++++++++++++++++++ 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 UnitsNet.Tests/UnitLocalizedNameTests.cs diff --git a/CodeGen/Generators/QuantityJsonFilesParser.cs b/CodeGen/Generators/QuantityJsonFilesParser.cs index bf0578c593..a766caa96e 100644 --- a/CodeGen/Generators/QuantityJsonFilesParser.cs +++ b/CodeGen/Generators/QuantityJsonFilesParser.cs @@ -1,4 +1,4 @@ -// Licensed under MIT No Attribution, see LICENSE file at the root. +// Licensed under MIT No Attribution, see LICENSE file at the root. // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; @@ -86,8 +86,6 @@ private static void AddPrefixUnits(Quantity quantity) unitsToAdd.Add(new Unit { - SingularName = $"{prefix}{unit.SingularName.ToCamelCase()}", // "Kilo" + "NewtonPerMeter" => "KilonewtonPerMeter" - PluralName = $"{prefix}{unit.PluralName.ToCamelCase()}", // "Kilo" + "NewtonsPerMeter" => "KilonewtonsPerMeter" BaseUnits = null, // Can we determine this somehow? FromBaseToUnitFunc = $"({unit.FromBaseToUnitFunc}) / {prefixInfo.Factor}", FromUnitToBaseFunc = $"({unit.FromUnitToBaseFunc}) * {prefixInfo.Factor}", @@ -112,6 +110,7 @@ private static Localization[] GetLocalizationForPrefixUnit(IEnumerable { + //specific abbreviations for prefixes (example: "kip/in³" for prefix "Kilo" of Density) if (loc.TryGetAbbreviationsForPrefix(prefixInfo.Prefix, out string[] unitAbbreviationsForPrefix)) { return new Localization @@ -126,10 +125,13 @@ private static Localization[] GetLocalizationForPrefixUnit(IEnumerable $"{prefix}{unitAbbreviation}").ToArray(); + //WIP LTU return new Localization { Culture = loc.Culture, - Abbreviations = unitAbbreviationsForPrefix + Abbreviations = unitAbbreviationsForPrefix, + SingularName = $"{prefix}.{loc.SingularName}", + PluralName = $"{prefix}.{loc.PluralName}" }; }).ToArray(); } diff --git a/CodeGen/JsonTypes/Localization.cs b/CodeGen/JsonTypes/Localization.cs index 79457e0f96..1d25693b56 100644 --- a/CodeGen/JsonTypes/Localization.cs +++ b/CodeGen/JsonTypes/Localization.cs @@ -1,4 +1,4 @@ -// Licensed under MIT No Attribution, see LICENSE file at the root. +// Licensed under MIT No Attribution, see LICENSE file at the root. // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; @@ -43,6 +43,7 @@ public bool TryGetAbbreviationsForPrefix(Prefix prefix, out string[] unitAbbrevi throw new NotSupportedException($"AbbreviationsForPrefixes.{prefix} must be a string or an array of strings, but was {value.Type}."); } } + // 0649 Field is never assigned to #pragma warning disable 0649 @@ -51,6 +52,11 @@ public bool TryGetAbbreviationsForPrefix(Prefix prefix, out string[] unitAbbrevi /// public string[] Abbreviations = Array.Empty(); + //WIP LTU + public string SingularName ; + //WIP LTU + public string PluralName ; + /// /// Explicit configuration of unit abbreviations for prefixes. /// This is typically used for languages or special unit abbreviations where you cannot simply prepend SI prefixes like diff --git a/Common/UnitDefinitions/Length.json b/Common/UnitDefinitions/Length.json index 7e17c888f6..f55a7aae17 100644 --- a/Common/UnitDefinitions/Length.json +++ b/Common/UnitDefinitions/Length.json @@ -24,6 +24,12 @@ "Culture": "ru-RU", "Abbreviations": [ "м" ] }, + { + "Culture": "fr-FR", + "Abbreviations": [ "м" ], + "SingularName": "Mètre", + "PluralName": "Mètres" + }, { "Culture": "zh-CN", "Abbreviations": [ "米" ] diff --git a/UnitsNet.Tests/UnitLocalizedNameTests.cs b/UnitsNet.Tests/UnitLocalizedNameTests.cs new file mode 100644 index 0000000000..b51edcac44 --- /dev/null +++ b/UnitsNet.Tests/UnitLocalizedNameTests.cs @@ -0,0 +1,34 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using System.Globalization; +using Xunit; +using Xunit.Abstractions; + +namespace UnitsNet.Tests +{ + public class UnitLocalizedNameTests + { + private readonly ITestOutputHelper _output; + private const string AmericanCultureName = "en-US"; + private const string FrenchCultureName = "fr-FR"; + + private static readonly IFormatProvider AmericanCulture = new CultureInfo(AmericanCultureName); + private static readonly IFormatProvider FrenchCulture = new CultureInfo(FrenchCultureName); + + public UnitLocalizedNameTests(ITestOutputHelper output) + { + _output = output; + } + + [Fact] + public void LengthToStringFormatting() + { + //WIP LTU : to working yet + //var exepected = "Mètre"; + //string actual = Length.GetSingularName(LengthUnit.Meter, FrenchCulture); + //Assert.Equal(exepected, actual); + } + } +} From b54f9b81e9bdde249850f0336722e9051f856f65 Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Thu, 7 Oct 2021 16:05:05 +0200 Subject: [PATCH 2/7] [WIP] add localized unit names FEAT: - add agin the Singular/PluralName properties in QuantityJsonFilesParser (mandatory to have default names) - Call to CodeGen for the generation of dynamic classes - Add classes UnitLocalizationCache and UnitValuetoStringLoopup to manage a cache of unit values and string representations - UnitAbbreviationCache now use UnitLocalizationCache as an helper of cache (public API has not been changed) FIX - TU UnitParserTests.Parse_AmbiguousUnitsThrowsException : force parsing unit with "en-US" culture (the TU may fail if the current UI thread has another culture, like "fr-FR") TU : - all are ok --- CodeGen/Generators/QuantityJsonFilesParser.cs | 2 + Common/UnitDefinitions/Length.json | 2 +- UnitsNet.Tests/UnitParserTests.cs | 2 +- .../GeneratedCode/UnitAbbreviationsCache.g.cs | 8 + UnitsNet/CustomCode/UnitAbbreviationsCache.cs | 191 ++--------- UnitsNet/CustomCode/UnitLocalizationCache.cs | 314 ++++++++++++++++++ UnitsNet/CustomCode/UnitParser.cs | 12 +- .../CustomCode/UnitValueToStringLookup.cs | 77 +++++ .../GeneratedCode/UnitAbbreviationsCache.g.cs | 8 + 9 files changed, 445 insertions(+), 171 deletions(-) create mode 100644 UnitsNet/CustomCode/UnitLocalizationCache.cs create mode 100644 UnitsNet/CustomCode/UnitValueToStringLookup.cs diff --git a/CodeGen/Generators/QuantityJsonFilesParser.cs b/CodeGen/Generators/QuantityJsonFilesParser.cs index a766caa96e..e94ab0f5ce 100644 --- a/CodeGen/Generators/QuantityJsonFilesParser.cs +++ b/CodeGen/Generators/QuantityJsonFilesParser.cs @@ -86,6 +86,8 @@ private static void AddPrefixUnits(Quantity quantity) unitsToAdd.Add(new Unit { + SingularName = $"{prefix}{unit.SingularName.ToCamelCase()}", // "Kilo" + "NewtonPerMeter" => "KilonewtonPerMeter" + PluralName = $"{prefix}{unit.PluralName.ToCamelCase()}", // "Kilo" + "NewtonsPerMeter" => "KilonewtonsPerMeter" BaseUnits = null, // Can we determine this somehow? FromBaseToUnitFunc = $"({unit.FromBaseToUnitFunc}) / {prefixInfo.Factor}", FromUnitToBaseFunc = $"({unit.FromUnitToBaseFunc}) * {prefixInfo.Factor}", diff --git a/Common/UnitDefinitions/Length.json b/Common/UnitDefinitions/Length.json index f55a7aae17..dce5629c1a 100644 --- a/Common/UnitDefinitions/Length.json +++ b/Common/UnitDefinitions/Length.json @@ -26,7 +26,7 @@ }, { "Culture": "fr-FR", - "Abbreviations": [ "м" ], + "Abbreviations": [ "m" ], "SingularName": "Mètre", "PluralName": "Mètres" }, diff --git a/UnitsNet.Tests/UnitParserTests.cs b/UnitsNet.Tests/UnitParserTests.cs index 08411f0a24..19f37795c8 100644 --- a/UnitsNet.Tests/UnitParserTests.cs +++ b/UnitsNet.Tests/UnitParserTests.cs @@ -104,7 +104,7 @@ public void Parse_CanParseWithWithspacesInUnit(string unitAbbreviation, Type uni public void Parse_AmbiguousUnitsThrowsException() { // Act 1 - var exception1 = Assert.Throws(() => UnitParser.Default.Parse("pt")); + var exception1 = Assert.Throws(() => UnitParser.Default.Parse("pt",new CultureInfo("en-US"))); // Act 2 var exception2 = Assert.Throws(() => Length.Parse("1 pt")); diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs index cedd8a0a84..3f5c589810 100644 --- a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs +++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs @@ -637,10 +637,12 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.AstronomicalUnit, new string[]{"au", "ua"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"cm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"см"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"cm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"厘米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Chain, new string[]{"ch"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"dm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"дм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"dm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"分米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPica, new string[]{"pica"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPoint, new string[]{"pt"}), @@ -651,6 +653,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.Hand, new string[]{"h", "hh"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"hm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"гм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"hm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"百米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"in", "\"", "″"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"дюйм"}), @@ -658,6 +661,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.KilolightYear, new string[]{"kly"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"km"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"км"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"km"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"千米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Kiloparsec, new string[]{"kpc"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.LightYear, new string[]{"ly"}), @@ -665,12 +669,14 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.Megaparsec, new string[]{"Mpc"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"m"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"м"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"m"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"µin"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"микродюйм"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"微英寸"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"µm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"мкм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"µm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"微米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"mil"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"мил"}), @@ -680,9 +686,11 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"英里"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"mm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"мм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"mm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"毫米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"nm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"нм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"nm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"纳米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"NM"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"мил"}), diff --git a/UnitsNet/CustomCode/UnitAbbreviationsCache.cs b/UnitsNet/CustomCode/UnitAbbreviationsCache.cs index a0b52ff101..dcf931c552 100644 --- a/UnitsNet/CustomCode/UnitAbbreviationsCache.cs +++ b/UnitsNet/CustomCode/UnitAbbreviationsCache.cs @@ -17,21 +17,12 @@ namespace UnitsNet /// /// Cache of the mapping between unit enum values and unit abbreviation strings for one or more cultures. /// A static instance is used internally for ToString() and Parse() of quantities and units. + /// + /// TODO It may be a good thing to remove all unesfull methods MapXXX from the public API. MapXXX should be only used for internal purpose of the cache /// public sealed partial class UnitAbbreviationsCache { - private readonly Dictionary _lookupsForCulture; - - /// - /// Fallback culture used by and - /// if no abbreviations are found with a given culture. - /// - /// - /// User wants to call or with Russian - /// culture, but no translation is defined, so we return the US English definition as a last resort. If it's not - /// defined there either, an exception is thrown. - /// - private static readonly CultureInfo FallbackCulture = new CultureInfo("en-US"); + private readonly UnitLocalizationCache _cache; /// /// The static instance used internally for ToString() and Parse() of quantities and units. @@ -43,9 +34,7 @@ public sealed partial class UnitAbbreviationsCache /// public UnitAbbreviationsCache() { - _lookupsForCulture = new Dictionary(); - - LoadGeneratedAbbreviations(); + _cache = new UnitLocalizationCache("abbreviation", GeneratedLocalizations); } static UnitAbbreviationsCache() @@ -53,14 +42,6 @@ static UnitAbbreviationsCache() Default = new UnitAbbreviationsCache(); } - private void LoadGeneratedAbbreviations() - { - foreach(var localization in GeneratedLocalizations) - { - var culture = new CultureInfo(localization.CultureName); - MapUnitToAbbreviation(localization.UnitType, localization.UnitValue, culture, localization.UnitAbbreviations); - } - } /// /// Adds one or more unit abbreviation for the given unit enum value. @@ -71,10 +52,8 @@ private void LoadGeneratedAbbreviations() /// Unit abbreviations to add. /// The type of unit enum. [PublicAPI] - public void MapUnitToAbbreviation(TUnitType unit, params string[] abbreviations) where TUnitType : Enum - { - MapUnitToAbbreviation(typeof(TUnitType), Convert.ToInt32(unit), CultureInfo.CurrentUICulture, abbreviations); - } + public void MapUnitToAbbreviation(TUnitType unit, params string[] abbreviations) where TUnitType : Enum => + _cache.MapUnitToStrings(unit, abbreviations); /// /// Adds a unit abbreviation for the given unit enum value and sets it as the default. @@ -84,10 +63,8 @@ public void MapUnitToAbbreviation(TUnitType unit, params string[] abb /// The unit enum value. /// Unit abbreviations to add as default. /// The type of unit enum. - public void MapUnitToDefaultAbbreviation(TUnitType unit, string abbreviation) where TUnitType : Enum - { - MapUnitToDefaultAbbreviation(typeof(TUnitType), Convert.ToInt32(unit), CultureInfo.CurrentUICulture, abbreviation); - } + public void MapUnitToDefaultAbbreviation(TUnitType unit, string abbreviation) where TUnitType : Enum => + _cache.MapUnitToDefaultString(unit, abbreviation); /// /// Adds one or more unit abbreviation for the given unit enum value. @@ -99,16 +76,8 @@ public void MapUnitToDefaultAbbreviation(TUnitType unit, string abbre /// Unit abbreviations to add. /// The type of unit enum. [PublicAPI] - public void MapUnitToAbbreviation(TUnitType unit, IFormatProvider formatProvider, params string[] abbreviations) where TUnitType : Enum - { - // Assuming TUnitType is an enum, this conversion is safe. Seems not possible to enforce this today. - // Src: http://stackoverflow.com/questions/908543/how-to-convert-from-system-enum-to-base-integer - // http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum - var unitValue = Convert.ToInt32(unit); - var unitType = typeof(TUnitType); - - MapUnitToAbbreviation(unitType, unitValue, formatProvider, abbreviations); - } + public void MapUnitToAbbreviation(TUnitType unit, IFormatProvider formatProvider, params string[] abbreviations) where TUnitType : Enum => + MapUnitToAbbreviation(unit, formatProvider, abbreviations); /// /// Adds a unit abbreviation for the given unit enum value and sets it as the default. @@ -120,16 +89,8 @@ public void MapUnitToAbbreviation(TUnitType unit, IFormatProvider for /// Unit abbreviation to add as default. /// The type of unit enum. [PublicAPI] - public void MapUnitToDefaultAbbreviation(TUnitType unit, IFormatProvider formatProvider, string abbreviation) where TUnitType : Enum - { - // Assuming TUnitType is an enum, this conversion is safe. Seems not possible to enforce this today. - // Src: http://stackoverflow.com/questions/908543/how-to-convert-from-system-enum-to-base-integer - // http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum - var unitValue = Convert.ToInt32(unit); - var unitType = typeof(TUnitType); - - MapUnitToDefaultAbbreviation(unitType, unitValue, formatProvider, abbreviation); - } + public void MapUnitToDefaultAbbreviation(TUnitType unit, IFormatProvider formatProvider, string abbreviation) where TUnitType : Enum => + _cache.MapUnitToDefaultString(unit, formatProvider, abbreviation); /// /// Adds one or more unit abbreviation for the given unit enum value. @@ -141,10 +102,8 @@ public void MapUnitToDefaultAbbreviation(TUnitType unit, IFormatProvi /// The format provider to use for lookup. Defaults to if null. /// Unit abbreviations to add. [PublicAPI] - public void MapUnitToAbbreviation(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] params string[] abbreviations) - { - PerformAbbreviationMapping(unitType, unitValue, formatProvider, false, abbreviations); - } + public void MapUnitToAbbreviation(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] params string[] abbreviations) => + _cache.MapUnitToStrings(unitType, unitValue, formatProvider, abbreviations); /// /// Adds a unit abbreviation for the given unit enum value and sets it as the default. @@ -156,32 +115,9 @@ public void MapUnitToAbbreviation(Type unitType, int unitValue, IFormatProvider /// The format provider to use for lookup. Defaults to if null. /// Unit abbreviation to add as default. [PublicAPI] - public void MapUnitToDefaultAbbreviation(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] string abbreviation) - { - PerformAbbreviationMapping(unitType, unitValue, formatProvider, true, abbreviation); - } - - private void PerformAbbreviationMapping(Type unitType, int unitValue, IFormatProvider formatProvider, bool setAsDefault, [NotNull] params string[] abbreviations) - { - if (!unitType.Wrap().IsEnum) - throw new ArgumentException("Must be an enum type.", nameof(unitType)); - - if (abbreviations == null) - throw new ArgumentNullException(nameof(abbreviations)); - - formatProvider = formatProvider ?? CultureInfo.CurrentUICulture; - - if (!_lookupsForCulture.TryGetValue(formatProvider, out var quantitiesForProvider)) - quantitiesForProvider = _lookupsForCulture[formatProvider] = new UnitTypeToLookup(); - - if (!quantitiesForProvider.TryGetValue(unitType, out var unitToAbbreviations)) - unitToAbbreviations = quantitiesForProvider[unitType] = new UnitValueAbbreviationLookup(); + public void MapUnitToDefaultAbbreviation(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] string abbreviation) => + _cache.MapUnitToDefaultString(unitType, unitValue, formatProvider, abbreviation); - foreach (var abbr in abbreviations) - { - unitToAbbreviations.Add(unitValue, abbr, setAsDefault); - } - } /// /// Gets the default abbreviation for a given unit. If a unit has more than one abbreviation defined, then it returns the first one. @@ -192,29 +128,8 @@ private void PerformAbbreviationMapping(Type unitType, int unitValue, IFormatPro /// The type of unit enum. /// The default unit abbreviation string. [PublicAPI] - public string GetDefaultAbbreviation(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum - { - var unitType = typeof(TUnitType); - - if(!TryGetUnitValueAbbreviationLookup(unitType, formatProvider, out var lookup)) - { - if(formatProvider != FallbackCulture) - return GetDefaultAbbreviation(unit, FallbackCulture); - else - throw new NotImplementedException($"No abbreviation is specified for {unitType.Name}.{unit}"); - } - - var abbreviations = lookup!.GetAbbreviationsForUnit(unit); - if(abbreviations.Count == 0) - { - if(formatProvider != FallbackCulture) - return GetDefaultAbbreviation(unit, FallbackCulture); - else - throw new NotImplementedException($"No abbreviation is specified for {unitType.Name}.{unit}"); - } - - return abbreviations.First(); - } + public string GetDefaultAbbreviation(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetDefaultString(unit, formatProvider); /// /// Gets the default abbreviation for a given unit type and its numeric enum value. @@ -226,27 +141,8 @@ public string GetDefaultAbbreviation(TUnitType unit, IFormatProvider? /// The format provider to use for lookup. Defaults to if null. /// The default unit abbreviation string. [PublicAPI] - public string GetDefaultAbbreviation(Type unitType, int unitValue, IFormatProvider? formatProvider = null) - { - if(!TryGetUnitValueAbbreviationLookup(unitType, formatProvider, out var lookup)) - { - if(formatProvider != FallbackCulture) - return GetDefaultAbbreviation(unitType, unitValue, FallbackCulture); - else - throw new NotImplementedException($"No abbreviation is specified for {unitType.Name} with numeric value {unitValue}."); - } - - var abbreviations = lookup!.GetAbbreviationsForUnit(unitValue); - if(abbreviations.Count == 0) - { - if(formatProvider != FallbackCulture) - return GetDefaultAbbreviation(unitType, unitValue, FallbackCulture); - else - throw new NotImplementedException($"No abbreviation is specified for {unitType.Name} with numeric value {unitValue}."); - } - - return abbreviations.First(); - } + public string GetDefaultAbbreviation(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetDefaultString(unitType, unitValue, formatProvider); /// /// Get all abbreviations for unit. @@ -256,10 +152,8 @@ public string GetDefaultAbbreviation(Type unitType, int unitValue, IFormatProvid /// The format provider to use for lookup. Defaults to if null. /// Unit abbreviations associated with unit. [PublicAPI] - public string[] GetUnitAbbreviations(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum - { - return GetUnitAbbreviations(typeof(TUnitType), Convert.ToInt32(unit), formatProvider); - } + public string[] GetUnitAbbreviations(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetUnitStrings(unit, formatProvider); /// /// Get all abbreviations for unit. @@ -269,19 +163,8 @@ public string[] GetUnitAbbreviations(TUnitType unit, IFormatProvider? /// The format provider to use for lookup. Defaults to if null. /// Unit abbreviations associated with unit. [PublicAPI] - public string[] GetUnitAbbreviations(Type unitType, int unitValue, IFormatProvider? formatProvider = null) - { - formatProvider = formatProvider ?? CultureInfo.CurrentUICulture; - - if(!TryGetUnitValueAbbreviationLookup(unitType, formatProvider, out var lookup)) - return formatProvider != FallbackCulture ? GetUnitAbbreviations(unitType, unitValue, FallbackCulture) : new string[] { }; - - var abbreviations = lookup!.GetAbbreviationsForUnit(unitValue); - if(abbreviations.Count == 0) - return formatProvider != FallbackCulture ? GetUnitAbbreviations(unitType, unitValue, FallbackCulture) : new string[] { }; - - return abbreviations.ToArray(); - } + public string[] GetUnitAbbreviations(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetUnitStrings(unitType, unitValue, formatProvider); /// /// Get all abbreviations for all units of a quantity. @@ -290,29 +173,11 @@ public string[] GetUnitAbbreviations(Type unitType, int unitValue, IFormatProvid /// The format provider to use for lookup. Defaults to if null. /// Unit abbreviations associated with unit. [PublicAPI] - public string[] GetAllUnitAbbreviationsForQuantity(Type unitEnumType, IFormatProvider? formatProvider = null) - { - formatProvider = formatProvider ?? CultureInfo.CurrentUICulture; - - if(!TryGetUnitValueAbbreviationLookup(unitEnumType, formatProvider, out var lookup)) - return formatProvider != FallbackCulture ? GetAllUnitAbbreviationsForQuantity(unitEnumType, FallbackCulture) : new string[] { }; + public string[] GetAllUnitAbbreviationsForQuantity(Type unitEnumType, IFormatProvider? formatProvider = null) => + _cache.GetAllUnitStringsForQuantity(unitEnumType, formatProvider); - return lookup!.GetAllUnitAbbreviationsForQuantity(); - } + internal bool TryGetUnitValueAbbreviationLookup(Type unitType, IFormatProvider? formatProvider, out UnitValueToStringLookup? unitToAbbreviations) => + _cache.TryGetUnitValueStringLookup(unitType, formatProvider, out unitToAbbreviations); - internal bool TryGetUnitValueAbbreviationLookup(Type unitType, IFormatProvider? formatProvider, out UnitValueAbbreviationLookup? unitToAbbreviations) - { - unitToAbbreviations = null; - - formatProvider = formatProvider ?? CultureInfo.CurrentUICulture; - - if(!_lookupsForCulture.TryGetValue(formatProvider, out var quantitiesForProvider)) - return formatProvider != FallbackCulture ? TryGetUnitValueAbbreviationLookup(unitType, FallbackCulture, out unitToAbbreviations) : false; - - if(!quantitiesForProvider.TryGetValue(unitType, out unitToAbbreviations)) - return formatProvider != FallbackCulture ? TryGetUnitValueAbbreviationLookup(unitType, FallbackCulture, out unitToAbbreviations) : false; - - return true; - } } } diff --git a/UnitsNet/CustomCode/UnitLocalizationCache.cs b/UnitsNet/CustomCode/UnitLocalizationCache.cs new file mode 100644 index 0000000000..5d2a2f3097 --- /dev/null +++ b/UnitsNet/CustomCode/UnitLocalizationCache.cs @@ -0,0 +1,314 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using JetBrains.Annotations; +using UnitsNet.InternalHelpers; +using UnitsNet.Units; + +using UnitTypeToLookup = System.Collections.Generic.Dictionary; + +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + /// + /// Cache of the mapping between unit enum values and unit strings (abbreviation, singular or plural names) for one or more cultures. + /// This class is used internally by any cache of licalized string representation of a unit value (abbreviation, singular name, plural name) + /// in order to offer ToString() and Parse() of quantities and units. + /// + public class UnitLocalizationCache + { + private readonly string _stringName; + private readonly Dictionary _lookupsForCulture; + private readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] _generatedLocalizedStrings; + + /// + /// Fallback culture used by and + /// if no abbreviations are found with a given culture. + /// + /// + /// User wants to call or with Russian + /// culture, but no translation is defined, so we return the US English definition as a last resort. If it's not + /// defined there either, an exception is thrown. + /// + private static readonly CultureInfo FallbackCulture = new("en-US"); + + /// + /// Create an instance of the cache + /// + /// Information about what the stored strings represents (abbreviation, singular name, ...). It could be useful for error messages or debug logs + /// For each culture, for each unit type, for each vlaue, give a localized representation of the unit value + public UnitLocalizationCache(string stringName, (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] generatedLocalizedStrings) + { + _stringName = stringName; + _lookupsForCulture = new Dictionary(); + _generatedLocalizedStrings = generatedLocalizedStrings; + } + + /// + /// Create an instance of the cache + /// + /// For each culture, for each unit type, for each vlaue, give a localized representation of the unit value + public UnitLocalizationCache((string CultureName, Type UnitType, int UnitValue, string[] Strings)[] generatedLocalizedStrings) : + this("localized string", generatedLocalizedStrings) + { + } + + /// + /// Adds one or more unit string for the given unit enum value. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// Unit strings to add. + /// The type of unit enum. + public void MapUnitToStrings(TUnitType unit, params string[] strings) where TUnitType : Enum => + MapUnitToStrings(typeof(TUnitType), Convert.ToInt32(unit), CultureInfo.CurrentUICulture, strings); + + /// + /// Adds a unit string for the given unit enum value and sets it as the default. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// Unit string to add as default. + /// The type of unit enum. + public void MapUnitToDefaultString(TUnitType unit, string @string) where TUnitType : Enum => + MapUnitToDefaultString(typeof(TUnitType), Convert.ToInt32(unit), CultureInfo.CurrentUICulture, @string); + + /// + /// Adds one or more unit string for the given unit enum value. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit strings to add. + /// The type of unit enum. + public void MapUnitToStrings(TUnitType unit, IFormatProvider formatProvider, params string[] strings) where TUnitType : Enum + { + // Assuming TUnitType is an enum, this conversion is safe. Seems not possible to enforce this today. + // Src: http://stackoverflow.com/questions/908543/how-to-convert-from-system-enum-to-base-integer + // http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum + var unitValue = Convert.ToInt32(unit); + var unitType = typeof(TUnitType); + + MapUnitToStrings(unitType, unitValue, formatProvider, strings); + } + + /// + /// Adds a unit string for the given unit enum value and sets it as the default. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit string to add as default. + /// The type of unit enum. + public void MapUnitToString(TUnitType unit, IFormatProvider formatProvider, string str) where TUnitType : Enum + { + // Assuming TUnitType is an enum, this conversion is safe. Seems not possible to enforce this today. + // Src: http://stackoverflow.com/questions/908543/how-to-convert-from-system-enum-to-base-integer + // http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum + var unitValue = Convert.ToInt32(unit); + var unitType = typeof(TUnitType); + + MapUnitToDefaultString(unitType, unitValue, formatProvider, str); + } + + /// + /// Adds one or more unit string for the given unit enum value. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit strings to add. + public void MapUnitToStrings(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] params string[] strings) => + PerformStringsMapping(unitType, unitValue, formatProvider, false, strings); + + + /// + /// Adds a unit string for the given unit enum value and sets it as the default. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit str to add as default. + /// The type of unit enum. + public void MapUnitToDefaultString(TUnitType unit, IFormatProvider formatProvider, string str) where TUnitType : Enum + { + // Assuming TUnitType is an enum, this conversion is safe. Seems not possible to enforce this today. + // Src: http://stackoverflow.com/questions/908543/how-to-convert-from-system-enum-to-base-integer + // http://stackoverflow.com/questions/79126/create-generic-method-constraining-t-to-an-enum + var unitValue = Convert.ToInt32(unit); + var unitType = typeof(TUnitType); + + MapUnitToDefaultString(unitType, unitValue, formatProvider, str); + } + + /// + /// Adds a unit string for the given unit enum value and sets it as the default. + /// This is used to dynamically add abbreviations for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit abbreviation to add as default. + public void MapUnitToDefaultString(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] string str) => + PerformStringsMapping(unitType, unitValue, formatProvider, true, str); + + private void PerformStringsMapping(Type unitType, int unitValue, IFormatProvider formatProvider, bool setAsDefault, [NotNull] params string[] strings) + { + if (!unitType.Wrap().IsEnum) + throw new ArgumentException("Must be an enum type.", nameof(unitType)); + + if (strings == null) + throw new ArgumentNullException(nameof(strings)); + + formatProvider ??= CultureInfo.CurrentUICulture; + + if (!_lookupsForCulture.TryGetValue(formatProvider, out var quantitiesForProvider)) + quantitiesForProvider = _lookupsForCulture[formatProvider] = new UnitTypeToLookup(); + + if (!quantitiesForProvider.TryGetValue(unitType, out var unitToStrings)) + unitToStrings = quantitiesForProvider[unitType] = new UnitValueToStringLookup(); + + foreach (var str in strings) + { + unitToStrings.Add(unitValue, str, setAsDefault); + } + } + + /// + /// Gets the default string for a given unit. If a unit has more than one abbreviation defined, then it returns the first one. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// The type of unit enum. + /// The default unit string. + public string GetDefaultString(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum + { + var unitType = typeof(TUnitType); + + if (!TryGetUnitValueStringLookup(unitType, formatProvider, out var lookup)) + { + if (formatProvider != FallbackCulture) + return GetDefaultString(unit, FallbackCulture); + else + throw new NotImplementedException($"No {_stringName} is specified for {unitType.Name}.{unit}"); + } + + var abbreviations = lookup!.GetStringsForUnit(unit); + if (abbreviations.Count == 0) + { + if (formatProvider != FallbackCulture) + return GetDefaultString(unit, FallbackCulture); + else + throw new NotImplementedException($"No {_stringName} is specified for {unitType.Name}.{unit}"); + } + + return abbreviations.First(); + } + + /// + /// Gets the default string for a given unit type and its numeric enum value. + /// If a unit has more than one string defined, then it returns the first one. + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// The default unit string. + public string GetDefaultString(Type unitType, int unitValue, IFormatProvider? formatProvider = null) + { + if (!TryGetUnitValueStringLookup(unitType, formatProvider, out var lookup)) + { + if (formatProvider != FallbackCulture) + return GetDefaultString(unitType, unitValue, FallbackCulture); + else + throw new NotImplementedException($"No abbreviation is specified for {unitType.Name} with numeric value {unitValue}."); + } + + var strings = lookup!.GetStringsForUnit(unitValue); + if (strings.Count == 0) + { + if (formatProvider != FallbackCulture) + return GetDefaultString(unitType, unitValue, FallbackCulture); + else + throw new NotImplementedException($"No {_stringName} is specified for {unitType.Name} with numeric value {unitValue}."); + } + + return strings.First(); + } + + /// + /// Get all strings for unit. + /// + /// Enum type for units. + /// Enum value for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit strings associated with unit. + public string[] GetUnitStrings(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum + { + return GetUnitStrings(typeof(TUnitType), Convert.ToInt32(unit), formatProvider); + } + + /// + /// Get all strings for unit. + /// + /// Enum type for unit. + /// Enum value for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit strings associated with unit. + public string[] GetUnitStrings(Type unitType, int unitValue, IFormatProvider? formatProvider = null) + { + formatProvider ??= CultureInfo.CurrentUICulture; + + if (!TryGetUnitValueStringLookup(unitType, formatProvider, out var lookup)) + return formatProvider != FallbackCulture ? GetUnitStrings(unitType, unitValue, FallbackCulture) : new string[] { }; + + var strings = lookup!.GetStringsForUnit(unitValue); + if (strings.Count == 0) + return formatProvider != FallbackCulture ? GetUnitStrings(unitType, unitValue, FallbackCulture) : new string[] { }; + + return strings.ToArray(); + } + + /// + /// Get all strings for all units of a quantity. + /// + /// Enum type for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit strings associated with unit. + public string[] GetAllUnitStringsForQuantity(Type unitEnumType, IFormatProvider? formatProvider = null) + { + formatProvider ??= CultureInfo.CurrentUICulture; + + if (!TryGetUnitValueStringLookup(unitEnumType, formatProvider, out var lookup)) + return formatProvider != FallbackCulture ? GetAllUnitStringsForQuantity(unitEnumType, FallbackCulture) : new string[] { }; + + return lookup!.GetAllUnitStringsForQuantity(); + } + + internal bool TryGetUnitValueStringLookup(Type unitType, IFormatProvider? formatProvider, out UnitValueToStringLookup? unitToStrings) + { + unitToStrings = null; + + formatProvider ??= CultureInfo.CurrentUICulture; + + if (!_lookupsForCulture.TryGetValue(formatProvider, out var quantitiesForProvider)) + return formatProvider != FallbackCulture && TryGetUnitValueStringLookup(unitType, FallbackCulture, out unitToStrings); + + if (!quantitiesForProvider.TryGetValue(unitType, out unitToStrings)) + return formatProvider != FallbackCulture && TryGetUnitValueStringLookup(unitType, FallbackCulture, out unitToStrings); + + return true; + } + } +} diff --git a/UnitsNet/CustomCode/UnitParser.cs b/UnitsNet/CustomCode/UnitParser.cs index 2becb1fd4d..661b4839d7 100644 --- a/UnitsNet/CustomCode/UnitParser.cs +++ b/UnitsNet/CustomCode/UnitParser.cs @@ -75,17 +75,17 @@ public Enum Parse([NotNull] string unitAbbreviation, Type unitType, IFormatProvi if(!_unitAbbreviationsCache.TryGetUnitValueAbbreviationLookup(unitType, formatProvider, out var abbreviations)) throw new UnitNotFoundException($"No abbreviations defined for unit type [{unitType}] for culture [{formatProvider}]."); - var unitIntValues = abbreviations!.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: true); + var unitIntValues = abbreviations!.GetUnitsForString(unitAbbreviation, ignoreCase: true); if (unitIntValues.Count == 0) { unitAbbreviation = NormalizeUnitString(unitAbbreviation); - unitIntValues = abbreviations.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: true); + unitIntValues = abbreviations.GetUnitsForString(unitAbbreviation, ignoreCase: true); } // Narrow the search if too many hits, for example Megabar "Mbar" and Millibar "mbar" need to be distinguished if (unitIntValues.Count > 1) - unitIntValues = abbreviations.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: false); + unitIntValues = abbreviations.GetUnitsForString(unitAbbreviation, ignoreCase: false); switch (unitIntValues.Count) { @@ -200,17 +200,17 @@ public bool TryParse(string? unitAbbreviation, Type unitType, IFormatProvider? f if(!_unitAbbreviationsCache.TryGetUnitValueAbbreviationLookup(unitType, formatProvider, out var abbreviations)) return false; - var unitIntValues = abbreviations!.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: true); + var unitIntValues = abbreviations!.GetUnitsForString(unitAbbreviation, ignoreCase: true); if (unitIntValues.Count == 0) { unitAbbreviation = NormalizeUnitString(unitAbbreviation); - unitIntValues = abbreviations.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: true); + unitIntValues = abbreviations.GetUnitsForString(unitAbbreviation, ignoreCase: true); } // Narrow the search if too many hits, for example Megabar "Mbar" and Millibar "mbar" need to be distinguished if (unitIntValues.Count > 1) - unitIntValues = abbreviations.GetUnitsForAbbreviation(unitAbbreviation, ignoreCase: false); + unitIntValues = abbreviations.GetUnitsForString(unitAbbreviation, ignoreCase: false); if(unitIntValues.Count != 1) return false; diff --git a/UnitsNet/CustomCode/UnitValueToStringLookup.cs b/UnitsNet/CustomCode/UnitValueToStringLookup.cs new file mode 100644 index 0000000000..5e271293f7 --- /dev/null +++ b/UnitsNet/CustomCode/UnitValueToStringLookup.cs @@ -0,0 +1,77 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using System.Collections.Generic; +using System.Linq; + +using UnitToStringMap = System.Collections.Generic.Dictionary>; +using StringToUnitMap = System.Collections.Generic.Dictionary>; + +namespace UnitsNet +{ + /// + /// Class to have a full duplex mapping between a unit value and a string represention of this unit value. + /// Typical strings are an abbreviation, a singular name or a plural name that represent a unit value + /// + internal class UnitValueToStringLookup + + { + private readonly UnitToStringMap unitToStringMap = new(); + private readonly StringToUnitMap stringToUnitMap = new(); + private readonly StringToUnitMap lowerCaseStringToUnitMap = new(); + + internal string[] GetAllUnitStringsForQuantity() => + unitToStringMap.Values.SelectMany(str => str).Distinct().ToArray(); + + internal List GetStringsForUnit(UnitType unit) where UnitType : Enum => + GetStringsForUnit(Convert.ToInt32(unit)); + + internal List GetStringsForUnit(int unit) + { + if (!unitToStringMap.TryGetValue(unit, out var strings)) + unitToStringMap[unit] = strings = new List(); + + return strings.Distinct().ToList(); + } + + internal List GetUnitsForString(string str, bool ignoreCase) + { + var lowerCaseString = str.ToLower(); + var key = ignoreCase ? lowerCaseString : str; + var map = ignoreCase ? lowerCaseStringToUnitMap : stringToUnitMap; + + if (!map.TryGetValue(key, out List units)) + map[key] = units = new List(); + + return units.Distinct().ToList(); + } + + internal void Add(int unit, string str, bool setAsDefault = false) + { + var lowerCaseString = str.ToLower(); + + if (!unitToStringMap.TryGetValue(unit, out var stringsForUnit)) + stringsForUnit = unitToStringMap[unit] = new List(); + + if (!stringToUnitMap.TryGetValue(str, out var unitsForString)) + stringToUnitMap[str] = unitsForString = new List(); + + if (!lowerCaseStringToUnitMap.TryGetValue(lowerCaseString, out var unitsForLowerCaseAbbreviation)) + lowerCaseStringToUnitMap[lowerCaseString] = unitsForLowerCaseAbbreviation = new List(); + + unitsForLowerCaseAbbreviation.Remove(unit); + unitsForLowerCaseAbbreviation.Add(unit); + + unitsForString.Remove(unit); + unitsForString.Add(unit); + + stringsForUnit.Remove(str); + if (setAsDefault) + stringsForUnit.Insert(0, str); + else + stringsForUnit.Add(str); + + } + } +} diff --git a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs index a93fe609de..81a0a9fa3d 100644 --- a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs +++ b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs @@ -637,10 +637,12 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.AstronomicalUnit, new string[]{"au", "ua"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"cm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"см"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"cm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"厘米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Chain, new string[]{"ch"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"dm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"дм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"dm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"分米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPica, new string[]{"pica"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPoint, new string[]{"pt"}), @@ -651,6 +653,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.Hand, new string[]{"h", "hh"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"hm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"гм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"hm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"百米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"in", "\"", "″"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"дюйм"}), @@ -658,6 +661,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.KilolightYear, new string[]{"kly"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"km"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"км"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"km"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"千米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Kiloparsec, new string[]{"kpc"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.LightYear, new string[]{"ly"}), @@ -665,12 +669,14 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(LengthUnit), (int)LengthUnit.Megaparsec, new string[]{"Mpc"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"m"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"м"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"m"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"µin"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"микродюйм"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"微英寸"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"µm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"мкм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"µm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"微米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"mil"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"мил"}), @@ -680,9 +686,11 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"英里"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"mm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"мм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"mm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"毫米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"nm"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"нм"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"nm"}), ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"纳米"}), ("en-US", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"NM"}), ("ru-RU", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"мил"}), From 476d89e1b844f0512990675806a9d22124ce6821 Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Fri, 8 Oct 2021 16:19:34 +0200 Subject: [PATCH 3/7] [FEAT] Localization of the unit singular names - Add localization for long names of the prefix in PrefixInfo - Add cache and cache generators for managing singular names - Add generation of the cache of singular names - Units with no localized singular name for a culture will use the default singular name of a unit (J - Add russian singular names for the length units for tests & samples TU - Add TU UnitSingularNamesCacheTests for testing the localization of singular names - all TU passed with success Generation of dynamic classes done with success --- CodeGen/Generators/QuantityJsonFilesParser.cs | 16 +- .../UnitSingularNamesCacheGenerator.cs | 57 + CodeGen/Generators/UnitsNetGenerator.cs | 8 + .../UnitSingularNamesCacheGenerator.cs | 56 + CodeGen/Generators/UnitsNetWrcGenerator.cs | 10 +- CodeGen/JsonTypes/Localization.cs | 13 +- CodeGen/PrefixInfo.cs | 66 +- Common/UnitDefinitions/Length.json | 4 +- UnitsNet.Tests/UnitLocalizedNameTests.cs | 34 - .../UnitLocalizedNamesCacheFixture.cs | 15 + UnitsNet.Tests/UnitSingularNamesCacheTests.cs | 142 ++ .../GeneratedCode/UnitSingularNamesCache.g.cs | 1730 +++++++++++++++++ UnitsNet/CustomCode/UnitLocalizationCache.cs | 13 +- UnitsNet/CustomCode/UnitSingularNamesCache.cs | 174 ++ .../GeneratedCode/UnitSingularNamesCache.g.cs | 1730 +++++++++++++++++ 15 files changed, 3997 insertions(+), 71 deletions(-) create mode 100644 CodeGen/Generators/UnitsNetGen/UnitSingularNamesCacheGenerator.cs create mode 100644 CodeGen/Generators/UnitsNetWrcGen/UnitSingularNamesCacheGenerator.cs delete mode 100644 UnitsNet.Tests/UnitLocalizedNameTests.cs create mode 100644 UnitsNet.Tests/UnitLocalizedNamesCacheFixture.cs create mode 100644 UnitsNet.Tests/UnitSingularNamesCacheTests.cs create mode 100644 UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitSingularNamesCache.g.cs create mode 100644 UnitsNet/CustomCode/UnitSingularNamesCache.cs create mode 100644 UnitsNet/GeneratedCode/UnitSingularNamesCache.g.cs diff --git a/CodeGen/Generators/QuantityJsonFilesParser.cs b/CodeGen/Generators/QuantityJsonFilesParser.cs index e94ab0f5ce..4563b93d4f 100644 --- a/CodeGen/Generators/QuantityJsonFilesParser.cs +++ b/CodeGen/Generators/QuantityJsonFilesParser.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using CodeGen.Exceptions; @@ -104,7 +105,7 @@ private static void AddPrefixUnits(Quantity quantity) } /// - /// Create unit abbreviations for a prefix unit, given a unit and the prefix. + /// Create unit abbreviations, singular name and plural names for a prefix unit, given a unit and the prefix. /// The unit abbreviations are either prefixed with the SI prefix or an explicitly configured abbreviation via /// . /// @@ -112,13 +113,19 @@ private static Localization[] GetLocalizationForPrefixUnit(IEnumerable { + var prefixName = prefixInfo.GetPrefixNameForCultureOrSiPrefix(loc.Culture); + var localizedSingularName = string.IsNullOrEmpty(loc.SingularName) ? string.Empty:$"{CultureInfo.CurrentUICulture.TextInfo.ToTitleCase((prefixName + loc.SingularName).ToLower().Trim())}"; + var localizedPluralName = string.IsNullOrEmpty(loc.PluralName) ? string.Empty : $"{prefixName}{loc.PluralName}"; + //specific abbreviations for prefixes (example: "kip/in³" for prefix "Kilo" of Density) if (loc.TryGetAbbreviationsForPrefix(prefixInfo.Prefix, out string[] unitAbbreviationsForPrefix)) { return new Localization { Culture = loc.Culture, - Abbreviations = unitAbbreviationsForPrefix + Abbreviations = unitAbbreviationsForPrefix, + SingularName = localizedSingularName, + PluralName = localizedPluralName }; } @@ -127,13 +134,12 @@ private static Localization[] GetLocalizationForPrefixUnit(IEnumerable $"{prefix}{unitAbbreviation}").ToArray(); - //WIP LTU return new Localization { Culture = loc.Culture, Abbreviations = unitAbbreviationsForPrefix, - SingularName = $"{prefix}.{loc.SingularName}", - PluralName = $"{prefix}.{loc.PluralName}" + SingularName = localizedSingularName, + PluralName = localizedPluralName }; }).ToArray(); } diff --git a/CodeGen/Generators/UnitsNetGen/UnitSingularNamesCacheGenerator.cs b/CodeGen/Generators/UnitsNetGen/UnitSingularNamesCacheGenerator.cs new file mode 100644 index 0000000000..93530c0894 --- /dev/null +++ b/CodeGen/Generators/UnitsNetGen/UnitSingularNamesCacheGenerator.cs @@ -0,0 +1,57 @@ +using System.Linq; +using CodeGen.JsonTypes; + +namespace CodeGen.Generators.UnitsNetGen +{ + internal class UnitSingularNamesCacheGenerator : GeneratorBase + { + private readonly Quantity[] _quantities; + + public UnitSingularNamesCacheGenerator(Quantity[] quantities) + { + _quantities = quantities; + } + + public override string Generate() + { + Writer.WL(GeneratedFileHeader); + Writer.WL(@" +using System; +using UnitsNet.Units; + +// ReSharper disable RedundantCommaInArrayInitializer +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + public partial class UnitSingularNamesCache + { + private static readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] GeneratedLocalizations + = new [] + {"); + foreach (var quantity in _quantities) + { + var unitEnumName = $"{quantity.Name}Unit"; + + foreach (var unit in quantity.Units) + { + foreach (var localization in unit.Localization) + { + var cultureName = localization.Culture; + + // All units must have a unit abbreviation, so fallback to the default singular name if no localized name is defined in JSON + // var singularNames = string.IsNullOrEmpty(localization.SingularName) ? $"\"{unit.SingularName}\"" : $"\"{localization.SingularName}\""; + var singularNames = string.IsNullOrEmpty(localization.SingularName) ? "\"BOB\"" : $"\"{localization.SingularName}\""; + Writer.WL($@" + (""{cultureName}"", typeof({unitEnumName}), (int){unitEnumName}.{unit.SingularName}, new string[]{{{singularNames}}}),"); + } + } + } + + Writer.WL(@" + }; + } +}"); + return Writer.ToString(); + } + } +} diff --git a/CodeGen/Generators/UnitsNetGenerator.cs b/CodeGen/Generators/UnitsNetGenerator.cs index 8f6465b9cb..5861096143 100644 --- a/CodeGen/Generators/UnitsNetGenerator.cs +++ b/CodeGen/Generators/UnitsNetGenerator.cs @@ -67,6 +67,7 @@ public static void Generate(string rootDir, Quantity[] quantities) Log.Information(""); GenerateIQuantityTests(quantities, $"{testProjectDir}/GeneratedCode/IQuantityTests.g.cs"); GenerateUnitAbbreviationsCache(quantities, $"{outputDir}/UnitAbbreviationsCache.g.cs"); + GenerateUnitSingularNamesCache(quantities, $"{outputDir}/UnitSingularNamesCache.g.cs"); GenerateQuantityType(quantities, $"{outputDir}/QuantityType.g.cs"); GenerateStaticQuantity(quantities, $"{outputDir}/Quantity.g.cs"); GenerateUnitConverter(quantities, $"{outputDir}/UnitConverter.g.cs"); @@ -130,6 +131,13 @@ private static void GenerateUnitAbbreviationsCache(Quantity[] quantities, string Log.Information("✅ UnitAbbreviationsCache.g.cs"); } + private static void GenerateUnitSingularNamesCache(Quantity[] quantities, string filePath) + { + var content = new UnitSingularNamesCacheGenerator(quantities).Generate(); + File.WriteAllText(filePath, content); + Log.Information("✅ UnitSingularNamesCache.g.cs"); + } + private static void GenerateQuantityType(Quantity[] quantities, string filePath) { var content = new QuantityTypeGenerator(quantities).Generate(); diff --git a/CodeGen/Generators/UnitsNetWrcGen/UnitSingularNamesCacheGenerator.cs b/CodeGen/Generators/UnitsNetWrcGen/UnitSingularNamesCacheGenerator.cs new file mode 100644 index 0000000000..95d0454941 --- /dev/null +++ b/CodeGen/Generators/UnitsNetWrcGen/UnitSingularNamesCacheGenerator.cs @@ -0,0 +1,56 @@ +using System.Linq; +using CodeGen.JsonTypes; + +namespace CodeGen.Generators.UnitsNetWrcGen +{ + internal class UnitSingularNamesCacheGenerator : GeneratorBase + { + private readonly Quantity[] _quantities; + + public UnitSingularNamesCacheGenerator(Quantity[] quantities) + { + _quantities = quantities; + } + + public override string Generate() + { + Writer.WL(GeneratedFileHeader); + Writer.WL(@" +using System; +using UnitsNet.Units; + +// ReSharper disable RedundantCommaInArrayInitializer +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + public sealed class UnitSingularNamesCache + { + private static readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] GeneratedLocalizations + = new [] + {"); + foreach (var quantity in _quantities) + { + var unitEnumName = $"{quantity.Name}Unit"; + + foreach (var unit in quantity.Units) + { + foreach (var localization in unit.Localization) + { + var cultureName = localization.Culture; + + // All units must have a unit abbreviation, so fallback to the default singular name if no localized name is defined in JSON + var singularNames = string.IsNullOrEmpty(localization.SingularName) ? $"\"{unit.SingularName}\"" : $"\"{localization.SingularName}\""; + Writer.WL($@" + (""{cultureName}"", typeof({unitEnumName}), (int){unitEnumName}.{unit.SingularName}, new string[]{{{singularNames}}}),"); + } + } + } + + Writer.WL(@" + }; + } +}"); + return Writer.ToString(); + } + } +} diff --git a/CodeGen/Generators/UnitsNetWrcGenerator.cs b/CodeGen/Generators/UnitsNetWrcGenerator.cs index 332aa599bd..e2f7d987a0 100644 --- a/CodeGen/Generators/UnitsNetWrcGenerator.cs +++ b/CodeGen/Generators/UnitsNetWrcGenerator.cs @@ -1,4 +1,4 @@ -// Licensed under MIT No Attribution, see LICENSE file at the root. +// Licensed under MIT No Attribution, see LICENSE file at the root. // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System.IO; @@ -52,6 +52,7 @@ public static void Generate(string rootDir, Quantity[] quantities) Log.Information(""); GenerateUnitAbbreviationsCache(quantities, $"{outputDir}/UnitAbbreviationsCache.g.cs"); + GenerateUnitSingularNamesCache(quantities, $"{outputDir}/UnitSingularNamesCache.g.cs"); GenerateQuantityType(quantities, $"{outputDir}/QuantityType.g.cs"); GenerateStaticQuantity(quantities, $"{outputDir}/Quantity.g.cs"); @@ -80,6 +81,13 @@ private static void GenerateUnitAbbreviationsCache(Quantity[] quantities, string Log.Information("✅ UnitAbbreviationsCache.g.cs (WRC)"); } + private static void GenerateUnitSingularNamesCache(Quantity[] quantities, string filePath) + { + var content = new UnitSingularNamesCacheGenerator(quantities).Generate(); + File.WriteAllText(filePath, content); + Log.Information("✅ UnitSingularNamesCache.g.cs (WRC)"); + } + private static void GenerateQuantityType(Quantity[] quantities, string filePath) { var content = new QuantityTypeGenerator(quantities).Generate(); diff --git a/CodeGen/JsonTypes/Localization.cs b/CodeGen/JsonTypes/Localization.cs index 1d25693b56..607cd3246e 100644 --- a/CodeGen/JsonTypes/Localization.cs +++ b/CodeGen/JsonTypes/Localization.cs @@ -52,10 +52,15 @@ public bool TryGetAbbreviationsForPrefix(Prefix prefix, out string[] unitAbbrevi /// public string[] Abbreviations = Array.Empty(); - //WIP LTU - public string SingularName ; - //WIP LTU - public string PluralName ; + /// + /// The unit singular name for this localization + /// + public string SingularName = string.Empty ; + + /// + /// The unit plural name for this localization + /// + public string PluralName = string.Empty ; /// /// Explicit configuration of unit abbreviations for prefixes. diff --git a/CodeGen/PrefixInfo.cs b/CodeGen/PrefixInfo.cs index 1ec641b3b6..f5e927ff55 100644 --- a/CodeGen/PrefixInfo.cs +++ b/CodeGen/PrefixInfo.cs @@ -10,8 +10,9 @@ namespace CodeGen /// internal class PrefixInfo { - private const string Russian = "ru-RU"; private const string Chinese = "zh-CN"; + private const string French = "fr-FR"; + private const string Russian = "ru-RU"; public static readonly IReadOnlyDictionary Entries = new[] { @@ -19,26 +20,26 @@ internal class PrefixInfo // when creating decimal conversion functions in CodeGen.Generator.FixConversionFunctionsForDecimalValueTypes. // SI prefixes - new PrefixInfo(Prefix.Yocto, "1e-24d", "y",(Chinese, "夭")), - new PrefixInfo(Prefix.Zepto, "1e-21d", "z",(Chinese, "仄")), - new PrefixInfo(Prefix.Atto, "1e-18d", "a", (Russian, "а"),(Chinese, "阿")), - new PrefixInfo(Prefix.Femto, "1e-15d", "f", (Russian, "ф"),(Chinese, "飞")), - new PrefixInfo(Prefix.Pico, "1e-12d", "p", (Russian, "п"),(Chinese, "皮")), - new PrefixInfo(Prefix.Nano, "1e-9d", "n", (Russian, "н"),(Chinese, "纳")), - new PrefixInfo(Prefix.Micro, "1e-6d", "µ", (Russian, "мк"),(Chinese, "微")), - new PrefixInfo(Prefix.Milli, "1e-3d", "m", (Russian, "м"),(Chinese, "毫")), - new PrefixInfo(Prefix.Centi, "1e-2d", "c", (Russian, "с"),(Chinese, "厘")), - new PrefixInfo(Prefix.Deci, "1e-1d", "d", (Russian, "д"),(Chinese, "分")), - new PrefixInfo(Prefix.Deca, "1e1d", "da", (Russian, "да"),(Chinese, "十")), - new PrefixInfo(Prefix.Hecto, "1e2d", "h", (Russian, "г"),(Chinese, "百")), - new PrefixInfo(Prefix.Kilo, "1e3d", "k", (Russian, "к"),(Chinese, "千")), - new PrefixInfo(Prefix.Mega, "1e6d", "M", (Russian, "М"),(Chinese, "兆")), - new PrefixInfo(Prefix.Giga, "1e9d", "G", (Russian, "Г"),(Chinese, "吉")), - new PrefixInfo(Prefix.Tera, "1e12d", "T", (Russian, "Т"),(Chinese, "太")), - new PrefixInfo(Prefix.Peta, "1e15d", "P", (Russian, "П"),(Chinese, "拍")), - new PrefixInfo(Prefix.Exa, "1e18d", "E", (Russian, "Э"),(Chinese, "艾")), - new PrefixInfo(Prefix.Zetta, "1e21d", "Z",(Chinese, "泽")), - new PrefixInfo(Prefix.Yotta, "1e24d", "Y",(Chinese, "尧")), + new PrefixInfo(Prefix.Yocto, "1e-24d", "y", (Russian,null,"йоктог"), (Chinese, "夭",null)), + new PrefixInfo(Prefix.Zepto, "1e-21d", "z", (Russian,null,"зептог"), (Chinese, "仄",null)), + new PrefixInfo(Prefix.Atto, "1e-18d", "a", (Russian, "а","аттог"), (Chinese, "阿",null)), + new PrefixInfo(Prefix.Femto, "1e-15d", "f", (Russian, "ф","фемтог"), (Chinese, "飞",null)), + new PrefixInfo(Prefix.Pico, "1e-12d", "p", (Russian, "п","пиког"), (Chinese, "皮",null)), + new PrefixInfo(Prefix.Nano, "1e-9d", "n", (Russian, "н","наног"), (Chinese, "纳",null)), + new PrefixInfo(Prefix.Micro, "1e-6d", "µ", (Russian, "мк","микрог"), (Chinese, "微",null)), + new PrefixInfo(Prefix.Milli, "1e-3d", "m", (Russian, "м","Миллиг"), (Chinese, "毫",null)), + new PrefixInfo(Prefix.Centi, "1e-2d", "c", (Russian, "с","сантиг"), (Chinese, "厘",null)), + new PrefixInfo(Prefix.Deci, "1e-1d", "d", (Russian, "д","дециг"), (Chinese, "分",null), (French,null,"Déci")), + new PrefixInfo(Prefix.Deca, "1e1d", "da", (Russian, "да","декаг"), (Chinese, "十",null), (French,null,"Déca")), + new PrefixInfo(Prefix.Hecto, "1e2d", "h", (Russian, "г","гектог"), (Chinese, "百",null)), + new PrefixInfo(Prefix.Kilo, "1e3d", "k", (Russian, "к","килог"), (Chinese, "千",null)), + new PrefixInfo(Prefix.Mega, "1e6d", "M", (Russian, "М","мегаг"), (Chinese, "兆",null), (French,null,"Méga")), + new PrefixInfo(Prefix.Giga, "1e9d", "G", (Russian, "Г","гигаг"), (Chinese, "吉",null)), + new PrefixInfo(Prefix.Tera, "1e12d", "T", (Russian, "Т","тераг"), (Chinese, "太",null), (French,null,"Téra")), + new PrefixInfo(Prefix.Peta, "1e15d", "P", (Russian, "П","петаг"), (Chinese, "拍",null)), + new PrefixInfo(Prefix.Exa, "1e18d", "E", (Russian, "Э","экзаг"), (Chinese, "艾",null)), + new PrefixInfo(Prefix.Zetta, "1e21d", "Z", (Russian, null,"Зеттаг"),(Chinese, "泽",null)), + new PrefixInfo(Prefix.Yotta, "1e24d", "Y", (Russian, null,"Йоттаг"),(Chinese, "尧",null)), // Binary prefixes new PrefixInfo(Prefix.Kibi, "1024d", "Ki"), @@ -49,7 +50,7 @@ internal class PrefixInfo new PrefixInfo(Prefix.Exbi, "(1024d * 1024 * 1024 * 1024 * 1024 * 1024)", "Ei") }.ToDictionary(prefixInfo => prefixInfo.Prefix); - private PrefixInfo(Prefix prefix, string factor, string siPrefix, params (string cultureName, string prefix)[] cultureToPrefix) + private PrefixInfo(Prefix prefix, string factor, string siPrefix, params(string cultureName, string? shortPrefix,string? longPrefix)[] cultureToPrefix) { Prefix = prefix; SiPrefix = siPrefix; @@ -62,6 +63,7 @@ private PrefixInfo(Prefix prefix, string factor, string siPrefix, params (string /// public Prefix Prefix { get; } + /// /// C# expression for the multiplier to prefix the conversion function. /// @@ -76,7 +78,8 @@ private PrefixInfo(Prefix prefix, string factor, string siPrefix, params (string /// /// Mapping from culture name to localized prefix abbreviation. /// - private (string cultureName, string prefix)[] CultureToPrefix { get; } + private (string cultureName, string? shortPrefix, string? longPrefix)[] CultureToPrefix { get; } + /// /// Gets the localized prefix if configured, otherwise . @@ -88,9 +91,24 @@ public string GetPrefixForCultureOrSiPrefix(string cultureName) var localizedPrefix = CultureToPrefix .Where(x => string.Equals(x.cultureName, cultureName, StringComparison.OrdinalIgnoreCase)) - .Select(x => x.prefix).FirstOrDefault(); + .Select(x => x.shortPrefix).FirstOrDefault(); return localizedPrefix ?? SiPrefix; } + + /// + /// Gets the localized prefix name if configured, otherwise . + /// + /// Culture name, such as "en-US" or "ru-RU". + public string GetPrefixNameForCultureOrSiPrefix(string cultureName) + { + if (cultureName == null) throw new ArgumentNullException(nameof(cultureName)); + + var localizedPrefix = CultureToPrefix + .Where(x => string.Equals(x.cultureName, cultureName, StringComparison.OrdinalIgnoreCase)) + .Select(x => x.longPrefix).FirstOrDefault(); + + return localizedPrefix ?? Prefix.ToString(); + } } } diff --git a/Common/UnitDefinitions/Length.json b/Common/UnitDefinitions/Length.json index dce5629c1a..2f373b5994 100644 --- a/Common/UnitDefinitions/Length.json +++ b/Common/UnitDefinitions/Length.json @@ -22,7 +22,9 @@ }, { "Culture": "ru-RU", - "Abbreviations": [ "м" ] + "Abbreviations": [ "м" ], + "SingularName": "метр", + "PluralName": "метры" }, { "Culture": "fr-FR", diff --git a/UnitsNet.Tests/UnitLocalizedNameTests.cs b/UnitsNet.Tests/UnitLocalizedNameTests.cs deleted file mode 100644 index b51edcac44..0000000000 --- a/UnitsNet.Tests/UnitLocalizedNameTests.cs +++ /dev/null @@ -1,34 +0,0 @@ -// Licensed under MIT No Attribution, see LICENSE file at the root. -// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. - -using System; -using System.Globalization; -using Xunit; -using Xunit.Abstractions; - -namespace UnitsNet.Tests -{ - public class UnitLocalizedNameTests - { - private readonly ITestOutputHelper _output; - private const string AmericanCultureName = "en-US"; - private const string FrenchCultureName = "fr-FR"; - - private static readonly IFormatProvider AmericanCulture = new CultureInfo(AmericanCultureName); - private static readonly IFormatProvider FrenchCulture = new CultureInfo(FrenchCultureName); - - public UnitLocalizedNameTests(ITestOutputHelper output) - { - _output = output; - } - - [Fact] - public void LengthToStringFormatting() - { - //WIP LTU : to working yet - //var exepected = "Mètre"; - //string actual = Length.GetSingularName(LengthUnit.Meter, FrenchCulture); - //Assert.Equal(exepected, actual); - } - } -} diff --git a/UnitsNet.Tests/UnitLocalizedNamesCacheFixture.cs b/UnitsNet.Tests/UnitLocalizedNamesCacheFixture.cs new file mode 100644 index 0000000000..ddfa7d064a --- /dev/null +++ b/UnitsNet.Tests/UnitLocalizedNamesCacheFixture.cs @@ -0,0 +1,15 @@ +using Xunit; + +namespace UnitsNet.Tests +{ + [CollectionDefinition(nameof(UnitLocalizedNamesCacheFixture), DisableParallelization = true)] + public class UnitLocalizedNamesCacheFixture : ICollectionFixture + { + // This class has no code, and is never created. Its purpose is simply + // to be the place to apply [CollectionDefinition] and all the + // ICollectionFixture<> interfaces. + + // Apply this collection fixture to classes: + // 1. That rely on manipulating CultureInfo. + } +} diff --git a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs new file mode 100644 index 0000000000..96799777ff --- /dev/null +++ b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs @@ -0,0 +1,142 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using UnitsNet.Units; +using Xunit; +using Xunit.Abstractions; + +namespace UnitsNet.Tests +{ + [Collection(nameof(UnitLocalizedNamesCacheFixture))] + public class UnitSingularNamesCacheTests + { + private readonly ITestOutputHelper _output; + private const string AmericanCultureName = "en-US"; + private const string FrenchCultureName = "fr-FR"; + private const string RussianCultureName = "ru-RU"; + + private static readonly IFormatProvider AmericanCulture = new CultureInfo(AmericanCultureName); + private static readonly IFormatProvider FrenchCulture = new CultureInfo(FrenchCultureName); + private static readonly IFormatProvider RussianCulture = new CultureInfo(RussianCultureName); + + public UnitSingularNamesCacheTests(ITestOutputHelper output) + { + _output = output; + } + + private enum CustomUnit + { + // ReSharper disable UnusedMember.Local + Undefined = 0, + Unit1, + Unit2 + // ReSharper restore UnusedMember.Local + } + + + [Fact] + public void SingularName_WithAmericanCulture() + { + Assert.Equal("Meter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, AmericanCulture)); + Assert.Equal("Decimeter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, AmericanCulture)); + + } + + [Fact] + public void SingularName_WithRussianCulture() + { + _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, RussianCulture)); + _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, RussianCulture)); + _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, RussianCulture)); + + Assert.Equal("метр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, RussianCulture)); + Assert.Equal("Децигметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, RussianCulture)); + Assert.Equal("Килогметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, RussianCulture)); + } + + [Fact] + public void SingularName_WithFrenchCulture() + { + Assert.Equal("Mètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, FrenchCulture)); + Assert.Equal("Décimètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, FrenchCulture)); + Assert.Equal("Kilomètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, FrenchCulture)); + } + + [Fact] + public void GetDefaultAbbreviationThrowsNotImplementedExceptionIfNoneExist() + { + var unitAbbreviationCache = new UnitAbbreviationsCache(); + Assert.Throws(() => unitAbbreviationCache.GetDefaultAbbreviation(CustomUnit.Unit1)); + } + + [Fact] + public void GetDefaultAbbreviationFallsBackToUsEnglishCulture() + { + var oldCurrentCulture = CultureInfo.CurrentCulture; + var oldCurrentUICulture = CultureInfo.CurrentUICulture; + + try + { + // CurrentCulture affects number formatting, such as comma or dot as decimal separator. + // CurrentUICulture affects localization, in this case the abbreviation. + // Zulu (South Africa) + var zuluCulture = new CultureInfo("zu-ZA"); + CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = zuluCulture; + + var abbreviationsCache = new UnitAbbreviationsCache(); + abbreviationsCache.MapUnitToAbbreviation(CustomUnit.Unit1, AmericanCulture, "US english abbreviation for Unit1"); + + // Act + string abbreviation = abbreviationsCache.GetDefaultAbbreviation(CustomUnit.Unit1, zuluCulture); + + // Assert + Assert.Equal("US english abbreviation for Unit1", abbreviation); + } + finally + { + CultureInfo.CurrentCulture = oldCurrentCulture; + CultureInfo.CurrentUICulture = oldCurrentUICulture; + } + } + + [Fact] + public void MapUnitToAbbreviation_AddCustomUnit_DoesNotOverrideDefaultAbbreviationForAlreadyMappedUnits() + { + var cache = new UnitAbbreviationsCache(); + cache.MapUnitToAbbreviation(AreaUnit.SquareMeter, AmericanCulture, "m^2"); + + Assert.Equal("m²", cache.GetDefaultAbbreviation(AreaUnit.SquareMeter)); + } + + [Fact] + public void MapUnitToDefaultAbbreviation_GivenUnitAndCulture_SetsDefaultAbbreviationForUnitAndCulture() + { + var cache = new UnitAbbreviationsCache(); + cache.MapUnitToDefaultAbbreviation(AreaUnit.SquareMeter, AmericanCulture, "m^2"); + + Assert.Equal("m^2", cache.GetDefaultAbbreviation(AreaUnit.SquareMeter, AmericanCulture)); + } + + [Fact] + public void MapUnitToDefaultAbbreviation_GivenCustomAbbreviation_SetsAbbreviationUsedByQuantityToString() + { + // Use a distinct culture here so that we don't mess up other tests that may rely on the default cache. + var newZealandCulture = GetCulture("en-NZ"); + UnitAbbreviationsCache.Default.MapUnitToDefaultAbbreviation(AreaUnit.SquareMeter, newZealandCulture, "m^2"); + + Assert.Equal("1 m^2", Area.FromSquareMeters(1).ToString(newZealandCulture)); + } + + /// + /// Convenience method to the proper culture parameter type. + /// + private static CultureInfo GetCulture(string cultureName) + { + return new CultureInfo(cultureName); + } + } +} diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitSingularNamesCache.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitSingularNamesCache.g.cs new file mode 100644 index 0000000000..2185016760 --- /dev/null +++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitSingularNamesCache.g.cs @@ -0,0 +1,1730 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by \generate-code.bat. +// +// Changes to this file will be lost when the code is regenerated. +// The build server regenerates the code before each build and a pre-build +// step will regenerate the code on each local build. +// +// See https://github.com/angularsen/UnitsNet/wiki/Adding-a-New-Unit for how to add or edit units. +// +// Add CustomCode\Quantities\MyQuantity.extra.cs files to add code to generated quantities. +// Add UnitDefinitions\MyQuantity.json and run generate-code.bat to generate new units or quantities. +// +// +//------------------------------------------------------------------------------ + +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using UnitsNet.Units; + +// ReSharper disable RedundantCommaInArrayInitializer +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + public sealed class UnitSingularNamesCache + { + private static readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] GeneratedLocalizations + = new [] + { + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.CentimeterPerSecondSquared, new string[]{"CentimeterPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.CentimeterPerSecondSquared, new string[]{"CentimeterPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.DecimeterPerSecondSquared, new string[]{"DecimeterPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.DecimeterPerSecondSquared, new string[]{"DecimeterPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.FootPerSecondSquared, new string[]{"FootPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.FootPerSecondSquared, new string[]{"FootPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.InchPerSecondSquared, new string[]{"InchPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.InchPerSecondSquared, new string[]{"InchPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KilometerPerSecondSquared, new string[]{"KilometerPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KilometerPerSecondSquared, new string[]{"KilometerPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerHour, new string[]{"KnotPerHour"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerHour, new string[]{"KnotPerHour"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerMinute, new string[]{"KnotPerMinute"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerMinute, new string[]{"KnotPerMinute"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerSecond, new string[]{"KnotPerSecond"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerSecond, new string[]{"KnotPerSecond"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MeterPerSecondSquared, new string[]{"MeterPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MeterPerSecondSquared, new string[]{"MeterPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MicrometerPerSecondSquared, new string[]{"MicrometerPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MicrometerPerSecondSquared, new string[]{"MicrometerPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MillimeterPerSecondSquared, new string[]{"MillimeterPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MillimeterPerSecondSquared, new string[]{"MillimeterPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MillistandardGravity, new string[]{"MillistandardGravity"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MillistandardGravity, new string[]{"MillistandardGravity"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.NanometerPerSecondSquared, new string[]{"NanometerPerSecondSquared"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.NanometerPerSecondSquared, new string[]{"NanometerPerSecondSquared"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.StandardGravity, new string[]{"StandardGravity"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.StandardGravity, new string[]{"StandardGravity"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Centimole, new string[]{"Centimole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.CentipoundMole, new string[]{"CentipoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Decimole, new string[]{"Decimole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.DecipoundMole, new string[]{"DecipoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Kilomole, new string[]{"Kilomole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.KilopoundMole, new string[]{"KilopoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Megamole, new string[]{"Megamole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Micromole, new string[]{"Micromole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.MicropoundMole, new string[]{"MicropoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Millimole, new string[]{"Millimole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.MillipoundMole, new string[]{"MillipoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Mole, new string[]{"Mole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Nanomole, new string[]{"Nanomole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.NanopoundMole, new string[]{"NanopoundMole"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.PoundMole, new string[]{"PoundMole"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelMicrovolt, new string[]{"DecibelMicrovolt"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelMillivolt, new string[]{"DecibelMillivolt"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelUnloaded, new string[]{"DecibelUnloaded"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelVolt, new string[]{"DecibelVolt"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Arcminute, new string[]{"Arcminute"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Arcsecond, new string[]{"Arcsecond"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Centiradian, new string[]{"Centiradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Centiradian, new string[]{"Centiradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Deciradian, new string[]{"Deciradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Deciradian, new string[]{"Deciradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Degree, new string[]{"Degree"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Degree, new string[]{"Degree"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Gradian, new string[]{"Gradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Gradian, new string[]{"Gradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Microdegree, new string[]{"Microdegree"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Microdegree, new string[]{"Microdegree"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Microradian, new string[]{"Microradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Microradian, new string[]{"Microradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Millidegree, new string[]{"Millidegree"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Millidegree, new string[]{"Millidegree"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Milliradian, new string[]{"Milliradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Milliradian, new string[]{"Milliradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Nanodegree, new string[]{"Nanodegree"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Nanodegree, new string[]{"Nanodegree"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Nanoradian, new string[]{"Nanoradian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Nanoradian, new string[]{"Nanoradian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.NatoMil, new string[]{"NatoMil"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Radian, new string[]{"Radian"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Radian, new string[]{"Radian"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Revolution, new string[]{"Revolution"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Revolution, new string[]{"Revolution"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Tilt, new string[]{"Tilt"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.KilovoltampereHour, new string[]{"KilovoltampereHour"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.MegavoltampereHour, new string[]{"MegavoltampereHour"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.VoltampereHour, new string[]{"VoltampereHour"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Gigavoltampere, new string[]{"Gigavoltampere"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Kilovoltampere, new string[]{"Kilovoltampere"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Megavoltampere, new string[]{"Megavoltampere"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Voltampere, new string[]{"Voltampere"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"Acre"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"Acre"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"Acre"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"Hectare"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"Hectare"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"Hectare"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"SquareCentimeter"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"SquareCentimeter"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"SquareCentimeter"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"SquareDecimeter"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"SquareDecimeter"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"SquareDecimeter"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"SquareFoot"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"SquareFoot"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"SquareFoot"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"SquareInch"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"SquareInch"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"SquareInch"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"SquareKilometer"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"SquareKilometer"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"SquareKilometer"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"SquareMeter"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"SquareMeter"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"SquareMeter"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"SquareMicrometer"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"SquareMicrometer"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"SquareMicrometer"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"SquareMile"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"SquareMile"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"SquareMile"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"SquareMillimeter"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"SquareMillimeter"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"SquareMillimeter"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"SquareNauticalMile"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"SquareNauticalMile"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"SquareNauticalMile"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"SquareYard"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"SquareYard"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"SquareYard"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.UsSurveySquareFoot, new string[]{"UsSurveySquareFoot"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.UsSurveySquareFoot, new string[]{"UsSurveySquareFoot"}), + ("en-US", typeof(AreaDensityUnit), (int)AreaDensityUnit.KilogramPerSquareMeter, new string[]{"KilogramPerSquareMeter"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.CentimeterToTheFourth, new string[]{"CentimeterToTheFourth"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.DecimeterToTheFourth, new string[]{"DecimeterToTheFourth"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.FootToTheFourth, new string[]{"FootToTheFourth"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.InchToTheFourth, new string[]{"InchToTheFourth"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.MeterToTheFourth, new string[]{"MeterToTheFourth"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.MillimeterToTheFourth, new string[]{"MillimeterToTheFourth"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.BitPerSecond, new string[]{"BitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.BytePerSecond, new string[]{"BytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExabitPerSecond, new string[]{"ExabitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExabytePerSecond, new string[]{"ExabytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExbibitPerSecond, new string[]{"ExbibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExbibytePerSecond, new string[]{"ExbibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GibibitPerSecond, new string[]{"GibibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GibibytePerSecond, new string[]{"GibibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GigabitPerSecond, new string[]{"GigabitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GigabytePerSecond, new string[]{"GigabytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KibibitPerSecond, new string[]{"KibibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KibibytePerSecond, new string[]{"KibibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KilobitPerSecond, new string[]{"KilobitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KilobytePerSecond, new string[]{"KilobytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MebibitPerSecond, new string[]{"MebibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MebibytePerSecond, new string[]{"MebibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MegabitPerSecond, new string[]{"MegabitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MegabytePerSecond, new string[]{"MegabytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PebibitPerSecond, new string[]{"PebibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PebibytePerSecond, new string[]{"PebibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PetabitPerSecond, new string[]{"PetabitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PetabytePerSecond, new string[]{"PetabytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TebibitPerSecond, new string[]{"TebibitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TebibytePerSecond, new string[]{"TebibytePerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TerabitPerSecond, new string[]{"TerabitPerSecond"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TerabytePerSecond, new string[]{"TerabytePerSecond"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, new string[]{"GramPerKiloWattHour"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, new string[]{"KilogramPerJoule"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.PoundPerMechanicalHorsepowerHour, new string[]{"PoundPerMechanicalHorsepowerHour"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Farad, new string[]{"Farad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Kilofarad, new string[]{"Kilofarad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Megafarad, new string[]{"Megafarad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Microfarad, new string[]{"Microfarad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Millifarad, new string[]{"Millifarad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Nanofarad, new string[]{"Nanofarad"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Picofarad, new string[]{"Picofarad"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseDegreeCelsius, new string[]{"InverseDegreeCelsius"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseDegreeFahrenheit, new string[]{"InverseDegreeFahrenheit"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseKelvin, new string[]{"InverseKelvin"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerDeciliter, new string[]{"CentigramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerLiter, new string[]{"CentigramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerMilliliter, new string[]{"CentigramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerDeciliter, new string[]{"DecigramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerLiter, new string[]{"DecigramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerMilliliter, new string[]{"DecigramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicCentimeter, new string[]{"GramPerCubicCentimeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMeter, new string[]{"GramPerCubicMeter"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMeter, new string[]{"GramPerCubicMeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMillimeter, new string[]{"GramPerCubicMillimeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerDeciliter, new string[]{"GramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerLiter, new string[]{"GramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerMilliliter, new string[]{"GramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicCentimeter, new string[]{"KilogramPerCubicCentimeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMeter, new string[]{"KilogramPerCubicMeter"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMeter, new string[]{"KilogramPerCubicMeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMillimeter, new string[]{"KilogramPerCubicMillimeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerLiter, new string[]{"KilogramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilopoundPerCubicFoot, new string[]{"KilopoundPerCubicFoot"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilopoundPerCubicInch, new string[]{"KilopoundPerCubicInch"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerCubicMeter, new string[]{"MicrogramPerCubicMeter"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.MicrogramPerCubicMeter, new string[]{"MicrogramPerCubicMeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerDeciliter, new string[]{"MicrogramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerLiter, new string[]{"MicrogramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerMilliliter, new string[]{"MicrogramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerCubicMeter, new string[]{"MilligramPerCubicMeter"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.MilligramPerCubicMeter, new string[]{"MilligramPerCubicMeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerDeciliter, new string[]{"MilligramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerLiter, new string[]{"MilligramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerMilliliter, new string[]{"MilligramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerDeciliter, new string[]{"NanogramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerLiter, new string[]{"NanogramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerMilliliter, new string[]{"NanogramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerDeciliter, new string[]{"PicogramPerDeciliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerLiter, new string[]{"PicogramPerLiter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerMilliliter, new string[]{"PicogramPerMilliliter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerCubicFoot, new string[]{"PoundPerCubicFoot"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerCubicInch, new string[]{"PoundPerCubicInch"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerImperialGallon, new string[]{"PoundPerImperialGallon"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerUSGallon, new string[]{"PoundPerUSGallon"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.SlugPerCubicFoot, new string[]{"SlugPerCubicFoot"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicCentimeter, new string[]{"TonnePerCubicCentimeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicMeter, new string[]{"TonnePerCubicMeter"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicMillimeter, new string[]{"TonnePerCubicMillimeter"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"Day"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"Day"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"Hour"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"Hour"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"Microsecond"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"Microsecond"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"Millisecond"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"Millisecond"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Minute, new string[]{"Minute"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Minute, new string[]{"Minute"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Month30, new string[]{"Month30"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Month30, new string[]{"Month30"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Nanosecond, new string[]{"Nanosecond"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Nanosecond, new string[]{"Nanosecond"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Second, new string[]{"Second"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Second, new string[]{"Second"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Week, new string[]{"Week"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Week, new string[]{"Week"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Year365, new string[]{"Year365"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Year365, new string[]{"Year365"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Centipoise, new string[]{"Centipoise"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.MicropascalSecond, new string[]{"MicropascalSecond"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.MillipascalSecond, new string[]{"MillipascalSecond"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.NewtonSecondPerMeterSquared, new string[]{"NewtonSecondPerMeterSquared"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PascalSecond, new string[]{"PascalSecond"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Poise, new string[]{"Poise"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundForceSecondPerSquareFoot, new string[]{"PoundForceSecondPerSquareFoot"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundForceSecondPerSquareInch, new string[]{"PoundForceSecondPerSquareInch"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundPerFootSecond, new string[]{"PoundPerFootSecond"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Reyn, new string[]{"Reyn"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Microsiemens, new string[]{"Microsiemens"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Millisiemens, new string[]{"Millisiemens"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Nanosiemens, new string[]{"Nanosiemens"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Siemens, new string[]{"Siemens"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.AmpereHour, new string[]{"AmpereHour"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.Coulomb, new string[]{"Coulomb"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.KiloampereHour, new string[]{"KiloampereHour"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.MegaampereHour, new string[]{"MegaampereHour"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.MilliampereHour, new string[]{"MilliampereHour"}), + ("en-US", typeof(ElectricChargeDensityUnit), (int)ElectricChargeDensityUnit.CoulombPerCubicMeter, new string[]{"CoulombPerCubicMeter"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Microsiemens, new string[]{"Microsiemens"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Millisiemens, new string[]{"Millisiemens"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Siemens, new string[]{"Siemens"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerFoot, new string[]{"SiemensPerFoot"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerInch, new string[]{"SiemensPerInch"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerMeter, new string[]{"SiemensPerMeter"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Ampere, new string[]{"Ampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Centiampere, new string[]{"Centiampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Kiloampere, new string[]{"Kiloampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Megaampere, new string[]{"Megaampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Microampere, new string[]{"Microampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Milliampere, new string[]{"Milliampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Nanoampere, new string[]{"Nanoampere"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Picoampere, new string[]{"Picoampere"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareFoot, new string[]{"AmperePerSquareFoot"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareInch, new string[]{"AmperePerSquareInch"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareMeter, new string[]{"AmperePerSquareMeter"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerMicrosecond, new string[]{"AmperePerMicrosecond"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerMillisecond, new string[]{"AmperePerMillisecond"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerNanosecond, new string[]{"AmperePerNanosecond"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerSecond, new string[]{"AmperePerSecond"}), + ("en-US", typeof(ElectricFieldUnit), (int)ElectricFieldUnit.VoltPerMeter, new string[]{"VoltPerMeter"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Henry, new string[]{"Henry"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Microhenry, new string[]{"Microhenry"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Millihenry, new string[]{"Millihenry"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Nanohenry, new string[]{"Nanohenry"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Kilovolt, new string[]{"Kilovolt"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Kilovolt, new string[]{"Kilovolt"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Megavolt, new string[]{"Megavolt"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Megavolt, new string[]{"Megavolt"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Microvolt, new string[]{"Microvolt"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Microvolt, new string[]{"Microvolt"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Millivolt, new string[]{"Millivolt"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Millivolt, new string[]{"Millivolt"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Volt, new string[]{"Volt"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Volt, new string[]{"Volt"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.KilovoltAc, new string[]{"KilovoltAc"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MegavoltAc, new string[]{"MegavoltAc"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MicrovoltAc, new string[]{"MicrovoltAc"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MillivoltAc, new string[]{"MillivoltAc"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.VoltAc, new string[]{"VoltAc"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerHour, new string[]{"KilovoltPerHour"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerMicrosecond, new string[]{"KilovoltPerMicrosecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerMinute, new string[]{"KilovoltPerMinute"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerSecond, new string[]{"KilovoltPerSecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerHour, new string[]{"MegavoltPerHour"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerMicrosecond, new string[]{"MegavoltPerMicrosecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerMinute, new string[]{"MegavoltPerMinute"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerSecond, new string[]{"MegavoltPerSecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerHour, new string[]{"MicrovoltPerHour"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerMicrosecond, new string[]{"MicrovoltPerMicrosecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerMinute, new string[]{"MicrovoltPerMinute"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerSecond, new string[]{"MicrovoltPerSecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerHour, new string[]{"MillivoltPerHour"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerMicrosecond, new string[]{"MillivoltPerMicrosecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerMinute, new string[]{"MillivoltPerMinute"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerSecond, new string[]{"MillivoltPerSecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerHour, new string[]{"VoltPerHour"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerMicrosecond, new string[]{"VoltPerMicrosecond"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerMinute, new string[]{"VoltPerMinute"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerSecond, new string[]{"VoltPerSecond"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.KilovoltDc, new string[]{"KilovoltDc"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MegavoltDc, new string[]{"MegavoltDc"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MicrovoltDc, new string[]{"MicrovoltDc"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MillivoltDc, new string[]{"MillivoltDc"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.VoltDc, new string[]{"VoltDc"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Gigaohm, new string[]{"Gigaohm"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Kiloohm, new string[]{"Kiloohm"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Megaohm, new string[]{"Megaohm"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Microohm, new string[]{"Microohm"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Milliohm, new string[]{"Milliohm"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Ohm, new string[]{"Ohm"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.KiloohmCentimeter, new string[]{"KiloohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.KiloohmMeter, new string[]{"KiloohmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MegaohmCentimeter, new string[]{"MegaohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MegaohmMeter, new string[]{"MegaohmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MicroohmCentimeter, new string[]{"MicroohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MicroohmMeter, new string[]{"MicroohmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MilliohmCentimeter, new string[]{"MilliohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MilliohmMeter, new string[]{"MilliohmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.NanoohmCentimeter, new string[]{"NanoohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.NanoohmMeter, new string[]{"NanoohmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.OhmCentimeter, new string[]{"OhmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.OhmMeter, new string[]{"OhmMeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.PicoohmCentimeter, new string[]{"PicoohmCentimeter"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.PicoohmMeter, new string[]{"PicoohmMeter"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter, new string[]{"CoulombPerSquareCentimeter"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareInch, new string[]{"CoulombPerSquareInch"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, new string[]{"CoulombPerSquareMeter"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.BritishThermalUnit, new string[]{"BritishThermalUnit"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Calorie, new string[]{"Calorie"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermEc, new string[]{"DecathermEc"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermEc, new string[]{"DecathermEc"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermImperial, new string[]{"DecathermImperial"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermImperial, new string[]{"DecathermImperial"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermUs, new string[]{"DecathermUs"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermUs, new string[]{"DecathermUs"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ElectronVolt, new string[]{"ElectronVolt"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ElectronVolt, new string[]{"ElectronVolt"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Erg, new string[]{"Erg"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.FootPound, new string[]{"FootPound"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigabritishThermalUnit, new string[]{"GigabritishThermalUnit"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigaelectronVolt, new string[]{"GigaelectronVolt"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigaelectronVolt, new string[]{"GigaelectronVolt"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Gigajoule, new string[]{"Gigajoule"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigawattDay, new string[]{"GigawattDay"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigawattDay, new string[]{"GigawattDay"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigawattHour, new string[]{"GigawattHour"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigawattHour, new string[]{"GigawattHour"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.HorsepowerHour, new string[]{"HorsepowerHour"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Joule, new string[]{"Joule"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilobritishThermalUnit, new string[]{"KilobritishThermalUnit"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Kilocalorie, new string[]{"Kilocalorie"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KiloelectronVolt, new string[]{"KiloelectronVolt"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KiloelectronVolt, new string[]{"KiloelectronVolt"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Kilojoule, new string[]{"Kilojoule"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilowattDay, new string[]{"KilowattDay"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KilowattDay, new string[]{"KilowattDay"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilowattHour, new string[]{"KilowattHour"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KilowattHour, new string[]{"KilowattHour"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegabritishThermalUnit, new string[]{"MegabritishThermalUnit"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Megacalorie, new string[]{"Megacalorie"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegaelectronVolt, new string[]{"MegaelectronVolt"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegaelectronVolt, new string[]{"MegaelectronVolt"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Megajoule, new string[]{"Megajoule"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegawattDay, new string[]{"MegawattDay"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegawattDay, new string[]{"MegawattDay"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegawattHour, new string[]{"MegawattHour"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegawattHour, new string[]{"MegawattHour"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Millijoule, new string[]{"Millijoule"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TeraelectronVolt, new string[]{"TeraelectronVolt"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TeraelectronVolt, new string[]{"TeraelectronVolt"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TerawattDay, new string[]{"TerawattDay"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TerawattDay, new string[]{"TerawattDay"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TerawattHour, new string[]{"TerawattHour"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TerawattHour, new string[]{"TerawattHour"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermEc, new string[]{"ThermEc"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermEc, new string[]{"ThermEc"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermImperial, new string[]{"ThermImperial"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermImperial, new string[]{"ThermImperial"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermUs, new string[]{"ThermUs"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermUs, new string[]{"ThermUs"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.WattDay, new string[]{"WattDay"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.WattDay, new string[]{"WattDay"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.WattHour, new string[]{"WattHour"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.WattHour, new string[]{"WattHour"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.CaloriePerKelvin, new string[]{"CaloriePerKelvin"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.JoulePerDegreeCelsius, new string[]{"JoulePerDegreeCelsius"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.JoulePerKelvin, new string[]{"JoulePerKelvin"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilocaloriePerKelvin, new string[]{"KilocaloriePerKelvin"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilojoulePerDegreeCelsius, new string[]{"KilojoulePerDegreeCelsius"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilojoulePerKelvin, new string[]{"KilojoulePerKelvin"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.MegajoulePerKelvin, new string[]{"MegajoulePerKelvin"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Decanewton, new string[]{"Decanewton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Decanewton, new string[]{"Decanewton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Dyn, new string[]{"Dyn"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Dyn, new string[]{"Dyn"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KilogramForce, new string[]{"KilogramForce"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KilogramForce, new string[]{"KilogramForce"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Kilonewton, new string[]{"Kilonewton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Kilonewton, new string[]{"Kilonewton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KiloPond, new string[]{"KiloPond"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KiloPond, new string[]{"KiloPond"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KilopoundForce, new string[]{"KilopoundForce"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KilopoundForce, new string[]{"KilopoundForce"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Meganewton, new string[]{"Meganewton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Meganewton, new string[]{"Meganewton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Micronewton, new string[]{"Micronewton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Micronewton, new string[]{"Micronewton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Millinewton, new string[]{"Millinewton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Millinewton, new string[]{"Millinewton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Newton, new string[]{"Newton"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Newton, new string[]{"Newton"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.OunceForce, new string[]{"OunceForce"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Poundal, new string[]{"Poundal"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Poundal, new string[]{"Poundal"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.PoundForce, new string[]{"PoundForce"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.PoundForce, new string[]{"PoundForce"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.ShortTonForce, new string[]{"ShortTonForce"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.TonneForce, new string[]{"TonneForce"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.TonneForce, new string[]{"TonneForce"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.CentinewtonPerSecond, new string[]{"CentinewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecanewtonPerMinute, new string[]{"DecanewtonPerMinute"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecanewtonPerSecond, new string[]{"DecanewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecinewtonPerSecond, new string[]{"DecinewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilonewtonPerMinute, new string[]{"KilonewtonPerMinute"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilonewtonPerSecond, new string[]{"KilonewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilopoundForcePerMinute, new string[]{"KilopoundForcePerMinute"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilopoundForcePerSecond, new string[]{"KilopoundForcePerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.MicronewtonPerSecond, new string[]{"MicronewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.MillinewtonPerSecond, new string[]{"MillinewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NanonewtonPerSecond, new string[]{"NanonewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NewtonPerMinute, new string[]{"NewtonPerMinute"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NewtonPerSecond, new string[]{"NewtonPerSecond"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.PoundForcePerMinute, new string[]{"PoundForcePerMinute"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.PoundForcePerSecond, new string[]{"PoundForcePerSecond"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerCentimeter, new string[]{"CentinewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerMeter, new string[]{"CentinewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerMillimeter, new string[]{"CentinewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerCentimeter, new string[]{"DecanewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerMeter, new string[]{"DecanewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerMillimeter, new string[]{"DecanewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerCentimeter, new string[]{"DecinewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerMeter, new string[]{"DecinewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerMillimeter, new string[]{"DecinewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerCentimeter, new string[]{"KilogramForcePerCentimeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerCentimeter, new string[]{"KilogramForcePerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMeter, new string[]{"KilogramForcePerMeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMeter, new string[]{"KilogramForcePerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMillimeter, new string[]{"KilogramForcePerMillimeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMillimeter, new string[]{"KilogramForcePerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerCentimeter, new string[]{"KilonewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerMeter, new string[]{"KilonewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerMillimeter, new string[]{"KilonewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilopoundForcePerFoot, new string[]{"KilopoundForcePerFoot"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilopoundForcePerInch, new string[]{"KilopoundForcePerInch"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerCentimeter, new string[]{"MeganewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerMeter, new string[]{"MeganewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerMillimeter, new string[]{"MeganewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerCentimeter, new string[]{"MicronewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerMeter, new string[]{"MicronewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerMillimeter, new string[]{"MicronewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerCentimeter, new string[]{"MillinewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerMeter, new string[]{"MillinewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerMillimeter, new string[]{"MillinewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerCentimeter, new string[]{"NanonewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerMeter, new string[]{"NanonewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerMillimeter, new string[]{"NanonewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerCentimeter, new string[]{"NewtonPerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerMeter, new string[]{"NewtonPerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerMillimeter, new string[]{"NewtonPerMillimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerFoot, new string[]{"PoundForcePerFoot"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerInch, new string[]{"PoundForcePerInch"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerYard, new string[]{"PoundForcePerYard"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerCentimeter, new string[]{"TonneForcePerCentimeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerCentimeter, new string[]{"TonneForcePerCentimeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMeter, new string[]{"TonneForcePerMeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMeter, new string[]{"TonneForcePerMeter"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMillimeter, new string[]{"TonneForcePerMillimeter"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMillimeter, new string[]{"TonneForcePerMillimeter"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.BeatPerMinute, new string[]{"BeatPerMinute"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.BUnit, new string[]{"BUnit"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerHour, new string[]{"CyclePerHour"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerMinute, new string[]{"CyclePerMinute"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Gigahertz, new string[]{"Gigahertz"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Gigahertz, new string[]{"Gigahertz"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Hertz, new string[]{"Hertz"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Hertz, new string[]{"Hertz"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Kilohertz, new string[]{"Kilohertz"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Kilohertz, new string[]{"Kilohertz"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Megahertz, new string[]{"Megahertz"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Megahertz, new string[]{"Megahertz"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.PerSecond, new string[]{"PerSecond"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.PerSecond, new string[]{"PerSecond"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.RadianPerSecond, new string[]{"RadianPerSecond"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.RadianPerSecond, new string[]{"RadianPerSecond"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Terahertz, new string[]{"Terahertz"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Terahertz, new string[]{"Terahertz"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.KilometerPerLiter, new string[]{"KilometerPerLiter"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.LiterPer100Kilometers, new string[]{"LiterPer100Kilometers"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.MilePerUkGallon, new string[]{"MilePerUkGallon"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.MilePerUsGallon, new string[]{"MilePerUsGallon"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerHourSquareFoot, new string[]{"BtuPerHourSquareFoot"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerMinuteSquareFoot, new string[]{"BtuPerMinuteSquareFoot"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerSecondSquareFoot, new string[]{"BtuPerSecondSquareFoot"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerSecondSquareInch, new string[]{"BtuPerSecondSquareInch"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.CaloriePerSecondSquareCentimeter, new string[]{"CaloriePerSecondSquareCentimeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.CentiwattPerSquareMeter, new string[]{"CentiwattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.DeciwattPerSquareMeter, new string[]{"DeciwattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilocaloriePerHourSquareMeter, new string[]{"KilocaloriePerHourSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilocaloriePerSecondSquareCentimeter, new string[]{"KilocaloriePerSecondSquareCentimeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilowattPerSquareMeter, new string[]{"KilowattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.MicrowattPerSquareMeter, new string[]{"MicrowattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.MilliwattPerSquareMeter, new string[]{"MilliwattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.NanowattPerSquareMeter, new string[]{"NanowattPerSquareMeter"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.PoundForcePerFootSecond, new string[]{"PoundForcePerFootSecond"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.PoundPerSecondCubed, new string[]{"PoundPerSecondCubed"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareFoot, new string[]{"WattPerSquareFoot"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareInch, new string[]{"WattPerSquareInch"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareMeter, new string[]{"WattPerSquareMeter"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit, new string[]{"BtuPerSquareFootDegreeFahrenheit"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.WattPerSquareMeterCelsius, new string[]{"WattPerSquareMeterCelsius"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, new string[]{"WattPerSquareMeterKelvin"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Kilolux, new string[]{"Kilolux"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Lux, new string[]{"Lux"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Megalux, new string[]{"Megalux"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Millilux, new string[]{"Millilux"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Bit, new string[]{"Bit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Byte, new string[]{"Byte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exabit, new string[]{"Exabit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exabyte, new string[]{"Exabyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exbibit, new string[]{"Exbibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exbibyte, new string[]{"Exbibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gibibit, new string[]{"Gibibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gibibyte, new string[]{"Gibibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gigabit, new string[]{"Gigabit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gigabyte, new string[]{"Gigabyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kibibit, new string[]{"Kibibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kibibyte, new string[]{"Kibibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kilobit, new string[]{"Kilobit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kilobyte, new string[]{"Kilobyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Mebibit, new string[]{"Mebibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Mebibyte, new string[]{"Mebibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Megabit, new string[]{"Megabit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Megabyte, new string[]{"Megabyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Pebibit, new string[]{"Pebibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Pebibyte, new string[]{"Pebibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Petabit, new string[]{"Petabit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Petabyte, new string[]{"Petabyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Tebibit, new string[]{"Tebibit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Tebibyte, new string[]{"Tebibyte"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Terabit, new string[]{"Terabit"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Terabyte, new string[]{"Terabyte"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.KilowattPerSquareCentimeter, new string[]{"KilowattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.KilowattPerSquareMeter, new string[]{"KilowattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MegawattPerSquareCentimeter, new string[]{"MegawattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MegawattPerSquareMeter, new string[]{"MegawattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MicrowattPerSquareCentimeter, new string[]{"MicrowattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MicrowattPerSquareMeter, new string[]{"MicrowattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MilliwattPerSquareCentimeter, new string[]{"MilliwattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MilliwattPerSquareMeter, new string[]{"MilliwattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.NanowattPerSquareCentimeter, new string[]{"NanowattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.NanowattPerSquareMeter, new string[]{"NanowattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.PicowattPerSquareCentimeter, new string[]{"PicowattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.PicowattPerSquareMeter, new string[]{"PicowattPerSquareMeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.WattPerSquareCentimeter, new string[]{"WattPerSquareCentimeter"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.WattPerSquareMeter, new string[]{"WattPerSquareMeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareCentimeter, new string[]{"JoulePerSquareCentimeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareMeter, new string[]{"JoulePerSquareMeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareMillimeter, new string[]{"JoulePerSquareMillimeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.KilojoulePerSquareMeter, new string[]{"KilojoulePerSquareMeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.KilowattHourPerSquareMeter, new string[]{"KilowattHourPerSquareMeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.MillijoulePerSquareCentimeter, new string[]{"MillijoulePerSquareCentimeter"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.WattHourPerSquareMeter, new string[]{"WattHourPerSquareMeter"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Centistokes, new string[]{"Centistokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Centistokes, new string[]{"Centistokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Decistokes, new string[]{"Decistokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Decistokes, new string[]{"Decistokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Kilostokes, new string[]{"Kilostokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Kilostokes, new string[]{"Kilostokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Microstokes, new string[]{"Microstokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Microstokes, new string[]{"Microstokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Millistokes, new string[]{"Millistokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Millistokes, new string[]{"Millistokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Nanostokes, new string[]{"Nanostokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Nanostokes, new string[]{"Nanostokes"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareFootPerSecond, new string[]{"SquareFootPerSecond"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareMeterPerSecond, new string[]{"SquareMeterPerSecond"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareMeterPerSecond, new string[]{"SquareMeterPerSecond"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Stokes, new string[]{"Stokes"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Stokes, new string[]{"Stokes"}), + ("en-US", typeof(LapseRateUnit), (int)LapseRateUnit.DegreeCelsiusPerKilometer, new string[]{"DegreeCelsiusPerKilometer"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.AstronomicalUnit, new string[]{"AstronomicalUnit"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Centimeter"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Сантигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Centimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Centimeter"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Chain, new string[]{"Chain"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Decimeter"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Децигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Décimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Decimeter"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPica, new string[]{"DtpPica"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPoint, new string[]{"DtpPoint"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Fathom, new string[]{"Fathom"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"Foot"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"Foot"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"Foot"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Hand, new string[]{"Hand"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Hectometer"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Гектогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Hectomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Hectometer"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"Inch"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"Inch"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"Inch"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.KilolightYear, new string[]{"KilolightYear"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Kilometer"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Килогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Kilomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Kilometer"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Kiloparsec, new string[]{"Kiloparsec"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.LightYear, new string[]{"LightYear"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.MegalightYear, new string[]{"MegalightYear"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Megaparsec, new string[]{"Megaparsec"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"Meter"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"метр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"Mètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"Meter"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"Microinch"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"Microinch"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"Microinch"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Micrometer"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Микрогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Micromètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Micrometer"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"Mil"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"Mil"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"Mil"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"Mile"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"Mile"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"Mile"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Millimeter"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Миллигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Millimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Millimeter"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Nanometer"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Наногметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Nanomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Nanometer"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"NauticalMile"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"NauticalMile"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"NauticalMile"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Parsec, new string[]{"Parsec"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.PrinterPica, new string[]{"PrinterPica"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.PrinterPoint, new string[]{"PrinterPoint"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Shackle, new string[]{"Shackle"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.SolarRadius, new string[]{"SolarRadius"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Twip, new string[]{"Twip"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.UsSurveyFoot, new string[]{"UsSurveyFoot"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"Yard"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"Yard"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"Yard"}), + ("en-US", typeof(LevelUnit), (int)LevelUnit.Decibel, new string[]{"Decibel"}), + ("en-US", typeof(LevelUnit), (int)LevelUnit.Neper, new string[]{"Neper"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerCentimeter, new string[]{"GramPerCentimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerMeter, new string[]{"GramPerMeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerMillimeter, new string[]{"GramPerMillimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerCentimeter, new string[]{"KilogramPerCentimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerMeter, new string[]{"KilogramPerMeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerMillimeter, new string[]{"KilogramPerMillimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerCentimeter, new string[]{"MicrogramPerCentimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerMeter, new string[]{"MicrogramPerMeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerMillimeter, new string[]{"MicrogramPerMillimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerCentimeter, new string[]{"MilligramPerCentimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerMeter, new string[]{"MilligramPerMeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerMillimeter, new string[]{"MilligramPerMillimeter"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.PoundPerFoot, new string[]{"PoundPerFoot"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.PoundPerInch, new string[]{"PoundPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerCentimeter, new string[]{"GigawattPerCentimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerFoot, new string[]{"GigawattPerFoot"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerInch, new string[]{"GigawattPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerMeter, new string[]{"GigawattPerMeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerMillimeter, new string[]{"GigawattPerMillimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerCentimeter, new string[]{"KilowattPerCentimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerFoot, new string[]{"KilowattPerFoot"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerInch, new string[]{"KilowattPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerMeter, new string[]{"KilowattPerMeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerMillimeter, new string[]{"KilowattPerMillimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerCentimeter, new string[]{"MegawattPerCentimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerFoot, new string[]{"MegawattPerFoot"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerInch, new string[]{"MegawattPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerMeter, new string[]{"MegawattPerMeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerMillimeter, new string[]{"MegawattPerMillimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerCentimeter, new string[]{"MilliwattPerCentimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerFoot, new string[]{"MilliwattPerFoot"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerInch, new string[]{"MilliwattPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerMeter, new string[]{"MilliwattPerMeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerMillimeter, new string[]{"MilliwattPerMillimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerCentimeter, new string[]{"WattPerCentimeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerFoot, new string[]{"WattPerFoot"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerInch, new string[]{"WattPerInch"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerMeter, new string[]{"WattPerMeter"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerMillimeter, new string[]{"WattPerMillimeter"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Decawatt, new string[]{"Decawatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Deciwatt, new string[]{"Deciwatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Femtowatt, new string[]{"Femtowatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Gigawatt, new string[]{"Gigawatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Kilowatt, new string[]{"Kilowatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Megawatt, new string[]{"Megawatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Microwatt, new string[]{"Microwatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Milliwatt, new string[]{"Milliwatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Nanowatt, new string[]{"Nanowatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Petawatt, new string[]{"Petawatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Picowatt, new string[]{"Picowatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.SolarLuminosity, new string[]{"SolarLuminosity"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Terawatt, new string[]{"Terawatt"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Watt, new string[]{"Watt"}), + ("en-US", typeof(LuminousFluxUnit), (int)LuminousFluxUnit.Lumen, new string[]{"Lumen"}), + ("en-US", typeof(LuminousIntensityUnit), (int)LuminousIntensityUnit.Candela, new string[]{"Candela"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Gauss, new string[]{"Gauss"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Microtesla, new string[]{"Microtesla"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Milligauss, new string[]{"Milligauss"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Millitesla, new string[]{"Millitesla"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Nanotesla, new string[]{"Nanotesla"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Tesla, new string[]{"Tesla"}), + ("en-US", typeof(MagneticFluxUnit), (int)MagneticFluxUnit.Weber, new string[]{"Weber"}), + ("en-US", typeof(MagnetizationUnit), (int)MagnetizationUnit.AmperePerMeter, new string[]{"AmperePerMeter"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"Centigram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"Centigram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"Centigram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"Decagram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"Decagram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"Decagram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"Decigram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"Decigram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"Decigram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.EarthMass, new string[]{"EarthMass"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Grain, new string[]{"Grain"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"Gram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"Gram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"Gram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"Hectogram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"Hectogram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"Hectogram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"Kilogram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"Kilogram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"Kilogram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"Kilopound"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"Kilopound"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"Kilopound"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"Kilotonne"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"Kilotonne"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"Kilotonne"}), + ("en-US", typeof(MassUnit), (int)MassUnit.LongHundredweight, new string[]{"LongHundredweight"}), + ("en-US", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"LongTon"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"LongTon"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"LongTon"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"Megapound"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"Megapound"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"Megapound"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"Megatonne"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"Megatonne"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"Megatonne"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"Microgram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"Microgram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"Microgram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"Milligram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"Milligram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"Milligram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"Nanogram"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"Nanogram"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"Nanogram"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Ounce, new string[]{"Ounce"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Ounce, new string[]{"Ounce"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"Pound"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"Pound"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"Pound"}), + ("en-US", typeof(MassUnit), (int)MassUnit.ShortHundredweight, new string[]{"ShortHundredweight"}), + ("en-US", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"ShortTon"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"ShortTon"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"ShortTon"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Slug, new string[]{"Slug"}), + ("en-US", typeof(MassUnit), (int)MassUnit.SolarMass, new string[]{"SolarMass"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Stone, new string[]{"Stone"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"Tonne"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"Tonne"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"Tonne"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerDeciliter, new string[]{"CentigramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerLiter, new string[]{"CentigramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerMicroliter, new string[]{"CentigramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerMilliliter, new string[]{"CentigramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerDeciliter, new string[]{"DecigramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerLiter, new string[]{"DecigramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerMicroliter, new string[]{"DecigramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerMilliliter, new string[]{"DecigramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicCentimeter, new string[]{"GramPerCubicCentimeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMeter, new string[]{"GramPerCubicMeter"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMeter, new string[]{"GramPerCubicMeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMillimeter, new string[]{"GramPerCubicMillimeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerDeciliter, new string[]{"GramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerLiter, new string[]{"GramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerMicroliter, new string[]{"GramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerMilliliter, new string[]{"GramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicCentimeter, new string[]{"KilogramPerCubicCentimeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMeter, new string[]{"KilogramPerCubicMeter"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMeter, new string[]{"KilogramPerCubicMeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMillimeter, new string[]{"KilogramPerCubicMillimeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerLiter, new string[]{"KilogramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilopoundPerCubicFoot, new string[]{"KilopoundPerCubicFoot"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilopoundPerCubicInch, new string[]{"KilopoundPerCubicInch"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerCubicMeter, new string[]{"MicrogramPerCubicMeter"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerCubicMeter, new string[]{"MicrogramPerCubicMeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerDeciliter, new string[]{"MicrogramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerLiter, new string[]{"MicrogramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerMicroliter, new string[]{"MicrogramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerMilliliter, new string[]{"MicrogramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerCubicMeter, new string[]{"MilligramPerCubicMeter"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerCubicMeter, new string[]{"MilligramPerCubicMeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerDeciliter, new string[]{"MilligramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerLiter, new string[]{"MilligramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerMicroliter, new string[]{"MilligramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerMilliliter, new string[]{"MilligramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerDeciliter, new string[]{"NanogramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerLiter, new string[]{"NanogramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerMicroliter, new string[]{"NanogramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerMilliliter, new string[]{"NanogramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.OuncePerImperialGallon, new string[]{"OuncePerImperialGallon"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.OuncePerUSGallon, new string[]{"OuncePerUSGallon"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerDeciliter, new string[]{"PicogramPerDeciliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerLiter, new string[]{"PicogramPerLiter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerMicroliter, new string[]{"PicogramPerMicroliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerMilliliter, new string[]{"PicogramPerMilliliter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerCubicFoot, new string[]{"PoundPerCubicFoot"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerCubicInch, new string[]{"PoundPerCubicInch"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerImperialGallon, new string[]{"PoundPerImperialGallon"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerUSGallon, new string[]{"PoundPerUSGallon"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.SlugPerCubicFoot, new string[]{"SlugPerCubicFoot"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicCentimeter, new string[]{"TonnePerCubicCentimeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicMeter, new string[]{"TonnePerCubicMeter"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicMillimeter, new string[]{"TonnePerCubicMillimeter"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.CentigramPerDay, new string[]{"CentigramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.CentigramPerSecond, new string[]{"CentigramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecagramPerDay, new string[]{"DecagramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecagramPerSecond, new string[]{"DecagramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerDay, new string[]{"DecigramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerSecond, new string[]{"DecigramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerDay, new string[]{"GramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerHour, new string[]{"GramPerHour"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerSecond, new string[]{"GramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerDay, new string[]{"HectogramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerSecond, new string[]{"HectogramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerDay, new string[]{"KilogramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerHour, new string[]{"KilogramPerHour"}), + ("ru-RU", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerHour, new string[]{"KilogramPerHour"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerMinute, new string[]{"KilogramPerMinute"}), + ("ru-RU", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerMinute, new string[]{"KilogramPerMinute"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerSecond, new string[]{"KilogramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegagramPerDay, new string[]{"MegagramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerDay, new string[]{"MegapoundPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerHour, new string[]{"MegapoundPerHour"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerMinute, new string[]{"MegapoundPerMinute"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerSecond, new string[]{"MegapoundPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MicrogramPerDay, new string[]{"MicrogramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MicrogramPerSecond, new string[]{"MicrogramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MilligramPerDay, new string[]{"MilligramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MilligramPerSecond, new string[]{"MilligramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.NanogramPerDay, new string[]{"NanogramPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.NanogramPerSecond, new string[]{"NanogramPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerDay, new string[]{"PoundPerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerHour, new string[]{"PoundPerHour"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerMinute, new string[]{"PoundPerMinute"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerSecond, new string[]{"PoundPerSecond"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.ShortTonPerHour, new string[]{"ShortTonPerHour"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.TonnePerDay, new string[]{"TonnePerDay"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.TonnePerHour, new string[]{"TonnePerHour"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareCentimeter, new string[]{"GramPerHourPerSquareCentimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareMeter, new string[]{"GramPerHourPerSquareMeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareMillimeter, new string[]{"GramPerHourPerSquareMillimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareCentimeter, new string[]{"GramPerSecondPerSquareCentimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareMeter, new string[]{"GramPerSecondPerSquareMeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareMillimeter, new string[]{"GramPerSecondPerSquareMillimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareCentimeter, new string[]{"KilogramPerHourPerSquareCentimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareMeter, new string[]{"KilogramPerHourPerSquareMeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareMillimeter, new string[]{"KilogramPerHourPerSquareMillimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareCentimeter, new string[]{"KilogramPerSecondPerSquareCentimeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareMeter, new string[]{"KilogramPerSecondPerSquareMeter"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareMillimeter, new string[]{"KilogramPerSecondPerSquareMillimeter"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.CentigramPerGram, new string[]{"CentigramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.CentigramPerKilogram, new string[]{"CentigramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecagramPerGram, new string[]{"DecagramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecagramPerKilogram, new string[]{"DecagramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecigramPerGram, new string[]{"DecigramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecigramPerKilogram, new string[]{"DecigramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecimalFraction, new string[]{"DecimalFraction"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.GramPerGram, new string[]{"GramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.GramPerKilogram, new string[]{"GramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.HectogramPerGram, new string[]{"HectogramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.HectogramPerKilogram, new string[]{"HectogramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.KilogramPerGram, new string[]{"KilogramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.KilogramPerKilogram, new string[]{"KilogramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MicrogramPerGram, new string[]{"MicrogramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MicrogramPerKilogram, new string[]{"MicrogramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MilligramPerGram, new string[]{"MilligramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MilligramPerKilogram, new string[]{"MilligramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.NanogramPerGram, new string[]{"NanogramPerGram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.NanogramPerKilogram, new string[]{"NanogramPerKilogram"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerBillion, new string[]{"PartPerBillion"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerMillion, new string[]{"PartPerMillion"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerThousand, new string[]{"PartPerThousand"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerTrillion, new string[]{"PartPerTrillion"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.Percent, new string[]{"Percent"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareCentimeter, new string[]{"GramSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareDecimeter, new string[]{"GramSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareMeter, new string[]{"GramSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareMillimeter, new string[]{"GramSquareMillimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareCentimeter, new string[]{"KilogramSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareDecimeter, new string[]{"KilogramSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareMeter, new string[]{"KilogramSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareMillimeter, new string[]{"KilogramSquareMillimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareCentimeter, new string[]{"KilotonneSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareDecimeter, new string[]{"KilotonneSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareMeter, new string[]{"KilotonneSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareMilimeter, new string[]{"KilotonneSquareMilimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareCentimeter, new string[]{"MegatonneSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareDecimeter, new string[]{"MegatonneSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareMeter, new string[]{"MegatonneSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareMilimeter, new string[]{"MegatonneSquareMilimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareCentimeter, new string[]{"MilligramSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareDecimeter, new string[]{"MilligramSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareMeter, new string[]{"MilligramSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareMillimeter, new string[]{"MilligramSquareMillimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.PoundSquareFoot, new string[]{"PoundSquareFoot"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.PoundSquareInch, new string[]{"PoundSquareInch"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.SlugSquareFoot, new string[]{"SlugSquareFoot"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.SlugSquareInch, new string[]{"SlugSquareInch"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareCentimeter, new string[]{"TonneSquareCentimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareDecimeter, new string[]{"TonneSquareDecimeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareMeter, new string[]{"TonneSquareMeter"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareMilimeter, new string[]{"TonneSquareMilimeter"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.JoulePerMole, new string[]{"JoulePerMole"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.KilojoulePerMole, new string[]{"KilojoulePerMole"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.MegajoulePerMole, new string[]{"MegajoulePerMole"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.JoulePerMoleKelvin, new string[]{"JoulePerMoleKelvin"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.KilojoulePerMoleKelvin, new string[]{"KilojoulePerMoleKelvin"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.MegajoulePerMoleKelvin, new string[]{"MegajoulePerMoleKelvin"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.CentimolesPerLiter, new string[]{"CentimolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.DecimolesPerLiter, new string[]{"DecimolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MicromolesPerLiter, new string[]{"MicromolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MillimolesPerLiter, new string[]{"MillimolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MolesPerCubicMeter, new string[]{"MolesPerCubicMeter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MolesPerLiter, new string[]{"MolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.NanomolesPerLiter, new string[]{"NanomolesPerLiter"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.PicomolesPerLiter, new string[]{"PicomolesPerLiter"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.CentigramPerMole, new string[]{"CentigramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.CentigramPerMole, new string[]{"CentigramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.DecagramPerMole, new string[]{"DecagramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.DecagramPerMole, new string[]{"DecagramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.DecigramPerMole, new string[]{"DecigramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.DecigramPerMole, new string[]{"DecigramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.GramPerMole, new string[]{"GramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.GramPerMole, new string[]{"GramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.HectogramPerMole, new string[]{"HectogramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.HectogramPerMole, new string[]{"HectogramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.KilogramPerMole, new string[]{"KilogramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.KilogramPerMole, new string[]{"KilogramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.KilopoundPerMole, new string[]{"KilopoundPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.KilopoundPerMole, new string[]{"KilopoundPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MegapoundPerMole, new string[]{"MegapoundPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MegapoundPerMole, new string[]{"MegapoundPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MicrogramPerMole, new string[]{"MicrogramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MicrogramPerMole, new string[]{"MicrogramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MilligramPerMole, new string[]{"MilligramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MilligramPerMole, new string[]{"MilligramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.NanogramPerMole, new string[]{"NanogramPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.NanogramPerMole, new string[]{"NanogramPerMole"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.PoundPerMole, new string[]{"PoundPerMole"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.PoundPerMole, new string[]{"PoundPerMole"}), + ("en-US", typeof(PermeabilityUnit), (int)PermeabilityUnit.HenryPerMeter, new string[]{"HenryPerMeter"}), + ("en-US", typeof(PermittivityUnit), (int)PermittivityUnit.FaradPerMeter, new string[]{"FaradPerMeter"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.BoilerHorsepower, new string[]{"BoilerHorsepower"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.BritishThermalUnitPerHour, new string[]{"BritishThermalUnitPerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Decawatt, new string[]{"Decawatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Deciwatt, new string[]{"Deciwatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.ElectricalHorsepower, new string[]{"ElectricalHorsepower"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Femtowatt, new string[]{"Femtowatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.GigajoulePerHour, new string[]{"GigajoulePerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Gigawatt, new string[]{"Gigawatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.HydraulicHorsepower, new string[]{"HydraulicHorsepower"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.JoulePerHour, new string[]{"JoulePerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.KilobritishThermalUnitPerHour, new string[]{"KilobritishThermalUnitPerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.KilojoulePerHour, new string[]{"KilojoulePerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Kilowatt, new string[]{"Kilowatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MechanicalHorsepower, new string[]{"MechanicalHorsepower"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MegajoulePerHour, new string[]{"MegajoulePerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Megawatt, new string[]{"Megawatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MetricHorsepower, new string[]{"MetricHorsepower"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Microwatt, new string[]{"Microwatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MillijoulePerHour, new string[]{"MillijoulePerHour"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Milliwatt, new string[]{"Milliwatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Nanowatt, new string[]{"Nanowatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Petawatt, new string[]{"Petawatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Picowatt, new string[]{"Picowatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Terawatt, new string[]{"Terawatt"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Watt, new string[]{"Watt"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicFoot, new string[]{"DecawattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicInch, new string[]{"DecawattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicMeter, new string[]{"DecawattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerLiter, new string[]{"DecawattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicFoot, new string[]{"DeciwattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicInch, new string[]{"DeciwattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicMeter, new string[]{"DeciwattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerLiter, new string[]{"DeciwattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicFoot, new string[]{"GigawattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicInch, new string[]{"GigawattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicMeter, new string[]{"GigawattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerLiter, new string[]{"GigawattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicFoot, new string[]{"KilowattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicInch, new string[]{"KilowattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicMeter, new string[]{"KilowattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerLiter, new string[]{"KilowattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicFoot, new string[]{"MegawattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicInch, new string[]{"MegawattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicMeter, new string[]{"MegawattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerLiter, new string[]{"MegawattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicFoot, new string[]{"MicrowattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicInch, new string[]{"MicrowattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicMeter, new string[]{"MicrowattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerLiter, new string[]{"MicrowattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicFoot, new string[]{"MilliwattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicInch, new string[]{"MilliwattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicMeter, new string[]{"MilliwattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerLiter, new string[]{"MilliwattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicFoot, new string[]{"NanowattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicInch, new string[]{"NanowattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicMeter, new string[]{"NanowattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerLiter, new string[]{"NanowattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicFoot, new string[]{"PicowattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicInch, new string[]{"PicowattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicMeter, new string[]{"PicowattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerLiter, new string[]{"PicowattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicFoot, new string[]{"TerawattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicInch, new string[]{"TerawattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicMeter, new string[]{"TerawattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerLiter, new string[]{"TerawattPerLiter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicFoot, new string[]{"WattPerCubicFoot"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicInch, new string[]{"WattPerCubicInch"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicMeter, new string[]{"WattPerCubicMeter"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerLiter, new string[]{"WattPerLiter"}), + ("en-US", typeof(PowerRatioUnit), (int)PowerRatioUnit.DecibelMilliwatt, new string[]{"DecibelMilliwatt"}), + ("en-US", typeof(PowerRatioUnit), (int)PowerRatioUnit.DecibelWatt, new string[]{"DecibelWatt"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Atmosphere, new string[]{"Atmosphere"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Atmosphere, new string[]{"Atmosphere"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Bar, new string[]{"Bar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Bar, new string[]{"Bar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Centibar, new string[]{"Centibar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Centibar, new string[]{"Centibar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Decapascal, new string[]{"Decapascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Decapascal, new string[]{"Decapascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Decibar, new string[]{"Decibar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Decibar, new string[]{"Decibar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.DynePerSquareCentimeter, new string[]{"DynePerSquareCentimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.FootOfElevation, new string[]{"FootOfElevation"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.FootOfHead, new string[]{"FootOfHead"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Gigapascal, new string[]{"Gigapascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Gigapascal, new string[]{"Gigapascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Hectopascal, new string[]{"Hectopascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Hectopascal, new string[]{"Hectopascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.InchOfMercury, new string[]{"InchOfMercury"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.InchOfWaterColumn, new string[]{"InchOfWaterColumn"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Kilobar, new string[]{"Kilobar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Kilobar, new string[]{"Kilobar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareCentimeter, new string[]{"KilogramForcePerSquareCentimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareCentimeter, new string[]{"KilogramForcePerSquareCentimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMeter, new string[]{"KilogramForcePerSquareMeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMeter, new string[]{"KilogramForcePerSquareMeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMillimeter, new string[]{"KilogramForcePerSquareMillimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMillimeter, new string[]{"KilogramForcePerSquareMillimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareCentimeter, new string[]{"KilonewtonPerSquareCentimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareCentimeter, new string[]{"KilonewtonPerSquareCentimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMeter, new string[]{"KilonewtonPerSquareMeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMeter, new string[]{"KilonewtonPerSquareMeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMillimeter, new string[]{"KilonewtonPerSquareMillimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMillimeter, new string[]{"KilonewtonPerSquareMillimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Kilopascal, new string[]{"Kilopascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Kilopascal, new string[]{"Kilopascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareFoot, new string[]{"KilopoundForcePerSquareFoot"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareInch, new string[]{"KilopoundForcePerSquareInch"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareInch, new string[]{"KilopoundForcePerSquareInch"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Megabar, new string[]{"Megabar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Megabar, new string[]{"Megabar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeganewtonPerSquareMeter, new string[]{"MeganewtonPerSquareMeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.MeganewtonPerSquareMeter, new string[]{"MeganewtonPerSquareMeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Megapascal, new string[]{"Megapascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Megapascal, new string[]{"Megapascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeterOfElevation, new string[]{"MeterOfElevation"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeterOfHead, new string[]{"MeterOfHead"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Microbar, new string[]{"Microbar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Microbar, new string[]{"Microbar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Micropascal, new string[]{"Micropascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Micropascal, new string[]{"Micropascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Millibar, new string[]{"Millibar"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Millibar, new string[]{"Millibar"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MillimeterOfMercury, new string[]{"MillimeterOfMercury"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.MillimeterOfMercury, new string[]{"MillimeterOfMercury"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Millipascal, new string[]{"Millipascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Millipascal, new string[]{"Millipascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareCentimeter, new string[]{"NewtonPerSquareCentimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareCentimeter, new string[]{"NewtonPerSquareCentimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMeter, new string[]{"NewtonPerSquareMeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMeter, new string[]{"NewtonPerSquareMeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMillimeter, new string[]{"NewtonPerSquareMillimeter"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMillimeter, new string[]{"NewtonPerSquareMillimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Pascal, new string[]{"Pascal"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Pascal, new string[]{"Pascal"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareFoot, new string[]{"PoundForcePerSquareFoot"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareInch, new string[]{"PoundForcePerSquareInch"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareInch, new string[]{"PoundForcePerSquareInch"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundPerInchSecondSquared, new string[]{"PoundPerInchSecondSquared"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TechnicalAtmosphere, new string[]{"TechnicalAtmosphere"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.TechnicalAtmosphere, new string[]{"TechnicalAtmosphere"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareCentimeter, new string[]{"TonneForcePerSquareCentimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareMeter, new string[]{"TonneForcePerSquareMeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareMillimeter, new string[]{"TonneForcePerSquareMillimeter"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Torr, new string[]{"Torr"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Torr, new string[]{"Torr"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.AtmospherePerSecond, new string[]{"AtmospherePerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.AtmospherePerSecond, new string[]{"AtmospherePerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerMinute, new string[]{"KilopascalPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerMinute, new string[]{"KilopascalPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerSecond, new string[]{"KilopascalPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerSecond, new string[]{"KilopascalPerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerMinute, new string[]{"KilopoundForcePerSquareInchPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerMinute, new string[]{"KilopoundForcePerSquareInchPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerSecond, new string[]{"KilopoundForcePerSquareInchPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerSecond, new string[]{"KilopoundForcePerSquareInchPerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerMinute, new string[]{"MegapascalPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerMinute, new string[]{"MegapascalPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerSecond, new string[]{"MegapascalPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerSecond, new string[]{"MegapascalPerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerMinute, new string[]{"MegapoundForcePerSquareInchPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerMinute, new string[]{"MegapoundForcePerSquareInchPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerSecond, new string[]{"MegapoundForcePerSquareInchPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerSecond, new string[]{"MegapoundForcePerSquareInchPerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerMinute, new string[]{"PascalPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerMinute, new string[]{"PascalPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerSecond, new string[]{"PascalPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerSecond, new string[]{"PascalPerSecond"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerMinute, new string[]{"PoundForcePerSquareInchPerMinute"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerMinute, new string[]{"PoundForcePerSquareInchPerMinute"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerSecond, new string[]{"PoundForcePerSquareInchPerSecond"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerSecond, new string[]{"PoundForcePerSquareInchPerSecond"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.DecimalFraction, new string[]{"DecimalFraction"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerBillion, new string[]{"PartPerBillion"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerMillion, new string[]{"PartPerMillion"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerThousand, new string[]{"PartPerThousand"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerTrillion, new string[]{"PartPerTrillion"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.Percent, new string[]{"Percent"}), + ("en-US", typeof(RatioChangeRateUnit), (int)RatioChangeRateUnit.DecimalFractionPerSecond, new string[]{"DecimalFractionPerSecond"}), + ("en-US", typeof(RatioChangeRateUnit), (int)RatioChangeRateUnit.PercentPerSecond, new string[]{"PercentPerSecond"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.KilovoltampereReactiveHour, new string[]{"KilovoltampereReactiveHour"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.MegavoltampereReactiveHour, new string[]{"MegavoltampereReactiveHour"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.VoltampereReactiveHour, new string[]{"VoltampereReactiveHour"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.GigavoltampereReactive, new string[]{"GigavoltampereReactive"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.KilovoltampereReactive, new string[]{"KilovoltampereReactive"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.MegavoltampereReactive, new string[]{"MegavoltampereReactive"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.VoltampereReactive, new string[]{"VoltampereReactive"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareCentimeter, new string[]{"InverseSquareCentimeter"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareDecimeter, new string[]{"InverseSquareDecimeter"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareFoot, new string[]{"InverseSquareFoot"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareInch, new string[]{"InverseSquareInch"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareKilometer, new string[]{"InverseSquareKilometer"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMeter, new string[]{"InverseSquareMeter"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMicrometer, new string[]{"InverseSquareMicrometer"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMile, new string[]{"InverseSquareMile"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMillimeter, new string[]{"InverseSquareMillimeter"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareYard, new string[]{"InverseSquareYard"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseUsSurveySquareFoot, new string[]{"InverseUsSurveySquareFoot"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseCentimeter, new string[]{"InverseCentimeter"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseFoot, new string[]{"InverseFoot"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseInch, new string[]{"InverseInch"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMeter, new string[]{"InverseMeter"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMicroinch, new string[]{"InverseMicroinch"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMil, new string[]{"InverseMil"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMile, new string[]{"InverseMile"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMillimeter, new string[]{"InverseMillimeter"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseUsSurveyFoot, new string[]{"InverseUsSurveyFoot"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseYard, new string[]{"InverseYard"}), + ("en-US", typeof(RelativeHumidityUnit), (int)RelativeHumidityUnit.Percent, new string[]{"Percent"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.DegreePerSecondSquared, new string[]{"DegreePerSecondSquared"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RadianPerSecondSquared, new string[]{"RadianPerSecondSquared"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RevolutionPerMinutePerSecond, new string[]{"RevolutionPerMinutePerSecond"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RevolutionPerSecondSquared, new string[]{"RevolutionPerSecondSquared"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.CentiradianPerSecond, new string[]{"CentiradianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.CentiradianPerSecond, new string[]{"CentiradianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DeciradianPerSecond, new string[]{"DeciradianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DeciradianPerSecond, new string[]{"DeciradianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerMinute, new string[]{"DegreePerMinute"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerSecond, new string[]{"DegreePerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerSecond, new string[]{"DegreePerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicrodegreePerSecond, new string[]{"MicrodegreePerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicrodegreePerSecond, new string[]{"MicrodegreePerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicroradianPerSecond, new string[]{"MicroradianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicroradianPerSecond, new string[]{"MicroradianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MillidegreePerSecond, new string[]{"MillidegreePerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MillidegreePerSecond, new string[]{"MillidegreePerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MilliradianPerSecond, new string[]{"MilliradianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MilliradianPerSecond, new string[]{"MilliradianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanodegreePerSecond, new string[]{"NanodegreePerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanodegreePerSecond, new string[]{"NanodegreePerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanoradianPerSecond, new string[]{"NanoradianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanoradianPerSecond, new string[]{"NanoradianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RadianPerSecond, new string[]{"RadianPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RadianPerSecond, new string[]{"RadianPerSecond"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerMinute, new string[]{"RevolutionPerMinute"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerMinute, new string[]{"RevolutionPerMinute"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerSecond, new string[]{"RevolutionPerSecond"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerSecond, new string[]{"RevolutionPerSecond"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMeterPerDegree, new string[]{"CentinewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMillimeterPerDegree, new string[]{"CentinewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMillimeterPerRadian, new string[]{"CentinewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMeterPerDegree, new string[]{"DecanewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMillimeterPerDegree, new string[]{"DecanewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMillimeterPerRadian, new string[]{"DecanewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMeterPerDegree, new string[]{"DecinewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMillimeterPerDegree, new string[]{"DecinewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMillimeterPerRadian, new string[]{"DecinewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMeterPerDegree, new string[]{"KilonewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMeterPerRadian, new string[]{"KilonewtonMeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMillimeterPerDegree, new string[]{"KilonewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMillimeterPerRadian, new string[]{"KilonewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilopoundForceFootPerDegrees, new string[]{"KilopoundForceFootPerDegrees"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMeterPerDegree, new string[]{"MeganewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMeterPerRadian, new string[]{"MeganewtonMeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMillimeterPerDegree, new string[]{"MeganewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMillimeterPerRadian, new string[]{"MeganewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMeterPerDegree, new string[]{"MicronewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMillimeterPerDegree, new string[]{"MicronewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMillimeterPerRadian, new string[]{"MicronewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMeterPerDegree, new string[]{"MillinewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMillimeterPerDegree, new string[]{"MillinewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMillimeterPerRadian, new string[]{"MillinewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMeterPerDegree, new string[]{"NanonewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMillimeterPerDegree, new string[]{"NanonewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMillimeterPerRadian, new string[]{"NanonewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMeterPerDegree, new string[]{"NewtonMeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMeterPerRadian, new string[]{"NewtonMeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMillimeterPerDegree, new string[]{"NewtonMillimeterPerDegree"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMillimeterPerRadian, new string[]{"NewtonMillimeterPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.PoundForceFeetPerRadian, new string[]{"PoundForceFeetPerRadian"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.PoundForceFootPerDegrees, new string[]{"PoundForceFootPerDegrees"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.KilonewtonMeterPerRadianPerMeter, new string[]{"KilonewtonMeterPerRadianPerMeter"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.KilopoundForceFootPerDegreesPerFoot, new string[]{"KilopoundForceFootPerDegreesPerFoot"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.MeganewtonMeterPerRadianPerMeter, new string[]{"MeganewtonMeterPerRadianPerMeter"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, new string[]{"NewtonMeterPerRadianPerMeter"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.PoundForceFootPerDegreesPerFoot, new string[]{"PoundForceFootPerDegreesPerFoot"}), + ("en-US", typeof(ScalarUnit), (int)ScalarUnit.Amount, new string[]{"Amount"}), + ("en-US", typeof(SolidAngleUnit), (int)SolidAngleUnit.Steradian, new string[]{"Steradian"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.BtuPerPound, new string[]{"BtuPerPound"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.CaloriePerGram, new string[]{"CaloriePerGram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerKilogram, new string[]{"GigawattDayPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerShortTon, new string[]{"GigawattDayPerShortTon"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerTonne, new string[]{"GigawattDayPerTonne"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattHourPerKilogram, new string[]{"GigawattHourPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.JoulePerKilogram, new string[]{"JoulePerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilocaloriePerGram, new string[]{"KilocaloriePerGram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilojoulePerKilogram, new string[]{"KilojoulePerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerKilogram, new string[]{"KilowattDayPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerShortTon, new string[]{"KilowattDayPerShortTon"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerTonne, new string[]{"KilowattDayPerTonne"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattHourPerKilogram, new string[]{"KilowattHourPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegajoulePerKilogram, new string[]{"MegajoulePerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerKilogram, new string[]{"MegawattDayPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerShortTon, new string[]{"MegawattDayPerShortTon"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerTonne, new string[]{"MegawattDayPerTonne"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattHourPerKilogram, new string[]{"MegawattHourPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerKilogram, new string[]{"TerawattDayPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerShortTon, new string[]{"TerawattDayPerShortTon"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerTonne, new string[]{"TerawattDayPerTonne"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerKilogram, new string[]{"WattDayPerKilogram"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerShortTon, new string[]{"WattDayPerShortTon"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerTonne, new string[]{"WattDayPerTonne"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattHourPerKilogram, new string[]{"WattHourPerKilogram"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.BtuPerPoundFahrenheit, new string[]{"BtuPerPoundFahrenheit"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.CaloriePerGramKelvin, new string[]{"CaloriePerGramKelvin"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.JoulePerKilogramDegreeCelsius, new string[]{"JoulePerKilogramDegreeCelsius"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.JoulePerKilogramKelvin, new string[]{"JoulePerKilogramKelvin"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilocaloriePerGramKelvin, new string[]{"KilocaloriePerGramKelvin"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilojoulePerKilogramDegreeCelsius, new string[]{"KilojoulePerKilogramDegreeCelsius"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilojoulePerKilogramKelvin, new string[]{"KilojoulePerKilogramKelvin"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.MegajoulePerKilogramDegreeCelsius, new string[]{"MegajoulePerKilogramDegreeCelsius"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.MegajoulePerKilogramKelvin, new string[]{"MegajoulePerKilogramKelvin"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, new string[]{"GramPerKiloNewtonSecond"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.KilogramPerKilogramForceHour, new string[]{"KilogramPerKilogramForceHour"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.KilogramPerKiloNewtonSecond, new string[]{"KilogramPerKiloNewtonSecond"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.PoundMassPerPoundForceHour, new string[]{"PoundMassPerPoundForceHour"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.CubicFootPerPound, new string[]{"CubicFootPerPound"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.CubicMeterPerKilogram, new string[]{"CubicMeterPerKilogram"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.MillicubicMeterPerKilogram, new string[]{"MillicubicMeterPerKilogram"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicCentimeter, new string[]{"KilogramForcePerCubicCentimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicMeter, new string[]{"KilogramForcePerCubicMeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicMillimeter, new string[]{"KilogramForcePerCubicMillimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicCentimeter, new string[]{"KilonewtonPerCubicCentimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicMeter, new string[]{"KilonewtonPerCubicMeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicMillimeter, new string[]{"KilonewtonPerCubicMillimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilopoundForcePerCubicFoot, new string[]{"KilopoundForcePerCubicFoot"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilopoundForcePerCubicInch, new string[]{"KilopoundForcePerCubicInch"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.MeganewtonPerCubicMeter, new string[]{"MeganewtonPerCubicMeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicCentimeter, new string[]{"NewtonPerCubicCentimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicMeter, new string[]{"NewtonPerCubicMeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicMillimeter, new string[]{"NewtonPerCubicMillimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.PoundForcePerCubicFoot, new string[]{"PoundForcePerCubicFoot"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.PoundForcePerCubicInch, new string[]{"PoundForcePerCubicInch"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicCentimeter, new string[]{"TonneForcePerCubicCentimeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicMeter, new string[]{"TonneForcePerCubicMeter"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicMillimeter, new string[]{"TonneForcePerCubicMillimeter"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerHour, new string[]{"CentimeterPerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerHour, new string[]{"CentimeterPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerMinute, new string[]{"CentimeterPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerMinute, new string[]{"CentimeterPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerSecond, new string[]{"CentimeterPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerSecond, new string[]{"CentimeterPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerMinute, new string[]{"DecimeterPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerMinute, new string[]{"DecimeterPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerSecond, new string[]{"DecimeterPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerSecond, new string[]{"DecimeterPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerHour, new string[]{"FootPerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerHour, new string[]{"FootPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerMinute, new string[]{"FootPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerMinute, new string[]{"FootPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerSecond, new string[]{"FootPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerSecond, new string[]{"FootPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerHour, new string[]{"InchPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerMinute, new string[]{"InchPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerSecond, new string[]{"InchPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerHour, new string[]{"KilometerPerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerHour, new string[]{"KilometerPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerMinute, new string[]{"KilometerPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerMinute, new string[]{"KilometerPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerSecond, new string[]{"KilometerPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerSecond, new string[]{"KilometerPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.Knot, new string[]{"Knot"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.Knot, new string[]{"Knot"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerHour, new string[]{"MeterPerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerHour, new string[]{"MeterPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerMinute, new string[]{"MeterPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerMinute, new string[]{"MeterPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerSecond, new string[]{"MeterPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerSecond, new string[]{"MeterPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerMinute, new string[]{"MicrometerPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerMinute, new string[]{"MicrometerPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerSecond, new string[]{"MicrometerPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerSecond, new string[]{"MicrometerPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MilePerHour, new string[]{"MilePerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MilePerHour, new string[]{"MilePerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerHour, new string[]{"MillimeterPerHour"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerHour, new string[]{"MillimeterPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerMinute, new string[]{"MillimeterPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerMinute, new string[]{"MillimeterPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerSecond, new string[]{"MillimeterPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerSecond, new string[]{"MillimeterPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerMinute, new string[]{"NanometerPerMinute"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerMinute, new string[]{"NanometerPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerSecond, new string[]{"NanometerPerSecond"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerSecond, new string[]{"NanometerPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerHour, new string[]{"UsSurveyFootPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerMinute, new string[]{"UsSurveyFootPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerSecond, new string[]{"UsSurveyFootPerSecond"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerHour, new string[]{"YardPerHour"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerMinute, new string[]{"YardPerMinute"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerSecond, new string[]{"YardPerSecond"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicCentimeterPerMinute, new string[]{"StandardCubicCentimeterPerMinute"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerHour, new string[]{"StandardCubicFootPerHour"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerMinute, new string[]{"StandardCubicFootPerMinute"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerSecond, new string[]{"StandardCubicFootPerSecond"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerDay, new string[]{"StandardCubicMeterPerDay"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerHour, new string[]{"StandardCubicMeterPerHour"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerMinute, new string[]{"StandardCubicMeterPerMinute"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerSecond, new string[]{"StandardCubicMeterPerSecond"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardLiterPerMinute, new string[]{"StandardLiterPerMinute"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeCelsius, new string[]{"DegreeCelsius"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeDelisle, new string[]{"DegreeDelisle"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeFahrenheit, new string[]{"DegreeFahrenheit"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeNewton, new string[]{"DegreeNewton"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeRankine, new string[]{"DegreeRankine"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeReaumur, new string[]{"DegreeReaumur"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeRoemer, new string[]{"DegreeRoemer"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.Kelvin, new string[]{"Kelvin"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.MillidegreeCelsius, new string[]{"MillidegreeCelsius"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.SolarTemperature, new string[]{"SolarTemperature"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.CentidegreeCelsiusPerSecond, new string[]{"CentidegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DecadegreeCelsiusPerSecond, new string[]{"DecadegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DecidegreeCelsiusPerSecond, new string[]{"DecidegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DegreeCelsiusPerMinute, new string[]{"DegreeCelsiusPerMinute"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DegreeCelsiusPerSecond, new string[]{"DegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.HectodegreeCelsiusPerSecond, new string[]{"HectodegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.KilodegreeCelsiusPerSecond, new string[]{"KilodegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond, new string[]{"MicrodegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond, new string[]{"MillidegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.NanodegreeCelsiusPerSecond, new string[]{"NanodegreeCelsiusPerSecond"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeCelsius, new string[]{"DegreeCelsius"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeDelisle, new string[]{"DegreeDelisle"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeFahrenheit, new string[]{"DegreeFahrenheit"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeNewton, new string[]{"DegreeNewton"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeRankine, new string[]{"DegreeRankine"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeReaumur, new string[]{"DegreeReaumur"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeRoemer, new string[]{"DegreeRoemer"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.Kelvin, new string[]{"Kelvin"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.MillidegreeCelsius, new string[]{"MillidegreeCelsius"}), + ("en-US", typeof(ThermalConductivityUnit), (int)ThermalConductivityUnit.BtuPerHourFootFahrenheit, new string[]{"BtuPerHourFootFahrenheit"}), + ("en-US", typeof(ThermalConductivityUnit), (int)ThermalConductivityUnit.WattPerMeterKelvin, new string[]{"WattPerMeterKelvin"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.HourSquareFeetDegreeFahrenheitPerBtu, new string[]{"HourSquareFeetDegreeFahrenheitPerBtu"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareCentimeterHourDegreeCelsiusPerKilocalorie, new string[]{"SquareCentimeterHourDegreeCelsiusPerKilocalorie"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareCentimeterKelvinPerWatt, new string[]{"SquareCentimeterKelvinPerWatt"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareMeterDegreeCelsiusPerWatt, new string[]{"SquareMeterDegreeCelsiusPerWatt"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, new string[]{"SquareMeterKelvinPerKilowatt"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceCentimeter, new string[]{"KilogramForceCentimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceMeter, new string[]{"KilogramForceMeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceMillimeter, new string[]{"KilogramForceMillimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonCentimeter, new string[]{"KilonewtonCentimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMeter, new string[]{"KilonewtonMeter"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMeter, new string[]{"KilonewtonMeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMillimeter, new string[]{"KilonewtonMillimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilopoundForceFoot, new string[]{"KilopoundForceFoot"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilopoundForceInch, new string[]{"KilopoundForceInch"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonCentimeter, new string[]{"MeganewtonCentimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMeter, new string[]{"MeganewtonMeter"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMeter, new string[]{"MeganewtonMeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMillimeter, new string[]{"MeganewtonMillimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MegapoundForceFoot, new string[]{"MegapoundForceFoot"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MegapoundForceInch, new string[]{"MegapoundForceInch"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonCentimeter, new string[]{"NewtonCentimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonMeter, new string[]{"NewtonMeter"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.NewtonMeter, new string[]{"NewtonMeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonMillimeter, new string[]{"NewtonMillimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundalFoot, new string[]{"PoundalFoot"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundForceFoot, new string[]{"PoundForceFoot"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundForceInch, new string[]{"PoundForceInch"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceCentimeter, new string[]{"TonneForceCentimeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceMeter, new string[]{"TonneForceMeter"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceMillimeter, new string[]{"TonneForceMillimeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceCentimeterPerMeter, new string[]{"KilogramForceCentimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceMeterPerMeter, new string[]{"KilogramForceMeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceMillimeterPerMeter, new string[]{"KilogramForceMillimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonCentimeterPerMeter, new string[]{"KilonewtonCentimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMeterPerMeter, new string[]{"KilonewtonMeterPerMeter"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMeterPerMeter, new string[]{"KilonewtonMeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMillimeterPerMeter, new string[]{"KilonewtonMillimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilopoundForceFootPerFoot, new string[]{"KilopoundForceFootPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilopoundForceInchPerFoot, new string[]{"KilopoundForceInchPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonCentimeterPerMeter, new string[]{"MeganewtonCentimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMeterPerMeter, new string[]{"MeganewtonMeterPerMeter"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMeterPerMeter, new string[]{"MeganewtonMeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMillimeterPerMeter, new string[]{"MeganewtonMillimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MegapoundForceFootPerFoot, new string[]{"MegapoundForceFootPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MegapoundForceInchPerFoot, new string[]{"MegapoundForceInchPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonCentimeterPerMeter, new string[]{"NewtonCentimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMeterPerMeter, new string[]{"NewtonMeterPerMeter"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMeterPerMeter, new string[]{"NewtonMeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMillimeterPerMeter, new string[]{"NewtonMillimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.PoundForceFootPerFoot, new string[]{"PoundForceFootPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.PoundForceInchPerFoot, new string[]{"PoundForceInchPerFoot"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceCentimeterPerMeter, new string[]{"TonneForceCentimeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceMeterPerMeter, new string[]{"TonneForceMeterPerMeter"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceMillimeterPerMeter, new string[]{"TonneForceMillimeterPerMeter"}), + ("en-US", typeof(TurbidityUnit), (int)TurbidityUnit.NTU, new string[]{"NTU"}), + ("en-US", typeof(VitaminAUnit), (int)VitaminAUnit.InternationalUnit, new string[]{"InternationalUnit"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.AcreFoot, new string[]{"AcreFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"AuTablespoon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"AuTablespoon"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"AuTablespoon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.BoardFoot, new string[]{"BoardFoot"}), + ("fr-CA", typeof(VolumeUnit), (int)VolumeUnit.BoardFoot, new string[]{"BoardFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Centiliter, new string[]{"Centiliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Centiliter, new string[]{"Centiliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicCentimeter, new string[]{"CubicCentimeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicCentimeter, new string[]{"CubicCentimeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicDecimeter, new string[]{"CubicDecimeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicDecimeter, new string[]{"CubicDecimeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicFoot, new string[]{"CubicFoot"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicFoot, new string[]{"CubicFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicHectometer, new string[]{"CubicHectometer"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicHectometer, new string[]{"CubicHectometer"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicInch, new string[]{"CubicInch"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicInch, new string[]{"CubicInch"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicKilometer, new string[]{"CubicKilometer"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicKilometer, new string[]{"CubicKilometer"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMeter, new string[]{"CubicMeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMeter, new string[]{"CubicMeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMicrometer, new string[]{"CubicMicrometer"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMicrometer, new string[]{"CubicMicrometer"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMile, new string[]{"CubicMile"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMile, new string[]{"CubicMile"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMillimeter, new string[]{"CubicMillimeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMillimeter, new string[]{"CubicMillimeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicYard, new string[]{"CubicYard"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicYard, new string[]{"CubicYard"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.DecausGallon, new string[]{"DecausGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.DecausGallon, new string[]{"DecausGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Deciliter, new string[]{"Deciliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Deciliter, new string[]{"Deciliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.DeciusGallon, new string[]{"DeciusGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.DeciusGallon, new string[]{"DeciusGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectocubicFoot, new string[]{"HectocubicFoot"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectocubicFoot, new string[]{"HectocubicFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectocubicMeter, new string[]{"HectocubicMeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectocubicMeter, new string[]{"HectocubicMeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Hectoliter, new string[]{"Hectoliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Hectoliter, new string[]{"Hectoliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectousGallon, new string[]{"HectousGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectousGallon, new string[]{"HectousGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialBeerBarrel, new string[]{"ImperialBeerBarrel"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialGallon, new string[]{"ImperialGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.ImperialGallon, new string[]{"ImperialGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialOunce, new string[]{"ImperialOunce"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.ImperialOunce, new string[]{"ImperialOunce"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialPint, new string[]{"ImperialPint"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilocubicFoot, new string[]{"KilocubicFoot"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilocubicFoot, new string[]{"KilocubicFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilocubicMeter, new string[]{"KilocubicMeter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilocubicMeter, new string[]{"KilocubicMeter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KiloimperialGallon, new string[]{"KiloimperialGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KiloimperialGallon, new string[]{"KiloimperialGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Kiloliter, new string[]{"Kiloliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Kiloliter, new string[]{"Kiloliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilousGallon, new string[]{"KilousGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilousGallon, new string[]{"KilousGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Liter, new string[]{"Liter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Liter, new string[]{"Liter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegacubicFoot, new string[]{"MegacubicFoot"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegacubicFoot, new string[]{"MegacubicFoot"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegaimperialGallon, new string[]{"MegaimperialGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegaimperialGallon, new string[]{"MegaimperialGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Megaliter, new string[]{"Megaliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Megaliter, new string[]{"Megaliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegausGallon, new string[]{"MegausGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegausGallon, new string[]{"MegausGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MetricCup, new string[]{"MetricCup"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"MetricTeaspoon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"MetricTeaspoon"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"MetricTeaspoon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Microliter, new string[]{"Microliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Microliter, new string[]{"Microliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Milliliter, new string[]{"Milliliter"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Milliliter, new string[]{"Milliliter"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.OilBarrel, new string[]{"OilBarrel"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"UkTablespoon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"UkTablespoon"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"UkTablespoon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsBeerBarrel, new string[]{"UsBeerBarrel"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsCustomaryCup, new string[]{"UsCustomaryCup"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsGallon, new string[]{"UsGallon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsGallon, new string[]{"UsGallon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsLegalCup, new string[]{"UsLegalCup"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsOunce, new string[]{"UsOunce"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsOunce, new string[]{"UsOunce"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsPint, new string[]{"UsPint"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsQuart, new string[]{"UsQuart"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"UsTablespoon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"UsTablespoon"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"UsTablespoon"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"UsTeaspoon"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"UsTeaspoon"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"UsTeaspoon"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.CentilitersPerLiter, new string[]{"CentilitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.CentilitersPerMililiter, new string[]{"CentilitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecilitersPerLiter, new string[]{"DecilitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecilitersPerMililiter, new string[]{"DecilitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecimalFraction, new string[]{"DecimalFraction"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.LitersPerLiter, new string[]{"LitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.LitersPerMililiter, new string[]{"LitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MicrolitersPerLiter, new string[]{"MicrolitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MicrolitersPerMililiter, new string[]{"MicrolitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MillilitersPerLiter, new string[]{"MillilitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MillilitersPerMililiter, new string[]{"MillilitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.NanolitersPerLiter, new string[]{"NanolitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.NanolitersPerMililiter, new string[]{"NanolitersPerMililiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerBillion, new string[]{"PartPerBillion"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerMillion, new string[]{"PartPerMillion"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerThousand, new string[]{"PartPerThousand"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerTrillion, new string[]{"PartPerTrillion"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.Percent, new string[]{"Percent"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PicolitersPerLiter, new string[]{"PicolitersPerLiter"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PicolitersPerMililiter, new string[]{"PicolitersPerMililiter"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerDay, new string[]{"AcreFootPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerHour, new string[]{"AcreFootPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerMinute, new string[]{"AcreFootPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerSecond, new string[]{"AcreFootPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerDay, new string[]{"CentiliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerMinute, new string[]{"CentiliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerMinute, new string[]{"CentiliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerSecond, new string[]{"CentiliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerSecond, new string[]{"CentiliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicCentimeterPerMinute, new string[]{"CubicCentimeterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicCentimeterPerMinute, new string[]{"CubicCentimeterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicDecimeterPerMinute, new string[]{"CubicDecimeterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicDecimeterPerMinute, new string[]{"CubicDecimeterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerHour, new string[]{"CubicFootPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerMinute, new string[]{"CubicFootPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerSecond, new string[]{"CubicFootPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerDay, new string[]{"CubicMeterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerHour, new string[]{"CubicMeterPerHour"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerHour, new string[]{"CubicMeterPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerMinute, new string[]{"CubicMeterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerMinute, new string[]{"CubicMeterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerSecond, new string[]{"CubicMeterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerSecond, new string[]{"CubicMeterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMillimeterPerSecond, new string[]{"CubicMillimeterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMillimeterPerSecond, new string[]{"CubicMillimeterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerDay, new string[]{"CubicYardPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerHour, new string[]{"CubicYardPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerMinute, new string[]{"CubicYardPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerSecond, new string[]{"CubicYardPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerDay, new string[]{"DeciliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerMinute, new string[]{"DeciliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerMinute, new string[]{"DeciliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerSecond, new string[]{"DeciliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerSecond, new string[]{"DeciliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerDay, new string[]{"KiloliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerMinute, new string[]{"KiloliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerMinute, new string[]{"KiloliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerSecond, new string[]{"KiloliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerSecond, new string[]{"KiloliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KilousGallonPerMinute, new string[]{"KilousGallonPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerDay, new string[]{"LiterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerHour, new string[]{"LiterPerHour"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerHour, new string[]{"LiterPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerMinute, new string[]{"LiterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerMinute, new string[]{"LiterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerSecond, new string[]{"LiterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerSecond, new string[]{"LiterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MegaliterPerDay, new string[]{"MegaliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MegaukGallonPerSecond, new string[]{"MegaukGallonPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerDay, new string[]{"MicroliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerMinute, new string[]{"MicroliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerMinute, new string[]{"MicroliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerSecond, new string[]{"MicroliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerSecond, new string[]{"MicroliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerDay, new string[]{"MilliliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerMinute, new string[]{"MilliliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerMinute, new string[]{"MilliliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerSecond, new string[]{"MilliliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerSecond, new string[]{"MilliliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MillionUsGallonsPerDay, new string[]{"MillionUsGallonsPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerDay, new string[]{"NanoliterPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerMinute, new string[]{"NanoliterPerMinute"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerMinute, new string[]{"NanoliterPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerSecond, new string[]{"NanoliterPerSecond"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerSecond, new string[]{"NanoliterPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerDay, new string[]{"OilBarrelPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerHour, new string[]{"OilBarrelPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerMinute, new string[]{"OilBarrelPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerSecond, new string[]{"OilBarrelPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerDay, new string[]{"UkGallonPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerHour, new string[]{"UkGallonPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerMinute, new string[]{"UkGallonPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerSecond, new string[]{"UkGallonPerSecond"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerDay, new string[]{"UsGallonPerDay"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerHour, new string[]{"UsGallonPerHour"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerMinute, new string[]{"UsGallonPerMinute"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerSecond, new string[]{"UsGallonPerSecond"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicMeterPerMeter, new string[]{"CubicMeterPerMeter"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicYardPerFoot, new string[]{"CubicYardPerFoot"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicYardPerUsSurveyFoot, new string[]{"CubicYardPerUsSurveyFoot"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerKilometer, new string[]{"LiterPerKilometer"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerMeter, new string[]{"LiterPerMeter"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerMillimeter, new string[]{"LiterPerMillimeter"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.OilBarrelPerFoot, new string[]{"OilBarrelPerFoot"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.BtuPerCubicFootDegreeFahrenheit, new string[]{"BtuPerCubicFootDegreeFahrenheit"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.CaloriePerCubicCentimeterDegreeCelsius, new string[]{"CaloriePerCubicCentimeterDegreeCelsius"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.JoulePerCubicMeterDegreeCelsius, new string[]{"JoulePerCubicMeterDegreeCelsius"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, new string[]{"JoulePerCubicMeterKelvin"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilocaloriePerCubicCentimeterDegreeCelsius, new string[]{"KilocaloriePerCubicCentimeterDegreeCelsius"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilojoulePerCubicMeterDegreeCelsius, new string[]{"KilojoulePerCubicMeterDegreeCelsius"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilojoulePerCubicMeterKelvin, new string[]{"KilojoulePerCubicMeterKelvin"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.MegajoulePerCubicMeterDegreeCelsius, new string[]{"MegajoulePerCubicMeterDegreeCelsius"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.MegajoulePerCubicMeterKelvin, new string[]{"MegajoulePerCubicMeterKelvin"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.CentimeterToTheSixth, new string[]{"CentimeterToTheSixth"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.DecimeterToTheSixth, new string[]{"DecimeterToTheSixth"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.FootToTheSixth, new string[]{"FootToTheSixth"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.InchToTheSixth, new string[]{"InchToTheSixth"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.MeterToTheSixth, new string[]{"MeterToTheSixth"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.MillimeterToTheSixth, new string[]{"MillimeterToTheSixth"}), + }; + } +} diff --git a/UnitsNet/CustomCode/UnitLocalizationCache.cs b/UnitsNet/CustomCode/UnitLocalizationCache.cs index 5d2a2f3097..951a450c05 100644 --- a/UnitsNet/CustomCode/UnitLocalizationCache.cs +++ b/UnitsNet/CustomCode/UnitLocalizationCache.cs @@ -23,7 +23,6 @@ public class UnitLocalizationCache { private readonly string _stringName; private readonly Dictionary _lookupsForCulture; - private readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] _generatedLocalizedStrings; /// /// Fallback culture used by and @@ -45,7 +44,7 @@ public UnitLocalizationCache(string stringName, (string CultureName, Type UnitTy { _stringName = stringName; _lookupsForCulture = new Dictionary(); - _generatedLocalizedStrings = generatedLocalizedStrings; + LoadGeneratedStrings(generatedLocalizedStrings); } /// @@ -310,5 +309,15 @@ internal bool TryGetUnitValueStringLookup(Type unitType, IFormatProvider? format return true; } + + private void LoadGeneratedStrings((string CultureName, Type UnitType, int UnitValue, string[] Strings)[] generatedLocalizedStrings) + { + foreach (var localization in generatedLocalizedStrings) + { + + var culture = new CultureInfo(localization.CultureName); + MapUnitToStrings(localization.UnitType, localization.UnitValue, culture, localization.Strings); + } + } } } diff --git a/UnitsNet/CustomCode/UnitSingularNamesCache.cs b/UnitsNet/CustomCode/UnitSingularNamesCache.cs new file mode 100644 index 0000000000..f4a916d973 --- /dev/null +++ b/UnitsNet/CustomCode/UnitSingularNamesCache.cs @@ -0,0 +1,174 @@ +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using System.Globalization; +using JetBrains.Annotations; +using UnitsNet.Units; + +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + /// + /// Cache of the mapping between unit enum values and unit singular names for one or more cultures. + /// + /// TODO It may be a good thing to remove all unesfull methods MapXXX from the public API. MapXXX should be only used for internal purpose of the cache + /// + public sealed partial class UnitSingularNamesCache + { + private readonly UnitLocalizationCache _cache; + + /// + /// The static instance used internally + /// + public static UnitSingularNamesCache Default { get; } + + /// + /// Create an instance of the cache and load all the singularNames defined in the library. + /// + public UnitSingularNamesCache() + { + _cache = new UnitLocalizationCache("singular name", GeneratedLocalizations); + } + + static UnitSingularNamesCache() + { + Default = new UnitSingularNamesCache(); + } + + /// + /// Adds one or more unit singularName for the given unit enum value. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// Unit singularNames to add. + /// The type of unit enum. + [PublicAPI] + public void MapUnitToSingularName(TUnitType unit, params string[] singularNames) where TUnitType : Enum => + _cache.MapUnitToStrings(unit, singularNames); + + /// + /// Adds a unit singularName for the given unit enum value and sets it as the default. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// Unit singularNames to add as default. + /// The type of unit enum. + public void MapUnitToDefaultSingularName(TUnitType unit, string singularName) where TUnitType : Enum => + _cache.MapUnitToDefaultString(unit, singularName); + + /// + /// Adds one or more unit singularName for the given unit enum value. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularNames to add. + /// The type of unit enum. + [PublicAPI] + public void MapUnitToSingularName(TUnitType unit, IFormatProvider formatProvider, params string[] singularNames) where TUnitType : Enum => + MapUnitToSingularName(unit, formatProvider, singularNames); + + /// + /// Adds a unit singularName for the given unit enum value and sets it as the default. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularName to add as default. + /// The type of unit enum. + [PublicAPI] + public void MapUnitToDefaultSingularName(TUnitType unit, IFormatProvider formatProvider, string singularName) where TUnitType : Enum => + _cache.MapUnitToDefaultString(unit, formatProvider, singularName); + + /// + /// Adds one or more unit singularName for the given unit enum value. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularNames to add. + [PublicAPI] + public void MapUnitToSingularName(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] params string[] singularNames) => + _cache.MapUnitToStrings(unitType, unitValue, formatProvider, singularNames); + + /// + /// Adds a unit singularName for the given unit enum value and sets it as the default. + /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums + /// in order to or on them later. + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularName to add as default. + [PublicAPI] + public void MapUnitToDefaultSingularName(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] string singularName) => + _cache.MapUnitToDefaultString(unitType, unitValue, formatProvider, singularName); + + /// + /// Gets the default singularName for a given unit. If a unit has more than one singularName defined, then it returns the first one. + /// Example: GetDefaultSingularName<LengthUnit>(LengthUnit.Kilometer) => "km" + /// + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// The type of unit enum. + /// The default unit singularName string. + [PublicAPI] + public string GetDefaultSingularName(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetDefaultString(unit, formatProvider); + + /// + /// Gets the default singularName for a given unit type and its numeric enum value. + /// If a unit has more than one singularName defined, then it returns the first one. + /// Example: GetDefaultSingularName<LengthUnit>(typeof(LengthUnit), 1) => "cm" + /// + /// The unit enum type. + /// The unit enum value. + /// The format provider to use for lookup. Defaults to if null. + /// The default unit singularName string. + [PublicAPI] + public string GetDefaultSingularName(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetDefaultString(unitType, unitValue, formatProvider); + + /// + /// Get all singularNames for unit. + /// + /// Enum type for units. + /// Enum value for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularNames associated with unit. + [PublicAPI] + public string[] GetUnitSingularNames(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetUnitStrings(unit, formatProvider); + + /// + /// Get all singularNames for unit. + /// + /// Enum type for unit. + /// Enum value for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularNames associated with unit. + [PublicAPI] + public string[] GetUnitSingularNames(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetUnitStrings(unitType, unitValue, formatProvider); + + /// + /// Get all singularNames for all units of a quantity. + /// + /// Enum type for unit. + /// The format provider to use for lookup. Defaults to if null. + /// Unit singularNames associated with unit. + [PublicAPI] + public string[] GetAllUnitSingularNamesForQuantity(Type unitEnumType, IFormatProvider? formatProvider = null) => + _cache.GetAllUnitStringsForQuantity(unitEnumType, formatProvider); + + internal bool TryGetUnitValueSingularNameLookup(Type unitType, IFormatProvider? formatProvider, out UnitValueToStringLookup? unitToSingularNames) => + _cache.TryGetUnitValueStringLookup(unitType, formatProvider, out unitToSingularNames); + } +} diff --git a/UnitsNet/GeneratedCode/UnitSingularNamesCache.g.cs b/UnitsNet/GeneratedCode/UnitSingularNamesCache.g.cs new file mode 100644 index 0000000000..60368e0c29 --- /dev/null +++ b/UnitsNet/GeneratedCode/UnitSingularNamesCache.g.cs @@ -0,0 +1,1730 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by \generate-code.bat. +// +// Changes to this file will be lost when the code is regenerated. +// The build server regenerates the code before each build and a pre-build +// step will regenerate the code on each local build. +// +// See https://github.com/angularsen/UnitsNet/wiki/Adding-a-New-Unit for how to add or edit units. +// +// Add CustomCode\Quantities\MyQuantity.extra.cs files to add code to generated quantities. +// Add UnitDefinitions\MyQuantity.json and run generate-code.bat to generate new units or quantities. +// +// +//------------------------------------------------------------------------------ + +// Licensed under MIT No Attribution, see LICENSE file at the root. +// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. + +using System; +using UnitsNet.Units; + +// ReSharper disable RedundantCommaInArrayInitializer +// ReSharper disable once CheckNamespace +namespace UnitsNet +{ + public partial class UnitSingularNamesCache + { + private static readonly (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] GeneratedLocalizations + = new [] + { + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.CentimeterPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.CentimeterPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.DecimeterPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.DecimeterPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.FootPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.FootPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.InchPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.InchPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KilometerPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KilometerPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerHour, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerMinute, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.KnotPerSecond, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MeterPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MeterPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MicrometerPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MicrometerPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MillimeterPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MillimeterPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.MillistandardGravity, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.MillistandardGravity, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.NanometerPerSecondSquared, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.NanometerPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(AccelerationUnit), (int)AccelerationUnit.StandardGravity, new string[]{"BOB"}), + ("ru-RU", typeof(AccelerationUnit), (int)AccelerationUnit.StandardGravity, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Centimole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.CentipoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Decimole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.DecipoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Kilomole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.KilopoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Megamole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Micromole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.MicropoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Millimole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.MillipoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Mole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.Nanomole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.NanopoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmountOfSubstanceUnit), (int)AmountOfSubstanceUnit.PoundMole, new string[]{"BOB"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelMicrovolt, new string[]{"BOB"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelMillivolt, new string[]{"BOB"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelUnloaded, new string[]{"BOB"}), + ("en-US", typeof(AmplitudeRatioUnit), (int)AmplitudeRatioUnit.DecibelVolt, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Arcminute, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Arcsecond, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Centiradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Centiradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Deciradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Deciradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Degree, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Degree, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Gradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Gradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Microdegree, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Microdegree, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Microradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Microradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Millidegree, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Millidegree, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Milliradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Milliradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Nanodegree, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Nanodegree, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Nanoradian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Nanoradian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.NatoMil, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Radian, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Radian, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Revolution, new string[]{"BOB"}), + ("ru-RU", typeof(AngleUnit), (int)AngleUnit.Revolution, new string[]{"BOB"}), + ("en-US", typeof(AngleUnit), (int)AngleUnit.Tilt, new string[]{"BOB"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.KilovoltampereHour, new string[]{"BOB"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.MegavoltampereHour, new string[]{"BOB"}), + ("en-US", typeof(ApparentEnergyUnit), (int)ApparentEnergyUnit.VoltampereHour, new string[]{"BOB"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Gigavoltampere, new string[]{"BOB"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Kilovoltampere, new string[]{"BOB"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Megavoltampere, new string[]{"BOB"}), + ("en-US", typeof(ApparentPowerUnit), (int)ApparentPowerUnit.Voltampere, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.Acre, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.Hectare, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareFoot, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareInch, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareKilometer, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMeter, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMicrometer, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMile, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareNauticalMile, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"BOB"}), + ("zh-CN", typeof(AreaUnit), (int)AreaUnit.SquareYard, new string[]{"BOB"}), + ("en-US", typeof(AreaUnit), (int)AreaUnit.UsSurveySquareFoot, new string[]{"BOB"}), + ("ru-RU", typeof(AreaUnit), (int)AreaUnit.UsSurveySquareFoot, new string[]{"BOB"}), + ("en-US", typeof(AreaDensityUnit), (int)AreaDensityUnit.KilogramPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.CentimeterToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.DecimeterToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.FootToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.InchToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.MeterToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(AreaMomentOfInertiaUnit), (int)AreaMomentOfInertiaUnit.MillimeterToTheFourth, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.BitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.BytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExabitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExabytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExbibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.ExbibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GibibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GibibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GigabitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.GigabytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KibibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KibibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KilobitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.KilobytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MebibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MebibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MegabitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.MegabytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PebibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PebibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PetabitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.PetabytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TebibitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TebibytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TerabitPerSecond, new string[]{"BOB"}), + ("en-US", typeof(BitRateUnit), (int)BitRateUnit.TerabytePerSecond, new string[]{"BOB"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, new string[]{"BOB"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, new string[]{"BOB"}), + ("en-US", typeof(BrakeSpecificFuelConsumptionUnit), (int)BrakeSpecificFuelConsumptionUnit.PoundPerMechanicalHorsepowerHour, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Farad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Kilofarad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Megafarad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Microfarad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Millifarad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Nanofarad, new string[]{"BOB"}), + ("en-US", typeof(CapacitanceUnit), (int)CapacitanceUnit.Picofarad, new string[]{"BOB"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseDegreeFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(CoefficientOfThermalExpansionUnit), (int)CoefficientOfThermalExpansionUnit.InverseKelvin, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.CentigramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.DecigramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.GramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilopoundPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.KilopoundPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.MicrogramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MicrogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(DensityUnit), (int)DensityUnit.MilligramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.MilligramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.NanogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PicogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerImperialGallon, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.PoundPerUSGallon, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.SlugPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(DensityUnit), (int)DensityUnit.TonnePerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Minute, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Minute, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Month30, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Month30, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Nanosecond, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Nanosecond, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Second, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Second, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Week, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Week, new string[]{"BOB"}), + ("en-US", typeof(DurationUnit), (int)DurationUnit.Year365, new string[]{"BOB"}), + ("ru-RU", typeof(DurationUnit), (int)DurationUnit.Year365, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Centipoise, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.MicropascalSecond, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.MillipascalSecond, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.NewtonSecondPerMeterSquared, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PascalSecond, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Poise, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundForceSecondPerSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundForceSecondPerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.PoundPerFootSecond, new string[]{"BOB"}), + ("en-US", typeof(DynamicViscosityUnit), (int)DynamicViscosityUnit.Reyn, new string[]{"BOB"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Microsiemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Millisiemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Nanosiemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricAdmittanceUnit), (int)ElectricAdmittanceUnit.Siemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.AmpereHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.Coulomb, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.KiloampereHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.MegaampereHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeUnit), (int)ElectricChargeUnit.MilliampereHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricChargeDensityUnit), (int)ElectricChargeDensityUnit.CoulombPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Microsiemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Millisiemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductanceUnit), (int)ElectricConductanceUnit.Siemens, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerFoot, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerInch, new string[]{"BOB"}), + ("en-US", typeof(ElectricConductivityUnit), (int)ElectricConductivityUnit.SiemensPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Ampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Centiampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Kiloampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Megaampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Microampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Milliampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Nanoampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentUnit), (int)ElectricCurrentUnit.Picoampere, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentDensityUnit), (int)ElectricCurrentDensityUnit.AmperePerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerMillisecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerNanosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricCurrentGradientUnit), (int)ElectricCurrentGradientUnit.AmperePerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricFieldUnit), (int)ElectricFieldUnit.VoltPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Henry, new string[]{"BOB"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Microhenry, new string[]{"BOB"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Millihenry, new string[]{"BOB"}), + ("en-US", typeof(ElectricInductanceUnit), (int)ElectricInductanceUnit.Nanohenry, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Kilovolt, new string[]{"BOB"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Kilovolt, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Megavolt, new string[]{"BOB"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Megavolt, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Microvolt, new string[]{"BOB"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Microvolt, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Millivolt, new string[]{"BOB"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Millivolt, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Volt, new string[]{"BOB"}), + ("ru-RU", typeof(ElectricPotentialUnit), (int)ElectricPotentialUnit.Volt, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.KilovoltAc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MegavoltAc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MicrovoltAc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.MillivoltAc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialAcUnit), (int)ElectricPotentialAcUnit.VoltAc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.KilovoltPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MegavoltPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MicrovoltPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.MillivoltPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerHour, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerMicrosecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialChangeRateUnit), (int)ElectricPotentialChangeRateUnit.VoltPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.KilovoltDc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MegavoltDc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MicrovoltDc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.MillivoltDc, new string[]{"BOB"}), + ("en-US", typeof(ElectricPotentialDcUnit), (int)ElectricPotentialDcUnit.VoltDc, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Gigaohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Kiloohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Megaohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Microohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Milliohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistanceUnit), (int)ElectricResistanceUnit.Ohm, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.KiloohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.KiloohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MegaohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MegaohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MicroohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MicroohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MilliohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.MilliohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.NanoohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.NanoohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.OhmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.OhmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.PicoohmCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricResistivityUnit), (int)ElectricResistivityUnit.PicoohmMeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(ElectricSurfaceChargeDensityUnit), (int)ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.BritishThermalUnit, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Calorie, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermEc, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermEc, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermImperial, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermImperial, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.DecathermUs, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.DecathermUs, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ElectronVolt, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ElectronVolt, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Erg, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.FootPound, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigabritishThermalUnit, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigaelectronVolt, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigaelectronVolt, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Gigajoule, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigawattDay, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigawattDay, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.GigawattHour, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.GigawattHour, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.HorsepowerHour, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Joule, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilobritishThermalUnit, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Kilocalorie, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KiloelectronVolt, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KiloelectronVolt, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Kilojoule, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilowattDay, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KilowattDay, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.KilowattHour, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.KilowattHour, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegabritishThermalUnit, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Megacalorie, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegaelectronVolt, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegaelectronVolt, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Megajoule, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegawattDay, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegawattDay, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.MegawattHour, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.MegawattHour, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.Millijoule, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TeraelectronVolt, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TeraelectronVolt, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TerawattDay, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TerawattDay, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.TerawattHour, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.TerawattHour, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermEc, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermEc, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermImperial, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermImperial, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.ThermUs, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.ThermUs, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.WattDay, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.WattDay, new string[]{"BOB"}), + ("en-US", typeof(EnergyUnit), (int)EnergyUnit.WattHour, new string[]{"BOB"}), + ("ru-RU", typeof(EnergyUnit), (int)EnergyUnit.WattHour, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.CaloriePerKelvin, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.JoulePerDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.JoulePerKelvin, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilocaloriePerKelvin, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilojoulePerDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.KilojoulePerKelvin, new string[]{"BOB"}), + ("en-US", typeof(EntropyUnit), (int)EntropyUnit.MegajoulePerKelvin, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Decanewton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Decanewton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Dyn, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Dyn, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KilogramForce, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KilogramForce, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Kilonewton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Kilonewton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KiloPond, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KiloPond, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.KilopoundForce, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.KilopoundForce, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Meganewton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Meganewton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Micronewton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Micronewton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Millinewton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Millinewton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Newton, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Newton, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.OunceForce, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.Poundal, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.Poundal, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.PoundForce, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.PoundForce, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.ShortTonForce, new string[]{"BOB"}), + ("en-US", typeof(ForceUnit), (int)ForceUnit.TonneForce, new string[]{"BOB"}), + ("ru-RU", typeof(ForceUnit), (int)ForceUnit.TonneForce, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.CentinewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecanewtonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecanewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.DecinewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilonewtonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilonewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilopoundForcePerMinute, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.KilopoundForcePerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.MicronewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.MillinewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NanonewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NewtonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.NewtonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.PoundForcePerMinute, new string[]{"BOB"}), + ("en-US", typeof(ForceChangeRateUnit), (int)ForceChangeRateUnit.PoundForcePerSecond, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.CentinewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecanewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.DecinewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilogramForcePerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilonewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilopoundForcePerFoot, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.KilopoundForcePerInch, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MeganewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MicronewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerFoot, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerInch, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.PoundForcePerYard, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMeter, new string[]{"BOB"}), + ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.TonneForcePerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.BeatPerMinute, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.BUnit, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerHour, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerMinute, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Gigahertz, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Gigahertz, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Hertz, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Hertz, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Kilohertz, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Kilohertz, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Megahertz, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Megahertz, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.PerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.PerSecond, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.RadianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.RadianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Terahertz, new string[]{"BOB"}), + ("ru-RU", typeof(FrequencyUnit), (int)FrequencyUnit.Terahertz, new string[]{"BOB"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.KilometerPerLiter, new string[]{"BOB"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.LiterPer100Kilometers, new string[]{"BOB"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.MilePerUkGallon, new string[]{"BOB"}), + ("en-US", typeof(FuelEfficiencyUnit), (int)FuelEfficiencyUnit.MilePerUsGallon, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerHourSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerMinuteSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerSecondSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.BtuPerSecondSquareInch, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.CaloriePerSecondSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.CentiwattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.DeciwattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilocaloriePerHourSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilocaloriePerSecondSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.KilowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.MicrowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.MilliwattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.NanowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.PoundForcePerFootSecond, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.PoundPerSecondCubed, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(HeatFluxUnit), (int)HeatFluxUnit.WattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.WattPerSquareMeterCelsius, new string[]{"BOB"}), + ("en-US", typeof(HeatTransferCoefficientUnit), (int)HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, new string[]{"BOB"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Kilolux, new string[]{"BOB"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Lux, new string[]{"BOB"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Megalux, new string[]{"BOB"}), + ("en-US", typeof(IlluminanceUnit), (int)IlluminanceUnit.Millilux, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Bit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Byte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exabit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exabyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exbibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Exbibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gibibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gibibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gigabit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Gigabyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kibibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kibibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kilobit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Kilobyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Mebibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Mebibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Megabit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Megabyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Pebibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Pebibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Petabit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Petabyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Tebibit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Tebibyte, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Terabit, new string[]{"BOB"}), + ("en-US", typeof(InformationUnit), (int)InformationUnit.Terabyte, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.KilowattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.KilowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MegawattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MegawattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MicrowattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MicrowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MilliwattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.MilliwattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.NanowattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.NanowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.PicowattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.PicowattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.WattPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradianceUnit), (int)IrradianceUnit.WattPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.JoulePerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.KilojoulePerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.KilowattHourPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.MillijoulePerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(IrradiationUnit), (int)IrradiationUnit.WattHourPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Centistokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Centistokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Decistokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Decistokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Kilostokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Kilostokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Microstokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Microstokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Millistokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Millistokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Nanostokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Nanostokes, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareFootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareMeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.SquareMeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Stokes, new string[]{"BOB"}), + ("ru-RU", typeof(KinematicViscosityUnit), (int)KinematicViscosityUnit.Stokes, new string[]{"BOB"}), + ("en-US", typeof(LapseRateUnit), (int)LapseRateUnit.DegreeCelsiusPerKilometer, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.AstronomicalUnit, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Сантигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"Centimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Centimeter, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Chain, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Децигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"Décimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Decimeter, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPica, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.DtpPoint, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Fathom, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Foot, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Hand, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Гектогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"Hectomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Hectometer, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Inch, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.KilolightYear, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Килогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"Kilomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Kilometer, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Kiloparsec, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.LightYear, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.MegalightYear, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Megaparsec, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"метр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"Mètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Meter, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Microinch, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Микрогметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"Micromètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Micrometer, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mil, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Mile, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Миллигметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"Millimètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Millimeter, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Наногметр"}), + ("fr-FR", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"Nanomètre"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Nanometer, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.NauticalMile, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Parsec, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.PrinterPica, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.PrinterPoint, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Shackle, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.SolarRadius, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Twip, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.UsSurveyFoot, new string[]{"BOB"}), + ("en-US", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"BOB"}), + ("ru-RU", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"BOB"}), + ("zh-CN", typeof(LengthUnit), (int)LengthUnit.Yard, new string[]{"BOB"}), + ("en-US", typeof(LevelUnit), (int)LevelUnit.Decibel, new string[]{"BOB"}), + ("en-US", typeof(LevelUnit), (int)LevelUnit.Neper, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.GramPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.KilogramPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MicrogramPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.MilligramPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.PoundPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearDensityUnit), (int)LinearDensityUnit.PoundPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.GigawattPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.KilowattPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MegawattPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.MilliwattPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerCentimeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerFoot, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerInch, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerMeter, new string[]{"BOB"}), + ("en-US", typeof(LinearPowerDensityUnit), (int)LinearPowerDensityUnit.WattPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Decawatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Deciwatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Femtowatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Gigawatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Kilowatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Megawatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Microwatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Milliwatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Nanowatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Petawatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Picowatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.SolarLuminosity, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Terawatt, new string[]{"BOB"}), + ("en-US", typeof(LuminosityUnit), (int)LuminosityUnit.Watt, new string[]{"BOB"}), + ("en-US", typeof(LuminousFluxUnit), (int)LuminousFluxUnit.Lumen, new string[]{"BOB"}), + ("en-US", typeof(LuminousIntensityUnit), (int)LuminousIntensityUnit.Candela, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Gauss, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Microtesla, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Milligauss, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Millitesla, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Nanotesla, new string[]{"BOB"}), + ("en-US", typeof(MagneticFieldUnit), (int)MagneticFieldUnit.Tesla, new string[]{"BOB"}), + ("en-US", typeof(MagneticFluxUnit), (int)MagneticFluxUnit.Weber, new string[]{"BOB"}), + ("en-US", typeof(MagnetizationUnit), (int)MagnetizationUnit.AmperePerMeter, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Centigram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Decagram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Decigram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.EarthMass, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Grain, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Gram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Hectogram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilogram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilopound, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Kilotonne, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.LongHundredweight, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.LongTon, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Megapound, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Megatonne, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Microgram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Milligram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Nanogram, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Ounce, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Ounce, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Pound, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.ShortHundredweight, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.ShortTon, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Slug, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.SolarMass, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Stone, new string[]{"BOB"}), + ("en-US", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"BOB"}), + ("ru-RU", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"BOB"}), + ("zh-CN", typeof(MassUnit), (int)MassUnit.Tonne, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.CentigramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.DecigramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.GramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilopoundPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.KilopoundPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MicrogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerCubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.MilligramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.NanogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.OuncePerImperialGallon, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.OuncePerUSGallon, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerDeciliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerMicroliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PicogramPerMilliliter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerImperialGallon, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.PoundPerUSGallon, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.SlugPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MassConcentrationUnit), (int)MassConcentrationUnit.TonnePerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.CentigramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.CentigramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecagramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecagramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerMinute, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.KilogramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegagramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerMinute, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MegapoundPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MicrogramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MicrogramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MilligramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.MilligramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.NanogramPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.NanogramPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerMinute, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.PoundPerSecond, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.ShortTonPerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.TonnePerDay, new string[]{"BOB"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.TonnePerHour, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerHourPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.GramPerSecondPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerHourPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassFluxUnit), (int)MassFluxUnit.KilogramPerSecondPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.CentigramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.CentigramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecagramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecagramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecigramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecigramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.DecimalFraction, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.GramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.GramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.HectogramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.HectogramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.KilogramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.KilogramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MicrogramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MicrogramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MilligramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.MilligramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.NanogramPerGram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.NanogramPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerBillion, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerMillion, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerThousand, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.PartPerTrillion, new string[]{"BOB"}), + ("en-US", typeof(MassFractionUnit), (int)MassFractionUnit.Percent, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.GramSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilogramSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.KilotonneSquareMilimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MegatonneSquareMilimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.MilligramSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.PoundSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.PoundSquareInch, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.SlugSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.SlugSquareInch, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(MassMomentOfInertiaUnit), (int)MassMomentOfInertiaUnit.TonneSquareMilimeter, new string[]{"BOB"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.JoulePerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.KilojoulePerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarEnergyUnit), (int)MolarEnergyUnit.MegajoulePerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.JoulePerMoleKelvin, new string[]{"BOB"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.KilojoulePerMoleKelvin, new string[]{"BOB"}), + ("en-US", typeof(MolarEntropyUnit), (int)MolarEntropyUnit.MegajoulePerMoleKelvin, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.CentimolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.DecimolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MicromolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MillimolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MolesPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.MolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.NanomolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarityUnit), (int)MolarityUnit.PicomolesPerLiter, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.CentigramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.CentigramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.DecagramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.DecagramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.DecigramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.DecigramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.GramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.GramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.HectogramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.HectogramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.KilogramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.KilogramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.KilopoundPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.KilopoundPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MegapoundPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MegapoundPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MicrogramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MicrogramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.MilligramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.MilligramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.NanogramPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.NanogramPerMole, new string[]{"BOB"}), + ("en-US", typeof(MolarMassUnit), (int)MolarMassUnit.PoundPerMole, new string[]{"BOB"}), + ("ru-RU", typeof(MolarMassUnit), (int)MolarMassUnit.PoundPerMole, new string[]{"BOB"}), + ("en-US", typeof(PermeabilityUnit), (int)PermeabilityUnit.HenryPerMeter, new string[]{"BOB"}), + ("en-US", typeof(PermittivityUnit), (int)PermittivityUnit.FaradPerMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.BoilerHorsepower, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.BritishThermalUnitPerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Decawatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Deciwatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.ElectricalHorsepower, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Femtowatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.GigajoulePerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Gigawatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.HydraulicHorsepower, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.JoulePerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.KilobritishThermalUnitPerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.KilojoulePerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Kilowatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MechanicalHorsepower, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MegajoulePerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Megawatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MetricHorsepower, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Microwatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.MillijoulePerHour, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Milliwatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Nanowatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Petawatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Picowatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Terawatt, new string[]{"BOB"}), + ("en-US", typeof(PowerUnit), (int)PowerUnit.Watt, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DecawattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.DeciwattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.GigawattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.KilowattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MegawattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MicrowattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.MilliwattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.NanowattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.PicowattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.TerawattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(PowerDensityUnit), (int)PowerDensityUnit.WattPerLiter, new string[]{"BOB"}), + ("en-US", typeof(PowerRatioUnit), (int)PowerRatioUnit.DecibelMilliwatt, new string[]{"BOB"}), + ("en-US", typeof(PowerRatioUnit), (int)PowerRatioUnit.DecibelWatt, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Atmosphere, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Atmosphere, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Bar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Bar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Centibar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Centibar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Decapascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Decapascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Decibar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Decibar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.DynePerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.FootOfElevation, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.FootOfHead, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Gigapascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Gigapascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Hectopascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Hectopascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.InchOfMercury, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.InchOfWaterColumn, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Kilobar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Kilobar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilogramForcePerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilonewtonPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Kilopascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Kilopascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareInch, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.KilopoundForcePerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Megabar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Megabar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeganewtonPerSquareMeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.MeganewtonPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Megapascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Megapascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeterOfElevation, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MeterOfHead, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Microbar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Microbar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Micropascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Micropascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Millibar, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Millibar, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.MillimeterOfMercury, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.MillimeterOfMercury, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Millipascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Millipascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.NewtonPerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Pascal, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Pascal, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareInch, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.PoundForcePerSquareInch, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.PoundPerInchSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TechnicalAtmosphere, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.TechnicalAtmosphere, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.TonneForcePerSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(PressureUnit), (int)PressureUnit.Torr, new string[]{"BOB"}), + ("ru-RU", typeof(PressureUnit), (int)PressureUnit.Torr, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.AtmospherePerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.AtmospherePerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopascalPerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.KilopoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapascalPerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.MegapoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PascalPerSecond, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerMinute, new string[]{"BOB"}), + ("en-US", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(PressureChangeRateUnit), (int)PressureChangeRateUnit.PoundForcePerSquareInchPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.DecimalFraction, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerBillion, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerMillion, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerThousand, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.PartPerTrillion, new string[]{"BOB"}), + ("en-US", typeof(RatioUnit), (int)RatioUnit.Percent, new string[]{"BOB"}), + ("en-US", typeof(RatioChangeRateUnit), (int)RatioChangeRateUnit.DecimalFractionPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RatioChangeRateUnit), (int)RatioChangeRateUnit.PercentPerSecond, new string[]{"BOB"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.KilovoltampereReactiveHour, new string[]{"BOB"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.MegavoltampereReactiveHour, new string[]{"BOB"}), + ("en-US", typeof(ReactiveEnergyUnit), (int)ReactiveEnergyUnit.VoltampereReactiveHour, new string[]{"BOB"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.GigavoltampereReactive, new string[]{"BOB"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.KilovoltampereReactive, new string[]{"BOB"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.MegavoltampereReactive, new string[]{"BOB"}), + ("en-US", typeof(ReactivePowerUnit), (int)ReactivePowerUnit.VoltampereReactive, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareDecimeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareFoot, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareInch, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareKilometer, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMicrometer, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMile, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseSquareYard, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalAreaUnit), (int)ReciprocalAreaUnit.InverseUsSurveySquareFoot, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseCentimeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseFoot, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseInch, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMicroinch, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMil, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMile, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseMillimeter, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseUsSurveyFoot, new string[]{"BOB"}), + ("en-US", typeof(ReciprocalLengthUnit), (int)ReciprocalLengthUnit.InverseYard, new string[]{"BOB"}), + ("en-US", typeof(RelativeHumidityUnit), (int)RelativeHumidityUnit.Percent, new string[]{"BOB"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.DegreePerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RadianPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RevolutionPerMinutePerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalAccelerationUnit), (int)RotationalAccelerationUnit.RevolutionPerSecondSquared, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.CentiradianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.CentiradianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DeciradianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DeciradianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerMinute, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.DegreePerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicrodegreePerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicrodegreePerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicroradianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MicroradianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MillidegreePerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MillidegreePerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MilliradianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.MilliradianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanodegreePerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanodegreePerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanoradianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.NanoradianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RadianPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RadianPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerMinute, new string[]{"BOB"}), + ("en-US", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(RotationalSpeedUnit), (int)RotationalSpeedUnit.RevolutionPerSecond, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.CentinewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecanewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.DecinewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilonewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.KilopoundForceFootPerDegrees, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MeganewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MicronewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.MillinewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NanonewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMillimeterPerDegree, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.NewtonMillimeterPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.PoundForceFeetPerRadian, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessUnit), (int)RotationalStiffnessUnit.PoundForceFootPerDegrees, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.KilonewtonMeterPerRadianPerMeter, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.KilopoundForceFootPerDegreesPerFoot, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.MeganewtonMeterPerRadianPerMeter, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, new string[]{"BOB"}), + ("en-US", typeof(RotationalStiffnessPerLengthUnit), (int)RotationalStiffnessPerLengthUnit.PoundForceFootPerDegreesPerFoot, new string[]{"BOB"}), + ("en-US", typeof(ScalarUnit), (int)ScalarUnit.Amount, new string[]{"BOB"}), + ("en-US", typeof(SolidAngleUnit), (int)SolidAngleUnit.Steradian, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.BtuPerPound, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.CaloriePerGram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerShortTon, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattDayPerTonne, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.GigawattHourPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.JoulePerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilocaloriePerGram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilojoulePerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerShortTon, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattDayPerTonne, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.KilowattHourPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegajoulePerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerShortTon, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattDayPerTonne, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.MegawattHourPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerShortTon, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.TerawattDayPerTonne, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerShortTon, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattDayPerTonne, new string[]{"BOB"}), + ("en-US", typeof(SpecificEnergyUnit), (int)SpecificEnergyUnit.WattHourPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.BtuPerPoundFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.CaloriePerGramKelvin, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.JoulePerKilogramDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.JoulePerKilogramKelvin, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilocaloriePerGramKelvin, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilojoulePerKilogramDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.KilojoulePerKilogramKelvin, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.MegajoulePerKilogramDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(SpecificEntropyUnit), (int)SpecificEntropyUnit.MegajoulePerKilogramKelvin, new string[]{"BOB"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, new string[]{"BOB"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.KilogramPerKilogramForceHour, new string[]{"BOB"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.KilogramPerKiloNewtonSecond, new string[]{"BOB"}), + ("en-US", typeof(SpecificFuelConsumptionUnit), (int)SpecificFuelConsumptionUnit.PoundMassPerPoundForceHour, new string[]{"BOB"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.CubicFootPerPound, new string[]{"BOB"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.CubicMeterPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificVolumeUnit), (int)SpecificVolumeUnit.MillicubicMeterPerKilogram, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilogramForcePerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilonewtonPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilopoundForcePerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.KilopoundForcePerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.MeganewtonPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.NewtonPerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.PoundForcePerCubicFoot, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.PoundForcePerCubicInch, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicMeter, new string[]{"BOB"}), + ("en-US", typeof(SpecificWeightUnit), (int)SpecificWeightUnit.TonneForcePerCubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.CentimeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.DecimeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.FootPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.FootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.InchPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.KilometerPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.Knot, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.Knot, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MicrometerPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MilePerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MilePerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.MillimeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(SpeedUnit), (int)SpeedUnit.NanometerPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.UsSurveyFootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerHour, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerMinute, new string[]{"BOB"}), + ("en-US", typeof(SpeedUnit), (int)SpeedUnit.YardPerSecond, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicCentimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerHour, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerMinute, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicFootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerDay, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerHour, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardCubicMeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(StandardVolumeFlowUnit), (int)StandardVolumeFlowUnit.StandardLiterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeDelisle, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeNewton, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeRankine, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeReaumur, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.DegreeRoemer, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.Kelvin, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.MillidegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(TemperatureUnit), (int)TemperatureUnit.SolarTemperature, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.CentidegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DecadegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DecidegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DegreeCelsiusPerMinute, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.DegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.HectodegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.KilodegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.MicrodegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.MillidegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureChangeRateUnit), (int)TemperatureChangeRateUnit.NanodegreeCelsiusPerSecond, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeDelisle, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeNewton, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeRankine, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeReaumur, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.DegreeRoemer, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.Kelvin, new string[]{"BOB"}), + ("en-US", typeof(TemperatureDeltaUnit), (int)TemperatureDeltaUnit.MillidegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(ThermalConductivityUnit), (int)ThermalConductivityUnit.BtuPerHourFootFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(ThermalConductivityUnit), (int)ThermalConductivityUnit.WattPerMeterKelvin, new string[]{"BOB"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.HourSquareFeetDegreeFahrenheitPerBtu, new string[]{"BOB"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareCentimeterHourDegreeCelsiusPerKilocalorie, new string[]{"BOB"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareCentimeterKelvinPerWatt, new string[]{"BOB"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareMeterDegreeCelsiusPerWatt, new string[]{"BOB"}), + ("en-US", typeof(ThermalResistanceUnit), (int)ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceCentimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceMeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilogramForceMillimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonCentimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilonewtonMillimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilopoundForceFoot, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.KilopoundForceInch, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonCentimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MeganewtonMillimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MegapoundForceFoot, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.MegapoundForceInch, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonCentimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorqueUnit), (int)TorqueUnit.NewtonMeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.NewtonMillimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundalFoot, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundForceFoot, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.PoundForceInch, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceCentimeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceMeter, new string[]{"BOB"}), + ("en-US", typeof(TorqueUnit), (int)TorqueUnit.TonneForceMillimeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceCentimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilogramForceMillimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonCentimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMeterPerMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilonewtonMillimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilopoundForceFootPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.KilopoundForceInchPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonCentimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMeterPerMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MeganewtonMillimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MegapoundForceFootPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.MegapoundForceInchPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonCentimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMeterPerMeter, new string[]{"BOB"}), + ("ru-RU", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.NewtonMillimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.PoundForceFootPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.PoundForceInchPerFoot, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceCentimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TorquePerLengthUnit), (int)TorquePerLengthUnit.TonneForceMillimeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(TurbidityUnit), (int)TurbidityUnit.NTU, new string[]{"BOB"}), + ("en-US", typeof(VitaminAUnit), (int)VitaminAUnit.InternationalUnit, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.AcreFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"BOB"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.AuTablespoon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.BoardFoot, new string[]{"BOB"}), + ("fr-CA", typeof(VolumeUnit), (int)VolumeUnit.BoardFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Centiliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Centiliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicCentimeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicCentimeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicDecimeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicDecimeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicFoot, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicHectometer, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicHectometer, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicInch, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicInch, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicKilometer, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicKilometer, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMicrometer, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMicrometer, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMile, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMile, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicMillimeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicMillimeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.CubicYard, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.CubicYard, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.DecausGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.DecausGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Deciliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Deciliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.DeciusGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.DeciusGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectocubicFoot, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectocubicFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectocubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectocubicMeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Hectoliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Hectoliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.HectousGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.HectousGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialBeerBarrel, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.ImperialGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialOunce, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.ImperialOunce, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.ImperialPint, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilocubicFoot, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilocubicFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilocubicMeter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilocubicMeter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KiloimperialGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KiloimperialGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Kiloliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Kiloliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.KilousGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.KilousGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Liter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Liter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegacubicFoot, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegacubicFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegaimperialGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegaimperialGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Megaliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Megaliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MegausGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MegausGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MetricCup, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"BOB"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.MetricTeaspoon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Microliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Microliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.Milliliter, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.Milliliter, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.OilBarrel, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"BOB"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UkTablespoon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsBeerBarrel, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsCustomaryCup, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsGallon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsGallon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsLegalCup, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsOunce, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsOunce, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsPint, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsQuart, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"BOB"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UsTablespoon, new string[]{"BOB"}), + ("en-US", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"BOB"}), + ("nb-NO", typeof(VolumeUnit), (int)VolumeUnit.UsTeaspoon, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.CentilitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.CentilitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecilitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecilitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.DecimalFraction, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.LitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.LitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MicrolitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MicrolitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MillilitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.MillilitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.NanolitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.NanolitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerBillion, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerMillion, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerThousand, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PartPerTrillion, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.Percent, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PicolitersPerLiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeConcentrationUnit), (int)VolumeConcentrationUnit.PicolitersPerMililiter, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.AcreFootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CentiliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicCentimeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicCentimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicDecimeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicDecimeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicFootPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMillimeterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicMillimeterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.CubicYardPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.DeciliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KiloliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.KilousGallonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerHour, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.LiterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MegaliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MegaukGallonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MicroliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MilliliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.MillionUsGallonsPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerMinute, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerSecond, new string[]{"BOB"}), + ("ru-RU", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.NanoliterPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.OilBarrelPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UkGallonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerDay, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerHour, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerMinute, new string[]{"BOB"}), + ("en-US", typeof(VolumeFlowUnit), (int)VolumeFlowUnit.UsGallonPerSecond, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicMeterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicYardPerFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.CubicYardPerUsSurveyFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerKilometer, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerMeter, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.LiterPerMillimeter, new string[]{"BOB"}), + ("en-US", typeof(VolumePerLengthUnit), (int)VolumePerLengthUnit.OilBarrelPerFoot, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.BtuPerCubicFootDegreeFahrenheit, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.CaloriePerCubicCentimeterDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.JoulePerCubicMeterDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilocaloriePerCubicCentimeterDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilojoulePerCubicMeterDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.KilojoulePerCubicMeterKelvin, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.MegajoulePerCubicMeterDegreeCelsius, new string[]{"BOB"}), + ("en-US", typeof(VolumetricHeatCapacityUnit), (int)VolumetricHeatCapacityUnit.MegajoulePerCubicMeterKelvin, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.CentimeterToTheSixth, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.DecimeterToTheSixth, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.FootToTheSixth, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.InchToTheSixth, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.MeterToTheSixth, new string[]{"BOB"}), + ("en-US", typeof(WarpingMomentOfInertiaUnit), (int)WarpingMomentOfInertiaUnit.MillimeterToTheSixth, new string[]{"BOB"}), + }; + } +} From 038dce98daa377b1d245f1aaea3dd88f796f1f21 Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Fri, 8 Oct 2021 16:42:42 +0200 Subject: [PATCH 4/7] [TU] Add TU for testing the singular name localization --- UnitsNet.Tests/UnitSingularNamesCacheTests.cs | 50 +++++++------------ 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs index 96799777ff..643d665a8e 100644 --- a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs +++ b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs @@ -2,9 +2,7 @@ // Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet. using System; -using System.Collections.Generic; using System.Globalization; -using System.Linq; using UnitsNet.Units; using Xunit; using Xunit.Abstractions; @@ -22,7 +20,7 @@ public class UnitSingularNamesCacheTests private static readonly IFormatProvider AmericanCulture = new CultureInfo(AmericanCultureName); private static readonly IFormatProvider FrenchCulture = new CultureInfo(FrenchCultureName); private static readonly IFormatProvider RussianCulture = new CultureInfo(RussianCultureName); - + public UnitSingularNamesCacheTests(ITestOutputHelper output) { _output = output; @@ -32,18 +30,17 @@ private enum CustomUnit { // ReSharper disable UnusedMember.Local Undefined = 0, + Unit1, Unit2 // ReSharper restore UnusedMember.Local } - [Fact] public void SingularName_WithAmericanCulture() { Assert.Equal("Meter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, AmericanCulture)); Assert.Equal("Decimeter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, AmericanCulture)); - } [Fact] @@ -67,14 +64,14 @@ public void SingularName_WithFrenchCulture() } [Fact] - public void GetDefaultAbbreviationThrowsNotImplementedExceptionIfNoneExist() + public void GetDefaultSingularNameThrowsNotImplementedExceptionIfNoneExist() { - var unitAbbreviationCache = new UnitAbbreviationsCache(); - Assert.Throws(() => unitAbbreviationCache.GetDefaultAbbreviation(CustomUnit.Unit1)); + var unitCache = new UnitSingularNamesCache(); + Assert.Throws(() => unitCache.GetDefaultSingularName(CustomUnit.Unit1)); } [Fact] - public void GetDefaultAbbreviationFallsBackToUsEnglishCulture() + public void GetDefaultASingularNameFallsBackToUsEnglishCulture() { var oldCurrentCulture = CultureInfo.CurrentCulture; var oldCurrentUICulture = CultureInfo.CurrentUICulture; @@ -87,14 +84,14 @@ public void GetDefaultAbbreviationFallsBackToUsEnglishCulture() var zuluCulture = new CultureInfo("zu-ZA"); CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = zuluCulture; - var abbreviationsCache = new UnitAbbreviationsCache(); - abbreviationsCache.MapUnitToAbbreviation(CustomUnit.Unit1, AmericanCulture, "US english abbreviation for Unit1"); + var cache = new UnitSingularNamesCache(); + cache.MapUnitToDefaultSingularName(CustomUnit.Unit1, AmericanCulture, "US english singular name for Unit1"); // Act - string abbreviation = abbreviationsCache.GetDefaultAbbreviation(CustomUnit.Unit1, zuluCulture); + string abbreviation = cache.GetDefaultSingularName(CustomUnit.Unit1, zuluCulture); // Assert - Assert.Equal("US english abbreviation for Unit1", abbreviation); + Assert.Equal("US english singular name for Unit1", abbreviation); } finally { @@ -104,31 +101,20 @@ public void GetDefaultAbbreviationFallsBackToUsEnglishCulture() } [Fact] - public void MapUnitToAbbreviation_AddCustomUnit_DoesNotOverrideDefaultAbbreviationForAlreadyMappedUnits() - { - var cache = new UnitAbbreviationsCache(); - cache.MapUnitToAbbreviation(AreaUnit.SquareMeter, AmericanCulture, "m^2"); - - Assert.Equal("m²", cache.GetDefaultAbbreviation(AreaUnit.SquareMeter)); - } - - [Fact] - public void MapUnitToDefaultAbbreviation_GivenUnitAndCulture_SetsDefaultAbbreviationForUnitAndCulture() + public void MapUnitToSingularName_AddCustomUnit_DoesNotOverrideDefaultSingularNameForAlreadyMappedUnits() { - var cache = new UnitAbbreviationsCache(); - cache.MapUnitToDefaultAbbreviation(AreaUnit.SquareMeter, AmericanCulture, "m^2"); + var cache = new UnitSingularNamesCache(); + cache.MapUnitToSingularName(LengthUnit.Centimeter, AmericanCulture, "mycentimeter"); - Assert.Equal("m^2", cache.GetDefaultAbbreviation(AreaUnit.SquareMeter, AmericanCulture)); + Assert.Equal("Centimeter", cache.GetDefaultSingularName(LengthUnit.Centimeter)); } [Fact] - public void MapUnitToDefaultAbbreviation_GivenCustomAbbreviation_SetsAbbreviationUsedByQuantityToString() + public void MapUnitToSingularnName_GivenUnitAndCulture_SetsDefaulSingularNameForUnitAndCulture() { - // Use a distinct culture here so that we don't mess up other tests that may rely on the default cache. - var newZealandCulture = GetCulture("en-NZ"); - UnitAbbreviationsCache.Default.MapUnitToDefaultAbbreviation(AreaUnit.SquareMeter, newZealandCulture, "m^2"); - - Assert.Equal("1 m^2", Area.FromSquareMeters(1).ToString(newZealandCulture)); + var cache = new UnitSingularNamesCache(); + cache.MapUnitToDefaultSingularName(LengthUnit.Centimeter, AmericanCulture, "mycentimeter"); + Assert.Equal("mycentimeter", cache.GetDefaultSingularName(LengthUnit.Centimeter, AmericanCulture)); } /// From f6121f2f318040a5589887f33649d893a8a7d607 Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Tue, 16 Nov 2021 16:32:02 +0100 Subject: [PATCH 5/7] Add TU for UnitSingularNamesCacheTests --- UnitsNet.Tests/UnitSingularNamesCacheTests.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs index 643d665a8e..4714431b8d 100644 --- a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs +++ b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs @@ -116,6 +116,12 @@ public void MapUnitToSingularnName_GivenUnitAndCulture_SetsDefaulSingularNameFor cache.MapUnitToDefaultSingularName(LengthUnit.Centimeter, AmericanCulture, "mycentimeter"); Assert.Equal("mycentimeter", cache.GetDefaultSingularName(LengthUnit.Centimeter, AmericanCulture)); } + [Fact] + public void TestParse() + { + var result=Information.Parse("1 m"); + _output.WriteLine(result.ToString()); + } /// /// Convenience method to the proper culture parameter type. From 77e7f9c0a653a2206b5f29c14e5f36db2ac84b17 Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Tue, 16 Nov 2021 16:54:25 +0100 Subject: [PATCH 6/7] FIX PR#974 - Clean TUs - Remove not retained TODO - Remove array of singular names (only use 1 singular name) --- UnitsNet.Tests/UnitSingularNamesCacheTests.cs | 6 +----- UnitsNet/CustomCode/UnitAbbreviationsCache.cs | 2 -- UnitsNet/CustomCode/UnitLocalizationCache.cs | 4 ++-- UnitsNet/CustomCode/UnitSingularNamesCache.cs | 18 ++++++++---------- 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs index 4714431b8d..dc462406b7 100644 --- a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs +++ b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs @@ -46,10 +46,6 @@ public void SingularName_WithAmericanCulture() [Fact] public void SingularName_WithRussianCulture() { - _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, RussianCulture)); - _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, RussianCulture)); - _output.WriteLine(UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, RussianCulture)); - Assert.Equal("метр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, RussianCulture)); Assert.Equal("Децигметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, RussianCulture)); Assert.Equal("Килогметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, RussianCulture)); @@ -71,7 +67,7 @@ public void GetDefaultSingularNameThrowsNotImplementedExceptionIfNoneExist() } [Fact] - public void GetDefaultASingularNameFallsBackToUsEnglishCulture() + public void GetDefaultSingularNameFallsBackToUsEnglishCulture() { var oldCurrentCulture = CultureInfo.CurrentCulture; var oldCurrentUICulture = CultureInfo.CurrentUICulture; diff --git a/UnitsNet/CustomCode/UnitAbbreviationsCache.cs b/UnitsNet/CustomCode/UnitAbbreviationsCache.cs index dcf931c552..54d67373cb 100644 --- a/UnitsNet/CustomCode/UnitAbbreviationsCache.cs +++ b/UnitsNet/CustomCode/UnitAbbreviationsCache.cs @@ -17,8 +17,6 @@ namespace UnitsNet /// /// Cache of the mapping between unit enum values and unit abbreviation strings for one or more cultures. /// A static instance is used internally for ToString() and Parse() of quantities and units. - /// - /// TODO It may be a good thing to remove all unesfull methods MapXXX from the public API. MapXXX should be only used for internal purpose of the cache /// public sealed partial class UnitAbbreviationsCache { diff --git a/UnitsNet/CustomCode/UnitLocalizationCache.cs b/UnitsNet/CustomCode/UnitLocalizationCache.cs index 951a450c05..5d9f2bab7f 100644 --- a/UnitsNet/CustomCode/UnitLocalizationCache.cs +++ b/UnitsNet/CustomCode/UnitLocalizationCache.cs @@ -39,7 +39,7 @@ public class UnitLocalizationCache /// Create an instance of the cache /// /// Information about what the stored strings represents (abbreviation, singular name, ...). It could be useful for error messages or debug logs - /// For each culture, for each unit type, for each vlaue, give a localized representation of the unit value + /// For each culture, for each unit type, for each value, give a localized representation of the unit value public UnitLocalizationCache(string stringName, (string CultureName, Type UnitType, int UnitValue, string[] Strings)[] generatedLocalizedStrings) { _stringName = stringName; @@ -50,7 +50,7 @@ public UnitLocalizationCache(string stringName, (string CultureName, Type UnitTy /// /// Create an instance of the cache /// - /// For each culture, for each unit type, for each vlaue, give a localized representation of the unit value + /// For each culture, for each unit type, for each value, give a localized representation of the unit value public UnitLocalizationCache((string CultureName, Type UnitType, int UnitValue, string[] Strings)[] generatedLocalizedStrings) : this("localized string", generatedLocalizedStrings) { diff --git a/UnitsNet/CustomCode/UnitSingularNamesCache.cs b/UnitsNet/CustomCode/UnitSingularNamesCache.cs index f4a916d973..de3afdf213 100644 --- a/UnitsNet/CustomCode/UnitSingularNamesCache.cs +++ b/UnitsNet/CustomCode/UnitSingularNamesCache.cs @@ -11,8 +11,6 @@ namespace UnitsNet { /// /// Cache of the mapping between unit enum values and unit singular names for one or more cultures. - /// - /// TODO It may be a good thing to remove all unesfull methods MapXXX from the public API. MapXXX should be only used for internal purpose of the cache /// public sealed partial class UnitSingularNamesCache { @@ -137,26 +135,26 @@ public string GetDefaultSingularName(Type unitType, int unitValue, IFormatProvid _cache.GetDefaultString(unitType, unitValue, formatProvider); /// - /// Get all singularNames for unit. + /// Get the singular Name of a given unit. /// /// Enum type for units. /// Enum value for unit. /// The format provider to use for lookup. Defaults to if null. - /// Unit singularNames associated with unit. + /// The singular name associated with the unit. [PublicAPI] - public string[] GetUnitSingularNames(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => - _cache.GetUnitStrings(unit, formatProvider); + public string GetUnitSingularNames(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetUnitStrings(unit, formatProvider)[0]; /// - /// Get all singularNames for unit. + /// Get the singular Name of a given unit. /// /// Enum type for unit. /// Enum value for unit. /// The format provider to use for lookup. Defaults to if null. - /// Unit singularNames associated with unit. + /// The singular name associated with the unit. [PublicAPI] - public string[] GetUnitSingularNames(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => - _cache.GetUnitStrings(unitType, unitValue, formatProvider); + public string GetUnitSingularNames(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetUnitStrings(unitType, unitValue, formatProvider)[0]; /// /// Get all singularNames for all units of a quantity. From f14edf986f73d72d8835577640ecc6c1da0b92ed Mon Sep 17 00:00:00 2001 From: "leny.turmel" Date: Tue, 16 Nov 2021 17:22:50 +0100 Subject: [PATCH 7/7] PR#974 Remove default singular name for units --- UnitsNet.Tests/UnitSingularNamesCacheTests.cs | 69 +++-------------- UnitsNet/CustomCode/UnitSingularNamesCache.cs | 74 ++----------------- 2 files changed, 16 insertions(+), 127 deletions(-) diff --git a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs index dc462406b7..e9c4018277 100644 --- a/UnitsNet.Tests/UnitSingularNamesCacheTests.cs +++ b/UnitsNet.Tests/UnitSingularNamesCacheTests.cs @@ -39,79 +39,28 @@ private enum CustomUnit [Fact] public void SingularName_WithAmericanCulture() { - Assert.Equal("Meter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, AmericanCulture)); - Assert.Equal("Decimeter", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, AmericanCulture)); + Assert.Equal("Meter", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Meter, AmericanCulture)); + Assert.Equal("Decimeter", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Decimeter, AmericanCulture)); } [Fact] public void SingularName_WithRussianCulture() { - Assert.Equal("метр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, RussianCulture)); - Assert.Equal("Децигметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, RussianCulture)); - Assert.Equal("Килогметр", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, RussianCulture)); + Assert.Equal("метр", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Meter, RussianCulture)); + Assert.Equal("Децигметр", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Decimeter, RussianCulture)); + Assert.Equal("Килогметр", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Kilometer, RussianCulture)); } [Fact] public void SingularName_WithFrenchCulture() { - Assert.Equal("Mètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Meter, FrenchCulture)); - Assert.Equal("Décimètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Decimeter, FrenchCulture)); - Assert.Equal("Kilomètre", UnitSingularNamesCache.Default.GetDefaultSingularName(LengthUnit.Kilometer, FrenchCulture)); + Assert.Equal("Mètre", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Meter, FrenchCulture)); + Assert.Equal("Décimètre", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Decimeter, FrenchCulture)); + Assert.Equal("Kilomètre", UnitSingularNamesCache.Default.GetUnitSingularName(LengthUnit.Kilometer, FrenchCulture)); } - [Fact] - public void GetDefaultSingularNameThrowsNotImplementedExceptionIfNoneExist() - { - var unitCache = new UnitSingularNamesCache(); - Assert.Throws(() => unitCache.GetDefaultSingularName(CustomUnit.Unit1)); - } - - [Fact] - public void GetDefaultSingularNameFallsBackToUsEnglishCulture() - { - var oldCurrentCulture = CultureInfo.CurrentCulture; - var oldCurrentUICulture = CultureInfo.CurrentUICulture; - - try - { - // CurrentCulture affects number formatting, such as comma or dot as decimal separator. - // CurrentUICulture affects localization, in this case the abbreviation. - // Zulu (South Africa) - var zuluCulture = new CultureInfo("zu-ZA"); - CultureInfo.CurrentCulture = CultureInfo.CurrentUICulture = zuluCulture; - - var cache = new UnitSingularNamesCache(); - cache.MapUnitToDefaultSingularName(CustomUnit.Unit1, AmericanCulture, "US english singular name for Unit1"); - // Act - string abbreviation = cache.GetDefaultSingularName(CustomUnit.Unit1, zuluCulture); - - // Assert - Assert.Equal("US english singular name for Unit1", abbreviation); - } - finally - { - CultureInfo.CurrentCulture = oldCurrentCulture; - CultureInfo.CurrentUICulture = oldCurrentUICulture; - } - } - - [Fact] - public void MapUnitToSingularName_AddCustomUnit_DoesNotOverrideDefaultSingularNameForAlreadyMappedUnits() - { - var cache = new UnitSingularNamesCache(); - cache.MapUnitToSingularName(LengthUnit.Centimeter, AmericanCulture, "mycentimeter"); - - Assert.Equal("Centimeter", cache.GetDefaultSingularName(LengthUnit.Centimeter)); - } - - [Fact] - public void MapUnitToSingularnName_GivenUnitAndCulture_SetsDefaulSingularNameForUnitAndCulture() - { - var cache = new UnitSingularNamesCache(); - cache.MapUnitToDefaultSingularName(LengthUnit.Centimeter, AmericanCulture, "mycentimeter"); - Assert.Equal("mycentimeter", cache.GetDefaultSingularName(LengthUnit.Centimeter, AmericanCulture)); - } + [Fact] public void TestParse() { diff --git a/UnitsNet/CustomCode/UnitSingularNamesCache.cs b/UnitsNet/CustomCode/UnitSingularNamesCache.cs index de3afdf213..6c1b2c16f0 100644 --- a/UnitsNet/CustomCode/UnitSingularNamesCache.cs +++ b/UnitsNet/CustomCode/UnitSingularNamesCache.cs @@ -37,7 +37,7 @@ static UnitSingularNamesCache() /// /// Adds one or more unit singularName for the given unit enum value. /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. + /// in order to or on them later. /// /// The unit enum value. /// Unit singularNames to add. @@ -46,21 +46,11 @@ static UnitSingularNamesCache() public void MapUnitToSingularName(TUnitType unit, params string[] singularNames) where TUnitType : Enum => _cache.MapUnitToStrings(unit, singularNames); - /// - /// Adds a unit singularName for the given unit enum value and sets it as the default. - /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. - /// - /// The unit enum value. - /// Unit singularNames to add as default. - /// The type of unit enum. - public void MapUnitToDefaultSingularName(TUnitType unit, string singularName) where TUnitType : Enum => - _cache.MapUnitToDefaultString(unit, singularName); /// /// Adds one or more unit singularName for the given unit enum value. /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. + /// in order to or on them later. /// /// The unit enum value. /// The format provider to use for lookup. Defaults to if null. @@ -70,23 +60,10 @@ public void MapUnitToDefaultSingularName(TUnitType unit, string singu public void MapUnitToSingularName(TUnitType unit, IFormatProvider formatProvider, params string[] singularNames) where TUnitType : Enum => MapUnitToSingularName(unit, formatProvider, singularNames); - /// - /// Adds a unit singularName for the given unit enum value and sets it as the default. - /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. - /// - /// The unit enum value. - /// The format provider to use for lookup. Defaults to if null. - /// Unit singularName to add as default. - /// The type of unit enum. - [PublicAPI] - public void MapUnitToDefaultSingularName(TUnitType unit, IFormatProvider formatProvider, string singularName) where TUnitType : Enum => - _cache.MapUnitToDefaultString(unit, formatProvider, singularName); - /// /// Adds one or more unit singularName for the given unit enum value. /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. + /// in order to or on them later. /// /// The unit enum type. /// The unit enum value. @@ -96,43 +73,6 @@ public void MapUnitToDefaultSingularName(TUnitType unit, IFormatProvi public void MapUnitToSingularName(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] params string[] singularNames) => _cache.MapUnitToStrings(unitType, unitValue, formatProvider, singularNames); - /// - /// Adds a unit singularName for the given unit enum value and sets it as the default. - /// This is used to dynamically add singularNames for existing unit enums such as or to extend with third-party unit enums - /// in order to or on them later. - /// - /// The unit enum type. - /// The unit enum value. - /// The format provider to use for lookup. Defaults to if null. - /// Unit singularName to add as default. - [PublicAPI] - public void MapUnitToDefaultSingularName(Type unitType, int unitValue, IFormatProvider formatProvider, [NotNull] string singularName) => - _cache.MapUnitToDefaultString(unitType, unitValue, formatProvider, singularName); - - /// - /// Gets the default singularName for a given unit. If a unit has more than one singularName defined, then it returns the first one. - /// Example: GetDefaultSingularName<LengthUnit>(LengthUnit.Kilometer) => "km" - /// - /// The unit enum value. - /// The format provider to use for lookup. Defaults to if null. - /// The type of unit enum. - /// The default unit singularName string. - [PublicAPI] - public string GetDefaultSingularName(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => - _cache.GetDefaultString(unit, formatProvider); - - /// - /// Gets the default singularName for a given unit type and its numeric enum value. - /// If a unit has more than one singularName defined, then it returns the first one. - /// Example: GetDefaultSingularName<LengthUnit>(typeof(LengthUnit), 1) => "cm" - /// - /// The unit enum type. - /// The unit enum value. - /// The format provider to use for lookup. Defaults to if null. - /// The default unit singularName string. - [PublicAPI] - public string GetDefaultSingularName(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => - _cache.GetDefaultString(unitType, unitValue, formatProvider); /// /// Get the singular Name of a given unit. @@ -142,8 +82,8 @@ public string GetDefaultSingularName(Type unitType, int unitValue, IFormatProvid /// The format provider to use for lookup. Defaults to if null. /// The singular name associated with the unit. [PublicAPI] - public string GetUnitSingularNames(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => - _cache.GetUnitStrings(unit, formatProvider)[0]; + public string GetUnitSingularName(TUnitType unit, IFormatProvider? formatProvider = null) where TUnitType : Enum => + _cache.GetUnitStrings(unit, formatProvider)[0]; //only one singular name is supported /// /// Get the singular Name of a given unit. @@ -153,8 +93,8 @@ public string GetUnitSingularNames(TUnitType unit, IFormatProvider? f /// The format provider to use for lookup. Defaults to if null. /// The singular name associated with the unit. [PublicAPI] - public string GetUnitSingularNames(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => - _cache.GetUnitStrings(unitType, unitValue, formatProvider)[0]; + public string GetUnitSingularName(Type unitType, int unitValue, IFormatProvider? formatProvider = null) => + _cache.GetUnitStrings(unitType, unitValue, formatProvider)[0]; //only one singular name is supported /// /// Get all singularNames for all units of a quantity.