public Dictionary <string, LiteLanguageUnit> getLanguagesList() { Dictionary <string, LiteLanguageUnit> langs = new Dictionary <string, LiteLanguageUnit>(); foreach (string filePath in Directory.GetFiles(FullPath)) { if (Path.GetExtension(filePath) != ".txt") { continue; //only accept txt files } string fileName = Path.GetFileNameWithoutExtension(filePath); LiteLanguageUnit element = new LiteLanguageUnit(); element.filePath = filePath; element.fileName = fileName; CultureInfo ci = GetCultureInfo(fileName); element.DisplayName = (ci == null ? fileName : ci.NativeName); if (!langs.TryAdd(element.DisplayName, element)) { BetterLanguagesPlugin.log.LogWarning("Duplicate of language:" + element.DisplayName); BetterLanguagesPlugin.log.LogInfo("Discarded new entry."); } } return(langs); }
public FullLanguageUnit GetLang(LiteLanguageUnit lite) { FullLanguageUnit full = null; using (StreamReader streamReader = File.OpenText(lite.filePath)) { BetterLanguagesPlugin.log.LogInfo(lite.filePath); full = new FullLanguageUnit(streamReader); } return(full); }
/// <summary> /// Sets language corresponding to the same title. /// </summary> /// <param name="langName">language name to be set</param> public static void SetLanguage(string langName) { LiteLanguageUnit lite = null; if (AllLanguages.TryGetValue(langName, out lite)) { BetterLanguagesPlugin.log.LogMessage("Putain ça marche ou quoi ?"); CurrentLanguage = loader.GetLang(lite); CurrentLanguageName = langName; } }
/* public LanguageManager() { * managers.Add(this); * }*/ /* public static LanguageManager Start() * { * LanguageManager Instance = new LanguageManager(); * Instance.ReloadLanguages(); * return Instance; * }*/ /// <summary> /// In case you See issues, you may call this function so that the data be reset /// </summary> public static void ReloadLanguages() { loader.LoadLanguages(); AllLanguages = loader.getLanguagesList(); LiteLanguageUnit lite = null; string FallbackKey = PluginSingleton <BetterLanguagesPlugin> .Instance.FallBackLanguage.Value; CultureInfo ci = LanguageLoader.GetCultureInfo(FallbackKey); if (ci == null || !AllLanguages.TryGetValue(ci.NativeName, out lite)) { AllLanguages.TryGetValue(FallbackKey, out lite); } FallbackLanguage = loader.GetLang(lite); if (CurrentLanguage == null) { CurrentLanguage = FallbackLanguage; } }