我正在检索的集合,System.Drawing.KnownColor
但我想翻译颜色名称。有没有办法做到这一点?我的意思是,我可以一个一个地翻译所有的颜色,但是有没有简单的方法?
问问题
795 次
2 回答
1
您必须手动执行翻译。ADictionary
将帮助您轻松地在语言之间切换。示例代码:
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add(KnownColor.ActiveBorder.ToString(), "BordeActivo");
dict.Add(KnownColor.ActiveCaption.ToString(), "MensajeActivo");
dict.Add(KnownColor.ActiveCaptionText.ToString(), "TextoMensajeActivo");
//etc.
bool languageIsEnglish = true;
foreach (string entry in dict.Keys)
{
string curVal = entry;
if (!languageIsEnglish)
{
curVal = dict[entry];
}
comboBox1.Items.Add(curVal);
}
于 2013-09-18T19:54:32.847 回答
0
您可以使用Reflection和Compiler对象编写一个系统来将已知对象及其值转换为字符串,从而您可以通过编程方式替换属性名称、即时编译并加载它。我之前使用过这种方法做一些古怪的,hacky,只是为了好玩的替代品。
所以基本上只使用enum.GetNames和enum.GetValues来获取枚举中项目的名称和实际值。然后将这些转换为字符串并重新创建字符串中枚举的代码,将给定的名称(英文)替换为您想要的名称(我猜是西班牙语)。然后将此字符串传递给编译器对象,然后从那里开始。
于 2013-09-18T19:43:18.157 回答