Translation Diff Export
Devolutions/UniGetUI
Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.
Translate English passages into natural Chinese or polish Chinese translations against the source; supports bilingual output.
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polish --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .claude/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .agents/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .cursor/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .gemini/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polishInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .github/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HoraceLuBFA/en-zh-translation-polish en-zh-translation-polish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "en-zh-translation-polish" agent skill from https://github.com/HoraceLuBFA/en-zh-translation-polish/tree/main into .opencode/skills/en-zh-translation-polish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "en-zh-translation-polish", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
en-zh-translation-polishTranslate English passages into natural Chinese or polish Chinese translations against the source; supports bilingual output.
En Zh Translation Polish is an agent skill from HoraceLuBFA/en-zh-translation-polish. Translate English passages into natural Chinese or polish Chinese translations against the source; supports bilingual output.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including scripts and assets (for example `.github/workflows/update-star-history.yml`, `CHANGELOG.md` and `README.en.md`).
It sits in Writing & Content, covering Translation. The repository describes itself as: 英译汉翻译润色 · English→Chinese translate & polish skill (英中对照). The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bcc4230. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashFrom allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
En Zh Translation Polish loads about 1.8k tokens when it runs. Until then it costs about 38 tokens; SKILL.md has 222 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from HoraceLuBFA/en-zh-translation-polish at commit bcc4230, republished under its MIT licence (© HoraceLuBFA). 222 words, ~1,776 tokens.
.claude/skills/en-zh-translation-polish/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.把英文译成忠实、地道的中文并产出英中对照译文。借鉴叶子南的英译汉方法,在完整、准确传达原文的前提下,以读者为中心、按文本类型调节归化尺度、发挥汉语意合优势、兼顾音韵节奏。
**忠实性优先,适用于所有档位。**归化自由度只调整表达方式,不授权增删事实、改变逻辑关系、说话者、限定条件或语气强度。原文的比喻、夸张和个人语气应保留其作用,不额外强化。外部知识用于消歧,不能补写成原文的陈述;原文未展开的信息不自行补齐。用户明确要求摘要、节译或改写时按该范围交付,并说明处理方式。
聊天中的短段落翻译直接在回复中交付,用户要求文件时才落盘;全文或项目翻译沿用下述默认文件契约。用户明确选择纯译文、双语或已有目标文件时按其要求,不重复确认。先保留数字、术语、引文与限定条件,再按文体选择必要的润色检查;短文本不必逐项展示诊断过程或通读所有参考表。研究论文、文学和正式文件的专项边界继续适用。
本技能可独立安装使用,无需额外安装其他翻译技能。输入为 PDF 或其他文档时,先使用当前宿主可用的读取工具获取原文;保留用户要求的正文、图表说明、公式、引文和参考文献。无法可靠提取的内容应说明缺口,不将翻译任务转交给用户未安装的技能。
默认产出一个英中对照 Markdown 文件;用户要“全中文版”时再脚本派生。
<名称> 翻译(中英对照).md — 唯一真源。每段英文原文作为 blockquote (> ),紧跟其下是中文译文。<名称> 翻译(全中文).md — 脱离对照文件用脚本机械派生(删掉 > 行),不要重打中文。python3 - "<名称> 翻译(中英对照).md" "<名称> 翻译(全中文).md" <<'PY'
import sys, re
src, dst = sys.argv[1], sys.argv[2]
lines = open(src, encoding='utf-8').read().split('\n')
kept = [ln for ln in lines if not ln.lstrip().startswith('>')]
open(dst,'w',encoding='utf-8').write(re.sub(r'\n{3,}','\n\n','\n'.join(kept)).strip()+'\n')
PY顺序要求:先跑阶段 6 的标点归一,再派生全中文版——派生脚本原样继承标点,不会再纠正。
若输入只是聊天里的一小段(几句话),直接在回复里给对照即可,不必落盘;成篇文章或用户指明保存才写文件。命名沿用源文件名,无工具前缀(除非用户要)。目标文件已存在则更新而非新建。
长文、多受访者或图文穿插文本,按原有章节、发言者或连续小段分批翻译并就地核查;合并后检查全篇顺序、缺段和术语一致性。脚本只组装已核查内容。短文本直接完成,不强制分块或另建检查文件。
先回答:这是硬文本还是软文本?属纽马克哪一类?自由度大致几分(1–10)? 详见 reference/text-analysis-and-qa.md 小节 A。
先理清原文事实、实体、指代、否定、条件和语气,再摆脱英文句法组织中文;可拆并句,不凭行业常识补写原文未说的内容。遇到结构纠缠的短语用“解包袱法”理清隐含语义关系(见 reference/techniques.md)。
以意合优先起译:能不用连接词就不用,长句拆成流水短句,被动转主动,定语别堆在名词前。
reference/translationese-symptoms.md 逐条排查并修:形合迁移/连接词冗余、长前置定语、“的的不休”、被动滥用、抽象名词作主语、习语硬译、语义关系隐含不清。reference/techniques.md 的手段修:词性转换、增/减词、分句/合句、语序移位、定语从句转状语/独立句、正反译、被动转化。reference/text-analysis-and-qa.md 小节 B)。读出声。利用双音节/四字结构、“偶字易适奇字难平”、对偶排比;并列词组尽量配偶字(“飞机小,便宜”→“体积不大,造价便宜”)。但软文本才放开;硬文本点到为止。
对照 reference/text-analysis-and-qa.md 小节 C 逐项核:擅自改结构/移焦点、漏译情态虚词、擅自添词、搭配、指代、逻辑关系、专名术语数字、语域对齐。
润色后重新读取对应原段,执行双向核查:
单独核对情态与修饰语:可能性不能改成频率或确定性判断,例如表示可能的 can 不译成“往往”;不无依据添加“确实”“主要”等强调或范围限定,only if 的必要条件不得改成充分条件。
段落数量、英文引用存在、实体齐全和标点通过均不能替代语义核查。发现问题时定位原文与译文中的对应位置,修复后复查受影响段落;不以“已全面检查”的自述代替核对,不要求逐字或逐句形式上的一一对应。
中文译文里的标点必须是中文全角,不能残留英文半角(译者最易忽略,逐字凭眼力一定会漏)。规则:
, : ; ? ! → ,:;?!;句末用 。;并列用顿号 、;破折号 ——;省略号 ……。( ) → 全角 ( ):仅当紧邻中文字符时才转(包裹中文内容、含人名/术语原文注,如 "道德受体地位(moral patienthood)");纯英文括注(如电影演职 (Harold D. Schuster, 1937))保持半角。" "(内层 ' ');直角引号 「」、『』 一并归一为 " " / ' '。以下一律保持半角,绝不转: ① 英文原文 blockquote(> 行)整段不动;② Markdown 链接 [文字](url) 的括号与 URL;③ 中文行内嵌入的整句/词组英文,其内部标点——如被引用的英文原句 …one nation under God, indivisible, …;④ 数字/缩写/版本号里的点:4.3、Word 2010、A.I.、L. M.;⑤ 代码/公式块。
判定原理:逗号类与圆括号都只在紧邻中文字符(前或后)时才转;有方向的引号(“”「」‘’『』)按方向直接映射,只有歧义的直双引号 " 才靠交替判定开闭。落盘后跑下面脚本机械归一并自检(残留 必须为 0):
python3 - "<名称> 翻译(中英对照).md" <<'PY'
import re, sys
src = sys.argv[1]
lines = open(src, encoding='utf-8').read().split('\n')
CJK_EXTRA = set('“”‘’·—…《》〈〉「」『』【】、。,!?;:()')
def is_cjk(c):
if not c: return False
o = ord(c)
return (0x3400<=o<=0x9fff) or (0x3000<=o<=0x303f) or (0xff00<=o<=0xffef) or (c in CJK_EXTRA)
SMAP = {',':',', ';':';', ':':':', '?':'?', '!':'!', '(':'(', ')':')'}
OPEN2 = '“「'; CLOSE2 = '”」'; OPEN1 = '‘『'; CLOSE1 = '’』'
LINK = re.compile(r'\[[^\]]*\]\([^)]*\)')
def fix(line):
store=[]
line = LINK.sub(lambda m: store.append(m.group(0)) or '\x00%d\x00'%(len(store)-1), line)
out=[]; sop=True # 有方向引号直接映射; 仅歧义直双引号 " 靠交替定开闭
for c in line:
if c == '"': out.append('“' if sop else '”'); sop = not sop
elif c in OPEN2: out.append('“')
elif c in CLOSE2: out.append('”')
elif c in OPEN1: out.append('‘')
elif c in CLOSE1: out.append('’')
else: out.append(c)
ch=out; n=len(ch)
for i,c in enumerate(ch): # 逗号类 + 圆括号: 紧邻中文才转全角
if c in SMAP and (is_cjk(ch[i-1] if i else '') or is_cjk(ch[i+1] if i+1<n else '')):
ch[i]=SMAP[c]
line=''.join(ch)
return re.sub('\x00(\\d+)\x00', lambda m: store[int(m.group(1))], line)
def skip(ln):
s=ln.strip(); return s=='' or ln.lstrip().startswith('>') or s=='---'
res=[ln if skip(ln) else fix(ln) for ln in lines]
open(src,'w',encoding='utf-8').write('\n'.join(res))
def residual(ln):
t = LINK.sub('', ln) # 排除 markdown 链接内的括号/标点, 免误报
return sum(1 for m in re.finditer(r'[,;:?!()]', t)
if is_cjk(t[m.start()-1] if m.start() else '') or is_cjk(t[m.start()+1] if m.start()+1<len(t) else ''))
bad=sum(residual(ln) for ln in res if not skip(ln))
print('残留:', bad)
PY聊天里直接给的小段对照(未落盘)同样要手动套用上述规则。
按下方格式逐段配对;成篇则写文件;给用户附一句“档位判定 + 主要润色取舍”。
按段落配对:英文原段作为 blockquote,紧接中文译文。
> It is a truth universally acknowledged that a single man in possession of a
> good fortune must be in want of a wife.
凡是有钱的单身汉,总想娶位太太,这是一条举世公认的真理。规则:
##/###,不加 blockquote;可选地把英文标题作为上一行 blockquote。叶子南本人警告的两个反模式,务必守住:
reference/translationese-symptoms.md 第七节)。输入(英文):
The confidence that the West would remain a dominant force in the 21st century is giving way to a sense of foreboding.输出(英中对照;阶段 0 判定:偏硬/政论,自由度≈3,准确优先、克制音韵):
The confidence that the West would remain a dominant force in the 21st century is giving way to a sense of foreboding.
西方曾笃信自己将在 21 世纪稳居主导地位,如今这份自信,正让位于一种隐隐的不祥之感。
本 skill 的代码、提示词与组织方式以 MIT 许可发布,可自由使用、修改、再分发。
方法论与判例蒸馏、转述自叶子南《高级英汉翻译理论与实践》(第4版,清华大学出版社,2020),在此谨致谢忱。reference/ 三张表中的少量引文系评注与教学目的的简短摘引,著作权归原作者与出版社所有;本 skill 仅为方法工具,不能替代原著,建议系统学习者购买正版。
© HoraceLuBFA, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts, assets) in the repository root of HoraceLuBFA/en-zh-translation-polish.
Open the folder on GitHubat commit bcc4230
En Zh Translation Polish next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| En Zh Translation Polish this skillHoraceLuBFA/en-zh-translation-polish | 113 | — | ~1.8k | Automated safety check: Notes | MIT | |
| Translation Diff ExportDevolutions/UniGetUI | 26k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Sync Translationssymfony/symfony | 31k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Translation Diff ImportDevolutions/UniGetUI | 26k | — | ~750 | Automated safety check: Pass | MIT | |
| Translation Diff TranslateDevolutions/UniGetUI | 26k | — | ~934 | Automated safety check: Pass | MIT | |
| Generate Translationspayloadcms/payload | 45k | — | ~1.1k | Automated safety check: Pass | MIT |
Devolutions/UniGetUI
Compares UniGetUI JSON locale files against English, identifies untranslated or source-changed keys, and generates patch, reference, and handoff files for a target language.
symfony/symfony
Synchronize translation catalogs across maintained Symfony branches: find messages that newer branches added to the English catalogs but that are still missing from the oldest maintained branch…
Devolutions/UniGetUI
Merges translated key-value pairs from a UniGetUI JSON localization patch back into the full language file and validates the merged result.
Devolutions/UniGetUI
Translates a sparse UniGetUI JSON language patch, writes completed entries into the working copy, preserves placeholders and terminology, and prepares the patch for merge-back.
payloadcms/payload
A skill your agent uses when new translation keys are added to packages to generate new translations strings
Narcooo/inkos
Drives long-form fiction, scripts, storyboards, interactive films and long-document translation through InkOS, with every change made by a typed action.
Categories
Translate English passages into natural Chinese or polish Chinese translations against the source; supports bilingual output. En Zh Translation Polish is an agent skill from HoraceLuBFA/en-zh-translation-polish. Translate English passages into natural Chinese or polish Chinese translations against the source; supports bilingual output.
En Zh Translation Polish fits situations like: tasks that involve Translation.
Run `npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a claude-code`. Or copy the skill folder (the HoraceLuBFA/en-zh-translation-polish repository) into .claude/skills/en-zh-translation-polish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a codex`. Or copy the skill folder (the HoraceLuBFA/en-zh-translation-polish repository) into .agents/skills/en-zh-translation-polish in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HoraceLuBFA/en-zh-translation-polish --skill en-zh-translation-polish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/en-zh-translation-polish, .gemini/skills/en-zh-translation-polish, .github/skills/en-zh-translation-polish and .opencode/skills/en-zh-translation-polish in your project.
Going by SKILL.md and its folder, En Zh Translation Polish needs JavaScript for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3; Node.js. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
En Zh Translation Polish is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with En Zh Translation Polish: Translation Diff Export (Devolutions/UniGetUI, 26k stars), Sync Translations (symfony/symfony, 31k stars), Translation Diff Import (Devolutions/UniGetUI, 26k stars) and Translation Diff Translate (Devolutions/UniGetUI, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HoraceLuBFA (a GitHub user) maintains it in HoraceLuBFA/en-zh-translation-polish, which has 113 GitHub stars. The repository was last updated on October 7, 2026.
Source: HoraceLuBFA/en-zh-translation-polish on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.