private void ListLanguages()
{
string Folder = Program.FileSystem.GetDataFolder("Languages");
if (System.IO.Directory.Exists(Folder))
{
string[] Files = System.IO.Directory.GetFiles(Folder);
string[] LanguageNames = new string[Files.Length];
LanguageFiles = new string[Files.Length];
int n = 0;
for (int i = 0; i < Files.Length; i++)
{
string Title = System.IO.Path.GetFileName(Files[i]);
if (Title != null && Title.EndsWith(".cfg", StringComparison.OrdinalIgnoreCase))
{
string Code = Title.Substring(0, Title.Length - 4);
string[] Lines = System.IO.File.ReadAllLines(Files[i], System.Text.Encoding.UTF8);
string Section = "";
string languageName = Code;
for (int j = 0; j < Lines.Length; j++)
{
Lines[j] = Lines[j].Trim();
if (Lines[j].StartsWith("[", StringComparison.Ordinal) & Lines[j].EndsWith("]", StringComparison.Ordinal))
{
Section = Lines[j].Substring(1, Lines[j].Length - 2).Trim().ToLowerInvariant();
}
else if (!Lines[j].StartsWith(";", StringComparison.OrdinalIgnoreCase))
{
int k = Lines[j].IndexOf('=');
if (k >= 0)
{
string Key = Lines[j].Substring(0, k).TrimEnd().ToLowerInvariant();
string Value = Lines[j].Substring(k + 1).TrimStart();
if (Section == "language" & Key == "name")
{
languageName = Value;
break;
}
}
}
}
LanguageFiles[n] = Files[i];
LanguageNames[n] = languageName;
n++;
}
}
Array.Resize<string>(ref LanguageFiles, n);
Array.Resize<string>(ref LanguageNames, n);
Array.Sort<string, string>(LanguageNames, LanguageFiles);
comboboxLanguages.Items.Clear();
//Load all available languages
for (int i = 0; i < Interface.AvailableLangauges.Count; i++)
{
comboboxLanguages.Items.Add(Interface.AvailableLangauges[i].Name);
}
}
else {
LanguageFiles = new string[] { };
comboboxLanguages.Items.Clear();
}
}