26 lines
1.0 KiB
C#
26 lines
1.0 KiB
C#
using System.ComponentModel;
|
|
|
|
namespace CursorLang.Services;
|
|
|
|
/// <summary>Язык интерфейса для выбора в настройках.</summary>
|
|
/// <param name="Code">Код культуры: «ru», «en».</param>
|
|
/// <param name="DisplayName">Название на самом этом языке.</param>
|
|
public sealed record LanguageOption(string Code, string DisplayName)
|
|
{
|
|
// Средства доступности берут имя элемента списка отсюда
|
|
public override string ToString() => DisplayName;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Даёт строки интерфейса и умеет менять язык без перезапуска.
|
|
/// </summary>
|
|
public interface ILocalizationService : INotifyPropertyChanged
|
|
{
|
|
/// <summary>Строка по ключу ресурса. Привязки обновляются при смене языка.</summary>
|
|
string this[string key] { get; }
|
|
|
|
IReadOnlyList<LanguageOption> AvailableLanguages { get; }
|
|
|
|
string CurrentLanguage { get; set; }
|
|
}
|