26 lines
892 B
C#
26 lines
892 B
C#
using System.ComponentModel;
|
|
|
|
namespace CursorLang.Core.Services;
|
|
|
|
/// <summary>An interface language to choose from in the settings.</summary>
|
|
/// <param name="Code">The culture code: "ru", "en".</param>
|
|
/// <param name="DisplayName">The name in that very language.</param>
|
|
public sealed record LanguageOption(string Code, string DisplayName)
|
|
{
|
|
// Accessibility tools take the name of the list item from here
|
|
public override string ToString() => DisplayName;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Provides the interface strings and can change the language without a restart.
|
|
/// </summary>
|
|
public interface ILocalizationService : INotifyPropertyChanged
|
|
{
|
|
/// <summary>The string for a resource key. Bindings update when the language changes.</summary>
|
|
string this[string key] { get; }
|
|
|
|
IReadOnlyList<LanguageOption> AvailableLanguages { get; }
|
|
|
|
string CurrentLanguage { get; set; }
|
|
}
|