news 2026/9/10 10:38:47

CVAT 国际化完全指南:3 个 i18n 入口与语言包配置一次讲清

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVAT 国际化完全指南:3 个 i18n 入口与语言包配置一次讲清

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/已配置 enHugo 多语言文档
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_I18NTrue,说明翻译管线已接通;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

三步新增语言

  1. site/config.toml[languages]下按上面格式新增zh条目,填好titleweight
  2. 复制 site/i18n/en.toml 为site/i18n/zh.toml,逐条改写other = "..."里的文案——这个文件管的是页脚、按钮这类 UI 词条,正文内容仍靠 site/content/en/ 下的 markdown。
  3. 重新构建文档,产物里出现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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 10:38:03

泰坦尼克号生存预测:从数据清洗到模型优化的完整指南

1. 项目背景与核心目标泰坦尼克号生存预测是机器学习领域最经典的入门项目之一,它基于1912年泰坦尼克号沉船事件中的乘客数据,要求我们构建模型预测每位乘客的生存概率。这个项目之所以成为机器学习教学的"Hello World",是因为它完…

作者头像 李华
网站建设 2026/9/10 10:35:33

CANN/ge捕获张量API

CaptureTensor 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow …

作者头像 李华
网站建设 2026/9/10 10:30:12

企业IT管理半成熟阶段突破与实践路径

1. 企业IT管理"半成熟阶段"现象解析 第一次接触企业IT管理的人常会困惑:为什么很多公司明明投入了大量资源,IT系统却始终处于"能用但不好用"的状态?这种既不是完全混乱、又达不到高效运转的中间状态,我称之为…

作者头像 李华