Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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);
        }