CVAT 国际化完全指南:3 个 i18n 入口与语言包配置一次讲清
【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat
刚部署完 CVAT,发现菜单、弹窗和报错全是英文,想换成中文?这篇文章带你摸清 CVAT 多语言的真实入口:后端 Django、文档站点和前端 React 各管一摊,跟着做就能完成 CVAT i18n 配置、提取翻译字符串并生成语言包。
CVAT 标注界面默认英文状态,是 CVAT 国际化改造的对象
先定位:CVAT 的 i18n 分布在哪
打开标注页你会发现,界面上并没有"选择语言"的下拉框。这不是遗漏,而是 CVAT 目前的真实状态:国际化能力按层分布,前端界面暂为英文,后端的翻译机制已经打开。动手改配置前,先对照这张表知道每层在哪里。
三个入口一览
| 层 | 关键路径 | 当前状态 | 作用 |
|---|---|---|---|
| Django 后端 | cvat/settings/base.py | 国际化已启用 | API 报错、校验消息可翻译 |
| 文档站点 | site/i18n/ | 已配置 en | Hugo 多语言文档 |
| React 前端 | cvat-ui/src/ | 英文硬编码 | 界面文案,暂无切换器 |
后端开关确认方法
打开 cvat/settings/base.py,文件末尾的 "Internationalization" 小节就是 CVAT i18n 配置的核心:
# cvat/settings/base.py LANGUAGE_CODE = "en-us" TIME_ZONE = os.getenv("TZ", "Etc/UTC") USE_I18N = True USE_TZ = True做对了长什么样:USE_I18N是True,说明翻译管线已接通;LANGUAGE_CODE决定默认输出语言(当前为 en-us)。另外注意TIME_ZONE读的是环境变量TZ,部署时在 compose 里设TZ=Asia/Shanghai即可让时间展示跟随时区,这是很多人忽略的"半个国际化"配置。
后端多语言怎么落地:标记与翻译
开关打开只是第一步,字符串还得先被"标记",翻译工具才认得它。
看后端代码如何标记可翻译文本
CVAT 后端用 Django 的gettext_lazy给需要翻译的消息打标记,例如 cvat/apps/engine/models.py 和 cvat/apps/iam/serializers.py 顶部都有这一行导入。你二次开发时新增报错文案,照葫芦画瓢即可:
- 导入:
from django.utils.translation import gettext_lazy as _ - 使用:把写死的英文换成
_("Your message here") - 带变量时用
%(name)s占位符,不要直接拼接字符串
判断标准:代码里凡是你希望随语言变化的用户可见文案,都应该包在_()里;漏标的字符串不会出现在翻译文件中。
提取与编译翻译文件
标记完成后,CVAT 翻译提取走的是 Django 标准命令。在仓库根目录执行:
# 提取全部可翻译字符串,生成 .po 文件 python manage.py makemessages -l zh_Hans # 编辑完 .po 文件后编译 python manage.py compilemessages做对了长什么样:makemessages跑完,根目录会出现locale/zh_Hans/LC_MESSAGES/django.po(仓库当前还没有 locale 目录,这一步会新建,属于预期);compilemessages成功后同目录下多出django.mo。重启后端后,被标记过的英文消息即以你的译文展示——看到中文报错信息,说明整条链路通了。
文档站点加一门语言
CVAT 的文档用 Hugo 搭建,语言入口和代码仓库是分开的两套文件,配置完可以直接出多语言文档。
语言配置在哪
打开 site/config.toml,[languages]段定义了文档语言,当前只有en一个条目;对应的词条文件在 site/i18n/en.toml。加中文要动两处,缺一不可。
# site/config.toml 追加 [languages] [languages.zh] languageName = "中文" weight = 2三步新增语言
- 在
site/config.toml的[languages]下按上面格式新增zh条目,填好title、weight。 - 复制 site/i18n/en.toml 为
site/i18n/zh.toml,逐条改写other = "..."里的文案——这个文件管的是页脚、按钮这类 UI 词条,正文内容仍靠 site/content/en/ 下的 markdown。 - 重新构建文档,产物里出现
zh/语言目录、访问时带/zh/前缀能打开中文首页,即配置成功。
验证清单与常见坑
三步自测
- 后端:故意触发一条被
_()标记的报错,确认返回消息已变为译文。 - 文档:构建后在浏览器访问带语言前缀的地址,页脚文案来自你的
zh.toml。 - 时区:设了
TZ后看任务列表的时间戳,是否跟随了Asia/Shanghai。
两个高频疑问
"为什么前端界面还是英文?"当前 cvat-ui/src/ 的文案是英文硬编码,仓库里还没有 locales 语言包目录。想给界面换中文,需要在前端接入 i18n 库(如 react-i18next),把组件文案抽成 key——这属于二次开发,不在默认配置范围内。
"翻译了为什么没生效?"九成是没跑compilemessages:.po是源码、.mo才是运行时读取的文件,改了译文必须重新编译再重启。
小结一下:CVAT 的 i18n 分三层——后端开关已开、只差翻译文件;文档站点按 Hugo 流程加语言即可;前端界面目前需要二次开发。按本文顺序走一遍,你就能判断哪些配置开箱即用、哪些要自己动手。
【免费下载链接】cvatComputer Vision Annotation Tool (CVAT) is a leading platform for building high-quality visual datasets for vision AI. It offers open-source, cloud, and enterprise products, as well as labeling services, for image, video, and 3D annotation with AI-assisted labeling, quality assurance, team collaboration, analytics, and developer APIs.项目地址: https://gitcode.com/GitHub_Trending/cvat/cvat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考