App.xaml.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using PackingPress.Common;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Configuration;
  5. using System.Data;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. namespace PackingPress
  11. {
  12. /// <summary>
  13. /// App.xaml 的交互逻辑
  14. /// </summary>
  15. public partial class App : Application
  16. {
  17. System.Threading.Mutex mutex;
  18. public App()
  19. {
  20. this.Startup += new StartupEventHandler(App_Startup);
  21. }
  22. void App_Startup(object sender, StartupEventArgs e)
  23. {
  24. bool ret;
  25. mutex = new System.Threading.Mutex(true, "PackingPress", out ret);
  26. if (!ret)
  27. {
  28. MessageBox.Show("PackingPress can only start one!");
  29. Environment.Exit(0);
  30. }
  31. }
  32. protected override void OnStartup(StartupEventArgs e)
  33. {
  34. base.OnStartup(e);
  35. SettingJsonGet _jObjectSystemConfig = new SettingJsonGet(AppDomain.CurrentDomain.BaseDirectory + "\\SystemConfig.json");
  36. var language = _jObjectSystemConfig.GetJsonRoot().GetJPropertyValueByPath<string>("$.Language");
  37. if (string.IsNullOrWhiteSpace(language))
  38. {
  39. InitializeLanguage("English");
  40. }
  41. else
  42. {
  43. InitializeLanguage(language);
  44. }
  45. }
  46. protected override void OnExit(ExitEventArgs e)
  47. {
  48. base.OnExit(e);
  49. }
  50. public void InitializeLanguage(string currentLanguage)
  51. {
  52. var assemblyName = GetType().Assembly.GetName().Name;
  53. foreach (var supportedLanguage in TranslateHelper.SupportedLanguages)
  54. {
  55. var resourceName = $"{assemblyName}.Common.Languages.{supportedLanguage}.json";
  56. using (var languageStream = GetType().Assembly.GetManifestResourceStream(resourceName))
  57. {
  58. if (languageStream != null)
  59. {
  60. var reader = new StreamReader(languageStream);
  61. var content = reader.ReadToEnd();
  62. TranslateHelper.AddLanguageResource(supportedLanguage, content);
  63. }
  64. }
  65. }
  66. if (TranslateHelper.SupportedLanguages.FirstOrDefault(v => v == currentLanguage) != null)
  67. {
  68. TranslateHelper.CurrentLanguage = currentLanguage;
  69. }
  70. else
  71. {
  72. TranslateHelper.CurrentLanguage = TranslateHelper.SupportedLanguages.FirstOrDefault();
  73. }
  74. }
  75. }
  76. }