一键导入
i18n-development
Tauri 国际化开发技能,使用 react-i18next 实现多语言支持。 触发场景: - 需要为应用添加多语言支持 - 需要管理翻译资源文件 - 需要实现语言切换功能 - 需要格式化日期/数字/货币 触发词:国际化、i18n、多语言、翻译、语言切换、本地化、l10n
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Tauri 国际化开发技能,使用 react-i18next 实现多语言支持。 触发场景: - 需要为应用添加多语言支持 - 需要管理翻译资源文件 - 需要实现语言切换功能 - 需要格式化日期/数字/货币 触发词:国际化、i18n、多语言、翻译、语言切换、本地化、l10n
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
发布 Tauri 桌面应用新版本,处理版本号同步、Git tag、GitHub Actions 构建、Release 仓库产物同步、Cloudflare R2 上传、update.json 生成、自动更新发布和文档站重建。 触发场景: - 需要发布新版本或 release - 需要打 tag、推送发布分支或触发 CI 构建 - 需要生成或更新 update.json - 需要处理 Tauri updater 签名产物 - 需要同步 R2 CDN、GitHub/Gitee release 仓库或发布安装包 触发词:发布、release、版本发布、推送、打Tag、update.json、签名构建、安装包、自动更新、R2、CDN
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
自主连续开发方法论(Codex 版)。把一个项目按「每轮一个最小可提交单元」的方式推进到完成: 每轮读真相源 → 选下一个未做项 → 做一个最小单元 → 过验证门 → 记录勾选 → 最小提交 → 报进度。 适用于"按需求/台账建功能、还原原型、修一批 bug、补测试、重构、迁移、清理"等需要反复同构推进的任务。 与 Claude Code 的关系:Claude Code 有内置 `/loop` 自动续期(`/loop /dev-loop`),Codex 没有—— 所以 Codex 端由你(或脚本 / cron)反复触发"继续下一轮",方法论本身一致。 触发场景: - 想让 Codex 把某个项目/某个意图"一轮轮推进到完成" - 还原原型图、修一批 warning、补单测、重构模块等同构重复任务 - 需要"每步可编译、可回退、可恢复"的稳健推进方式 触发词:自主开发、连续开发、循环开发、一轮一提交、还原原型、批量修复、autonomous dev、continuous dev
Tauri 打包与分发技能,指导桌面端(Windows/macOS/Linux)与移动端(Android/iOS)的构建、签名和分发。 触发场景: - 需要构建生产安装包(exe/dmg/deb/apk/aab/ipa) - 需要配置各平台打包参数 - 需要代码签名(Windows 证书 / Android keystore / iOS 描述文件) - 需要减小安装包体积 - 需要设置应用图标和元数据 - 需要打包 Android / iOS App 触发词: 打包、构建、build、发布、安装包、exe、dmg、deb、apk、aab、ipa、签名、分发、release、android build、ios build、移动端打包
排查已发生的问题、定位 Bug 原因。 触发场景: - 代码运行报错,需要定位原因 - 功能不正常,需要排查 - Tauri Command 返回错误,需要分析 - 日志分析、调试代码 触发词:Bug、报错、不工作、调试、排查、为什么、出问题、失败、不生效、无效、找不到原因、定位问题
| name | i18n-development |
| description | Tauri 国际化开发技能,使用 react-i18next 实现多语言支持。 触发场景: - 需要为应用添加多语言支持 - 需要管理翻译资源文件 - 需要实现语言切换功能 - 需要格式化日期/数字/货币 触发词:国际化、i18n、多语言、翻译、语言切换、本地化、l10n |
pnpm add i18next react-i18next i18next-browser-languagedetector
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import LanguageDetector from "i18next-browser-languagedetector";
import zhCN from "./locales/zh-CN.json";
import enUS from "./locales/en-US.json";
i18n
.use(LanguageDetector)
.use(initReactI18next)
.init({
resources: {
"zh-CN": { translation: zhCN },
"en-US": { translation: enUS },
},
fallbackLng: "zh-CN",
interpolation: { escapeValue: false },
});
export default i18n;
// locales/zh-CN.json
{
"app": {
"title": "我的应用",
"welcome": "欢迎,{{name}}!"
},
"menu": {
"file": "文件",
"edit": "编辑",
"help": "帮助"
},
"action": {
"save": "保存",
"cancel": "取消",
"delete": "删除",
"confirm": "确认"
}
}
// locales/en-US.json
{
"app": {
"title": "My App",
"welcome": "Welcome, {{name}}!"
},
"menu": {
"file": "File",
"edit": "Edit",
"help": "Help"
},
"action": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"confirm": "Confirm"
}
}
import { useTranslation } from "react-i18next";
function Header() {
const { t, i18n } = useTranslation();
return (
<header>
<h1>{t("app.title")}</h1>
<p>{t("app.welcome", { name: "Alice" })}</p>
<select
value={i18n.language}
onChange={(e) => i18n.changeLanguage(e.target.value)}
>
<option value="zh-CN">中文</option>
<option value="en-US">English</option>
</select>
</header>
);
}
import "./i18n"; // 在 App 之前导入
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
<React.StrictMode>
<App />
</React.StrictMode>
);
| 错误做法 | 正确做法 |
|---|---|
| 硬编码中文字符串 | 使用 t("key") 引用翻译 |
| 翻译 key 用中文 | 使用英文点分 key app.title |
| 不提取公共翻译 | 按模块组织翻译文件 |
| 日期格式硬编码 | 使用 Intl API 格式化 |