Antlr3.Tool.ErrorManager.SetLocale C# (CSharp) Method

SetLocale() public static method

public static SetLocale ( System.Globalization.CultureInfo locale ) : void
locale System.Globalization.CultureInfo
return void
        public static void SetLocale( CultureInfo locale )
        {
            if (ErrorManager.locale == locale)
                return;

            ErrorManager.locale = locale;
            string language = locale.TwoLetterISOLanguageName;
            string fileName = Path.Combine(Path.Combine(Path.Combine(Path.Combine(Path.Combine(AntlrTool.ToolPathRoot, "Tool"), "Templates"), "messages"), "languages"), language + ".stg");
            if (!File.Exists(fileName) && locale.TwoLetterISOLanguageName != CultureInfo.GetCultureInfo("en-us").TwoLetterISOLanguageName)
            {
                SetLocale(CultureInfo.GetCultureInfo("en-us"));
                return;
            }

            messages = new TemplateGroupFile(fileName);
            messages.EnableCache = AntlrTool.EnableTemplateCache;
            messages.Listener = initSTListener;
            if (!messages.IsDefined("INTERNAL_ERROR"))
            {
                // pick random msg to load
                if (language.Equals(CultureInfo.GetCultureInfo("en-us").TwoLetterISOLanguageName))
                {
                    RawError("ANTLR installation corrupted; cannot find English messages file " + fileName);
                    Panic();
                }
                else
                {
                    // recurse on this rule, trying the US locale
                    SetLocale(CultureInfo.GetCultureInfo("en-us"));
                }
            }

            messages.Listener = blankSTListener;
            bool messagesOK = VerifyMessages();
            if ( !messagesOK && language.Equals(CultureInfo.GetCultureInfo("en-us").TwoLetterISOLanguageName) ) {
                RawError("ANTLR installation corrupted; English messages file "+language+".stg incomplete");
                Panic();
            }
            else if ( !messagesOK ) {
                SetLocale(CultureInfo.GetCultureInfo("en-us")); // try US to see if that will work
            }
        }