public static string TranslateText(string input, object obj) { if (DynamicTranslator.IsPastingToClipboard.Value) { GUIUtility.systemCopyBuffer = input; } if (string.IsNullOrEmpty(input)) { return(input); } // Consider changing this! You have a dictionary, but you iterate instead of making a lookup. Why do you not use the WeakKeyDictionary, you have instead? if (OriginalTranslations.All(x => x.Key.Target != obj) ) //check if we don't have the object in the dictionary { OriginalTranslations.Add(new WeakReference(obj), input); } if (Translations.TryGetValue(input.Trim(), out CompiledLine translation)) { return(translation.TranslatedLine); } if (TryGetRegex(input, out translation, out Match match)) { return(translation.TranslatedLine); } if (obj is UnityEngine.UI.Text) { var immediatelyTranslated = DynamicTranslator.OnOnUnableToTranslateUgui(obj, input); if (immediatelyTranslated != null) { return(immediatelyTranslated); } } else if (obj is TMP_Text) { var immediatelyTranslated = DynamicTranslator.OnOnUnableToTranslateTextMeshPro(obj, input); if (immediatelyTranslated != null) { return(immediatelyTranslated); } } if (!Untranslated.Contains(input)) { Untranslated.Add(input); } return(input); }
public static string TranslateText(string input, object obj) { if (DynamicTranslator.IsPastingToClipboard.Value) { GUIUtility.systemCopyBuffer = input; } if (string.IsNullOrEmpty(input)) { return(input); } if (obj != null && !OriginalTranslations.Contains(obj)) { OriginalTranslations.Set(obj, input); } if (Translations.TryGetValue(input.Trim(), out CompiledLine translation)) { return(translation.TranslatedLine); } if (TryGetRegex(input, out string regexTranslation)) { return(regexTranslation); } if (obj is UnityEngine.UI.Text) { var immediatelyTranslated = DynamicTranslator.OnOnUnableToTranslateUgui(obj, input); if (immediatelyTranslated != null) { return(immediatelyTranslated); } } else if (obj is TMP_Text) { var immediatelyTranslated = DynamicTranslator.OnOnUnableToTranslateTextMeshPro(obj, input); if (immediatelyTranslated != null) { return(immediatelyTranslated); } } if (!Untranslated.Contains(input)) { Untranslated.Add(input); } return(input); }
public FormMain() { CultureInfo c = CultureInfo.CurrentCulture; CultureInfo ui = CultureInfo.CurrentUICulture; if (c.Name != "en-US" && c.Name != "ja-JP") { c = new CultureInfo("en-US"); } if (ui.Name != "en-US" && ui.Name != "ja-JP") { ui = new CultureInfo("en-US"); } Thread.CurrentThread.CurrentCulture = c; Thread.CurrentThread.CurrentUICulture = ui; Translator = new DynamicTranslator(); Instance = this; InitializeComponent(); }
public FormMain() { CultureInfo c = CultureInfo.CurrentCulture; CultureInfo ui = CultureInfo.CurrentUICulture; if (c.Name != "en-US" && c.Name != "ja-JP") { c = new CultureInfo("en-US"); } if (ui.Name != "en-US" && ui.Name != "ja-JP") { ui = new CultureInfo("en-US"); } Thread.CurrentThread.CurrentCulture = c; Thread.CurrentThread.CurrentUICulture = ui; Translator = new DynamicTranslator(); Instance = this; this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); Utility.Configuration.Instance.Load(); InitializeComponent(); ThemeBase thm; switch (Configuration.Config.UI.Theme) { case Theme.Light: thm = new VS2012LightTheme(); break; case Theme.Dark: thm = new VS2012DarkTheme(); break; default: thm = new VS2012LightTheme(); break; } thm.Apply(MainDockPanel); }