Локализация с связываниемC#

Место общения программистов C#
Anonymous
Локализация с связыванием

Сообщение Anonymous »

У меня есть TranslateExtension :

Код: Выделить всё

[ContentProperty(nameof(Name))]
public class TranslateExtension : IMarkupExtension
{
public required string Name { get; set; }
public BindingBase ProvideValue(IServiceProvider serviceProvider)
{
return new Binding
{
Mode = BindingMode.OneWay,
Path = $"[{Name}]",
Source = LocalizationResourceManager.Instance
};
}

object IMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
{
return ProvideValue(serviceProvider);
}
}
и локализация resourcemanager

Код: Выделить всё

public class LocalizationResourceManager : INotifyPropertyChanged
{
private LocalizationResourceManager()
{
Strings.Culture = CultureInfo.GetCultureInfo("en");
}

public static LocalizationResourceManager Instance { get; } = new();

public object this[string resourceKey]
=> Strings.ResourceManager.GetObject(resourceKey, Strings.Culture) ??
Array.Empty();

public event PropertyChangedEventHandler? PropertyChanged;

public string GetString(string resourceKey, CultureInfo? culture)
{
if (culture == null)
{
return Strings.ResourceManager.GetString(resourceKey, Strings.Culture)!;
}
return Strings.ResourceManager.GetString(resourceKey, culture)!;
}

public void SetCulture(CultureInfo culture)
{
Strings.Culture = culture;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(null));
}
}
И он работает нормально с этим
Но my_word_to_translate должен основываться на переменной в просмотре. Я имею в виду, что есть много возможных реализаций с MY_WORD_TO_TRANSLATE Это может быть MY_WORD_TO_TRANSLATE_1 , my_word_to_translate_2 и т. Д., И мне интересно, как обращаться с ним, когда my_word_to_translate не жестко, это может измениться. Я ищу решение, такое как

Подробнее здесь: https://stackoverflow.com/questions/794 ... th-binding

Вернуться в «C#»