private void LoadTranslation()
        {
            string translation_dir = BepInEx.Utility.CombinePaths(Paths.PluginPath, PLUGIN_DIR, "Translation");

            if (!Directory.Exists(translation_dir))
            {
                Logger.LogError("Translation directory does not exist : " + translation_dir);
                return;
            }

            foreach (var filePath in Directory.GetFiles(translation_dir))
            {
                var extension = Path.GetExtension(filePath);

                if (extension == ".po")
                {
                    POTranslationSource source = new POTranslationSource(filePath, true);
                    if (Path.GetFileNameWithoutExtension(filePath).ToLower().Contains("dialog"))
                    {
                        source.EnableStrNo = true;
                        source.StrNoPrefix = "D";
                    }
                    TranslationManager.AddSource(source);
                    Logger.LogInfo("Added translation source " + Path.GetFileName(filePath));
                }
            }
        }
        private void LoadTranslation()
        {
            string translation_dir = Path.Combine(GetPluginDir(), "Translation");

            if (!Directory.Exists(translation_dir))
            {
                Logger.LogError("Translation directory does not exist : " + translation_dir);
                return;
            }

            var stringNumberConfig = GetStringNumberConfig();

            foreach (var filePath in Directory.GetFiles(translation_dir))
            {
                if (Path.GetExtension(filePath) != ".po")
                {
                    continue;
                }

                var source = new POTranslationSource(filePath, true);
                var poName = Path.GetFileNameWithoutExtension(filePath).ToLowerInvariant();

                if (stringNumberConfig.TryGetValue(poName, out string prefix))
                {
                    source.EnableStrNo = true;
                    source.StrNoPrefix = prefix;
                }

                TranslationManager.AddSource(source);
                Logger.LogInfo("Added translation source " + Path.GetFileName(filePath));
            }

            var imageNameDict = new Dictionary <string, string>();

            var buttonImageSource = Resources.Load <I2.Loc.LanguageSourceAsset>("Languages/ButtonsImagesLanguages").mSource;
            int englishIndex      = buttonImageSource.GetLanguageIndex("English");

            foreach (var term in buttonImageSource.mTerms)
            {
                imageNameDict.Add(term.Term, term.Languages[englishIndex]);
            }

            var imageSource = new DictTranslationSource(imageNameDict);

            TranslationManager.AddSource(imageSource);
        }