LANG和locale必须手动确认,因为图形界面设置仅修改GNOME的UI语言偏好,不自动更新系统级环境变量;/etc/default/locale需通过sudo update-locale LANG=zh_CN.UTF-8写入,且zh_CN.UTF-8 locale必须先用sudo locale-gen显式生成,否则终端、apt等CLI工具仍显示英文。

LANG 和 locale 为什么必须手动确认
图形界面设置完中文后,LANG 环境变量仍可能是 en_US.UTF-8,导致终端、部分 CLI 工具(如 apt、journalctl)仍显示英文。这不是界面没生效,而是环境变量未同步。
- 运行
locale查看当前所有 locale 设置,重点检查LANG=行是否为zh_CN.UTF-8 - 若不是,说明图形设置未写入全局环境配置,需手动干预
-
/etc/default/locale是系统级默认值来源,优先级高于用户级~/.profile,但 GNOME/XFCE 图形会话可能忽略它 - 更可靠的做法是:用
sudo update-locale LANG=zh_CN.UTF-8,它会自动更新/etc/default/locale并触发locale-gen
zh_CN.UTF-8 必须生成且启用
即使安装了 language-pack-zh-hans,zh_CN.UTF-8 locale 也可能未被实际生成。系统不会自动启用所有语言包附带的 locale,必须显式生成。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 运行
locale -a | grep zh_CN,若无输出,说明该 locale 尚未生成 - 执行
sudo dpkg-reconfigure locales,用方向键找到zh_CN.UTF-8,按空格选中,Tab 切到 OK 回车 - 或者直接运行
sudo locale-gen zh_CN.UTF-8(更快,不交互) - 生成后,
locale -a | grep zh_CN应返回zh_CN.utf8(注意小写和点号)
XFCE 和 GNOME 对区域格式处理方式不同
GNOME 的 Region & Language → Formats 设置会写入 LC_TIME、LC_MONETARY 等变量;XFCE 则依赖 LC_ALL 或全局 LANG 推导,容易漏掉细节。
- GNOME 下:确保
Formats标签页也选为Chinese (China),否则时间显示仍是美式 - XFCE 下:仅靠拖动中文到顶部不够,需额外在
Settings → Language Support中点击Apply System-Wide两次(一次语言,一次格式) - 验证区域格式是否生效:运行
date和printf "%.2f\n" 1234567.89,应分别输出「2026年07月08日」和「1,234,567.89」(千分位符为逗号)
重启 vs 重新登录:什么时候必须重启
大部分情况下,仅需注销再登录即可,但某些组件(尤其是 systemd 服务、dbus 会话、桌面环境核心进程)只在完整重启时读取新 locale。
- 如果
locale命令已显示zh_CN.UTF-8,但gnome-terminal或thunar仍显示英文菜单,说明桌面会话缓存未刷新 → 注销重登录 - 如果
systemctl status、journalctl时间仍为英文,或apt list --upgradable输出含英文提示 → 必须sudo reboot - 特别注意:Ubuntu 22.04+ 的 Wayland 会话对 locale 更敏感,有时需强制切换到 Xorg 登录再试一次
zh_CN.UTF-8 没生成、LANG 没写进系统级配置、或者桌面会话根本没重新加载 locale 数据——这三个点漏掉任何一个,都会出现「文件夹名变中文,但设置菜单还是英文」这类半残状态。

















