【发布时间】:2012-04-13 20:02:57
【问题描述】:
如果 Windows 设置为非英语显示语言,Windows 中的某些 UI 元素也会发生变化(例如 MessageBoxButtons 以所选显示语言出现)。有没有办法获取这些文本资源并集成到我的 .Net 应用程序中?
【问题讨论】:
-
这正是我想要的。
标签: c# localization
如果 Windows 设置为非英语显示语言,Windows 中的某些 UI 元素也会发生变化(例如 MessageBoxButtons 以所选显示语言出现)。有没有办法获取这些文本资源并集成到我的 .Net 应用程序中?
【问题讨论】:
标签: c# localization
理论上,是的,你可以。 Windows common controls 使用 %WINDIR%\System32{LocaleIdentifier} 中的 MUI 文件检索相关语言的本地化字符串。有一个example on MSDN 显示了如何在win32 中做同样的事情。因此,您可以通过P/Invoke 使用与 Windows 控件相同的 ID 从 comctl32.dll.mui 和 comdlg32.dll.mui 加载本地化字符串。但这并不漂亮,可能会导致 Windows 未来更新中断(它是私有数据,不能保证它不会改变),坦率地说,这似乎有点矫枉过正。维护自己的本地化字符串集更加容易和安全!
【讨论】: