远程服务器上的VSCode怎么汉化?SSH连接后的语言配置【攻略】
远程VSCode汉化:在服务器相应路径创建locale.json,内容为{"locale":"zh-cn"},UTF-8无BOM。新版路径~/.vscode-server/data/Machine/,旧版~/.vscode-remote/。注意环境变量与权限,或点击远程窗口右下角en直接选中文更可靠。
远程窗口右下角显示“SSH: user@host”,但全是英文怎么办
很多人第一反应是插件没装好,其实不然。Remote-SSH 启动的是一个独立进程,它不会读取你本地的 locale.json,也不会同步本机的插件配置。它只认远程机器上特定路径下的那个文件。所以,问题的根源很简单:远程 VS Code Server 根本没有加载中文语言上下文。
- 先 SSH 登录远程服务器(
ssh user@host),然后检查或创建文件:VS Code 1.85 以上版本放在~/.vscode-server/data/Machine/locale.json;旧版本则用~/.vscode-remote/data/Machine/locale.json。路径搞错,一切白费。 - 文件内容必须是严格的 JSON 格式:
{"locale":"zh-cn"}。千万别写成zh_CN、zh-hans,也别加注释或多余空格——一个字符不对,VS Code 就会静默回退英文。 - 编码必须是 UTF-8 无 BOM。最省事的做法:在远程窗口里用 VS Code 自己新建并保存这个文件,而不是用记事本或 vim 直接 echo 写入,不然编码容易翻车。
- 改完后不需要重启 SSH 服务,下次连接自动生效。想立刻验证的话,在远程窗口中执行
Developer: Reload Window(注意是远程窗口,不是本地窗口)。
为什么本地装了中文包,远程还是英文?
Remote-SSH 不会把你本地安装的 ms-ceintl.vscode-language-pack-zh-hans 插件复制到远程。VS Code Server 本身内置了语言资源,但只有 locale.json 存在并且内容合法时,才会真正触发加载。
- 远程端不需要手动安装语言包插件——硬装上反而可能引起冲突。
- 如何确认是否加载成功?在远程窗口按
Ctrl+Shift+P,输入Developer: Show Running Extensions,查看列表中是否有ms-ceintl.vscode-language-pack-zh-hans且状态为Activated。 - 如果没激活,大概率是
locale.json放错了路径(比如扔在~/.vscode-server/根目录下),或者内容格式非法,又或者远程系统用的是 Snap 版 VS Code(沙盒限制会导致资源加载失败)。 - 临时调试可以用命令强制注册:
code --install-extension MS-CEINTL.vscode-language-pack-zh-hans --force,但生产环境建议避免这种操作。
WSL 或非标准 home 目录下 locale.json 放哪才对
VS Code Server 查找 locale.json 是按固定路径顺序扫描的。只要路径偏差一点,就会静默回退英文。这个问题在 WSL、容器或自定义 $HOME 的环境里尤其常见,一不留神就放错位置。
- 先确认远程 Server 实际启动的路径:在远程终端执行
ps aux | grep code,找到类似/home/user/.vscode-server/bin/abc123.../node /home/user/.vscode-server/bin/abc123.../out/server-main.js的进程,其父目录就是 Server 根路径。 - 正确路径是
~/.vscode-server/data/Machine/下面某个带哈希后缀的子目录(比如abcd1234...)里的locale.json,而不是~/.vscode-server/根目录。 - WSL 用户要特别注意:确认
~指向的是 Linux 用户家目录(/home/xxx),而不是 Windows 的/mnt/c/Users/xxx。 - 检查
~/.ssh/config中的HostName和User是否匹配实际登录用户,否则 Server 可能以错误用户身份启动,读到的是别的家目录。
免密登录配好了,但汉化仍失败的隐蔽原因
很多人觉得 SSH 能连上、路径应该没问题了,但实际 Remote-SSH 偶尔会因为权限或环境变量绕过预期路径,导致 locale.json 被忽略。这几个隐蔽点值得留意:
~/.ssh/config文件的权限必须是600(执行chmod 600 ~/.ssh/config即可),否则 VS Code 可能拒绝读取这个配置文件。- 检查远程
VSCODE_LOCALE环境变量有没有被设置为en:在远程终端运行echo $VSCODE_LOCALE。如果有输出,需要在~/.bashrc或~/.profile里 unset 掉它。 - 某些发行版(比如 Ubuntu Server 最小安装)默认没有
locales包,执行locale -a | grep zh_CN可能返回空。虽然这不直接影响 VS Code,但可能会干扰其他依赖 locale 的工具。不过,对汉化本身影响不大。 - 最稳妥的兜底方案:连接远程后,直接点击右下角显示的
en,在弹出的菜单里选择zh-cn。这种方式会强制在当前远程会话中写入正确的配置,比手动编辑更可靠。
说到底,真正起效的永远只有三件事:远程 locale.json 存在且内容合法、Server 进程读到了它、没有环境变量或权限问题把它屏蔽掉。路径细节和编码格式,正是大多数人卡住的地方。把这三步走通,汉化基本不会翻车。
































