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();
}
}
}
}