using PackingPress.Common; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.Threading.Tasks; using System.Windows; namespace PackingPress { /// /// App.xaml 的交互逻辑 /// public partial class App : Application { System.Threading.Mutex mutex; public App() { this.Startup += new StartupEventHandler(App_Startup); } void App_Startup(object sender, StartupEventArgs e) { bool ret; mutex = new System.Threading.Mutex(true, "PackingPress", out ret); if (!ret) { MessageBox.Show("PackingPress can only start one!"); Environment.Exit(0); } } protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); SettingJsonGet _jObjectSystemConfig = new SettingJsonGet(AppDomain.CurrentDomain.BaseDirectory + "\\SystemConfig.json"); var language = _jObjectSystemConfig.GetJsonRoot().GetJPropertyValueByPath("$.Language"); if (string.IsNullOrWhiteSpace(language)) { InitializeLanguage("English"); } else { InitializeLanguage(language); } } protected override void OnExit(ExitEventArgs e) { base.OnExit(e); } public void InitializeLanguage(string currentLanguage) { var assemblyName = GetType().Assembly.GetName().Name; foreach (var supportedLanguage in TranslateHelper.SupportedLanguages) { var resourceName = $"{assemblyName}.Common.Languages.{supportedLanguage}.json"; using (var languageStream = GetType().Assembly.GetManifestResourceStream(resourceName)) { if (languageStream != null) { var reader = new StreamReader(languageStream); var content = reader.ReadToEnd(); TranslateHelper.AddLanguageResource(supportedLanguage, content); } } } if (TranslateHelper.SupportedLanguages.FirstOrDefault(v => v == currentLanguage) != null) { TranslateHelper.CurrentLanguage = currentLanguage; } else { TranslateHelper.CurrentLanguage = TranslateHelper.SupportedLanguages.FirstOrDefault(); } } } }