interface ICoreWebView2ControllerOptions2
Note
This reference is no longer being maintained. For the latest API reference, see WebView2 API Reference.
interface ICoreWebView2ControllerOptions2
: public ICoreWebView2ControllerOptions
This is the interface in ControllerOptions for ScriptLocale.
Summary
Members | Descriptions |
---|---|
get_ScriptLocale | The default locale for the WebView2. |
put_ScriptLocale | Sets the ScriptLocale property. |
Applies to
Product | Introduced |
---|---|
WebView2 Win32 | N/A |
WebView2 Win32 Prerelease | 1.0.1671 |
Members
get_ScriptLocale
The default locale for the WebView2.
public HRESULT get_ScriptLocale(LPWSTR * locale)
It sets the default locale for all Intl JavaScript APIs and other JavaScript APIs that depend on it, namely Intl.DateTimeFormat()
which affects string formatting like in the time/date formats. Example: Intl.DateTimeFormat().format(new Date())
The intended locale value is in the format of BCP 47 Language Tags. More information can be found from IETF BCP47.
This property sets the locale for a CoreWebView2Environment used to create the WebView2ControllerOptions object, which is passed as a parameter in CreateCoreWebView2ControllerWithOptions
.
Changes to the ScriptLocale property apply to renderer processes created after the change. Any existing renderer processes will continue to use the previous ScriptLocale value. To ensure changes are applied to all renderer process, close and restart the CoreWebView2Environment and all associated WebView2 objects.
The default value for ScriptLocale will depend on the WebView2 language and OS region. If the language portions of the WebView2 language and OS region match, then it will use the OS region. Otherwise, it will use the WebView2 language.
OS Region | WebView2 Language | Default WebView2 ScriptLocale |
---|---|---|
en-GB | en-US | en-GB |
es-MX | en-US | en-US |
en-US | en-GB | en-US |
You can set the ScriptLocale to the empty string to get the default ScriptLocale value.
Use OS specific APIs to determine the OS region to use with this property if you want to match the OS. For example:
Win32 C++:
wchar_t osLocale[LOCALE_NAME_MAX_LENGTH] = {0};
GetUserDefaultLocaleName(osLocale, LOCALE_NAME_MAX_LENGTH);
.NET and WinRT C#:
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
return cultureInfo.Name
The caller must free the returned string with CoTaskMemFree
. See API Conventions.
wil::com_ptr<ICoreWebView2ControllerOptions2> webView2ControllerOptions2;
if (SUCCEEDED(options->QueryInterface(IID_PPV_ARGS(&webView2ControllerOptions2))))
{
if (m_webviewOption.useOSRegion)
{
wchar_t osLocale[LOCALE_NAME_MAX_LENGTH] = {0};
GetUserDefaultLocaleName(osLocale, LOCALE_NAME_MAX_LENGTH);
CHECK_FAILURE(webView2ControllerOptions2->put_ScriptLocale(osLocale));
}
else if (!m_webviewOption.scriptLocale.empty())
{
CHECK_FAILURE(webView2ControllerOptions2->put_ScriptLocale(
m_webviewOption.scriptLocale.c_str()));
}
}
put_ScriptLocale
Sets the ScriptLocale
property.
public HRESULT put_ScriptLocale(LPCWSTR locale)