DBeaver中文界面需在dbeaver.ini的-vmargs前添加-nl zh,Linux路径为/usr/share/dbeaver/dbeaver.ini,snap安装无效;错误提示为数据库服务端返回,无法汉化。

中文界面不生效?先确认 dbeaver.ini 修改位置和顺序
很多用户改了 Preferences 里的 Language 却没变化,根本原因是新版 DBeaver(21.0+)已将界面语言控制权交给 JVM 启动参数,UI 设置项仅作备用或对旧版本有效。必须编辑 dbeaver.ini 文件,在 -vmargs 行之前插入语言指令:
-
-nl zh是最简写法,适用于绝大多数简体中文场景(无需_CN) - 必须放在
-vmargs之前,否则 JVM 不会读取该参数 - Linux 下路径通常是
/usr/share/dbeaver/dbeaver.ini;Ubuntu 22.04 若用 snap 安装则无效——snap 沙盒限制了配置文件访问,建议改用 .deb 包安装 - 改完保存,**必须彻底退出 DBeaver 进程**(检查系统托盘和后台进程),再重启才生效
Preferences 里找不到 Chinese 选项?说明语言包未加载或被跳过
在 Window → Preferences → User Interface → Appearance → Language 下拉列表为空或无中文,通常不是插件缺失,而是启动时已通过 -nl 锁定语言,导致该设置项被禁用。此时修改它无效,也不需要额外安装语言包——DBeaver 22.0+ 社区版已内置简体中文资源。
- 如果坚持用 UI 设置,需先删掉
dbeaver.ini中的-nl行,重启后该下拉菜单才会激活 - 但 UI 设置依赖于 JVM 当前
user.language环境,若系统 locale 非中文(如 Ubuntu 默认 en_US.UTF-8),即使选了 Chinese,也可能回退到英文 - 不推荐依赖此路径:它不稳定,且在某些 GTK 主题下会触发渲染异常
错误提示还是英文?这不是设置问题,是数据库服务端行为
DBeaver 的菜单、对话框、向导能变中文,但 SQL 执行报错里的核心内容——比如 ERROR: relation "users" does not exist、SQLSTATE: 42P01、ERROR: duplicate key value violates unique constraint——永远是英文。这不是汉化没做全,而是这些消息由 PostgreSQL/MySQL 等数据库服务端原样返回,DBeaver 无法也无权翻译。
- 客户端只负责展示,不参与错误生成逻辑
- 哪怕把整个 DBeaver 界面设成阿拉伯语,
psql或 JDBC 抛出的原始错误仍是英文 - 想看中文错误解释,得查对应数据库文档或用外部工具辅助翻译,不能指望 DBeaver
Ubuntu 22.04 下特别注意 Java 版本与 locale 冲突
部分用户发现加了 -nl zh 仍显示英文,排查后发现是系统级 Java 配置覆盖了 DBeaver 的参数。Ubuntu 22.04 自带 OpenJDK 17,其默认 user.language 可能被系统 locale 强制为 en。
- 运行
java -XshowSettings:properties -version 2>&1 | grep user.language查看当前 JVM 实际读取的语言值 - 若输出是
user.language = en,说明-nl zh没生效,检查dbeaver.ini是否有拼写错误或换行符污染 - 极端情况下可追加
-Duser.language=zh -Duser.country=CN到-vmargs块内,但优先保证-nl zh位置正确 - 不需要改系统 locale(如
sudo update-locale LANG=zh_CN.UTF-8),那会影响全局,且对 DBeaver 无直接帮助
真正卡住人的往往不是“怎么设”,而是“设了为什么没反应”——重点盯住 dbeaver.ini 文件是否被修改、是否在正确位置、是否被 snap 或 flatpak 封装屏蔽,以及错误消息天然不可译这个事实。











