internal void LoadNewList(List <LanguageInfo> languageList)
        {
            if (languageList.Count >= 1)
            {
                foreach (LanguageInfo remoteLang in languageList)
                {
                    int oldIndex = LanguageList.IndexOf(remoteLang);
                    if (oldIndex >= 0)
                    {
                        remoteLang.IsLocal   = LanguageList.ElementAt(oldIndex).IsLocal;
                        remoteLang.ItemState = LanguageList.ElementAt(oldIndex).ItemState;
                    }
                }

                LanguageList.Clear();
                LanguageList.Add(defaultLanguageInfo());

                foreach (LanguageInfo remoteLang in languageList)
                {
                    LanguageList.Add(remoteLang);
                }

                Save(true);
            }

            LanguageList.First().SetCurrentInternal(true);
        }