Да, теоретически вы можете извлечь локализованные строки из внутренних системных файлов Windows. Но не делай этого. Преимущества значительно перевешиваются возможными недостатками. Ваше приложение не должно зависеть от недокументированных деталей реализации. Нет причин пытаться получить это от Windows.
Также стоит отметить, что вы можете переименовывать кнопки (и все остальные элементы управления). Это означает, что слишком легко что-то сломать, если вы полагаетесь на какой-то алгоритм сопоставления строк. Нет способа пометить кнопку как определенный «тип», чтобы она автоматически ассоциировалась с определенной надписью, и даже если вы могли бы , это не охватывало бы каждую кнопку, присутствующую в тривиальный интерфейс. Кроме того, как указывает ответ Джоуи, для пользователя нет ничего хуже, чем частично локализованный пользовательский интерфейс. Согласованность - это ключ, и вы не можете таким образом локализовать метки, групповые блоки, меню, всплывающие подсказки и т. Д.
Обратите внимание, однако, что Windows автоматически локализует заголовки для кнопок в окне сообщения (MessageBox
). Вам не нужно поднимать палец.
Что не так с установкой для свойства Localizable
формы значения True (вы должны сделать это во время разработки) и предоставления локализованного текста для всех элементов управления в приложении? Windows Forms на самом деле имеет довольно полную поддержку локализации; дизайнер автоматически сериализует все локализуемые элементы в файл RESX формы. См. MSDN: Пошаговое руководство. Локализация Windows Forms . Убедитесь, что вы оставляете достаточно места для разной длины выражений на разных языках.