بنقرة واحدة
cangjie-translate
将其他语言代码翻译为仓颉语言。支持 ArkTS、Swift、Java、Python 到仓颉的转换,记录翻译经验和等价写法差异
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
将其他语言代码翻译为仓颉语言。支持 ArkTS、Swift、Java、Python 到仓颉的转换,记录翻译经验和等价写法差异
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
仓颉语言 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 差异、迁移问题时查阅已积累的踩坑记录和解决方案
| 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 中的"单条经验格式":问题现象 → 原因 → 解决方案 → 相关文档。