private static void Load() { TextTranslator.StopWatchTextFiles(); TextTranslator.mainfilefullpath = null; TextTranslator.translationsLv.Clear(); TextTranslator.translationsLvR.Clear(); TextTranslator.translations.Clear(); TextTranslator.translationsR.Clear(); if (File.Exists(TextTranslator.MainFilePath)) { TextTranslator.LoadTranslations(TextTranslator.MainFilePath, false); } if (TextTranslator.GlobalTextDir != TextTranslator.TextDir) { TextTranslator.LoadAllFromGlobalTranslationDir(); } TextTranslator.LoadAllFromTranslationDir(); TextTranslator.WatchTextFiles(); if (IniSettings.DebugMode || IniSettings.FindText) { int count = 0; foreach (OrderedDictionary value in TextTranslator.translationsLv.Values) { count = count + value.Count; } foreach (List <RegexTranslationData> regexTranslationDatas in TextTranslator.translationsLvR.Values) { count = count + regexTranslationDatas.Count; } count = count + TextTranslator.translations.Count; count = count + TextTranslator.translationsR.Count; IniSettings.Log(string.Format("Translations Loaded: {0}", count)); } }
internal static void Error(object obj = null) { if (IniSettings.DebugMode) { IniSettings.Log(obj); } }
private static Dictionary <string, Texture2DData> ParseIniData(IniFile ini) { Dictionary <string, Texture2DData> strs = new Dictionary <string, Texture2DData>(); try { string[] sections = ini.GetSections(); for (int i = 0; i < (int)sections.Length; i++) { string str = sections[i]; bool flag = false; string value = ini.GetValue(str, "sPath", ""); string value1 = ini.GetValue(str, "bFlipTexture", null); if (!string.IsNullOrEmpty(value1) && !bool.TryParse(value1, out flag)) { flag = true; } Texture2DData texture2DDatum = new Texture2DData(value, flag); strs.Remove(str); strs.Add(str, texture2DDatum); } } catch (Exception exception) { IniSettings.Error(string.Concat("LoadIniData:\n", exception.ToString())); } return(strs); }
protected Texture2D GetTexture() { if (base.GetType() != typeof(Sprite)) { return(null); } Texture2D textured = ((Sprite)this)._get_texture(); try { if (textured == null) { return(textured); } if (this.overrideData.OriginalTexture2D != null) { return(this.overrideData.OverrideTexture2D); } Texture2DOverride.LoadTexture2D(((Sprite)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { textured = this.overrideData.OverrideTexture2D; } } catch (Exception exception) { IniSettings.Error("SpriteOverride:\n" + exception.ToString()); } return(textured); }
static IniSettings() { IniSettings.initialized = false; IniSettings.writetime = 3; IniSettings.LoadLock = new object(); IniSettings.LogLock = new object(); IniSettings.processname = Process.GetCurrentProcess().ProcessName; IniSettings.processfile = string.Concat(IniSettings.processname, ".exe"); IniSettings.PROCESSPATHKEY = string.Concat(IniSettings.processname, "_Folder"); IniSettings.sb = new StringBuilder(); TimeSpan timeSpan = TimeSpan.FromSeconds((double)IniSettings.LogWriterTime); IniSettings.timer = new System.Timers.Timer(timeSpan.TotalMilliseconds) { AutoReset = false }; IniSettings.timer.Elapsed += new ElapsedEventHandler(IniSettings.timer_Elapsed); try { if (File.Exists(IniSettings.LogFilePath)) { File.Delete(IniSettings.LogFilePath); } } catch (Exception exception) { IniSettings.Error(string.Concat("IniSettings:\n", exception.ToString())); } #if UNITY4 LoadIni(); #else IniSettings.Load(); #endif IniSettings.WatchTextFiles(); }
private static U::UnityEngine.Texture2D FlipTextureY(U::UnityEngine.Texture2D original) { U::UnityEngine.Texture2D texture2D; try { texture2D = new U::UnityEngine.Texture2D(original.width, original.height, original.format, false); int num = original.width; int num1 = original.height; for (int i = 0; i < num1; i++) { for (int j = 0; j < num; j++) { texture2D.SetPixel(j, num1 - i - 1, original.GetPixel(j, i)); } } texture2D.Apply(); } catch (Exception exception1) { Exception exception = exception1; texture2D = original; IniSettings.Error(string.Concat("FlipTextureY:\n", exception.ToString())); } return(texture2D); }
private static void WatchSubtitleFiles() { try { if (SubtitleTranslator.GlobalSubtitleDir != SubtitleTranslator.SubtitleDir && SubtitleTranslator.gfsw == null && Directory.Exists(SubtitleTranslator.GlobalSubtitleDir)) { SubtitleTranslator.gfsw = new FileSystemWatcher(SubtitleTranslator.GlobalSubtitleDir, SubtitleTranslator.GlobalSubtitleDirFiles) { NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime, IncludeSubdirectories = false }; SubtitleTranslator.gfsw.Changed += new FileSystemEventHandler(SubtitleTranslator.WatcherNotice); SubtitleTranslator.gfsw.Created += new FileSystemEventHandler(SubtitleTranslator.WatcherNotice); SubtitleTranslator.gfsw.Error += new ErrorEventHandler((object sender, ErrorEventArgs e) => IniSettings.Error(e.GetException().ToString())); SubtitleTranslator.gfsw.EnableRaisingEvents = true; } if (SubtitleTranslator.sfsw == null && Directory.Exists(SubtitleTranslator.SubtitleDir)) { SubtitleTranslator.sfsw = new FileSystemWatcher(SubtitleTranslator.SubtitleDir, SubtitleTranslator.SubtitleDirFiles) { NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime, IncludeSubdirectories = false }; SubtitleTranslator.sfsw.Changed += new FileSystemEventHandler(SubtitleTranslator.WatcherNotice); SubtitleTranslator.sfsw.Created += new FileSystemEventHandler(SubtitleTranslator.WatcherNotice); SubtitleTranslator.sfsw.Error += new ErrorEventHandler((object sender, ErrorEventArgs e) => IniSettings.Error(e.GetException().ToString())); SubtitleTranslator.sfsw.EnableRaisingEvents = true; } } catch (Exception exception) { IniSettings.Error(string.Concat("WatchSubtitleFiles:\n", exception.ToString())); } }
internal static void Initialize() { try { if (!TextTranslator.Initialized) { double totalMilliseconds = TimeSpan.FromSeconds((double)IniSettings.LogWriterTime).TotalMilliseconds; TextTranslator.writerdata = new Dictionary <string, StringBuilder>(); TextTranslator.writertimer = new System.Timers.Timer(totalMilliseconds) { AutoReset = false }; TextTranslator.writertimer.Elapsed += new ElapsedEventHandler(TextTranslator.WriterTimerElapsed); TextTranslator.Load(); IniSettings.LanguageDirChanged += new Action <string>((string value) => { TextTranslator.Load(); MaskableGraphicText.Retranslate(); }); IniSettings.ProcessPathDirChanged += new Action <string>((string value) => { TextTranslator.Load(); MaskableGraphicText.Retranslate(); }); IniSettings.UseRegExChanged += new Action <bool>((bool value) => TextTranslator.Load()); TextTranslator.Initialized = true; } } catch (Exception exception1) { Exception exception = exception1; TextTranslator.Initialized = false; IniSettings.Error(string.Concat("TextTranslator::Initialize:\n", exception.ToString())); } }
private void LateUpdate() { try { if (this.subtitles.Count != 0) { foreach (KeyValuePair <TextPosition, StringBuilder> keyValuePair in this.content) { if (keyValuePair.Value.Length <= 0) { continue; } keyValuePair.Value.Length = 0; } for (int i = this.subtitles.Count - 1; i >= 0; i--) { Subtitle item = this.subtitles[i] as Subtitle; if (item == null) { this.subtitles.RemoveAt(i); } else if (item.Source != null) { if (this.reloadsubtitles) { item.Reload(); } item.LateUpdate(); foreach (TextPosition anchor in SubtitleUserInterfaceBase <SubtitleCanvas> .Instance.Anchors) { string str = item[anchor]; if (str.Length <= 0) { continue; } if (this.content[anchor].Length > 0) { this.content[anchor].Append('\n'); } this.content[anchor].Append(str); } } else { this.subtitles.RemoveAt(i); } } this.reloadsubtitles = false; foreach (TextPosition textPosition in SubtitleUserInterfaceBase <SubtitleCanvas> .Instance.Anchors) { SubtitleUserInterfaceBase <SubtitleCanvas> .Instance[textPosition] = this.content[textPosition].ToString(); } } } catch (Exception exception) { IniSettings.Error(string.Concat("AudioSourceSubtitle::LateUpdate:\n", exception.ToString())); } }
static SubtitleSettings() { #if UNITY4 IniSettings.LoadSettings += new Action <IniFile>(SubtitleSettings.LoadIni); IniSettings.LoadIni(); #else Load(); #endif }
private static void WatcherNotice(object sender, FileSystemEventArgs e) { if (IniSettings.lastraisedfile == e.FullPath && DateTime.Now < IniSettings.lastraisedtime) { return; } IniSettings.lastraisedfile = e.FullPath; IniSettings.lastraisedtime = DateTime.Now.AddSeconds(1); IniSettings.Load(); }
public void Add(U::UnityEngine.AudioSource source) { try { this.subtitles.Remove(source); this.subtitles.Insert(0, source, new Subtitle(SubtitleUserInterfaceBase <SubtitleCanvas> .Instance.Anchors, source)); } catch (Exception exception) { IniSettings.Error(string.Concat("AudioSourceSubtitle::Load:\n", exception.ToString())); } }
public void LateUpdate() { try { if (((this.Source != null) && (this.Clip != null)) && (this.Source.clip == this.Clip)) { int num = (this.Clip.frequency == 0) ? 0xac44 : this.Clip.frequency; float num2 = this.Source.timeSamples * (1f / ((float)num)); foreach (LineData data in this.subtitles) { if (data != null) { if ((this.Source.isPlaying && ((data.Line.EndTime == 0f) || (num2 < data.Line.EndTime))) && (num2 >= data.Line.StartTime)) { this.invalid |= data.Show(); } else { this.invalid |= data.Hide(); } } } if (this.invalid) { foreach (KeyValuePair <TextPosition, HashSet <SubtitleLine> > pair in this.display) { StringBuilder builder = this.ClearContent(this.content[pair.Key]); foreach (SubtitleLine line2 in pair.Value) { if (builder.Length > 0) { builder.Append('\n'); } builder.Append(line2.Text); } } this.invalid = false; } } else if (this.loaded) { this.Unload(); } } catch (Exception exception) { IniSettings.Error("Subtitle::LateUpdate:\n" + exception.ToString()); } }
private static void WriterTimerElapsed(object sender, ElapsedEventArgs e) { object writerLock = TextTranslator.WriterLock; Monitor.Enter(writerLock); try { TextTranslator.StopWatchTextFiles(); try { foreach (KeyValuePair <string, StringBuilder> writerdatum in TextTranslator.writerdata) { string key = writerdatum.Key; string directoryName = Path.GetDirectoryName(key); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } if (!File.Exists(key) && key != TextTranslator.MainFilePath) { string str = key.Substring(0, key.Length - ".txt".Length); string[] strArrays = new string[] { string.Concat(str, ".noregex.txt"), string.Concat(str, ".regex.txt") }; for (int i = 0; i < (int)strArrays.Length; i++) { string str1 = strArrays[i]; if (!File.Exists(str1)) { File.Create(str1).Dispose(); } } } using (StreamWriter streamWriter = new StreamWriter(key, true, Encoding.UTF8)) { streamWriter.Write(writerdatum.Value.ToString()); } } } catch (Exception exception) { IniSettings.Error(string.Concat("TextTranslator::DumpText:\n", exception.ToString())); } TextTranslator.writerdata.Clear(); TextTranslator.WatchTextFiles(); } finally { Monitor.Exit(writerLock); } }
internal static void Load() { int num; bool flag; object loadLock = IniSettings.LoadLock; Monitor.Enter(loadLock); try { try { if (IniSettings.iniw != null) { IniSettings.iniw.Dispose(); IniSettings.iniw = null; } if (!Directory.Exists(IniSettings.SettingsFileDir)) { Directory.CreateDirectory(IniSettings.SettingsFileDir); } TranslationConfig config = IniSettings.GetJsonConfig(); IniSettings.DebugMode = config.DebugMode; IniSettings.Language = config.Language; IniSettings.FindImage = config.FindImage; IniSettings.FindAudio = config.FindAudio; IniSettings.DumpAudioByLevel = config.DumpAudioByLevel; IniSettings.FindText = config.FindText; IniSettings.DumpTextByLevel = config.DumpTextByLevel; IniSettings.UseRegEx = config.UseRegEx; IniSettings.UseTextPrediction = config.UseTextPrediction; IniSettings.UseCopy2Clipboard = config.UseCopy2Clipboard; IniSettings.Copy2ClipboardTime = config.Copy2ClipboardTimeMs; IniSettings.initialized = true; IniSettings.WatchTextFiles(); } catch (Exception exception1) { IniSettings.Error(string.Concat("LoadSettings:\n", exception1.ToString())); } } finally { Monitor.Exit(loadLock); } }
private static Dictionary <string, string> GetUniqueImageFiles(string dir) { Dictionary <string, string> strs = new Dictionary <string, string>(); try { if (Texture2DData.ValidExtensions.Count > 0 && dir != null && Directory.Exists(dir)) { HashSet <string> strs1 = new HashSet <string>(); foreach (Texture2DData value in Texture2DOverride.inidata.Values) { if (strs1.Contains(value.Path) || !value.Exists) { continue; } strs1.Add(value.Path); } string[] files = Directory.GetFiles(dir, "*", SearchOption.AllDirectories); HashSet <string> strs2 = new HashSet <string>(Texture2DData.ValidExtensions); string[] strArrays = files; for (int i = 0; i < (int)strArrays.Length; i++) { string str = strArrays[i]; if (strs2.Contains(Path.GetExtension(str).ToLower())) { string str1 = str; if (str1.StartsWith(dir)) { str1 = str1.Remove(0, dir.Length); } string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(str); if (!strs.ContainsKey(fileNameWithoutExtension) && !strs1.Contains(str1)) { strs.Add(fileNameWithoutExtension, str1); } } } } } catch (Exception exception) { IniSettings.Error(string.Concat("GetUniqueImageFiles:\n", exception.ToString())); } return(strs); }
private static void timer_Elapsed(object sender, ElapsedEventArgs e) { object dataLock = Texture2DOverride.DataLock; Monitor.Enter(dataLock); try { try { List <int> nums = new List <int>(); foreach (KeyValuePair <int, DateTime> keyValuePair in Texture2DOverride.unused) { if (DateTime.Now <= keyValuePair.Value.AddSeconds(15)) { continue; } nums.Add(keyValuePair.Key); if (Texture2DOverride.loaded[keyValuePair.Key].OverrideData.OriginalTexture2D == null) { continue; } int key = keyValuePair.Key; Texture2DOverride.loaded.Remove(key); } if (nums.Count > 0) { Dictionary <int, DateTime> nums1 = Texture2DOverride.unused; foreach (int num in nums) { nums1.Remove(num); } Texture2DOverride.unused = nums1; } } catch (Exception exception) { IniSettings.Error(string.Concat("timer_Elapsed:\n", exception.ToString())); } } finally { Monitor.Exit(dataLock); } }
internal static void UnloadTexture2D(ref Texture2DOverrideData overrideData) { Texture2DCacheData texture2DCacheDatum; object dataLock = Texture2DOverride.DataLock; Monitor.Enter(dataLock); try { try { try { if (overrideData.OriginalTexture2D != null) { int instanceID = overrideData.InstanceID; if (Texture2DOverride.loaded.TryGetValue(instanceID, out texture2DCacheDatum)) { if (texture2DCacheDatum.Count <= (long)0) { Texture2DOverride.unused.Add(instanceID, DateTime.Now); } else { texture2DCacheDatum.DecreaseAmount((long)1); } } } } catch (Exception exception1) { Exception exception = exception1; IniSettings.Error(string.Concat(new object[] { "UnloadTexture2D[", overrideData.InstanceID, "]:\n", exception.ToString() })); } } finally { overrideData = new Texture2DOverrideData(); } } finally { Monitor.Exit(dataLock); } }
private static void WriterTimerElapsed(object sender, ElapsedEventArgs e) { object writerLock = Texture2DOverride.WriterLock; Monitor.Enter(writerLock); try { Texture2DOverride.StopWatchTextFiles(); try { if (!Directory.Exists(Texture2DOverride.TranslationImageIniFileDir)) { Directory.CreateDirectory(Texture2DOverride.TranslationImageIniFileDir); } if (!File.Exists(Texture2DOverride.TranslationImageIniFilePath)) { Texture2DOverride.LoadMainIniFile(); } if (!Directory.Exists(Texture2DOverride.TranslationImageDir)) { Directory.CreateDirectory(Texture2DOverride.TranslationImageDir); } foreach (Texture2DDumpData writerdatum in Texture2DOverride.writerdata) { Texture2DOverride.mainini.WriteValue(writerdatum.Section, "sPath", writerdatum.Path); if (writerdatum.Format != TextureFormat.DXT1 && writerdatum.Format != TextureFormat.DXT5) { continue; } Texture2DOverride.mainini.WriteValue(writerdatum.Section, "bFlipTexture", true); } } catch (Exception exception) { IniSettings.Error(string.Concat("DumpTexture2D:\n", exception.ToString())); } Texture2DOverride.writerdata.Clear(); Texture2DOverride.WatchTextFiles(); } finally { Monitor.Exit(writerLock); } }
private static bool LoadTextureData(string path, out U::UnityEngine.Texture2D texture2D) { bool flag; texture2D = null; try { path = string.Concat(Texture2DOverride.TranslationImageDir, path); string extension = Path.GetExtension(path); if (extension == ".dds") { flag = DXTLoader.LoadDXT(path, out texture2D); } else if (extension == ".jpeg" || extension == ".jpg") { texture2D = new Texture2D(2, 2, TextureFormat.RGB24, false); flag = texture2D.LoadImage(File.ReadAllBytes(path)); } else if (extension == ".png") { texture2D = new Texture2D(2, 2, TextureFormat.ARGB32, false); flag = texture2D.LoadImage(File.ReadAllBytes(path)); } else if (extension == ".psd") { flag = PSDLoader.LoadPSD(path, out texture2D); } else if (extension == ".tga") { flag = TGALoader.LoadTGA(path, out texture2D); } else { return(false); } } catch (Exception exception) { IniSettings.Error(string.Concat("LoadImage:\n", exception.ToString())); return(false); } return(flag); }
protected void Swap(ref Texture value) { if (base.GetType() == typeof(Material)) { try { if (value == null) { if (this.overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref this.overrideData); } } else { Texture2D textured = value as Texture2D; if (textured != null) { if (this.overrideData.OriginalTexture2D != null) { int instanceID = textured.GetInstanceID(); if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID)) { value = this.overrideData.OverrideTexture2D; return; } Texture2DOverride.UnloadTexture2D(ref this.overrideData); } Texture2DOverride.LoadTexture2D(((Material)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { value = this.overrideData.OverrideTexture2D; } } } } catch (Exception exception) { IniSettings.Error("MaterialOverride:\n" + exception.ToString()); } } }
private void SetOurOverrideTexture(ref U::UnityEngine.Texture value) { if (base.GetType() == typeof(RawImage)) { try { if (value == null) { if (this.overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref this.overrideData); } } else { U::UnityEngine.Texture2D textured = value as U::UnityEngine.Texture2D; if (textured != null) { if (this.overrideData.OriginalTexture2D != null) { int instanceID = textured.GetInstanceID(); if ((this.overrideData.InstanceID == instanceID) || (this.overrideData.OverrideID == instanceID)) { value = this.overrideData.OverrideTexture2D; return; } Texture2DOverride.UnloadTexture2D(ref this.overrideData); } Texture2DOverride.LoadTexture2D(((RawImage)this).name, textured, out this.overrideData); if (this.overrideData.OverrideTexture2D != null) { value = this.overrideData.OverrideTexture2D; } } } } catch (Exception exception) { IniSettings.Error("RawImageOverride:\n" + exception.ToString()); } } }
protected static void Swap(ref Texture2D texture) { try { if (texture == null) { if (overrideData.OriginalTexture2D != null) { Texture2DOverride.UnloadTexture2D(ref overrideData); } } else { if (overrideData.OriginalTexture2D != null) { int instanceID = texture.GetInstanceID(); if (overrideData.InstanceID == instanceID) { texture = overrideData.OverrideTextureCache; return; } Texture2DOverride.UnloadTexture2D(ref overrideData); } Texture2DOverride.LoadTexture2D(texture.name, texture, out overrideData); if (overrideData.OverrideTexture2D != null) { if ((texture.width != overrideData.OverrideTexture2D.width) || (texture.height != overrideData.OverrideTexture2D.height)) { texture.Resize(overrideData.OverrideTexture2D.width, overrideData.OverrideTexture2D.height); } texture.SetPixels32(overrideData.OverrideTexture2D.GetPixels32()); texture.Apply(); overrideData.OverrideTextureCache = texture; } } } catch (Exception exception) { IniSettings.Error("CursorOverride:\n" + exception.ToString()); } }
private static void WatchTextFiles() { try { if (IniSettings.iniw == null && Directory.Exists(IniSettings.SettingsFileDir)) { IniSettings.iniw = new FileSystemWatcher(IniSettings.SettingsFileDir, IniSettings.SettingsFileName) { NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime, IncludeSubdirectories = false }; IniSettings.iniw.Changed += new FileSystemEventHandler(IniSettings.WatcherNotice); IniSettings.iniw.Created += new FileSystemEventHandler(IniSettings.WatcherNotice); IniSettings.iniw.Error += new ErrorEventHandler((object sender, ErrorEventArgs e) => IniSettings.Error(e.GetException().ToString())); IniSettings.iniw.EnableRaisingEvents = true; } } catch (Exception exception) { IniSettings.Error(string.Concat("WatchTextFiles:\n", exception.ToString())); } }
private static void Load() { SubtitleTranslator.StopWatchSubtitleFiles(); SubtitleTranslator.translations.Clear(); SubtitleTranslator.translationsLv.Clear(); if (SubtitleTranslator.GlobalSubtitleDir != SubtitleTranslator.SubtitleDir) { SubtitleTranslator.LoadAllFromGlobalTranslationDir(); } SubtitleTranslator.LoadAllFromTranslationDir(); SubtitleTranslator.WatchSubtitleFiles(); if (IniSettings.DebugMode || IniSettings.FindAudio) { int count = 0; count = count + SubtitleTranslator.translations.Count; foreach (OrderedDictionary value in SubtitleTranslator.translationsLv.Values) { count = count + value.Count; } IniSettings.Log(string.Format("Subtitles Loaded: {0}", count)); } }
private static void LoadMainIniFile() { try { Texture2DOverride.mainini = new IniFile(Texture2DOverride.TranslationImageIniFilePath); if (File.Exists(Texture2DOverride.TranslationImageIniFilePath)) { string mainFolderSection = Texture2DOverride.MainFolderSection; string mAINFOLDERKEY = Texture2DOverride.MAINFOLDERKEY; string value = Texture2DOverride.mainini.GetValue(mainFolderSection, mAINFOLDERKEY, null); Texture2DOverride.MainFolder = value; if (value != Texture2DOverride.MainFolder) { Texture2DOverride.mainini.WriteValue(mainFolderSection, mAINFOLDERKEY, Texture2DOverride.MainFolder); } } } catch (Exception exception) { IniSettings.Error(string.Concat("Texture2D::LoadIniFile:", exception.ToString())); } }
public static KeyTranslationData[] FindPredictions(string text, KeyTranslationData[] predictions = null) { OrderedDictionary orderedDictionaries; Dictionary <string, KeyTranslationData> strs = new Dictionary <string, KeyTranslationData>(); if (!string.IsNullOrEmpty(text)) { try { if (predictions == null) { if (TextTranslator.translationsLv.TryGetValue(Application.loadedLevel, out orderedDictionaries)) { TextTranslator.MakePredictions(text, orderedDictionaries, strs); } TextTranslator.MakePredictions(text, TextTranslator.translations, strs); } else { OrderedDictionary orderedDictionaries1 = new OrderedDictionary(); KeyTranslationData[] keyTranslationDataArray = predictions; for (int i = 0; i < (int)keyTranslationDataArray.Length; i++) { KeyTranslationData keyTranslationDatum = keyTranslationDataArray[i]; orderedDictionaries1.Add(keyTranslationDatum.Key, keyTranslationDatum); } TextTranslator.MakePredictions(text, orderedDictionaries1, strs); } } catch (Exception exception) { IniSettings.Error(string.Concat("TextTranslator::PredictTranslation:\n", exception.ToString())); } } KeyTranslationData[] keyTranslationDataArray1 = new KeyTranslationData[strs.Count]; strs.Values.CopyTo(keyTranslationDataArray1, 0); return(keyTranslationDataArray1); }
internal static void Initialize() { try { if (!SubtitleTranslator.Initialized) { double totalMilliseconds = TimeSpan.FromSeconds((double)IniSettings.LogWriterTime).TotalMilliseconds; SubtitleTranslator.writerdata = new Dictionary <string, StringBuilder>(); SubtitleTranslator.writertimer = new System.Timers.Timer(totalMilliseconds) { AutoReset = false }; SubtitleTranslator.writertimer.Elapsed += new ElapsedEventHandler(SubtitleTranslator.WriterTimerElapsed); SubtitleTranslator.Load(); SubtitleSettings.AnchorChanged += new Action <TextPosition>((TextPosition value) => { SubtitleTranslator.Load(); AudioSourceSubtitle.Instance.Reload(); }); IniSettings.LanguageDirChanged += new Action <string>((string value) => { SubtitleTranslator.Load(); AudioSourceSubtitle.Instance.Reload(); }); IniSettings.ProcessPathDirChanged += new Action <string>((string value) => { SubtitleTranslator.Load(); AudioSourceSubtitle.Instance.Reload(); }); IniSettings.FindAudioChanged += new Action <bool>((bool value) => AudioSourceSubtitle.Instance.Reload()); SubtitleTranslator.Initialized = true; } } catch (Exception exception1) { Exception exception = exception1; SubtitleTranslator.Initialized = false; IniSettings.Error(string.Concat("SubtitleTranslator::Initialize:\n", exception.ToString())); } }
private static void WriterTimerElapsed(object sender, ElapsedEventArgs e) { object writerLock = SubtitleTranslator.WriterLock; Monitor.Enter(writerLock); try { SubtitleTranslator.StopWatchSubtitleFiles(); try { foreach (KeyValuePair <string, StringBuilder> writerdatum in SubtitleTranslator.writerdata) { string key = writerdatum.Key; string directoryName = Path.GetDirectoryName(key); if (!Directory.Exists(directoryName)) { Directory.CreateDirectory(directoryName); } using (StreamWriter streamWriter = new StreamWriter(key, true, Encoding.UTF8)) { streamWriter.Write(writerdatum.Value.ToString()); } } } catch (Exception exception) { IniSettings.Error(string.Concat("SubtitleTranslator::DumpText:\n", exception.ToString())); } SubtitleTranslator.writerdata.Clear(); SubtitleTranslator.WatchSubtitleFiles(); } finally { Monitor.Exit(writerLock); } }
internal static void LoadIni() { int num; bool flag; object loadLock = IniSettings.LoadLock; Monitor.Enter(loadLock); try { try { if (IniSettings.iniw != null) { IniSettings.iniw.Dispose(); IniSettings.iniw = null; } if (!Directory.Exists(IniSettings.SettingsFileDir)) { Directory.CreateDirectory(IniSettings.SettingsFileDir); } IniFile nIFile = IniSettings.GetINIFile(); string pROCESSPATHKEY = "bDebugMode"; string value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = false; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.DebugMode = flag; pROCESSPATHKEY = "sLanguage"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); IniSettings.Language = value; if (value != IniSettings.Language) { nIFile.WriteValue("Translation", pROCESSPATHKEY, IniSettings.Language); } pROCESSPATHKEY = "bFindImage"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = false; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.FindImage = flag; pROCESSPATHKEY = "bFindAudio"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = false; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.FindAudio = flag; pROCESSPATHKEY = "bDumpAudioByLevel"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = true; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.DumpAudioByLevel = flag; pROCESSPATHKEY = "bFindText"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = false; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.FindText = flag; pROCESSPATHKEY = "bDumpTextByLevel"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = true; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.DumpTextByLevel = flag; pROCESSPATHKEY = "bUseRegEx"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = true; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.UseRegEx = flag; pROCESSPATHKEY = "bUseTextPrediction"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = true; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.UseTextPrediction = flag; pROCESSPATHKEY = "bUseCopy2Clipboard"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !bool.TryParse(value, out flag)) { flag = false; nIFile.WriteValue("Translation", pROCESSPATHKEY, flag); } IniSettings.UseCopy2Clipboard = flag; pROCESSPATHKEY = "iCopy2ClipboardTime(ms)"; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); if (value == null || !int.TryParse(value, out num)) { num = 250; nIFile.WriteValue("Translation", pROCESSPATHKEY, num); } IniSettings.Copy2ClipboardTime = num; pROCESSPATHKEY = IniSettings.PROCESSPATHKEY; value = nIFile.GetValue("Translation", pROCESSPATHKEY, null); IniSettings.ProcessPath = value; if (value != IniSettings.ProcessPath) { nIFile.WriteValue("Translation", pROCESSPATHKEY, IniSettings.ProcessPath); } IniSettings.initialized = true; try { Action <IniFile> action = IniSettings.LoadSettings; if (action != null) { action(nIFile); } } catch (Exception exception) { IniSettings.Error(string.Concat("LoadSettings:\n", exception.ToString())); } IniSettings.WatchTextFiles(); } catch (Exception exception1) { IniSettings.Error(string.Concat("LoadSettings:\n", exception1.ToString())); } } finally { Monitor.Exit(loadLock); } }