在 Delphi 11.3中,我通过tedgeBrowser组件使用webview 2。使用Tedgebrowser的应用程序在运行英语Windows的服务器上运行。默认情况下,tedgebrowser的navigator.language值为“en-US”。
但是我希望能够改变这个值。
我找到了有关属性CoreWebView2EnvironmentOptions.Language的信息,但我不知道如何在tedgebrowser组件中给予该语言属性。
我还看到你们中的一些人建议使用另一个组件:Webview4Delphi。我尝试使用Webview 4Delphi演示“simplebrowser”来实现:
initialization
GlobalWebView2Loader := TWVLoader.Create(nil);
GlobalWebView2Loader.UserDataFolder := ExtractFileDir(Application.ExeName) +
'\CustomCache';
GlobalWebView2Loader.Language := 'fr'; // here my test
GlobalWebView2Loader.StartWebView2;
但没有效果。当我做一个警报(navigator.language)时,它仍然给予默认语言(OS语言)。
有人能帮我吗?
萨尔瓦多给出的解决方案帮助了我,但在我的情况下部分起作用。我应用了萨尔瓦多的解决方案+NoriyukiIchijo在那个帖子上给出的方法:https://github.com/MicrosoftEdge/WebView2Feedback/issues/833#issuecomment-890281898
1条答案
按热度按时间ogsagwnx1#
根据documentation设置CoreWebView2EnvironmentOptions.Language还应更改Accept-language头,但存在低优先级bug in WebView2,此功能目前无法工作。
如果您手动更改标题,则有一个解决方案。您必须在TWVBRowser.OnAfterCreation事件中设置一个过滤器,如下所示:
使用TWVBrowser. OnResourceRequested事件来修改HTTP标头时需要该过滤器,如下所示:
此外,您还必须设置GlobalWebView2Loader.Language:= 'fr-fr';在GlobalWebView2Loader.StartWebView2调用之前更改用户界面语言。