2008-11-13 6 views
0

Мне нужно связать ярлыки или элементы в инструментальной панели с переменными в режиме разработки. Я не использую ресурсы buit-in, а не настройки, поэтому раздел Data не полезен. Я беру значения из XML, который я сопоставляю с классом.Локализация для Winforms от designmode?

Я знаю, что существует множество программ, таких как: http://www.jollans.com/tiki/tiki-index.php?page=MultilangVsNetQuickTourForms но они работают с скомпилированными resx. Я хочу использовать не скомпилированный XML.

Я знаю, что программно я могу это сделать, я создаю метод (например, UpdateUI()), и там я назначаю новые значения следующим образом: this.tsBtn.Text = Class.Texts.tsBtnText;

Я хотел бы что-то, что я мог сделать из режима разработки или более оптимизированным способом, чем текущий. Есть ли какой-либо пользовательский контроль или расширение?

ответ

1

ответ Александр является одним из способов для достижения этой цели, но в долгосрочной перспективе это будет очень много времени, и на самом деле не приносит большой пользы. Большой вопрос, который следует задать, - почему вы не хотите использовать инструменты и функции, встроенные в .NET и Visual Studio, или, по крайней мере, использовать коммерческий сторонний инструмент? вы потратили (потратили?) много времени, чтобы решить проблему, которая уже решена.

+0

Проблема в том, что я не хочу программировать людей, чтобы они могли переводить тексты, которые я использую из XML. Я помещаю XML в веб, и они могут передавать его в Интернете с помощью перевода напрямую, без необходимости компилировать что-либо. – netadictos 2008-11-13 14:39:35

0

Попробуйте унаследовать основные элементы управления победой и переопределить метод OnPaint. Пример ниже - кнопка, на которой его текст установлен на краску в зависимости от значения, содержащегося в его свойстве Tag (предположим, что вы будете использовать свойство Tag, чтобы установить ключ, который будет использоваться для чтения соответствующего ресурса). Тогда вы можете найти какой-нибудь способ, чтобы прочитать все строки ресурсов кэша из XML-файлов (например, вымышленный класс MyGlobalResources.

public class LocalizedButton : Button 
{ 
    protected override void OnPaint(PaintEventArgs pevent) 
    { 
     base.OnPaint(pevent); 
     this.Text = MyGlobalResources.GetItem(this.Tag.ToString()); 
    } 
} 
0

Вы можете использовать спутниковые сборки для локализации и генерировать их, используя ваш XML-файл в качестве источника для t выданные юридические лица. Дополнительная информация о спутниках http://msdn.microsoft.com/en-us/library/21a15yht(VS.71).aspx

уверен, что это не из режима разработки, но нет способа сделать это с вашими ограничениями.

Смежные вопросы