private void LoadLanguageData(string elmName, List <AttributeValue> list)
            {
                if (elmName != "language")
                {
                    return;
                }
                LanguageInfo locale      = null;
                string       scripts     = null;
                string       territories = null;
                bool         secondary   = false;

                foreach (AttributeValue value in list)
                {
                    switch (value.Name)
                    {
                    case "type":
                        locale = _loader.GetLocaleInfo(value.Value);
                        break;

                    case "scripts":
                        scripts = value.Value;
                        break;

                    case "territories":
                        territories = value.Value;
                        break;

                    case "alt":
                        if (value.Value == "secondary")
                        {
                            secondary = true;
                        }
                        break;

                    default:
                        _loader.Warning("Invalid attribute " + value.Name);
                        break;
                    }
                }
                if (locale != null)
                {
                    if (scripts.HasValue())
                    {
                        var             als = scripts.SplitAtSpaces();
                        WritingScript[] s   = new WritingScript[als.Length];
                        for (int i = 0; i < s.Length; i++)
                        {
                            s[i] = _loader.GetScript(als[i]);
                        }
                        locale.AddScripts(s, secondary);
                    }
                    if (territories.HasValue())
                    {
                        locale.AddTerritories(territories.SplitAtSpaces(_loader._territories), secondary);
                    }
                }
            }