CM3D2.MaidFiddler.Plugin.Gui.GithubTranslationsGUI.InitLanguageTable C# (CSharp) Method

InitLanguageTable() private method

private InitLanguageTable ( ) : void
return void
        private void InitLanguageTable()
        {
            dataGridView_translations.Rows.Clear();
            langCodes.Clear();
            string translationsPath = Path.Combine(MaidFiddler.DATA_PATH, Translation.TRANSLATIONS_PATH);
            if (!Directory.Exists(translationsPath))
            {
                Debugger.WriteLine(LogLevel.Warning, "No translation folder found. Creating one...");
                Directory.CreateDirectory(translationsPath);
            }

            string[] files = Directory.GetFiles(translationsPath, "*.txt");
            List<LangData> installedLanguages = new List<LangData>();
            foreach (string filePath in files)
            {
                using (StreamReader sr = File.OpenText(filePath))
                {
                    string line = sr.ReadLine();

                    if (line == null || line.Trim() == string.Empty)
                        continue;

                    Match match = Translation.TagPattern.Match(line);
                    if (!match.Success)
                        continue;

                    LangData lang = new LangData
                    {
                        Name = Path.GetFileNameWithoutExtension(filePath),
                        Version = match.Groups["ver"].Value
                    };

                    installedLanguages.Add(lang);
                    Debugger.WriteLine(LogLevel.Info, $"Found language: File={lang.Name}, Version={lang.Version}");
                }
            }

            foreach (string[] langs in
            translationList.Split(new[] {'\n', '\r'}, StringSplitOptions.RemoveEmptyEntries)
                           .Select(s => s.Split(new[] {'\t'}, StringSplitOptions.RemoveEmptyEntries)))
            {
                LangData lang =
                installedLanguages.FirstOrDefault(
                data => string.Equals(data.Name, langs[0], StringComparison.InvariantCultureIgnoreCase));
                Debugger.WriteLine(LogLevel.Info, $"Lang name: {lang.Name}, Ver: {lang.Version}");
                string version = Equals(lang, default(LangData))
                                 ? Translation.GetTranslation("TL_NOT_INSTALLED") : lang.Version;
                dataGridView_translations.Rows.Add(langs[2], langs[1], langs[3], version);
                langCodes.Add(langs[0].ToUpperInvariant());
                Debugger.WriteLine(LogLevel.Info, $"Available language: Code={langs[0]}, Version={langs[3]}");
            }
        }