У меня есть следующие пользовательские атрибуты метаданных для экспорта элементов контекстного меню:
[MetadataAttribute]
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class ExportContextMenuEntryAttribute : ExportAttribute, IContextMenuEntryMetadata
{
public ExportContextMenuEntryAttribute()
: base(typeof(IContextMenuEntry))
{
}
public string Header { get; set; }
}
public interface IContextMenuEntryMetadata
{
string Header { get; }
}
public interface IContextMenuEntry
{
bool IsVisible(TextViewContext context);
bool IsEnabled(TextViewContext context);
void Execute(TextViewContext context);
}
И я использую это следующим образом:
[ExportContextMenuEntryAttribute(Header = "_New Items")]
sealed class InsertItems : IContextMenuEntry
{
public bool IsVisible(TextViewContext context)
{
...
}
public bool IsEnabled(TextViewContext context)
{
return true;
}
public void Execute(TextViewContext context)
{
...
}
}
Как видите, определено Header
в коде, и это на английском языке.
Мой вопрос: как я могу поддержать многие языки для Header
? Header
должен быть идентификатором ресурса, а не строкой? И если да, то как именно это должно работать?