Files
Wand-Enhancer/WandEnhancer/View/Popups/SettingsPopup.xaml.cs
T
2026-03-30 21:39:06 +03:00

69 lines
2.0 KiB
C#

using System.Globalization;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using WandEnhancer.Core;
using WandEnhancer.Core.Services;
using WandEnhancer.View.MainWindow;
namespace WandEnhancer.View.Popups
{
public partial class SettingsPopup : UserControl
{
private CultureInfo _selectedLanguage;
public SettingsPopup()
{
InitializeComponent();
LoadLanguages();
}
private void LoadLanguages()
{
var items = LocalizationManager.SupportedLanguages
.Select(c => new LanguageItem
{
Culture = c,
DisplayName = LocalizationManager.GetLanguageDisplayName(c)
})
.ToList();
LanguageComboBox.ItemsSource = items;
var currentItem = items.FirstOrDefault(i => i.Culture.Name == LocalizationManager.CurrentLanguage?.Name);
if (currentItem != null)
{
LanguageComboBox.SelectedItem = currentItem;
}
_selectedLanguage = LocalizationManager.CurrentLanguage;
}
private void OnLanguageSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (LanguageComboBox.SelectedItem is LanguageItem item)
{
_selectedLanguage = item.Culture;
}
}
private void OnSaveClick(object sender, RoutedEventArgs e)
{
if (_selectedLanguage != null &&
(LocalizationManager.CurrentLanguage == null ||
_selectedLanguage.Name != LocalizationManager.CurrentLanguage.Name))
{
LocalizationManager.CurrentLanguage = _selectedLanguage;
}
MainWindow.MainWindow.Instance.ClosePopup();
}
private class LanguageItem
{
public CultureInfo Culture { get; set; }
public string DisplayName { get; set; }
}
}
}