如何修改Chrome偏好配置文件中的intl语言设置为en-AU
你此前用fart.exe全量替换en-US失败,核心原因是Chrome用户配置文件为严格JSON格式,粗暴全量替换容易误改intl节点以外的内容、破坏JSON结构,导致Chrome无法正常读取配置。
以下是可行的实现方案:
方案1:企业域环境优先用Chrome官方企业政策(最稳定,无格式错误风险)
如果你们组织是域管理环境,直接配置Chrome企业政策即可,不需要修改本地用户配置文件:
- Windows设备:通过组策略导入Chrome ADMX模板,配置
接受的语言和所选语言两项政策的值为en-AU,或直接添加注册表项:[HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome] "IntlAcceptLanguages"="en-AU" "IntlSelectedLanguages"="en-AU" - macOS设备:部署包含对应政策项的.mobileconfig描述文件即可。
政策推送后Chrome重启自动生效,不会出现配置格式错误问题。
方案2:批量修改本地已有配置文件(适配无域管理的场景)
如果需要直接修改本地已生成的Chrome Preferences配置文件,不要用普通文本全量替换,推荐两种实现方式:
方式A:用JSON解析工具修改(无匹配错误风险)
以Windows自带的PowerShell为例,不需要额外安装软件,脚本示例如下:
# 先关闭所有Chrome进程 Stop-Process -Name chrome -Force -ErrorAction SilentlyContinue # 遍历所有用户的Chrome配置路径 $userProfiles = Get-ChildItem "C:\Users\" -Directory foreach ($user in $userProfiles) { $prefPath = Join-Path $user.FullName "AppData\Local\Google\Chrome\User Data\Default\Preferences" if (Test-Path $prefPath) { # 读取解析JSON $prefContent = Get-Content $prefPath -Raw | ConvertFrom-Json # 修改intl节点的两个字段 $prefContent.intl.accept_languages = "en-AU" $prefContent.intl.selected_languages = "en-AU" # 写回配置文件,转义符合Chrome要求 $prefContent | ConvertTo-Json -Depth 10 -Compress | % { [System.Text.RegularExpressions.Regex]::Unescape($_) } | Out-File $prefPath -Encoding utf8 -Force } }
方式B:用正则匹配精准替换(适配想用fart.exe类文本工具的场景)
如果要使用文本替换工具,不要全量匹配en-US,用正则精准匹配intl节点下的两个语言字段,不管原有值是什么都直接覆盖:
- 匹配正则:
("intl":\{"accept_languages":")([^"]+)(","selected_languages":")([^"]+)("\}) - 替换内容:
$1en-AU$3en-AU$5
该规则只会修改intl块内的两个语言配置,不会影响其他JSON节点,避免破坏配置格式。
注意事项
- 无论使用哪种方案,修改前都建议先备份测试设备的Chrome配置文件,验证生效后再批量推送
- 修改本地配置文件时必须提前关闭Chrome进程,否则运行中的Chrome会锁定配置文件,修改会被覆盖
内容的提问来源于stack exchange,提问作者alokin123
相关产品推荐
相关产品推荐

