Example #1
0
        public virtual LanguageRecord GetLanguageRecord(String[] scripts, String language)
        {
            ScriptRecord scriptFound   = null;
            ScriptRecord scriptDefault = null;

            foreach (ScriptRecord sr in records)
            {
                if (DEFAULT_SCRIPT.Equals(sr.tag))
                {
                    scriptDefault = sr;
                    break;
                }
            }
            foreach (String script in scripts)
            {
                foreach (ScriptRecord sr in records)
                {
                    if (sr.tag.Equals(script))
                    {
                        scriptFound = sr;
                        break;
                    }
                    if (DEFAULT_SCRIPT.Equals(script))
                    {
                        scriptDefault = sr;
                    }
                }
                if (scriptFound != null)
                {
                    break;
                }
            }
            if (scriptFound == null)
            {
                scriptFound = scriptDefault;
            }
            if (scriptFound == null)
            {
                return(null);
            }
            LanguageRecord lang = null;

            foreach (LanguageRecord lr in scriptFound.languages)
            {
                if (lr.tag.Equals(language))
                {
                    lang = lr;
                    break;
                }
            }
            if (lang == null)
            {
                lang = scriptFound.defaultLanguage;
            }
            return(lang);
        }
Example #2
0
        public virtual FeatureRecord GetRequiredFeature(String[] scripts, String language)
        {
            LanguageRecord rec = scriptsType.GetLanguageRecord(scripts, language);

            if (rec == null)
            {
                return(null);
            }
            return(featuresType.GetRecord(rec.featureRequired));
        }
Example #3
0
        private LanguageRecord ReadLanguageRecord(TagAndLocation tagLoc)
        {
            LanguageRecord rec = new LanguageRecord();

            //skip lookup order
            openTypeReader.rf.Seek(tagLoc.location + 2);
            rec.featureRequired = openTypeReader.rf.ReadUnsignedShort();
            int count = openTypeReader.rf.ReadUnsignedShort();

            rec.features = openTypeReader.ReadUShortArray(count);
            rec.tag      = tagLoc.tag;
            return(rec);
        }
Example #4
0
        public virtual IList <FeatureRecord> GetFeatures(String[] scripts, String language)
        {
            LanguageRecord rec = scriptsType.GetLanguageRecord(scripts, language);

            if (rec == null)
            {
                return(null);
            }
            IList <FeatureRecord> ret = new List <FeatureRecord>();

            foreach (int f in rec.features)
            {
                ret.Add(featuresType.GetRecord(f));
            }
            return(ret);
        }
Example #5
0
        public virtual LanguageRecord GetLanguageRecord(String otfScriptTag)
        {
            LanguageRecord languageRecord = null;

            if (otfScriptTag != null)
            {
                foreach (ScriptRecord record in GetScriptRecords())
                {
                    if (otfScriptTag.Equals(record.tag))
                    {
                        languageRecord = record.defaultLanguage;
                        break;
                    }
                }
            }
            return(languageRecord);
        }