32 lines
922 B
C#
32 lines
922 B
C#
namespace TrafagSalesExporter.Services;
|
|
|
|
public interface IUiTextService
|
|
{
|
|
string CurrentLanguage { get; }
|
|
event Action? Changed;
|
|
void SetLanguage(string language);
|
|
string Text(string german, string english);
|
|
}
|
|
|
|
public sealed class UiTextService : IUiTextService
|
|
{
|
|
private string _currentLanguage = "de";
|
|
|
|
public string CurrentLanguage => _currentLanguage;
|
|
|
|
public event Action? Changed;
|
|
|
|
public void SetLanguage(string language)
|
|
{
|
|
var normalized = string.Equals(language, "en", StringComparison.OrdinalIgnoreCase) ? "en" : "de";
|
|
if (string.Equals(_currentLanguage, normalized, StringComparison.OrdinalIgnoreCase))
|
|
return;
|
|
|
|
_currentLanguage = normalized;
|
|
Changed?.Invoke();
|
|
}
|
|
|
|
public string Text(string german, string english)
|
|
=> string.Equals(_currentLanguage, "en", StringComparison.OrdinalIgnoreCase) ? english : german;
|
|
}
|