内容目录
默认 webview2 使用英文语言显示,包括控制台、打印台等地方,都是英文提示,因此可以修改为本地语言。
public static void SetWebviewLanguage(string language = "zh-CN")
{
var cultureInfo = new CultureInfo(language);
// 设置程序使用的语言,可以忽略。
CultureInfo.CurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
// 修改 WebView2 的语言设置
// 不知道目录在哪里,可以修改目录,参考 https://www.whuanle.cn/archives/21314
var basePath = "weview2数据存储目录";
if (!Directory.Exists(Path.Combine(basePath, "EBWebView")))
{
var webView2 = Directory.GetDirectories(basePath).FirstOrDefault(x => x.EndsWith(".WebView2"));
if (webView2 == null) return;
basePath = webView2;
}
var preferencesFile = Path.Combine(basePath, "EBWebView/Default/Preferences"); // Preferences
if (!File.Exists(preferencesFile)) return;
string jsonString = File.ReadAllText(preferencesFile);
JsonObject jsonObject = JsonNode.Parse(jsonString)!.AsObject();
// var languages = jsonObject["intl"]!["selected_languages"].Deserialize<string>() ?? ""; // 获取当前语言
// "zh-CN,en,en-GB,en-US"
// File.Delete(preferencesFile);
jsonObject.Remove("intl");
jsonObject.Add("intl", JsonNode.Parse($"{{\"selected_languages\":\"{cultureInfo.Name}\"}}"));
jsonString = JsonSerializer.Serialize(jsonObject);
File.WriteAllText(preferencesFile, jsonString);
}
文章评论