Forex_Strategy_Builder.Language.RapairAllLangFiles C# (CSharp) Method

RapairAllLangFiles() public static method

Repairs all the language files.
public static RapairAllLangFiles ( ) : string
return string
        public static string RapairAllLangFiles()
        {
            string[] langFiles = Directory.GetFiles(Data.LanguageDir);
            string report = "";

            foreach (string langFile in langFiles)
            {
                if (langFile.EndsWith(".xml", true, null))
                {
                    XmlDocument xmlBaseLanguage = new XmlDocument();
                    xmlBaseLanguage.InnerXml = Properties.Resources.Bulgarian;

                    XmlDocument xmlLanguage = new XmlDocument();
                    xmlLanguage.Load(langFile);

                    try
                    {
                        xmlBaseLanguage.SelectSingleNode("lang//language").InnerText     = xmlLanguage.SelectSingleNode("lang//language").InnerText;
                        xmlBaseLanguage.SelectSingleNode("lang//translatedby").InnerText = xmlLanguage.SelectSingleNode("lang//translatedby").InnerText;
                        xmlBaseLanguage.SelectSingleNode("lang//website").InnerText      = xmlLanguage.SelectSingleNode("lang//website").InnerText;
                        xmlBaseLanguage.SelectSingleNode("lang//corrections").InnerText  = xmlLanguage.SelectSingleNode("lang//corrections").InnerText;

                        XmlNodeList xmlBaseStringList = xmlBaseLanguage.GetElementsByTagName("str");
                        XmlNodeList xmlStringList     = xmlLanguage.GetElementsByTagName("str");
                        foreach (XmlNode nodeBaseString in xmlBaseStringList)
                        {
                            string main = nodeBaseString.SelectSingleNode("main").InnerText;
                            nodeBaseString.SelectSingleNode("alt").InnerText = main;

                            foreach (XmlNode nodeString in xmlStringList)
                                if(nodeString.SelectSingleNode("main").InnerText == main)
                                    nodeBaseString.SelectSingleNode("alt").InnerText = nodeString.SelectSingleNode("alt").InnerText;
                        }

                        report += xmlLanguage.SelectSingleNode("lang//language").InnerText + " - OK" + Environment.NewLine;
                    }
                    catch (Exception e)
                    {
                        string message = "Language file: " + langFile + Environment.NewLine + Environment.NewLine +
                            "Error in the language file!" + Environment.NewLine + Environment.NewLine + e.Message;
                        MessageBox.Show(message, "Language Files Loading", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }

                    xmlBaseLanguage.Save(langFile);
                }
            }

            return report;
        }

Usage Example

        /// <summary>
        /// Does the job
        /// </summary>
        private void ParseInput(string input)
        {
            var asCommands = new[]
            {
                "help           - Shows the commands list.",
                "clr            - Clears the screen.",
                "pos #          - Shows the parameters of position #.",
                "ord #          - Shows the parameters of order #.",
                "bar #          - Shows the prices of bar #.",
                "ind #          - Shows the indicators for bar #.",
                "str            - shows the strategy.",
                "debug          - Turns on debug mode.",
                "undebug        - Turns off debug mode.",
                "loadlang       - Reloads the language file.",
                "missingphrases - Shows all phrases, which are used in the program but are not included in the language file.",
                "genlangfiles   - Regenerates English.xml.",
                "repairlang     - Repairs all the language files.",
                "importlang     - Imports a translation (Read more first).",
                "langtowiki     - Shows translation in wiki format.",
                "resetinstrum   - Resets the instruments list.",
                "speedtest      - Performs a speed test.",
                "reloadtips     - Reloads the starting tips.",
                "showalltips    - Shows all the starting tips."
            };

            if (input.StartsWith("help") || input.StartsWith("?"))
            {
                TbxOutput.Text = "Commands" + Environment.NewLine + "-----------------" + Environment.NewLine;
                foreach (string sCommand in asCommands)
                {
                    TbxOutput.Text += sCommand + Environment.NewLine;
                }
            }
            else if (input.StartsWith("clr"))
            {
                TbxOutput.Text = "";
            }
            else if (input.StartsWith("debug"))
            {
                TbxOutput.Text += "Debug mode - on" + Environment.NewLine;
                Data.Debug      = true;
            }
            else if (input.StartsWith("nodebug"))
            {
                TbxOutput.Text += "Debug mode - off" + Environment.NewLine;
                Data.Debug      = false;
            }
            else if (input.StartsWith("loadlang"))
            {
                Language.InitLanguages();
                TbxOutput.Text += "Language file loaded." + Environment.NewLine;
            }
            else if (input.StartsWith("importlang"))
            {
                Language.ImportLanguageFile(TbxOutput.Text);
            }
            else if (input.StartsWith("langtowiki"))
            {
                Language.ShowPhrases(4);
            }
            else if (input.StartsWith("genlangfiles"))
            {
                Language.GenerateLangFiles();
                TbxOutput.Text += "Language files generated." + Environment.NewLine;
            }
            else if (input.StartsWith("repairlang"))
            {
                TbxOutput.Text += "Language files repair" + Environment.NewLine + "---------------------" +
                                  Environment.NewLine + "";
                TbxOutput.Text += Language.RapairAllLangFiles();
            }
            else if (input.StartsWith("resetinstrum"))
            {
                Instruments.ResetInstruments();
                TbxOutput.Text += "The instruments are reset." + Environment.NewLine + "Restart the program now!" +
                                  Environment.NewLine;
            }
            else if (input.StartsWith("missingphrases"))
            {
                ShowMissingPhrases();
            }
            else if (input.StartsWith("speedtest"))
            {
                SpeedTest();
            }
            else if (input.StartsWith("str"))
            {
                ShowStrategy();
            }
            else if (input.StartsWith("pos"))
            {
                ShowPosition(input);
            }
            else if (input.StartsWith("ord"))
            {
                ShowOrder(input);
            }
            else if (input.StartsWith("bar"))
            {
                ShowBar(input);
            }
            else if (input.StartsWith("ind"))
            {
                ShowIndicators(input);
            }
            else if (input.StartsWith("reloadtips"))
            {
                var startingTips = new StartingTips();
                startingTips.Show();
            }
            else if (input.StartsWith("showalltips"))
            {
                var startingTips = new StartingTips {
                    ShowAllTips = true
                };
                startingTips.Show();
            }

            TbxOutput.Focus();
            TbxOutput.ScrollToCaret();

            TbxInput.Focus();
            TbxInput.Text = "";
        }