System.Globalization.I18NComplete.GetMessage C# (CSharp) Method

GetMessage() public static method

Gets a translated message version of the supplied text message.
public static GetMessage ( string msgID, string languageCode = null, int lcid = null ) : Message
msgID string Text to be translated
languageCode string Language to translate into
lcid int Specify the Culture LCID for faster access if you know it
return Message
        public static Message GetMessage(string msgID, string languageCode = null, int? lcid = null)
        {
            if (I18NComplete.HideAllLocalizedText)
                return Message.Empty;
            int languageHash = lcid.HasValue ? lcid.Value : string.IsNullOrWhiteSpace(languageCode) ? CultureInfo.CurrentUICulture.LCID : LCID(languageCode);
            Localization localization;

            if (!Localizations.TryGetValue(languageHash, out localization))
            {
                if (CultureInfo.CurrentUICulture.IsNeutralCulture)
                {
                    Localizations[languageHash] = localization = new Localization();
                    languageHash = I18NComplete.DefaultWorkingLanguageLCID;
                }
                else
                {
                    var nativeCultureHash = CultureInfo.GetCultureInfo(languageHash).Parent.LCID;
                    if (!Localizations.TryGetValue(nativeCultureHash, out localization))
                    {
                        languageHash = I18NComplete.DefaultWorkingLanguageLCID;
                        Localizations.TryGetValue(languageHash, out localization);
                    }
                    else
                    {
                        //save the specific culture as the generic culture, so it will be found next time
                        Localizations[languageHash] = localization;
                    }
                }
            }

            return localization.GetMessageObject(msgID);
        }