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);
}