Esempio n. 1
0
        private static ScriptSystem GetScriptSystem(WritingScript cat)
        {
            switch (cat)
            {
            case WritingScript.Common:
                return(ScriptSystem.Common);

            case WritingScript.Latin:
                return(ScriptSystem.Latin);

            case WritingScript.Cyrillic:
                return(ScriptSystem.Cyrillic);

            case WritingScript.Greek:
                return(ScriptSystem.Greek);

            case WritingScript.Armenian:
                return(ScriptSystem.Armenian);

            case WritingScript.Georgian:
                return(ScriptSystem.Georgian);

            case WritingScript.Arabic:
                return(ScriptSystem.Arabic);

            case WritingScript.Hebrew:
                return(ScriptSystem.Hebrew);
            }
            return(0);
        }
Esempio n. 2
0
 public string GetScriptDisplayName( WritingScript script )
 {
     string code = script.ToCode();
     if ( code.HasValue() ) {
         return GetScriptDisplayName( code );
     }
     return null;
 }
            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);
                    }
                }
            }
Esempio n. 4
0
        public static string ToCode(this WritingScript script)
        {
            string code;

            if (!_scriptCodes.TryGetValue((short)script, out code))
            {
                return(null);
            }
            return(code);
        }
Esempio n. 5
0
 protected override void SetScriptsToCode(int code, int last, WritingScript script, bool standard)
 {
     for (; code <= last; code++)
     {
         var idx = _owner.IndexOf(code);
         if (idx >= 0)
         {
             if (standard)
             {
                 _owner._entries[idx].Script = script;
             }
         }
     }
 }
Esempio n. 6
0
 protected override void SetScriptsToCode(int code, int last, WritingScript script, bool standard)
 {
     for ( ; code <= last; code++)
     {
         WritingScript otherScript;
         if (!_scriptMap.TryGetValue(code, out otherScript))
         {
             _scriptMap.Add(code, script);
         }
         else if (standard)
         {
             _owner.Error("Duplicate code value 0x{0:X} with script {1}", code, script.ToString());
         }
         else
         {
             if (otherScript == WritingScript.Inherited)
             {
                 _scriptMap[code] = script;
                 _inherited.Add(code);
             }
         }
     }
 }
Esempio n. 7
0
 protected abstract void SetScriptsToCode(int code, int last, WritingScript script, bool standard);
Esempio n. 8
0
        internal void ReadIdentity(XmlReader reader)
        {
            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.EndElement:
                    if (reader.Name == "identity")
                    {
                        return;
                    }
                    break;

                case XmlNodeType.Element:
                    var elementName = reader.Name;
                    if (reader.MoveToFirstAttribute())
                    {
                        var attrName  = reader.Name;
                        var attrValue = reader.Value;
                        while (true)
                        {
                            switch (elementName)
                            {
                            case "version":
                                if (attrName == "number")
                                {
                                    _revision = LdmlUtil.ParseRevision(attrValue);
                                }
                                break;

                            case "generation":
                                if (attrName == "date")
                                {
                                    LdmlUtil.TryParseGeneration(attrValue, out _generation);
                                }
                                break;

                            case "language":
                                if (attrName == "type")
                                {
                                    _language = attrValue;
                                }
                                break;

                            case "territory":
                                if (attrName == "type")
                                {
                                    if ((_territory = Loader.FindTerritory(attrValue)) == null)
                                    {
                                        _territoryCode = attrValue;
                                    }
                                }
                                break;

                            case "script":
                                if (attrName == "type")
                                {
                                    _script = Loader.GetScript(attrValue);
                                }
                                break;

                            case "variant":
                                if (attrName == "type")
                                {
                                    _variant = attrValue;
                                }
                                break;
                            }

                            if (!reader.MoveToNextAttribute())
                            {
                                break;
                            }
                        }
                        reader.MoveToElement();
                    }
                    break;
                }
            }
        }