如何从当前显示语言获取Windows文本资源

时间:2012-03-30 06:11:07

标签: c# localization

如果Windows设置为非英语显示语言,则Windows中的某些UI元素也会更改(例如,MessageBoxButtons以所选显示语言显示)。有没有办法获取这些文本资源并集成到我的.Net应用程序中?

1 个答案:

答案 0 :(得分:2)

理论上,是的,你可以。 Windows common controls使用%WINDIR%\ System32 {LocaleIdentifier}中的MUI文件检索相关语言的本地化字符串。有一个example on MSDN显示了如何在win32中执行相同操作。因此,您可以使用与Windows控件相同的ID(P/Invoke)从comctl32.dll.mui和comdlg32.dll.mui加载本地化字符串。但这不会很漂亮,可能会导致未来的Windows更新中断(它的私有数据,并没有承诺它不会改变)并且坦率地说看起来有点过分。维护自己的一组本地化字符串会更容易,更安全!