< Summary

Information
Class: ValidateLib.UtilityClasses.LanguageUtilityClass
Assembly: validatelib.dll
File(s): C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\UtilityClasses\LanguageUtilityClass.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 52
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

C:\skola_karlovka\RP\code\csv-validator\CSV_Validator\ValidateLib\UtilityClasses\LanguageUtilityClass.cs

#LineLine coverage
 1using System.Globalization;
 2
 3namespace ValidateLib.UtilityClasses
 4{
 5    public class LanguageUtilityClass
 6    {
 7
 8        public static bool IsCorrectLanguageCode(string bcpTag)
 9        {
 110            if (bcpTag == "und") return true;
 111            return ValidateLanguageTagParts(bcpTag);
 12        }
 13        static bool ValidateLanguageTagParts(string languageTag)
 14        {
 15            // Split the input string into subparts using hyphen as separator
 116            string[] subparts = languageTag.Split('-');
 17
 18            // Validate each subpart using the TryGetCultureInfoByIetfLanguageTag method
 119            foreach (string subpart in subparts)
 20            {
 121                if (!TryGetCultureInfoByIetfLanguageTag(subpart, out _))
 22                {
 123                    return false; // Invalid subpart found
 24                }
 25            }
 26
 127            return true; // All subparts are valid
 28        }
 29
 30        static bool TryGetCultureInfoByIetfLanguageTag(string subpart, out CultureInfo cultureInfo)
 31        {
 32            try
 33            {
 134                cultureInfo = CultureInfo.GetCultureInfoByIetfLanguageTag(subpart);
 135                return true;
 36            }
 137            catch (CultureNotFoundException)
 38            {
 139                cultureInfo = null;
 140                return false;
 41            }
 142        }
 43
 44        public static string GetMostGeneralLanguagePart(string languageTag)
 45        {
 146            string[] parts = languageTag.Split("-");
 147            return parts[0];
 48        }
 49
 50
 51    }
 52}