Exemplo n.º 1
0
        /// <summary>
        /// Gets the transliteration pair set by filename or <see cref="transliterationPairSet.lang_A_id"/> identifier
        /// </summary>
        /// <param name="id">The identifier [filename or lang_A_id]</param>
        /// <returns>null if no transliteration pair set found</returns>
        public static transliterationPairSet GetTransliterationPairSet(String id)
        {
            if (!isPrepared)
            {
                getPrepared();
            }

            transliterationPairSet output = null;

            if (pairSetsByFilename.ContainsKey(id))
            {
                return(pairSetsByFilename[id]);
            }
            else
            {
                foreach (var set in pairSets)
                {
                    if (set.lang_A_id == id)
                    {
                        return(set);
                    }
                }
            }

            return(output);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets the transliteration engine prepared
        /// </summary>
        internal static void getPrepared()
        {
            lock (prepareLock)
            {
                if (!isPrepared)
                {
                    List <FileInfo> files = getDefinitionFiles();

                    foreach (FileInfo fi in files)
                    {
                        transliterationPairSet newSet = new transliterationPairSet();
                        String def = File.ReadAllText(fi.FullName);
                        newSet.LoadFromString(def);

                        String psName = Path.GetFileNameWithoutExtension(fi.Name);
                        pairSetsByFilename.Add(psName, newSet);
                        pairSets.Add(newSet);
                    }
                }
            }
        }