diff --git a/application/GW2 Addon Manager.sln b/application/GW2 Addon Manager.sln index 856cd2e..36a0c81 100644 --- a/application/GW2 Addon Manager.sln +++ b/application/GW2 Addon Manager.sln @@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application", "GW2 Addon Ma EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApplicationTests", "ApplicationTests\ApplicationTests.csproj", "{170F11FB-4005-4A31-A746-32B46814F463}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Localization", "Localization\Localization.csproj", "{5B139D74-6A36-4F8F-833F-4D0DE41FF019}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,6 +29,10 @@ Global {170F11FB-4005-4A31-A746-32B46814F463}.Debug|Any CPU.Build.0 = Debug|Any CPU {170F11FB-4005-4A31-A746-32B46814F463}.Release|Any CPU.ActiveCfg = Release|Any CPU {170F11FB-4005-4A31-A746-32B46814F463}.Release|Any CPU.Build.0 = Release|Any CPU + {5B139D74-6A36-4F8F-833F-4D0DE41FF019}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5B139D74-6A36-4F8F-833F-4D0DE41FF019}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5B139D74-6A36-4F8F-833F-4D0DE41FF019}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5B139D74-6A36-4F8F-833F-4D0DE41FF019}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/application/GW2 Addon Manager/App/Configuration/Model/UserConfig.cs b/application/GW2 Addon Manager/App/Configuration/Model/UserConfig.cs index df74ff1..8ed5163 100644 --- a/application/GW2 Addon Manager/App/Configuration/Model/UserConfig.cs +++ b/application/GW2 Addon Manager/App/Configuration/Model/UserConfig.cs @@ -1,4 +1,5 @@ -using System; +using Localization; +using System; namespace GW2_Addon_Manager.App.Configuration.Model { @@ -15,6 +16,8 @@ public class UserConfig public string ExeName { get; set; } + public string Culture { get; set; } = CultureConstants.English; + public AddonsList AddonsList { get; set; } = new AddonsList(); } } \ No newline at end of file diff --git a/application/GW2 Addon Manager/Application.csproj b/application/GW2 Addon Manager/Application.csproj index b536198..cbf15f7 100644 --- a/application/GW2 Addon Manager/Application.csproj +++ b/application/GW2 Addon Manager/Application.csproj @@ -267,7 +267,12 @@ True - + + + {5b139d74-6a36-4f8f-833f-4d0de41ff019} + Localization + + mkdir "$(TargetDir)resources\plugins" diff --git a/application/GW2 Addon Manager/Backend/Configuration/configuration.cs b/application/GW2 Addon Manager/Backend/Configuration/configuration.cs index 06b7eec..455a695 100644 --- a/application/GW2 Addon Manager/Backend/Configuration/configuration.cs +++ b/application/GW2 Addon Manager/Backend/Configuration/configuration.cs @@ -39,6 +39,27 @@ public void SetGamePath(string path) DetermineSystemType(); } + /// + /// SetCulture both sets the culture for the current application session to and records it in the configuration file. + /// + /// + public void SetCulture(string culture) + { + Application.Current.Properties["culture"] = culture; + _configurationManager.UserConfig.Culture = culture; + _configurationManager.SaveConfiguration(); + RestartApplication(); + } + + /// + /// Restarts the application. + /// + private void RestartApplication() + { + System.Diagnostics.Process.Start(Application.ResourceAssembly.Location); + Application.Current.Shutdown(); + } + /// /// Checks if there is a new version of the application available. /// diff --git a/application/GW2 Addon Manager/UI/OpeningPage/OpeningView.xaml b/application/GW2 Addon Manager/UI/OpeningPage/OpeningView.xaml index 376a3c5..93b0088 100644 --- a/application/GW2 Addon Manager/UI/OpeningPage/OpeningView.xaml +++ b/application/GW2 Addon Manager/UI/OpeningPage/OpeningView.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:l="clr-namespace:Localization;assembly=Localization" xmlns:viewModel ="clr-namespace:GW2_Addon_Manager" x:Class="GW2_Addon_Manager.OpeningView" mc:Ignorable="d" @@ -41,7 +42,7 @@ + + + + + +