33 lines
926 B
C#
33 lines
926 B
C#
|
|
using System.Globalization;
|
|
using System.Windows.Input;
|
|
|
|
namespace NGettext.Wpf
|
|
{
|
|
public class ChangeCultureCommand : ICommand
|
|
{
|
|
public bool CanExecute(object? parameter)
|
|
{
|
|
return CultureInfo.GetCultures(CultureTypes.SpecificCultures)
|
|
.Any(cultureInfo => cultureInfo.Name == (string)parameter);
|
|
}
|
|
|
|
public void Execute(object? parameter)
|
|
{
|
|
if (CultureTracker is null)
|
|
{
|
|
CompositionRoot.WriteMissingInitializationErrorMessage();
|
|
return;
|
|
}
|
|
|
|
CultureTracker.CurrentCulture =
|
|
CultureInfo.GetCultures(CultureTypes.SpecificCultures)
|
|
.Single(cultureInfo => cultureInfo.Name == (string)parameter);
|
|
}
|
|
|
|
public event EventHandler? CanExecuteChanged;
|
|
|
|
public static ICultureTracker? CultureTracker { get; set; }
|
|
}
|
|
}
|