Ubuntu设置中文locale需同时配置语言包、区域设置(如zh_CN.UTF-8)和输入法框架,缺一不可;仅改界面语言不修改LC_*变量会导致日期、排序等仍为英文。

Ubuntu 设置语言环境(Locale)和区域格式,本质是改两件事:系统显示语言用哪个翻译包、时间数字等格式按哪套规则来排。只调界面语言不碰 locale,常出现菜单中文但日期仍是英文、终端里 ls 排序乱序等问题。
怎么确认当前 locale 设置是否生效
终端执行 locale,重点看这三行输出:
-
LANG=zh_CN.UTF-8—— 主语言环境,必须是这个值才表示中文 locale 生效 -
LC_MESSAGES=zh_CN.UTF-8—— 控制菜单、错误提示等文本翻译,若为en_US.UTF-8,即使界面设成中文,部分程序仍显示英文 -
LC_TIME=zh_CN.UTF-8—— 决定date命令、文件管理器中日期列的显示格式,否则时间永远是 “Mon Jul 8” 这种
如果其中任意一项是 en_US.UTF-8 或空,说明 locale 没配全,图形界面设置只是表面功夫。
手动配置 locale 文件比图形界面更可靠
GNOME/XFCE 的「Region & Language」界面有时不写 LC_* 变量,只改 LANG,导致部分命令行工具或服务(如 cron、systemd 日志)仍用英文。直接编辑配置文件更彻底:
- 编辑
/etc/default/locale,确保内容只有这一行:LANG="zh_CN.UTF-8" - 再追加常用变量(可选但推荐):
LC_CTYPE="zh_CN.UTF-8"、LC_TIME="zh_CN.UTF-8"、LC_NUMERIC="zh_CN.UTF-8" - 运行
sudo locale-gen生成 locale 数据(不是所有系统都自动生成) - 重启或重新登录,再跑一次
locale验证
注意:sudo update-locale LANG=zh_CN.UTF-8 会覆盖整个 /etc/default/locale,慎用——它会删掉你手动加的 LC_* 行。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
为什么装了中文包但 locale 还是 en_US
常见原因有三个:
- 没安装中文 locale 数据:只勾选了「Chinese (China)」语言包,但没运行
sudo locale-gen zh_CN.UTF-8或没装language-pack-zh-hans - 用户级配置覆盖系统级:检查
~/.profile或~/.bashrc里有没有硬编码的export LANG=en_US.UTF-8,删掉或改成zh_CN.UTF-8 - 桌面会话未重载环境:GNOME 有些版本登录后不自动读取
/etc/default/locale,需注销再进,或手动执行source /etc/default/locale测试
尤其注意 XFCE:它默认不继承系统 locale,得在「Settings → Session and Startup → Environment Variables」里显式添加 LANG 和 LC_*。
区域格式(Regional Formats)和 locale 不是一回事
图形界面里的「Regional Formats」下拉菜单,只影响 GTK/Qt 应用的控件(比如日历选择器、数字输入框的小数点符号),不影响 date、ls -lt、sort 这些命令的行为。后者完全由 LC_TIME、LC_COLLATE 等环境变量控制。
也就是说,你在 Settings 里把 Formats 设成 Chinese (China),但 LC_TIME 还是 en_US.UTF-8,终端里 date 输出仍是 “Wed Jul 8”,而 Nautilus 文件列表的时间列却可能是 “2026年7月8日”。这种不一致容易让人误判配置成功。

















