商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 远程服务器上的VSCode怎么汉化?SSH连接后的语言配置【攻略】

远程服务器上的VSCode怎么汉化?SSH连接后的语言配置【攻略】

  发布于2026-07-11 阅读(0)

扫一扫,手机访问

远程窗口右下角显示“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_CNzh-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 中的 HostNameUser 是否匹配实际登录用户,否则 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 进程读到了它、没有环境变量或权限问题把它屏蔽掉。路径细节和编码格式,正是大多数人卡住的地方。把这三步走通,汉化基本不会翻车。

本文转载于:https://www.php.cn/faq/2809042.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注