/// <summary> /// Loads JSON language files from %programfolder%/lang/ /// </summary> public static void Init() { translationData = new Dictionary <string, LanguageDataObject>(); //Preload language LoadLanguageResource("en.json"); LoadLanguageResource("es.json"); LoadLanguageResource("fr.json"); LoadLanguageResource("ja.json"); LoadLanguageResource("ko.json"); LoadLanguageResource("pl.json"); LoadLanguageResource("pt-BR.json"); //We still load them after, for people who want to add new languages or change existing ones. try { var dirFiles = Directory.GetFiles(JsonManager.ProgramFolder + "lang/", "*.json"); foreach (string file in dirFiles) { string fileName = Path.GetFileName(file); string langName = fileName.Remove(fileName.Length - 5); Debug.WriteLine("Trying: " + langName); LanguageDataObject langObj = JsonManager.LoadFile <LanguageDataObject>("lang/" + fileName); //Overwrite if it exists, otherwise add if (translationData.ContainsKey(langName.ToLower())) { translationData[langName.ToLower()] = langObj; } else { translationData.Add(langName.ToLower(), langObj); } Debug.WriteLine("Added Language: " + langName); } } catch (Exception) { //This is fine } }
/// <summary> /// Saves settings /// </summary> public void Save() { SettingsStructure _settings = new SettingsStructure { Version = currentAppVersion, Language = Language, TosFolder = TosFolder, Style = Style, DisplayUnknown = DisplayUnknown, FirstStart = FirstStart, IsGrouped = IsGrouped, LoadDates = LoadDates }; if (JsonManager.CreateFile("settings.json", _settings) == false) { CauseError("There was an issue saving settings."); } }
private static void LoadLanguageResource(string fileName) { Assembly assembly = Assembly.GetExecutingAssembly(); string resourceName = assembly.GetManifestResourceNames().Single(str => str.EndsWith(fileName)); using (Stream stream = assembly.GetManifestResourceStream(resourceName)) { if (stream == null) { return; } using (StreamReader reader = new StreamReader(stream)) { string _data = reader.ReadToEnd(); string langName = fileName.Remove(fileName.Length - 5); LanguageDataObject langObj = JsonManager.LoadString <LanguageDataObject>(_data); translationData.Add(langName.ToLower(), langObj); } } }
/// <summary> /// Removes Addon folder /// </summary> private static void RemoveAddonFolder(AddonsObject addon) { JsonManager.DeleteFolder(MainWindow.settings.TosAddonFolder + @"\" + addon.file); }
/*private void _ToSFolderCheck() * { * ToSError.Content = ""; * hasValidToSFolder = true; * settings.GenerateTosFolders(); * AddTabManagers(); * _timer.Start(); * * LoadingCanvas.Visibility = Visibility.Visible; * LoadingLabel.Content = "Collecting Addon Data"; * * LoadingFunLabel.Content = funLabels[new Random(Guid.NewGuid().GetHashCode()).Next(0, funLabels.Count)]; * * Timer aTimer = new Timer(); * aTimer.Elapsed += (sender, e) => OnTimedEvent(sender, e, this); * aTimer.Interval = 2000; * aTimer.Enabled = true; * * WaitForManagers(); * }*/ private void ToSFolderCheck() { bool folderError = false; Debug.WriteLine("Checking Folder: " + settings.TosFolder); if (!JsonManager.DirectoryExists(settings.TosFolder)) { Debug.WriteLine("Folder doesn't exist"); folderError = true; } if (!JsonManager.DirectoryExists(settings.TosFolder + @"\release")) { Debug.WriteLine("Folder release doesn't exist"); folderError = true; } if (!JsonManager.FileExists(settings.TosFolder + @"\release\Client_tos.exe")) { Debug.WriteLine("Client.exe doesn't exist"); folderError = true; } if (!JsonManager.DirectoryExists(settings.TosFolder + @"\data")) { Debug.WriteLine("Folder data doesn't exist"); folderError = true; } if (folderError) { ToSError.Content = new Run(AddonManager.Language.Translate("SETTINGS.INVALID_FOLDER")) { FontWeight = FontWeights.Bold, Foreground = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)) }; hasValidToSFolder = false; } else { ToSError.Content = ""; hasValidToSFolder = true; settings.GenerateTosFolders(); AddTabManagers(); _timer.Start(); //if (settings.FirstStart) { LoadingCanvas.Visibility = Visibility.Visible; LoadingLabel.Content = "Collecting Addon Data"; LoadingFunLabel.Content = funLabels[new Random(Guid.NewGuid().GetHashCode()).Next(0, funLabels.Count)]; Timer aTimer = new Timer(); aTimer.Elapsed += (sender, e) => OnTimedEvent(sender, e, this); aTimer.Interval = 5000; aTimer.Enabled = true; WaitForManagers(); } } }