agentic_huge_data_base / wiki
页面 RAGFlow · 4.1 国际化系统·DeepWiki 中文全文译文

4.1 · 国际化系统(Internationalization System)

复杂文档理解与引用检索 · 聚焦本章的模块关系、源码依据与实现要点。

项目RAGFlow 章节4.1 状态全文译文 模块系统架构、界面与交互、配置治理、文档对象与元数据
源码线索
  • web/package-lock.json
  • web/package.json
  • web/src/app.tsx
  • web/src/components/ui/badge.tsx
  • web/src/components/ui/button.tsx
  • web/src/components/ui/radio-group.tsx
  • web/src/components/ui/radio.tsx
  • web/src/components/ui/segmented.tsx
  • web/src/constants/common.ts
  • web/src/locales/ar.ts
模块标签
  • 系统架构
  • 界面与交互
  • 配置治理
  • 文档对象与元数据
  • 测试、发布与运维

章节正文

国际化系统

国际化系统

相关源文件

本章引用的主要源码文件:

  • web/package-lock.json
  • web/package.json
  • web/src/app.tsx
  • web/src/components/ui/badge.tsx
  • web/src/components/ui/button.tsx
  • web/src/components/ui/radio-group.tsx
  • web/src/components/ui/radio.tsx
  • web/src/components/ui/segmented.tsx
  • web/src/constants/common.ts
  • web/src/locales/ar.ts
  • web/src/locales/bg.ts
  • web/src/locales/config.ts
  • web/src/locales/de.ts
  • web/src/locales/en.ts
  • web/src/locales/es.ts
  • web/src/locales/fr.ts
  • web/src/locales/id.ts
  • web/src/locales/ja.ts
  • web/src/locales/pt-br.ts
  • web/src/locales/ru.ts
  • web/src/locales/tr.ts
  • web/src/locales/vi.ts
  • web/src/locales/zh-traditional.ts
  • web/src/locales/zh.ts
  • web/src/pages/datasets/dataset-card.tsx
  • web/src/pages/home/applications.tsx
  • web/src/pages/home/banner.tsx
  • web/src/pages/home/datasets.tsx
  • web/src/pages/home/index.tsx
  • web/tailwind.config.js
  • web/tailwind.css

本文档描述了 RAGFlow Web 前端使用的国际化(i18n)系统。该系统通过 i18next 进行翻译管理,支持 13 种以上语言,采用分层命名空间结构和动态加载机制,为整个用户界面提供多语言支持。

概述

RAGFlow 国际化系统基于 i18nextreact-i18next 构建 web/package.json:88-112。该系统管理多种语言的翻译,包括英语、简体中文、繁体中文、印度尼西亚语、日语、西班牙语、越南语、俄语、葡萄牙语(巴西)、德语、法语、意大利语、保加利亚语、阿拉伯语和土耳其语。系统采用动态加载策略,其中英文参考包作为键值的主要来源。

来源: web/src/locales/en.ts:25-41web/package.json:88-112

支持的语言

系统支持以下语言,这些语言在翻译文件中定义,并在语言选择界面中进行了本地化:

语言键值参考文件
英语englishen.ts
简体中文chinesezh.ts
繁体中文traditionalChinesezh-traditional.ts
俄语russianru.ts
印度尼西亚语indonesiaid.ts
日语japaneseja.ts
越南语vietnamesevi.ts
葡萄牙语(巴西)portugueseBrpt-br.ts
德语germande.ts

来源: web/src/locales/en.ts:26-41web/src/locales/zh.ts:26-31web/src/locales/vi.ts:17-41web/src/locales/de.ts:26-33

系统架构与数据流

国际化系统通过集中式配置和动态加载机制,将原始翻译数据与 React UI 组件连接起来。

RAGFlow · 系统架构与数据流 · 图 1
RAGFlow · 系统架构与数据流 · 图 1

标题: 国际化数据流与实体映射

关键组件
  • i18next:提供翻译引擎的核心库 web/package.json:88
  • react-i18next:提供 useTranslation 钩子和 Trans 组件用于 UI 集成的 React 绑定 web/package.json:112
  • i18next-browser-languagedetector:根据浏览器设置或 Cookie 自动检测用户语言 web/package.json:89
  • 翻译包:静态 TypeScript 文件(例如 en.tszh.ts),导出包含所有 UI 字符串的嵌套对象 web/src/locales/en.ts:1-2

来源: web/package.json:88-112web/src/locales/en.ts:1-2

翻译键值层次结构

翻译内容按功能命名空间组织,以维护可管理的层次结构。

RAGFlow · 翻译键值层次结构 · 图 2
RAGFlow · 翻译键值层次结构 · 图 2

标题: 键值层次结构与功能组织

按功能组织
  1. 通用命名空间:包含通用 UI 标签,如 confirmcanceldelete,以及语言切换器中所有支持语言的名称 web/src/locales/en.ts:3-82
  2. 技能系统:管理技能空间的翻译,包括空间创建、技能上传和元数据校验消息 web/src/locales/en.ts:124-203
  3. 记忆系统:分为 memories(列表视图/创建)和 memory(单个记忆配置和消息管理)。包含特定键值用于记忆类型,如 rawsemanticepisodicprocedural web/src/locales/de.ts:112-183web/src/locales/ru.ts:119-203
  4. 知识库:通过 knowledgeList 管理仪表盘,通过 knowledgeDetails 管理特定数据集配置,包括 metadata 设置的复杂嵌套对象 web/src/locales/zh.ts:92-243
  5. 登录/认证:处理登录、注册和品牌描述的所有字符串 web/src/locales/en.ts:83-107

来源: web/src/locales/en.ts:3-203web/src/locales/zh.ts:92-243web/src/locales/de.ts:112-183web/src/locales/ru.ts:119-203

技术实现细节

插值与变量

系统使用双花括号支持动态内容。例如:

  • skills.filesCount'{{count}} files'(例如中文:'{{count}} 个文件'web/src/locales/en.ts:154web/src/locales/zh.ts:136
  • knowledgeDetails.redo'Do you want to clear the existing {{chunkNum}} chunks?'(例如繁体中文:'是否清空已有 {{chunkNum}}個 chunk?'web/src/locales/zh-traditional.ts:178
复杂键值结构

对于记忆系统等功能,键值会深度嵌套以反映 UI 结构:

  • memory.config.memorySizeTooltip:提供记忆计算的详细技术说明,包括维度字节大小 web/src/locales/de.ts:161-162web/src/locales/ru.ts:177-178
  • memory.messages.delMessageWarn:消息列表中破坏性操作的警告文本 web/src/locales/de.ts:148-149
元数据管理

skills.metadata 部分展示了系统如何处理复杂配置 UI,包含信息类别(basicemojiskillKey)和需求(requiredBinsrequiredEnv)的键值 web/src/locales/en.ts:184-195。校验消息也已本地化,以便在技能解析过程中提供清晰的反馈,例如 invalid_frontmattertotal_size_exceeded web/src/locales/zh.ts:181-204

来源: web/src/locales/en.ts:154-195web/src/locales/zh.ts:136-204web/src/locales/de.ts:148-162web/src/locales/ru.ts:177-178web/src/locales/zh-traditional.ts:178