AppFlowy 中的国际化 (i18n) 系统为 Flutter 前端应用程序提供多语言支持。该系统管理整个用户界面的翻译文件、语言切换和本地化文本渲染。该系统支持 20 多种语言,并使用具有键插值功能的分层 JSON 翻译结构。
有关工作区级别语言设置的信息,请参阅工作区管理。有关 AI 相关本地化功能的信息,请参阅AI 集成。
AppFlowy 目前支持 19 种语言,并提供完整翻译覆盖
| 语言 | 代码 | 文件 |
|---|---|---|
| 德语 | de-DE | de-DE.json |
| 法语 | fr-FR | fr-FR.json |
| 中文(简体) | zh-CN | zh-CN.json |
| 阿拉伯语 | ar-SA | ar-SA.json |
| 俄语 | ru-RU | ru-RU.json |
| 西班牙语 (委内瑞拉) | es-VE | es-VE.json |
| 中文(繁体) | zh-TW | zh-TW.json |
| 土耳其语 | tr-TR | tr-TR.json |
| 葡萄牙语(巴西) | pt-BR | pt-BR.json |
| 日语 | ja-JP | ja-JP.json |
| 越南语 | vi-VN | vi-VN.json |
| 印度尼西亚语 | id-ID | id-ID.json |
| 意大利语 | it-IT | it-IT.json |
| 韩语 | ko-KR | ko-KR.json |
| 法语 (加拿大) | fr-CA | fr-CA.json |
| 加泰罗尼亚语 | ca-ES | ca-ES.json |
| 波兰语 | pl-PL | pl-PL.json |
| 葡萄牙语(葡萄牙) | pt-PT | pt-PT.json |
| 匈牙利语 | 匈牙利语(匈牙利) | hu-HU.json |
来源: frontend/resources/translations/ 目录结构
每个翻译文件都遵循一致的分层结构
来源: frontend/resources/translations/de-DE.json1-100 frontend/resources/translations/fr-FR.json1-100
翻译键按功能区域组织,以保持一致性并便于维护
| 类别 | 键前缀 | 示例 | 目的 |
|---|---|---|---|
| 身份验证 | signUp, signIn | signUp.buttonText, signIn.emailHint | 用户登录/注册 |
| 工作区 | workspace | workspace.create, workspace.defaultName | 工作区管理 |
| UI 组件 | toolbar, sideBar, tooltip | toolbar.bold, sideBar.openSidebar | 界面元素 |
| 特性 | chat, trash, shareAction | chat.newChat, trash.restoreAll | 特定功能 |
| 设置 | settings | settings.accountPage.title | 配置页面 |
| 操作 | button, moreAction | button.save, moreAction.import | 用户操作 |
复杂功能使用深度嵌套进行组织
来源: frontend/resources/translations/de-DE.json519-551 frontend/resources/translations/zh-CN.json533-551
该系统支持使用 @: 语法引用其他翻译键
动态内容通过使用 {} 占位符插入
某些语言包含复数规则
来源: frontend/resources/translations/de-DE.json198-202 frontend/resources/translations/fr-FR.json240-244
来源: frontend/resources/translations/ 目录结构
认证流程具有专用的翻译命名空间
signUp.* - 注册流程字符串signIn.* - 登录流程字符串signInWithGoogle, signInWithGithub)AI 聊天功能包含专用翻译
chat.newChat - 聊天创建chat.inputMessageHint - 输入占位符chat.question1-6 - 预设问题chat.referenceSource - 带复数形式的源计数chat.changeFormat.* - 响应格式选项工作区操作具有全面的翻译覆盖
workspace.create, workspace.rename - 基本操作workspace.resetWorkspacePrompt - 确认对话框workspace.errorActions.* - 错误处理选项来源: frontend/resources/translations/de-DE.json21-76 frontend/resources/translations/zh-CN.json191-231 frontend/resources/translations/fr-FR.json96-133
该系统包括对阿拉伯语等 RTL 语言的特殊支持