本文档涵盖了 Dify 的国际化 (i18n) 系统实现,包括翻译文件的组织、语言支持以及 Web 前端使用的翻译键的层级结构。i18n 系统为 Next.js Web 应用程序界面提供了多语言支持。
有关使用这些翻译的用户界面组件的信息,请参阅 用户界面组件。
Dify 的 i18n 系统将翻译文件按语言区域码组织在 web/i18n/ 目录下。每种支持的语言都有自己的子目录,其中包含导出翻译对象的 TypeScript 模块。
翻译文件结构 来源:web/i18n/en-US/common.ts1-676 web/i18n/zh-Hans/common.ts1-676 web/i18n/ja-JP/common.ts1-677
该系统支持 15 种语言,具有标准化的区域码和全面的翻译覆盖,涵盖所有 UI 组件。
| 区域码 | 语言 | 本地名称 | 语音语言键 |
|---|---|---|---|
en-US | 英语 | 英语 | enUS |
zh-Hans | 简体中文 | 中文 | zhHans |
zh-Hant | 繁体中文 | 繁体中文 | zhHant |
ja-JP | 日语 | 日本語 | jaJP |
ko-KR | 韩语 | 한국어 | koKR |
vi-VN | 越南语 | Tiếng Việt | viVN |
fr-FR | 法语 | Français | frFR |
pt-BR | 葡萄牙语(巴西) | Português | ptBR |
es-ES | 西班牙语 | 西班牙语 | esES |
de-DE | 德语 | Deutsch | deDE |
pl-PL | 波兰语 | Polski | plPL |
ro-RO | 罗马尼亚语 | Română | roRO |
uk-UA | 乌克兰语 | Українська | ukUA |
it-IT | 意大利语 | Italiano | itIT |
tr-TR | 土耳其语 | Türkçe | trTR |
来源:web/i18n/en-US/common.ts77-98 web/i18n/zh-Hans/common.ts77-98 web/i18n/ja-JP/common.ts77-98
翻译系统使用按功能区域和 UI 组件组织的嵌套对象结构。每个翻译文件都导出一个 translation 对象,包含以下顶级键:
翻译键类别 来源:web/i18n/en-US/common.ts1-675 web/i18n/zh-Hans/common.ts1-675
api 和 actionMsg 类别包含系统响应和用户反馈的标准消息
api.success - 通用成功消息api.actionSuccess - 操作完成确认api.saved - 保存操作确认actionMsg.modifiedSuccessfully - 修改成功反馈actionMsg.copySuccessfully - 复制操作反馈operation 类别提供常用 UI 操作的标签
operation.create - 创建按钮标签operation.save - 保存按钮标签operation.edit - 编辑按钮标签operation.delete - 删除按钮标签operation.confirm - 确认按钮标签model 类别包含与 AI 模型相关的翻译,包括参数说明和配置选项
model.params.temperature - 温度参数标签model.params.temperatureTip - 温度参数说明model.params.max_tokens - 最大 Token 数参数标签model.tone.Creative - 创意语气选项model.capabilities - 多模态能力标签来源:web/i18n/en-US/common.ts103-145 web/i18n/zh-Hans/common.ts113-145
i18n 系统通过标准化的翻译键模式与 React 组件集成,这些模式映射到特定的 UI 元素和工作流程。
组件翻译映射 来源:web/i18n/en-US/common.ts559-576 web/i18n/en-US/common.ts577-623 web/i18n/en-US/common.ts634-643 web/i18n/en-US/common.ts339-444 web/i18n/en-US/common.ts284-287
该系统包含语音功能特有的映射,使用与语音转文本和文本转语音服务对应的标准化语言代码。
语音语言配置 来源:web/i18n/en-US/common.ts77-98 web/i18n/zh-Hans/common.ts77-98
modelProvider 和 provider 部分包含大量 AI 模型配置界面的翻译,包括特定提供商的设置和参数说明。
modelProvider.systemReasoningModel - 系统推理模型设置modelProvider.embeddingModel - 嵌入模型配置modelProvider.speechToTextModel - STT 模型设置modelProvider.ttsModel - TTS 模型设置modelProvider.rerankModel - 重排模型配置provider.azure.* - Azure OpenAI 配置provider.openaiHosted.* - 托管 OpenAI 设置provider.anthropicHosted.* - Anthropic Claude 设置来源:web/i18n/en-US/common.ts339-444 web/i18n/en-US/common.ts288-338
每个翻译文件都遵循一致的 TypeScript 模块模式。
翻译对象使用带有 {{variable}} 语法的字符串插值模式来动态内容,并在某些情况下使用 _plural 后缀支持复数规则。
来源:web/i18n/en-US/common.ts1 web/i18n/en-US/common.ts675 web/i18n/zh-Hans/common.ts1 web/i18n/zh-Hans/common.ts675