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); }
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); } } }
public static string ToCode(this WritingScript script) { string code; if (!_scriptCodes.TryGetValue((short)script, out code)) { return(null); } return(code); }
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; } } } }
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); } } } }
protected abstract void SetScriptsToCode(int code, int last, WritingScript script, bool standard);
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; } } }