/// <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); }
/// <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); } } } }