c# - 你能访问像 'Cancel' 这样的标准 Windows 字符串吗?

标签 c# windows localization dialog

我正在构建一个具有标准“确定”和“取消”按钮的 Windows 对话框。鉴于 Windows 在其自己的对话框中使用相同的按钮文本,我是否有办法获取正确的字符串以在按钮上使用?

这样一来,无论使用哪种语言,我的应用程序都将具有正确的字符串,而无需我自己针对多种不同的语言对其进行本地化。我正在使用 C#,但如果需要,可以愉快地使用平台调用来访问操作系统方法。

注意:是的,我可以轻松地本地化资源,但我不想查找和输入无数不同的语言字符串,因为它必须已经存在于 Windows 中。请不要通过说本地化应用程序来回答!

最佳答案

在 Visual Studio 中:文件 + 打开 + 文件,键入 c:\windows\system32\user32.dll。打开 String Table 节点并双击 String Table。向下滚动到 800。

Microsoft 非常严肃地反对依赖这些资源 ID。鉴于已经完成您正在考虑的事情的程序员的数量,他们不太可能改变这些数字。您需要 P/Invoke LoadLibrary() 和 LoadString()。

但是,您对该计划的最终失败是带有 MUI 语言包的 Vista/Win7 Ultimate。这允许用户在语言之间切换, 无需更新 DLL 中的资源字符串。这样的版本将始终具有英文字符串。

关于c# - 你能访问像 'Cancel' 这样的标准 Windows 字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3455172/

相关文章:

ios - 确定当前语言环境是否在 iOS 中使用非阿拉伯数字?

c# - 如何最好地将整个应用程序本地化为多种不同的语言?

ios - 使用 SwiftGen 在运行时更改语言

javascript - 在自己的系统上全局安装自己的 Node.js 项目

C#:对目录名称进行排序并选择最新的最简单的方法是什么?

c# - 无法使用 EF 5 和 VS 2015 从数据库更新模型

c# - 使用企业库的优缺点

windows - 批处理脚本可以使用各种选项运行数月

windows - 在 Windows Ruby 1.9.3 中安装 ruby​​-debug-base19

c# - 为什么 Where 和 Select 的表现优于 Select?