Forex_Strategy_Builder.Language.InitLanguages C# (CSharp) Method

InitLanguages() public static method

Inits the languages.
public static InitLanguages ( ) : void
return void
        public static void InitLanguages()
        {
            languageFiles = new Dictionary<string, string>();
            bool bIsLanguageSet = false;

            if (Directory.Exists(Data.LanguageDir) && Directory.GetFiles(Data.LanguageDir).Length > 0)
            {
                string[] asLangFiles = Directory.GetFiles(Data.LanguageDir);

                foreach (string sLangFile in asLangFiles)
                {
                    if (sLangFile.EndsWith(".xml", true, null))
                    {
                        try
                        {
                            XmlDocument xmlLanguage = new XmlDocument();
                            xmlLanguage.Load(sLangFile);
                            XmlNode node = xmlLanguage.SelectSingleNode("lang//language");

                            if (node == null)
                            {   // There is no language specified it the lang file
                                string sMessageText = "Language file: " + sLangFile + Environment.NewLine + Environment.NewLine +
                                    "The language is not specified!";
                                MessageBox.Show(sMessageText, "Language Files Loading", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else if (languageFiles.ContainsKey(node.InnerText))
                            {   // This language has been already loaded
                                string sMessageText = "Language file: " + sLangFile + Environment.NewLine + Environment.NewLine +
                                    "Duplicated language!";
                                MessageBox.Show(sMessageText, "Language Files Loading", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                            }
                            else
                            {   // It looks OK
                                string sLanguage = node.InnerText;
                                languageFiles.Add(sLanguage, sLangFile);

                                if (sLanguage == Configs.Language)
                                {
                                    LoadLanguageFile(sLangFile);
                                    bIsLanguageSet = true;
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            string sMessageText = "Language file: " + sLangFile + Environment.NewLine + Environment.NewLine +
                                "Error in the language file!" + Environment.NewLine + Environment.NewLine + e.Message;
                            MessageBox.Show(sMessageText, "Language Files Loading", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        }
                    }
                }
            }

            if (!languageFiles.ContainsKey("English"))
                languageFiles.Add("English", "System");

            if (!languageFiles.ContainsKey("Български"))
                languageFiles.Add("Български", "System");

            if (!bIsLanguageSet)
            {
                if (Configs.Language == "Български")
                    LoadLanguageFile("Български");
                else
                {
                    LoadLanguageFile("English");
                    Configs.Language = "English";
                }
            }

            CheckLangFile();

            languageList = new string[languageFiles.Count];
            languageFiles.Keys.CopyTo(languageList, 0);
            System.Array.Sort(languageList);
        }

Usage Example

        /// <summary>
        /// Sets the program's language.
        /// </summary>
        protected override void Language_Click(object sender, EventArgs e)
        {
            ToolStripMenuItem mi = (ToolStripMenuItem)sender;

            if (!mi.Checked)
            {
                Configs.Language = mi.Name;
                Language.InitLanguages();

                MainMenuStrip.Items.Clear();
                InitializeMenu();

                statusStrip.Items.Clear();
                InitializeStatusBar();

                Calculate(false);
                RebuildStrategyLayout();
                infpnlMarketStatistics.Update(Data.MarketStatsParam, Data.MarketStatsValue, Data.MarketStatsFlag, Language.T("Market Statistics"));
                SetupJournal();
                pnlWorkspace.Invalidate(true);
                string messageText = Language.T("Restart the program to activate the changes!");
                MessageBox.Show(messageText, Language.T("Language Change"), MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            foreach (ToolStripMenuItem tsmi in mi.Owner.Items)
            {
                tsmi.Checked = false;
            }
            mi.Checked = true;

            return;
        }
All Usage Examples Of Forex_Strategy_Builder.Language::InitLanguages