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); }
public virtual FeatureRecord GetRequiredFeature(String[] scripts, String language) { LanguageRecord rec = scriptsType.GetLanguageRecord(scripts, language); if (rec == null) { return(null); } return(featuresType.GetRecord(rec.featureRequired)); }
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); }
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); }
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); }