用途:为 ryOS 应用或组件做本地化,把硬编码文案抽取出来,改成翻译键,并在各语言间同步。
主要能力与流程:1. 抽取硬编码字符串,命令为 bun run i18n:extract --pattern [PATTERN];2. 在源码中替换为 t() 调用,引入 import { useTranslation } from "react-i18next"; 并使用 const { t } = useTranslation();,键形如 t("apps.[appName].category.key");3. 将英文翻译加入 src/lib/locales/en/translation.json;4. 同步各语言,命令为 bun run i18n:sync:mark-todo,缺失键会以 [TODO] 标记补入 11 个语言文件;5. 机器翻译,命令为 bun run i18n:translate,需 GOOGLE_GENERATIVE_AI_API_KEY 环境变量;6. 校验,命令为 bun run i18n:sync:dry-run、bun run i18n:audit、bun run i18n:find-untranslated。
键结构覆盖菜单、对话框、状态、提示、空状态、无障碍标签、帮助项、语音反馈、单位换算、角度模式及 common.auth.* 等共享登录文案。使用 t() 时若置于 useMemo/useCallback 中,需把 t 加入依赖数组;Emoji 与符号可保持硬编码。注意不要仅依赖 defaultValue 保存新键,因为同步与审计脚本只比对语言 JSON 文件。英文菜单标签采用 Apple 风格标题大小写;需要全局强制的术语规则写入 scripts/apple-ui-terminology.ts 的 ENGLISH_STYLE_EXPECTATIONS,并由对应单元测试覆盖。审计报告的术语不一致若无法自动修复,需手工修改语言 JSON 后重跑审计。
适用场景:ryOS 前端组件的多语言改造与术语一致性维护。限制:具体平台与完整环境要求资料未全部提供。