Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
        /// <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);
			}
		}