一键导入
cangjie-translate
将其他语言代码翻译为仓颉语言。支持 ArkTS、Swift、Java、Python 到仓颉的转换,记录翻译经验和等价写法差异
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
将其他语言代码翻译为仓颉语言。支持 ArkTS、Swift、Java、Python 到仓颉的转换,记录翻译经验和等价写法差异
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
仓颉语言 HarmonyOS 开发的入口路由。遇到仓颉语法、HarmonyOS API、编译构建等问题时自动加载,引导使用正确的 skill
编译构建仓颉 HarmonyOS 应用,执行 ohpm 依赖安装、仓颉资源同步和 HAP 包打包。用户说编译、构建、build、打包时触发
编译纯仓颉 cjpm 库项目(非 HarmonyOS 应用)。自动检测仓颉 SDK,执行 cjpm build 与 cjpm test。在库目录下说编译/构建/build/打包/跑测试时使用
将任意语言的三方库/SDK/工具包翻译为纯仓颉 cjpm 包。关注 API 面、依赖策略、包骨架与构建验证;不涉及 HarmonyOS 应用资源与 UI
从 GitCode 下载最新仓颉语言和 HarmonyOS 原始文档。当 cangjie-kernel 和 cangjie-harmony 未覆盖所需内容时作为兜底使用
仓颉开发经验总结。遇到编译错误、API 差异、迁移问题时查阅已积累的踩坑记录和解决方案
基于 SOC 职业分类
| name | cangjie-translate |
| description | 将其他语言代码翻译为仓颉语言。支持 ArkTS、Swift、Java、Python 到仓颉的转换,记录翻译经验和等价写法差异 |
| argument-hint | [arkts|swift|java|python] [file-or-code] |
将 $1 代码翻译为仓颉语言(待翻译内容:$2)。
开始翻译前,依次确认以下事项。未确认完毕不要进入翻译流程。
参照 base-skill 第 1 步自检。结论影响后续截图辅助流程:
向用户确认(或从参数 / 文件结构自动推断):
| 问题 | 获取方式 | 影响 |
|---|---|---|
| 源语言是什么?(ArkTS / Swift / Java / Python) | 参数 $1 或项目 manifest 推断 | 决定资源目录识别和类型映射规则 |
| 源项目路径在哪? | 参数 $2 或用户指定 | 定位源代码和资源 |
| 源项目是否含 UI? | 检查是否有视图/页面/布局文件 | 有 UI → 触发截图辅助和资源迁移 |
| 问题 | 检查方式 | 未就绪时 |
|---|---|---|
| 仓颉 HarmonyOS 目标项目是否已创建? | 检查 entry/ + module.json5 是否存在 | 需先创建项目骨架 |
目标项目的 entry/src/main/resources/ 目录是否存在? | ls 检查 | 创建资源目录结构 |
若第 1 步确认为多模态,且第 2 步确认源项目含 UI,向用户询问:
为了更准确还原原项目的视觉与交互,是否希望提供原项目 UI 截图作为参考? 如需提供,请将截图放入
./translate_refs/目录,文件名建议采用页面名_描述.png。 放置完成后回复"已放置",或直接说"不需要"。
翻译完成后需要构建验证,提前确认:
.env 中 DEVECO_HOME 是否已配置?(/build 必需)base-skill 中的平台典型值补充cangjie-kernel skill 确认仓颉语法和 APIcangjie-harmony skill 确认 HarmonyOS 平台 API 的仓颉等价写法evolution skill 中的已知踩坑记录,避免重复犯错原则:翻译代码前,先把原项目的图片、图标、字体、音视频、本地化字符串等资源复制到仓颉工程对应目录。禁止在代码中使用 "placeholder.png"、TODO、占位 URL、或虚构资源名。
按源语言类型定位:
| 源语言 | 典型资源目录 |
|---|---|
| ArkTS(HarmonyOS) | entry/src/main/resources/(base/media/、base/element/、rawfile/) |
| Swift(iOS) | Assets.xcassets/、Resources/、*.lproj/、Base.lproj/ |
| Java(Android) | app/src/main/res/(drawable*/、mipmap*/、values*/、raw/、assets/) |
| Python | static/、templates/、assets/、resources/(按框架不同而异,如 Django/Flask/Tkinter) |
仓颉 HarmonyOS 项目资源放在 entry/src/main/resources/:
| 资源类型 | 目标位置 | 说明 |
|---|---|---|
| 位图(png/jpg/webp) | base/media/ | 文件名全小写 + 下划线,如 icon_home.png |
| SVG 矢量图 | base/media/ | 同上,仓颉 ArkUI 支持 svg |
| 颜色/字符串/尺寸 | base/element/color.json、string.json、float.json | 键名小写下划线 |
| 原始音视频/字体 | rawfile/ | 保留原目录结构 |
| 多语言 | zh_CN/element/、en_US/element/ | 与原项目 lproj/values-* 对应 |
| 多分辨率图(iOS @2x/@3x、Android mdpi/hdpi/xhdpi) | 选最高分辨率放入 base/media/ | 鸿蒙按密度自动缩放,无需多份 |
Glob 列出原项目资源目录下所有文件iconHome.png → icon_home.pngBash(cp ...) 或 Write(二进制文件直接 cp).strings / .xml / .json 提取键值,合并写入 element/*.json仓颉中通过 $r("app.media.icon_home") 或 $rawfile("data.json") 引用资源。翻译时把源代码的资源引用(如 ArkTS 的 $r("app.media.xxx")、Swift 的 UIImage(named:)、Android 的 R.drawable.xxx)统一改写为新的仓颉形式。
https://placehold.co/...、纯色方块)// TODO: 添加图标如原项目确实没有某资源(如仅在运行时下载),在翻译报告末尾一句话列出:"资源 X 在源项目未找到,需要用户提供",由用户补充。
模型能力自检和截图就绪确认已在「前置检查」步骤 1 和步骤 4 中完成。纯文本模型跳过本节。
前置检查确认用户已将截图放入 translate_refs/ 后:
确认截图目录
<项目根>/translate_refs/读取并使用截图
Glob 列出 translate_refs/**/*.{png,jpg,jpeg,webp} 所有截图跳过条件(任一即跳过):前置检查确认为纯文本、translate_refs/ 不存在或为空、用户明确不需要
目标:尽可能翻译全部功能。不要因为仓颉或 HarmonyOS 没有现成 API,就直接删掉页面逻辑、交互、状态、校验、动画、异步流程或业务分支。
遇到"仓颉没有现成 API / 组件 / 语法糖"时,按以下顺序处理:
cangjie-kernel、cangjie-harmony、已有经验文档,确认是否已有等价能力或可组合实现跳过规则:
翻译过程中解决了非显而易见的问题后,必须将经验写入对应位置。
| 经验类型 | 写入位置 | 示例 |
|---|---|---|
| 源语言 → 仓颉的语法/表达差异 | cangjie-translate/<lang>2cangjie/ | 类型映射、API 等价写法、语法糖替代 |
| 仓颉语言通用问题(与翻译无关) | evolution/cangjie/ | 编译器行为、宏约束、标准库陷阱 |
判定规则:若问题是"从某语言翻译到仓颉时才会遇到",写入 *2cangjie/;若问题是"用仓颉开发都会遇到",写入 evolution/cangjie/。
按源语言记录到对应子目录:
每个子目录下按需创建主题文件(如 types.md、ui.md、async.md),并在子目录的 README.md 中维护索引。
遵循 evolution/SKILL.md 中的"单条经验格式":问题现象 → 原因 → 解决方案 → 相关文档。