【问题标题】:C# WebBrowser Control GlobalizationC# WebBrowser 控件全球化
【发布时间】:2011-10-31 11:31:40
【问题描述】:

我正在使用 WebBrowser 控件在 C# 中制作应用程序。 问题是我不是来自说英语的国家,并且控制接缝发送英语而不是当前文化。

因此,例如,像 google 这样的网站将始终以英语而不是葡萄牙语显示,因为它在 IE、FF、Chrome 或 Opera 中显示。

有没有办法将该控件的页面请求文化更改为当前系统的文化,或者任何任意文化?

【问题讨论】:

  • 你确定你的winform本地化了吗:msdn.microsoft.com/en-us/library/y99d1cd3%28v=VS.100%29.aspx ?
  • 是的 - 对此没有任何改变。尝试使用 currentculture 和 currentuiculture
  • 由http请求头中的Accept-Language决定。 WebBrowser 不会改变这一点。也许在您调试时 Visual Studio 没有葡萄牙语版本。检查语言栏。
  • 如果语言栏是指 Windows 键盘语言栏,则设置为 PT Português(葡萄牙)——这是正确的。但这仅与键盘有关,因此应该无关紧要。网络浏览器也显示英语,甚至从 VS 外部运行发布版本
  • 我想知道您的区域设置是什么。这表示您的语言环境设置决定了呈现的内容。 support.microsoft.com/…

标签: c# browser controls culture


【解决方案1】:

我尝试了各种方法来解决这个问题,但收效甚微。

Accept-Language 标头似乎是硬连线以使用用户 Internet 设置中配置的文化。如果您在 AdditionalHeaders 参数中为 WebBrowser.Navigate 提供一个值,则该值将被覆盖。

如果您更改此设置,您的 WebBrowser 控件应该发送正确的语言。

我还发现了一个注册表设置: HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/International/AcceptLanguage

更改此注册表设置还应修改 WebBrowser 控件的 Accept-Language 标头。

不幸的是,我希望能够覆盖 WebBrowser 控件的特定实例中的设置,而不是修改其他应用程序可能使用的全局设置。所以这种方法是没有用的。不过,也许它会对您有所帮助。

【讨论】:

  • 嗨,Kedj - 和你一样,我对更改与网页浏览相关的客户端机器上的全局配置感到厌烦,因为这不仅仅影响我的应用程序 - 但感谢您提供的信息 - 值得研究
  • 我最终决定忽略这个问题 - 但由于 @kadj 是唯一一个回答并且他的回答有效,我会选择它是正确的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-14
  • 2012-11-03
相关资源
最近更新 更多