private WritingSystemDefinition GetFromFilePath(string filePath) { try { WritingSystemDefinition ws = CreateNew(); var adaptor = new FwLdmlAdaptor(); adaptor.Read(filePath, ws); ws.StoreID = ((PalasoWritingSystem)ws).RFC5646; ws.Modified = false; return(ws); } catch (Exception e) { throw new ArgumentException("GlobalWritingSystemStore was unable to load the LDML file " + filePath, "filePath", e); } }
/// <summary> /// Creates a new writing system. /// </summary> /// <returns></returns> public IWritingSystem Create(string identifier) { lock (m_syncRoot) { if (m_globalStore != null) { IWritingSystemDefinition globalWs; if (m_globalStore.TryGet(identifier, out globalWs)) { return((PalasoWritingSystem)m_globalStore.MakeDuplicate(globalWs)); } } } LanguageSubtag languageSubtag; ScriptSubtag scriptSubtag; RegionSubtag regionSubtag; VariantSubtag variantSubtag; if (!LangTagUtils.GetSubtags(identifier, out languageSubtag, out scriptSubtag, out regionSubtag, out variantSubtag)) { throw new ArgumentException(identifier + " is not a valid RFC5646 language tag."); } var result = Create(languageSubtag, scriptSubtag, regionSubtag, variantSubtag); if (TemplateFolder != null) { // try in our master template file // Todo: have property TemplateFolderPath, initialize in FdoBackendProvider.InitializeWritingSystemManager var template = Path.Combine(TemplateFolder, Path.ChangeExtension(identifier, "ldml")); if (File.Exists(template)) { var loader = new FwLdmlAdaptor(); loader.Read(template, (WritingSystemDefinition)result); } } return(result); }
/// <summary> /// Creates a new writing system. /// </summary> /// <returns></returns> public IWritingSystem Create(string identifier) { lock (m_syncRoot) { if (m_globalStore != null) { IWritingSystemDefinition globalWs; if (m_globalStore.TryGet(identifier, out globalWs)) return (PalasoWritingSystem) m_globalStore.MakeDuplicate(globalWs); } } LanguageSubtag languageSubtag; ScriptSubtag scriptSubtag; RegionSubtag regionSubtag; VariantSubtag variantSubtag; if (!LangTagUtils.GetSubtags(identifier, out languageSubtag, out scriptSubtag, out regionSubtag, out variantSubtag)) throw new ArgumentException(identifier + " is not a valid RFC5646 language tag."); var result = Create(languageSubtag, scriptSubtag, regionSubtag, variantSubtag); if (TemplateFolder != null) { // try in our master template file // Todo: have property TemplateFolderPath, initialize in FdoBackendProvider.InitializeWritingSystemManager var template = Path.Combine(TemplateFolder, Path.ChangeExtension(identifier, "ldml")); if (File.Exists(template)) { var loader = new FwLdmlAdaptor(); loader.Read(template, (WritingSystemDefinition)result); } } return result; }
private IWritingSystemDefinition GetFromFilePath(string filePath) { try { var ws = (WritingSystemDefinition)CreateNew(); var adaptor = new FwLdmlAdaptor(); adaptor.Read(filePath, ws); ws.StoreID = ((PalasoWritingSystem)ws).RFC5646; ws.Modified = false; return ws; } catch (Exception e) { throw new ArgumentException("GlobalWritingSystemStore was unable to load the LDML file " + filePath, "filePath", e); } }